@loidolt/theme-styles 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loidolt/theme-styles",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Base styles, fonts, accessibility helpers, and utilities for Loidolt applications",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  "build": "node -e \"console.log('theme-styles: source CSS is publish-ready')\""
32
32
  },
33
33
  "dependencies": {
34
- "@loidolt/theme-tokens": "^0.10.0"
34
+ "@loidolt/theme-tokens": "^0.10.1"
35
35
  },
36
36
  "publishConfig": {
37
37
  "access": "public",
@@ -397,33 +397,6 @@
397
397
  .ldt-tabs__content[data-orientation='vertical'] {
398
398
  padding-block: var(--loidolt-space-4);
399
399
  }
400
- /* A rail left vertical on a phone lays its tabs out as one row above the panels. */
401
- .ldt-tabs--rail[data-orientation='vertical'] {
402
- height: auto;
403
- }
404
- .ldt-tabs--rail .ldt-tabs__list[data-orientation='vertical'] {
405
- min-width: 0;
406
- flex-direction: row;
407
- gap: 0;
408
- padding: var(--loidolt-space-1);
409
- border-inline-end: 0;
410
- }
411
- .ldt-tabs--rail .ldt-tabs__trigger[data-orientation='vertical'] {
412
- flex: 1 1 0;
413
- padding-inline: 0;
414
- }
415
- .ldt-tabs--rail .ldt-tabs__trigger[data-state='active'][data-orientation='vertical'] {
416
- box-shadow: inset 0 calc(-1 * var(--loidolt-stroke-indicator)) 0 var(--loidolt-accent);
417
- }
418
- .ldt-tabs--rail[data-orientation='vertical'] .ldt-tabs__panels {
419
- overflow: visible;
420
- }
421
- .ldt-tabs--rail[data-orientation='vertical'] .ldt-tabs__panel-header {
422
- position: static;
423
- }
424
- .ldt-tabs--rail .ldt-tabs__content[data-orientation='vertical'] {
425
- padding-block: 0;
426
- }
427
400
  }
428
401
  /* A tab's leading icon, beside its label. */
429
402
  .ldt-tabs__trigger:has(.ldt-tabs__icon) {
@@ -451,8 +424,9 @@
451
424
  * panels, which never scrolls sideways. Give the root a height for the vertical panels to scroll.
452
425
  */
453
426
  .ldt-tabs--rail {
454
- /* Room for an icon over a label of about nine characters; override per app. */
455
- --ldt-rail-width: 3.75rem;
427
+ /* The vertical rail's whole width: room for an icon over a label of about nine characters.
428
+ Override per app. */
429
+ --ldt-rail-width: 4.75rem;
456
430
  min-height: 0;
457
431
  }
458
432
  .ldt-tabs--rail[data-orientation='vertical'] {
@@ -466,12 +440,13 @@
466
440
  /* The rail's width is its own (a fixed column, or the row it shares); long labels end in an
467
441
  ellipsis rather than widening whatever holds the rail. */
468
442
  contain: inline-size;
469
- gap: var(--loidolt-space-1);
470
- padding: var(--loidolt-space-2);
443
+ /* Tabs meet edge to edge, so the whole rail is target and hover area, with no dead space. */
444
+ gap: 0;
445
+ padding: 0;
471
446
  overflow: hidden;
472
447
  }
473
448
  .ldt-tabs--rail .ldt-tabs__list[data-orientation='vertical'] {
474
- min-width: calc(var(--ldt-rail-width) + 2 * var(--loidolt-space-2));
449
+ min-width: var(--ldt-rail-width);
475
450
  overflow-y: auto;
476
451
  border-right: 0;
477
452
  border-inline-end: var(--loidolt-border-width) solid var(--loidolt-border);
@@ -487,7 +462,7 @@
487
462
  gap: var(--loidolt-space-1);
488
463
  padding: var(--loidolt-space-2) var(--loidolt-space-1);
489
464
  border: 0;
490
- border-radius: var(--loidolt-radius-control);
465
+ border-radius: 0;
491
466
  font-size: var(--loidolt-font-size-xs);
492
467
  letter-spacing: 0; /* tracking would push short labels into ellipses */
493
468
  text-align: center;
@@ -497,10 +472,10 @@
497
472
  flex: 1 1 0;
498
473
  padding-inline: 0;
499
474
  }
500
- /* A row of rail tabs shares one line edge to edge, down to a 320px phone. */
501
- .ldt-tabs--rail .ldt-tabs__list[data-orientation='horizontal'] {
502
- gap: 0;
503
- padding: var(--loidolt-space-1);
475
+ /* The vertical indicator sits on the rail's leading edge. Both sides carry a border so the
476
+ icon stays centred; only the leading one takes the accent. */
477
+ .ldt-tabs--rail .ldt-tabs__trigger[data-orientation='vertical'] {
478
+ border-inline: var(--loidolt-stroke-indicator) solid transparent;
504
479
  }
505
480
  .ldt-tabs--rail .ldt-tabs__icon :where(svg) {
506
481
  width: 1.25rem; /* @literal rail icons are sized for the eye, not the label */
@@ -521,7 +496,8 @@
521
496
  background: var(--loidolt-surface-alt);
522
497
  }
523
498
  .ldt-tabs--rail .ldt-tabs__trigger[data-state='active'][data-orientation='vertical'] {
524
- box-shadow: inset calc(-1 * var(--loidolt-stroke-indicator)) 0 0 var(--loidolt-accent);
499
+ border-inline-start-color: var(--loidolt-accent);
500
+ border-inline-end-color: transparent;
525
501
  }
526
502
  .ldt-tabs--rail .ldt-tabs__trigger[data-state='active'][data-orientation='horizontal'] {
527
503
  box-shadow: inset 0 calc(-1 * var(--loidolt-stroke-indicator)) 0 var(--loidolt-accent);
@@ -543,6 +519,35 @@
543
519
  .ldt-tabs--rail .ldt-tabs__content {
544
520
  padding-block: 0;
545
521
  }
522
+ /* After the rail rules, so the phone layout wins over them at equal specificity. */
523
+ @media (max-width: 760px) {
524
+ /* A rail left vertical on a phone lays its tabs out as one row above the panels. */
525
+ .ldt-tabs--rail[data-orientation='vertical'] {
526
+ height: auto;
527
+ }
528
+ .ldt-tabs--rail .ldt-tabs__list[data-orientation='vertical'] {
529
+ min-width: 0;
530
+ flex-direction: row;
531
+ border-inline-end: 0;
532
+ }
533
+ .ldt-tabs--rail .ldt-tabs__trigger[data-orientation='vertical'] {
534
+ flex: 1 1 0;
535
+ padding-inline: 0;
536
+ border-inline: 0;
537
+ }
538
+ .ldt-tabs--rail .ldt-tabs__trigger[data-state='active'][data-orientation='vertical'] {
539
+ box-shadow: inset 0 calc(-1 * var(--loidolt-stroke-indicator)) 0 var(--loidolt-accent);
540
+ }
541
+ .ldt-tabs--rail[data-orientation='vertical'] .ldt-tabs__panels {
542
+ overflow: visible;
543
+ }
544
+ .ldt-tabs--rail[data-orientation='vertical'] .ldt-tabs__panel-header {
545
+ position: static;
546
+ }
547
+ .ldt-tabs--rail .ldt-tabs__content[data-orientation='vertical'] {
548
+ padding-block: 0;
549
+ }
550
+ }
546
551
 
547
552
  /* The option list of Combobox and MultiSelect: the menu surface, sized to its field. */
548
553
  .ldt-listbox {