origam 2.18.17 → 2.18.18

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.
@@ -930,6 +930,18 @@
930
930
  --origam-toolbar__append---flex-basis: auto;
931
931
  --origam-toolbar__append---margin-inline-start: auto;
932
932
  --origam-toolbar__append---margin-inline-end: var(--origam-space---2);
933
+ /* Toolbar + AppBar — #596. Same rule: every value is the literal the SCSS
934
+ already fell back to, so nothing moves on screen.
935
+ --origam-toolbar---btn-background-color-{hover,active},
936
+ --origam-appbar---backdrop-filter and --origam-layout---position-{left,right}
937
+ stay UNDECLARED on purpose — see the comments at their read sites in
938
+ OrigamToolbar.vue. */
939
+ --origam-toolbar---padding-inline: var(--origam-space---4);
940
+ --origam-toolbar---btn-background-color: rgba(0, 0, 0, 0);
941
+ --origam-toolbar---btn-color: currentColor;
942
+ --origam-toolbar---btn-border-radius: var(--origam-radius---md);
943
+ --origam-toolbar__wrapper---gap: var(--origam-space---3);
944
+ --origam-toolbar__title---color: currentColor;
933
945
  --origam-app---background-color: var(--origam-color__surface---default);
934
946
  --origam-app---color: var(--origam-color__text---primary);
935
947
  --origam-app---min-height: 100vh;
@@ -1653,6 +1665,12 @@
1653
1665
  --origam-pagination---input-width: var(--origam-space---10);
1654
1666
  --origam-pagination---input-padding-inline: var(--origam-space---2);
1655
1667
  --origam-pagination---label-gap: var(--origam-space---2);
1668
+ /* Pagination — #596. rgba(0, 0, 0, 0) is the computed equivalent of the
1669
+ `transparent` literal the SCSS already fell back to for the active item's
1670
+ border, so nothing moves on screen. The three other --item--is-active
1671
+ channels and --origam-pagination---color-hover stay UNDECLARED on purpose
1672
+ — see the comments at their read sites in OrigamPagination.vue. */
1673
+ --origam-pagination__item--is-active---border-color: rgba(0, 0, 0, 0);
1656
1674
  --origam-table---background-color: var(--origam-color__surface---default);
1657
1675
  --origam-table---color: var(--origam-color__text---primary);
1658
1676
  --origam-table---font-size: var(--origam-font__size---md);
@@ -2545,6 +2563,32 @@
2545
2563
  --origam-tabs__item---transition-easing: var(--origam-motion__easing---standard);
2546
2564
  --origam-tabs__indicator---color: var(--origam-color__action--primary---bg);
2547
2565
  --origam-tabs__indicator---height: var(--origam-border__width---2);
2566
+ /* Tabs — #596. Each value is exactly the literal (or token reference) the
2567
+ component SCSS already fell back to, so nothing moves on screen: the
2568
+ variant (--default / --pills / --underline) and item-state channels were
2569
+ simply never declared, so every theme edit to them was a no-op.
2570
+ --item--disabled---color and --item--hover---background-color keep their
2571
+ legacy hardcoded rgba(0, 0, 0, …) — that is what the DS renders today in
2572
+ BOTH themes, and swapping them for a semantic token would move the dark
2573
+ rendering, which is a design decision and not a token-wiring one.
2574
+ Declaring them here is what finally lets a theme fix that. */
2575
+ --origam-tabs--default---border-block-end-width: var(--origam-border__width---thin);
2576
+ --origam-tabs--default---border-block-end-color: var(--origam-color__border---subtle);
2577
+ --origam-tabs--underline---border-block-end-width: var(--origam-border__width---thin);
2578
+ --origam-tabs--underline---border-block-end-color: var(--origam-color__border---subtle);
2579
+ --origam-tabs--pills---background-color: rgba(0, 0, 0, 0);
2580
+ --origam-tabs--pills---gap: var(--origam-space---2);
2581
+ --origam-tabs--pills---padding: var(--origam-space---1);
2582
+ --origam-tabs__item--hover---color: currentColor;
2583
+ --origam-tabs__item--hover---background-color: rgba(0, 0, 0, 0.04);
2584
+ --origam-tabs__item--active---color: currentColor;
2585
+ --origam-tabs__item--active---background-color: rgba(0, 0, 0, 0);
2586
+ --origam-tabs__item--active---font-weight: var(--origam-font__weight---semibold);
2587
+ --origam-tabs__item--disabled---color: rgba(0, 0, 0, 0.38);
2588
+ --origam-tabs__item--disabled---background-color: rgba(0, 0, 0, 0);
2589
+ --origam-tabs__item--focus---outline-color: currentColor;
2590
+ --origam-tabs__item--pills--active---background-color: var(--origam-color__action--primary---bg);
2591
+ --origam-tabs__item--pills--active---color: var(--origam-color__action--primary---fg);
2548
2592
  --origam-tab-panels__panel---padding-block: var(--origam-space---4);
2549
2593
  --origam-tab-panels__panel---padding-inline: var(--origam-space---0);
2550
2594
  --origam-tabs__panel---transition-duration: var(--origam-motion__duration---fast);
@@ -3848,6 +3892,18 @@
3848
3892
  --origam-toolbar__append---flex-basis: auto;
3849
3893
  --origam-toolbar__append---margin-inline-start: auto;
3850
3894
  --origam-toolbar__append---margin-inline-end: var(--origam-space---2);
3895
+ /* Toolbar + AppBar — #596. Same rule: every value is the literal the SCSS
3896
+ already fell back to, so nothing moves on screen.
3897
+ --origam-toolbar---btn-background-color-{hover,active},
3898
+ --origam-appbar---backdrop-filter and --origam-layout---position-{left,right}
3899
+ stay UNDECLARED on purpose — see the comments at their read sites in
3900
+ OrigamToolbar.vue. */
3901
+ --origam-toolbar---padding-inline: var(--origam-space---4);
3902
+ --origam-toolbar---btn-background-color: rgba(0, 0, 0, 0);
3903
+ --origam-toolbar---btn-color: currentColor;
3904
+ --origam-toolbar---btn-border-radius: var(--origam-radius---md);
3905
+ --origam-toolbar__wrapper---gap: var(--origam-space---3);
3906
+ --origam-toolbar__title---color: currentColor;
3851
3907
  --origam-app---background-color: var(--origam-color__surface---default);
3852
3908
  --origam-app---color: var(--origam-color__text---primary);
3853
3909
  --origam-app---min-height: 100vh;
@@ -4571,6 +4627,12 @@
4571
4627
  --origam-pagination---input-width: var(--origam-space---10);
4572
4628
  --origam-pagination---input-padding-inline: var(--origam-space---2);
4573
4629
  --origam-pagination---label-gap: var(--origam-space---2);
4630
+ /* Pagination — #596. rgba(0, 0, 0, 0) is the computed equivalent of the
4631
+ `transparent` literal the SCSS already fell back to for the active item's
4632
+ border, so nothing moves on screen. The three other --item--is-active
4633
+ channels and --origam-pagination---color-hover stay UNDECLARED on purpose
4634
+ — see the comments at their read sites in OrigamPagination.vue. */
4635
+ --origam-pagination__item--is-active---border-color: rgba(0, 0, 0, 0);
4574
4636
  --origam-table---background-color: var(--origam-color__surface---default);
4575
4637
  --origam-table---color: var(--origam-color__text---primary);
4576
4638
  --origam-table---font-size: var(--origam-font__size---md);
@@ -5462,6 +5524,32 @@
5462
5524
  --origam-tabs__item---transition-easing: var(--origam-motion__easing---standard);
5463
5525
  --origam-tabs__indicator---color: var(--origam-color__action--primary---bg);
5464
5526
  --origam-tabs__indicator---height: var(--origam-border__width---2);
5527
+ /* Tabs — #596. Each value is exactly the literal (or token reference) the
5528
+ component SCSS already fell back to, so nothing moves on screen: the
5529
+ variant (--default / --pills / --underline) and item-state channels were
5530
+ simply never declared, so every theme edit to them was a no-op.
5531
+ --item--disabled---color and --item--hover---background-color keep their
5532
+ legacy hardcoded rgba(0, 0, 0, …) — that is what the DS renders today in
5533
+ BOTH themes, and swapping them for a semantic token would move the dark
5534
+ rendering, which is a design decision and not a token-wiring one.
5535
+ Declaring them here is what finally lets a theme fix that. */
5536
+ --origam-tabs--default---border-block-end-width: var(--origam-border__width---thin);
5537
+ --origam-tabs--default---border-block-end-color: var(--origam-color__border---subtle);
5538
+ --origam-tabs--underline---border-block-end-width: var(--origam-border__width---thin);
5539
+ --origam-tabs--underline---border-block-end-color: var(--origam-color__border---subtle);
5540
+ --origam-tabs--pills---background-color: rgba(0, 0, 0, 0);
5541
+ --origam-tabs--pills---gap: var(--origam-space---2);
5542
+ --origam-tabs--pills---padding: var(--origam-space---1);
5543
+ --origam-tabs__item--hover---color: currentColor;
5544
+ --origam-tabs__item--hover---background-color: rgba(0, 0, 0, 0.04);
5545
+ --origam-tabs__item--active---color: currentColor;
5546
+ --origam-tabs__item--active---background-color: rgba(0, 0, 0, 0);
5547
+ --origam-tabs__item--active---font-weight: var(--origam-font__weight---semibold);
5548
+ --origam-tabs__item--disabled---color: rgba(0, 0, 0, 0.38);
5549
+ --origam-tabs__item--disabled---background-color: rgba(0, 0, 0, 0);
5550
+ --origam-tabs__item--focus---outline-color: currentColor;
5551
+ --origam-tabs__item--pills--active---background-color: var(--origam-color__action--primary---bg);
5552
+ --origam-tabs__item--pills--active---color: var(--origam-color__action--primary---fg);
5465
5553
  --origam-tab-panels__panel---padding-block: var(--origam-space---4);
5466
5554
  --origam-tab-panels__panel---padding-inline: var(--origam-space---0);
5467
5555
  --origam-tabs__panel---transition-duration: var(--origam-motion__duration---fast);
@@ -832,6 +832,18 @@
832
832
  --origam-toolbar__append---flex-basis: auto;
833
833
  --origam-toolbar__append---margin-inline-start: auto;
834
834
  --origam-toolbar__append---margin-inline-end: var(--origam-space---2);
835
+ /* Toolbar + AppBar — #596. Same rule: every value is the literal the SCSS
836
+ already fell back to, so nothing moves on screen.
837
+ --origam-toolbar---btn-background-color-{hover,active},
838
+ --origam-appbar---backdrop-filter and --origam-layout---position-{left,right}
839
+ stay UNDECLARED on purpose — see the comments at their read sites in
840
+ OrigamToolbar.vue. */
841
+ --origam-toolbar---padding-inline: var(--origam-space---4);
842
+ --origam-toolbar---btn-background-color: rgba(0, 0, 0, 0);
843
+ --origam-toolbar---btn-color: currentColor;
844
+ --origam-toolbar---btn-border-radius: var(--origam-radius---md);
845
+ --origam-toolbar__wrapper---gap: var(--origam-space---3);
846
+ --origam-toolbar__title---color: currentColor;
835
847
  --origam-app---background-color: var(--origam-color__surface---default);
836
848
  --origam-app---color: var(--origam-color__text---primary);
837
849
  --origam-app---min-height: 100vh;
@@ -1555,6 +1567,12 @@
1555
1567
  --origam-pagination---input-width: var(--origam-space---10);
1556
1568
  --origam-pagination---input-padding-inline: var(--origam-space---2);
1557
1569
  --origam-pagination---label-gap: var(--origam-space---2);
1570
+ /* Pagination — #596. rgba(0, 0, 0, 0) is the computed equivalent of the
1571
+ `transparent` literal the SCSS already fell back to for the active item's
1572
+ border, so nothing moves on screen. The three other --item--is-active
1573
+ channels and --origam-pagination---color-hover stay UNDECLARED on purpose
1574
+ — see the comments at their read sites in OrigamPagination.vue. */
1575
+ --origam-pagination__item--is-active---border-color: rgba(0, 0, 0, 0);
1558
1576
  --origam-table---background-color: var(--origam-color__surface---default);
1559
1577
  --origam-table---color: var(--origam-color__text---primary);
1560
1578
  --origam-table---font-size: var(--origam-font__size---md);
@@ -2461,6 +2479,32 @@
2461
2479
  --origam-tabs__item---transition-easing: var(--origam-motion__easing---standard);
2462
2480
  --origam-tabs__indicator---color: var(--origam-color__action--primary---bg);
2463
2481
  --origam-tabs__indicator---height: var(--origam-border__width---2);
2482
+ /* Tabs — #596. Each value is exactly the literal (or token reference) the
2483
+ component SCSS already fell back to, so nothing moves on screen: the
2484
+ variant (--default / --pills / --underline) and item-state channels were
2485
+ simply never declared, so every theme edit to them was a no-op.
2486
+ --item--disabled---color and --item--hover---background-color keep their
2487
+ legacy hardcoded rgba(0, 0, 0, …) — that is what the DS renders today in
2488
+ BOTH themes, and swapping them for a semantic token would move the dark
2489
+ rendering, which is a design decision and not a token-wiring one.
2490
+ Declaring them here is what finally lets a theme fix that. */
2491
+ --origam-tabs--default---border-block-end-width: var(--origam-border__width---thin);
2492
+ --origam-tabs--default---border-block-end-color: var(--origam-color__border---subtle);
2493
+ --origam-tabs--underline---border-block-end-width: var(--origam-border__width---thin);
2494
+ --origam-tabs--underline---border-block-end-color: var(--origam-color__border---subtle);
2495
+ --origam-tabs--pills---background-color: rgba(0, 0, 0, 0);
2496
+ --origam-tabs--pills---gap: var(--origam-space---2);
2497
+ --origam-tabs--pills---padding: var(--origam-space---1);
2498
+ --origam-tabs__item--hover---color: currentColor;
2499
+ --origam-tabs__item--hover---background-color: rgba(0, 0, 0, 0.04);
2500
+ --origam-tabs__item--active---color: currentColor;
2501
+ --origam-tabs__item--active---background-color: rgba(0, 0, 0, 0);
2502
+ --origam-tabs__item--active---font-weight: var(--origam-font__weight---semibold);
2503
+ --origam-tabs__item--disabled---color: rgba(0, 0, 0, 0.38);
2504
+ --origam-tabs__item--disabled---background-color: rgba(0, 0, 0, 0);
2505
+ --origam-tabs__item--focus---outline-color: currentColor;
2506
+ --origam-tabs__item--pills--active---background-color: var(--origam-color__action--primary---bg);
2507
+ --origam-tabs__item--pills--active---color: var(--origam-color__action--primary---fg);
2464
2508
  --origam-tab-panels__panel---padding-block: var(--origam-space---4);
2465
2509
  --origam-tab-panels__panel---padding-inline: var(--origam-space---0);
2466
2510
  --origam-tabs__panel---transition-duration: var(--origam-motion__duration---fast);
@@ -930,6 +930,18 @@
930
930
  --origam-toolbar__append---flex-basis: auto;
931
931
  --origam-toolbar__append---margin-inline-start: auto;
932
932
  --origam-toolbar__append---margin-inline-end: var(--origam-space---2);
933
+ /* Toolbar + AppBar — #596. Same rule: every value is the literal the SCSS
934
+ already fell back to, so nothing moves on screen.
935
+ --origam-toolbar---btn-background-color-{hover,active},
936
+ --origam-appbar---backdrop-filter and --origam-layout---position-{left,right}
937
+ stay UNDECLARED on purpose — see the comments at their read sites in
938
+ OrigamToolbar.vue. */
939
+ --origam-toolbar---padding-inline: var(--origam-space---4);
940
+ --origam-toolbar---btn-background-color: rgba(0, 0, 0, 0);
941
+ --origam-toolbar---btn-color: currentColor;
942
+ --origam-toolbar---btn-border-radius: var(--origam-radius---md);
943
+ --origam-toolbar__wrapper---gap: var(--origam-space---3);
944
+ --origam-toolbar__title---color: currentColor;
933
945
  --origam-app---background-color: var(--origam-color__surface---default);
934
946
  --origam-app---color: var(--origam-color__text---primary);
935
947
  --origam-app---min-height: 100vh;
@@ -1653,6 +1665,12 @@
1653
1665
  --origam-pagination---input-width: var(--origam-space---10);
1654
1666
  --origam-pagination---input-padding-inline: var(--origam-space---2);
1655
1667
  --origam-pagination---label-gap: var(--origam-space---2);
1668
+ /* Pagination — #596. rgba(0, 0, 0, 0) is the computed equivalent of the
1669
+ `transparent` literal the SCSS already fell back to for the active item's
1670
+ border, so nothing moves on screen. The three other --item--is-active
1671
+ channels and --origam-pagination---color-hover stay UNDECLARED on purpose
1672
+ — see the comments at their read sites in OrigamPagination.vue. */
1673
+ --origam-pagination__item--is-active---border-color: rgba(0, 0, 0, 0);
1656
1674
  --origam-table---background-color: var(--origam-color__surface---default);
1657
1675
  --origam-table---color: var(--origam-color__text---primary);
1658
1676
  --origam-table---font-size: var(--origam-font__size---md);
@@ -2545,6 +2563,32 @@
2545
2563
  --origam-tabs__item---transition-easing: var(--origam-motion__easing---standard);
2546
2564
  --origam-tabs__indicator---color: var(--origam-color__action--primary---bg);
2547
2565
  --origam-tabs__indicator---height: var(--origam-border__width---2);
2566
+ /* Tabs — #596. Each value is exactly the literal (or token reference) the
2567
+ component SCSS already fell back to, so nothing moves on screen: the
2568
+ variant (--default / --pills / --underline) and item-state channels were
2569
+ simply never declared, so every theme edit to them was a no-op.
2570
+ --item--disabled---color and --item--hover---background-color keep their
2571
+ legacy hardcoded rgba(0, 0, 0, …) — that is what the DS renders today in
2572
+ BOTH themes, and swapping them for a semantic token would move the dark
2573
+ rendering, which is a design decision and not a token-wiring one.
2574
+ Declaring them here is what finally lets a theme fix that. */
2575
+ --origam-tabs--default---border-block-end-width: var(--origam-border__width---thin);
2576
+ --origam-tabs--default---border-block-end-color: var(--origam-color__border---subtle);
2577
+ --origam-tabs--underline---border-block-end-width: var(--origam-border__width---thin);
2578
+ --origam-tabs--underline---border-block-end-color: var(--origam-color__border---subtle);
2579
+ --origam-tabs--pills---background-color: rgba(0, 0, 0, 0);
2580
+ --origam-tabs--pills---gap: var(--origam-space---2);
2581
+ --origam-tabs--pills---padding: var(--origam-space---1);
2582
+ --origam-tabs__item--hover---color: currentColor;
2583
+ --origam-tabs__item--hover---background-color: rgba(0, 0, 0, 0.04);
2584
+ --origam-tabs__item--active---color: currentColor;
2585
+ --origam-tabs__item--active---background-color: rgba(0, 0, 0, 0);
2586
+ --origam-tabs__item--active---font-weight: var(--origam-font__weight---semibold);
2587
+ --origam-tabs__item--disabled---color: rgba(0, 0, 0, 0.38);
2588
+ --origam-tabs__item--disabled---background-color: rgba(0, 0, 0, 0);
2589
+ --origam-tabs__item--focus---outline-color: currentColor;
2590
+ --origam-tabs__item--pills--active---background-color: var(--origam-color__action--primary---bg);
2591
+ --origam-tabs__item--pills--active---color: var(--origam-color__action--primary---fg);
2548
2592
  --origam-tab-panels__panel---padding-block: var(--origam-space---4);
2549
2593
  --origam-tab-panels__panel---padding-inline: var(--origam-space---0);
2550
2594
  --origam-tabs__panel---transition-duration: var(--origam-motion__duration---fast);
@@ -3848,6 +3892,18 @@
3848
3892
  --origam-toolbar__append---flex-basis: auto;
3849
3893
  --origam-toolbar__append---margin-inline-start: auto;
3850
3894
  --origam-toolbar__append---margin-inline-end: var(--origam-space---2);
3895
+ /* Toolbar + AppBar — #596. Same rule: every value is the literal the SCSS
3896
+ already fell back to, so nothing moves on screen.
3897
+ --origam-toolbar---btn-background-color-{hover,active},
3898
+ --origam-appbar---backdrop-filter and --origam-layout---position-{left,right}
3899
+ stay UNDECLARED on purpose — see the comments at their read sites in
3900
+ OrigamToolbar.vue. */
3901
+ --origam-toolbar---padding-inline: var(--origam-space---4);
3902
+ --origam-toolbar---btn-background-color: rgba(0, 0, 0, 0);
3903
+ --origam-toolbar---btn-color: currentColor;
3904
+ --origam-toolbar---btn-border-radius: var(--origam-radius---md);
3905
+ --origam-toolbar__wrapper---gap: var(--origam-space---3);
3906
+ --origam-toolbar__title---color: currentColor;
3851
3907
  --origam-app---background-color: var(--origam-color__surface---default);
3852
3908
  --origam-app---color: var(--origam-color__text---primary);
3853
3909
  --origam-app---min-height: 100vh;
@@ -4571,6 +4627,12 @@
4571
4627
  --origam-pagination---input-width: var(--origam-space---10);
4572
4628
  --origam-pagination---input-padding-inline: var(--origam-space---2);
4573
4629
  --origam-pagination---label-gap: var(--origam-space---2);
4630
+ /* Pagination — #596. rgba(0, 0, 0, 0) is the computed equivalent of the
4631
+ `transparent` literal the SCSS already fell back to for the active item's
4632
+ border, so nothing moves on screen. The three other --item--is-active
4633
+ channels and --origam-pagination---color-hover stay UNDECLARED on purpose
4634
+ — see the comments at their read sites in OrigamPagination.vue. */
4635
+ --origam-pagination__item--is-active---border-color: rgba(0, 0, 0, 0);
4574
4636
  --origam-table---background-color: var(--origam-color__surface---default);
4575
4637
  --origam-table---color: var(--origam-color__text---primary);
4576
4638
  --origam-table---font-size: var(--origam-font__size---md);
@@ -5462,6 +5524,32 @@
5462
5524
  --origam-tabs__item---transition-easing: var(--origam-motion__easing---standard);
5463
5525
  --origam-tabs__indicator---color: var(--origam-color__action--primary---bg);
5464
5526
  --origam-tabs__indicator---height: var(--origam-border__width---2);
5527
+ /* Tabs — #596. Each value is exactly the literal (or token reference) the
5528
+ component SCSS already fell back to, so nothing moves on screen: the
5529
+ variant (--default / --pills / --underline) and item-state channels were
5530
+ simply never declared, so every theme edit to them was a no-op.
5531
+ --item--disabled---color and --item--hover---background-color keep their
5532
+ legacy hardcoded rgba(0, 0, 0, …) — that is what the DS renders today in
5533
+ BOTH themes, and swapping them for a semantic token would move the dark
5534
+ rendering, which is a design decision and not a token-wiring one.
5535
+ Declaring them here is what finally lets a theme fix that. */
5536
+ --origam-tabs--default---border-block-end-width: var(--origam-border__width---thin);
5537
+ --origam-tabs--default---border-block-end-color: var(--origam-color__border---subtle);
5538
+ --origam-tabs--underline---border-block-end-width: var(--origam-border__width---thin);
5539
+ --origam-tabs--underline---border-block-end-color: var(--origam-color__border---subtle);
5540
+ --origam-tabs--pills---background-color: rgba(0, 0, 0, 0);
5541
+ --origam-tabs--pills---gap: var(--origam-space---2);
5542
+ --origam-tabs--pills---padding: var(--origam-space---1);
5543
+ --origam-tabs__item--hover---color: currentColor;
5544
+ --origam-tabs__item--hover---background-color: rgba(0, 0, 0, 0.04);
5545
+ --origam-tabs__item--active---color: currentColor;
5546
+ --origam-tabs__item--active---background-color: rgba(0, 0, 0, 0);
5547
+ --origam-tabs__item--active---font-weight: var(--origam-font__weight---semibold);
5548
+ --origam-tabs__item--disabled---color: rgba(0, 0, 0, 0.38);
5549
+ --origam-tabs__item--disabled---background-color: rgba(0, 0, 0, 0);
5550
+ --origam-tabs__item--focus---outline-color: currentColor;
5551
+ --origam-tabs__item--pills--active---background-color: var(--origam-color__action--primary---bg);
5552
+ --origam-tabs__item--pills--active---color: var(--origam-color__action--primary---fg);
5465
5553
  --origam-tab-panels__panel---padding-block: var(--origam-space---4);
5466
5554
  --origam-tab-panels__panel---padding-inline: var(--origam-space---0);
5467
5555
  --origam-tabs__panel---transition-duration: var(--origam-motion__duration---fast);
@@ -832,6 +832,18 @@
832
832
  --origam-toolbar__append---flex-basis: auto;
833
833
  --origam-toolbar__append---margin-inline-start: auto;
834
834
  --origam-toolbar__append---margin-inline-end: var(--origam-space---2);
835
+ /* Toolbar + AppBar — #596. Same rule: every value is the literal the SCSS
836
+ already fell back to, so nothing moves on screen.
837
+ --origam-toolbar---btn-background-color-{hover,active},
838
+ --origam-appbar---backdrop-filter and --origam-layout---position-{left,right}
839
+ stay UNDECLARED on purpose — see the comments at their read sites in
840
+ OrigamToolbar.vue. */
841
+ --origam-toolbar---padding-inline: var(--origam-space---4);
842
+ --origam-toolbar---btn-background-color: rgba(0, 0, 0, 0);
843
+ --origam-toolbar---btn-color: currentColor;
844
+ --origam-toolbar---btn-border-radius: var(--origam-radius---md);
845
+ --origam-toolbar__wrapper---gap: var(--origam-space---3);
846
+ --origam-toolbar__title---color: currentColor;
835
847
  --origam-app---background-color: var(--origam-color__surface---default);
836
848
  --origam-app---color: var(--origam-color__text---primary);
837
849
  --origam-app---min-height: 100vh;
@@ -1555,6 +1567,12 @@
1555
1567
  --origam-pagination---input-width: var(--origam-space---10);
1556
1568
  --origam-pagination---input-padding-inline: var(--origam-space---2);
1557
1569
  --origam-pagination---label-gap: var(--origam-space---2);
1570
+ /* Pagination — #596. rgba(0, 0, 0, 0) is the computed equivalent of the
1571
+ `transparent` literal the SCSS already fell back to for the active item's
1572
+ border, so nothing moves on screen. The three other --item--is-active
1573
+ channels and --origam-pagination---color-hover stay UNDECLARED on purpose
1574
+ — see the comments at their read sites in OrigamPagination.vue. */
1575
+ --origam-pagination__item--is-active---border-color: rgba(0, 0, 0, 0);
1558
1576
  --origam-table---background-color: var(--origam-color__surface---default);
1559
1577
  --origam-table---color: var(--origam-color__text---primary);
1560
1578
  --origam-table---font-size: var(--origam-font__size---md);
@@ -2461,6 +2479,32 @@
2461
2479
  --origam-tabs__item---transition-easing: var(--origam-motion__easing---standard);
2462
2480
  --origam-tabs__indicator---color: var(--origam-color__action--primary---bg);
2463
2481
  --origam-tabs__indicator---height: var(--origam-border__width---2);
2482
+ /* Tabs — #596. Each value is exactly the literal (or token reference) the
2483
+ component SCSS already fell back to, so nothing moves on screen: the
2484
+ variant (--default / --pills / --underline) and item-state channels were
2485
+ simply never declared, so every theme edit to them was a no-op.
2486
+ --item--disabled---color and --item--hover---background-color keep their
2487
+ legacy hardcoded rgba(0, 0, 0, …) — that is what the DS renders today in
2488
+ BOTH themes, and swapping them for a semantic token would move the dark
2489
+ rendering, which is a design decision and not a token-wiring one.
2490
+ Declaring them here is what finally lets a theme fix that. */
2491
+ --origam-tabs--default---border-block-end-width: var(--origam-border__width---thin);
2492
+ --origam-tabs--default---border-block-end-color: var(--origam-color__border---subtle);
2493
+ --origam-tabs--underline---border-block-end-width: var(--origam-border__width---thin);
2494
+ --origam-tabs--underline---border-block-end-color: var(--origam-color__border---subtle);
2495
+ --origam-tabs--pills---background-color: rgba(0, 0, 0, 0);
2496
+ --origam-tabs--pills---gap: var(--origam-space---2);
2497
+ --origam-tabs--pills---padding: var(--origam-space---1);
2498
+ --origam-tabs__item--hover---color: currentColor;
2499
+ --origam-tabs__item--hover---background-color: rgba(0, 0, 0, 0.04);
2500
+ --origam-tabs__item--active---color: currentColor;
2501
+ --origam-tabs__item--active---background-color: rgba(0, 0, 0, 0);
2502
+ --origam-tabs__item--active---font-weight: var(--origam-font__weight---semibold);
2503
+ --origam-tabs__item--disabled---color: rgba(0, 0, 0, 0.38);
2504
+ --origam-tabs__item--disabled---background-color: rgba(0, 0, 0, 0);
2505
+ --origam-tabs__item--focus---outline-color: currentColor;
2506
+ --origam-tabs__item--pills--active---background-color: var(--origam-color__action--primary---bg);
2507
+ --origam-tabs__item--pills--active---color: var(--origam-color__action--primary---fg);
2464
2508
  --origam-tab-panels__panel---padding-block: var(--origam-space---4);
2465
2509
  --origam-tab-panels__panel---padding-inline: var(--origam-space---0);
2466
2510
  --origam-tabs__panel---transition-duration: var(--origam-motion__duration---fast);
@@ -629,12 +629,25 @@ defineExpose({
629
629
  }
630
630
 
631
631
  &--colored {
632
+ // ⛔ #596 — these two READ the `--primary` state tokens, not a
633
+ // `-colored` suffix. The sheets have always declared
634
+ // `--origam-pagination--primary---{background-color,color}` with
635
+ // exactly the values below as their value, while this block read
636
+ // `--origam-pagination---{background-color,color}-colored` — two
637
+ // grammars whose names never coincide, so the declaration was
638
+ // dormant and the fallback did all the work (the #550 defect
639
+ // shape). Renaming the READ side rather than duplicating the
640
+ // declaration keeps ONE grammar — `--{state}---{property}` — and
641
+ // matches `--origam-pagination--primary---box-shadow` three lines
642
+ // below, which this file already reads correctly. Rendering is
643
+ // unchanged: declared value == the fallback it replaces, in light
644
+ // and in dark.
632
645
  --bg-base: var(
633
- --origam-pagination---background-color-colored,
646
+ --origam-pagination--primary---background-color,
634
647
  var(--origam-color__action--primary---bg)
635
648
  );
636
649
  --fg-base: var(
637
- --origam-pagination---color-colored,
650
+ --origam-pagination--primary---color,
638
651
  var(--origam-color__action--primary---fg)
639
652
  );
640
653
 
@@ -651,6 +664,20 @@ defineExpose({
651
664
 
652
665
  // Hover state — derived: 20 % darker than --bg-base.
653
666
  // Consumer can override via --origam-pagination---background-color-hover.
667
+ //
668
+ // ⛔ #596 — `--origam-pagination---color-hover` STAYS UNDECLARED in the
669
+ // token sheets, deliberately. Its fallback is `var(--fg-base)`, and
670
+ // `--fg-base` is synthesised PER INSTANCE on `.origam-pagination`
671
+ // itself (line ~800, and repointed by `&--colored`). A custom
672
+ // property's computed value is its specified value with `var()`
673
+ // ALREADY substituted ON THE DECLARING ELEMENT — so a `:root`
674
+ // declaration of `var(--fg-base)` would be substituted where
675
+ // `--fg-base` does not exist, become guaranteed-invalid, and every
676
+ // read would fall straight back to the inline fallback again. The
677
+ // rendering would be byte-identical and the guard would go green on a
678
+ // channel that does nothing: a lie, not a fix. It therefore stays in
679
+ // `baseline/token-var-channels.json` as a known false positive — the
680
+ // guard compares NAMES, not fallback chains.
654
681
  :deep(.origam-btn:hover:not(.origam-btn--active)) {
655
682
  --origam-btn---background-color: var(
656
683
  --origam-pagination---background-color-hover,
@@ -683,6 +710,41 @@ defineExpose({
683
710
 
684
711
  // Active state — derived: 30 % darker than --bg-base.
685
712
  // Consumer can override via the matching `is-active` vars.
713
+ //
714
+ // ⛔ #596 — of the four `--item--is-active---*` channels read below,
715
+ // only `---border-color` is declared in the token sheets (its fallback
716
+ // is the plain literal `transparent`). The other three STAY UNDECLARED
717
+ // on purpose, each for a measured reason:
718
+ //
719
+ // • `---color` falls back to `var(--fg-base)` — synthesised per
720
+ // instance, so a `:root` declaration is guaranteed-invalid and
721
+ // inert (same mechanism as the hover block above). Worse, the
722
+ // sheets carry a DORMANT near-twin under the other grammar,
723
+ // `--origam-pagination__item---active-color:
724
+ // var(--origam-color__action--primary---fg)` = WHITE. "Renaming"
725
+ // that declaration onto this read — the #550 reflex — would paint
726
+ // the active page label white on the untinted (transparent /
727
+ // white) surface of uncolored mode: invisible. Exactly the
728
+ // BottomNav trap: a name that reads right and inverts the render.
729
+ //
730
+ // • `---background-color` is read TWICE with two DIFFERENT fallbacks
731
+ // — `color-mix(… var(--bg-base), black 30%)` here, and
732
+ // `var(--origam-color__neutral---200, #e6e6e6)` on the overlay
733
+ // below. No single declaration preserves both, and its dormant
734
+ // twin `--origam-pagination__item---active-background-color` is
735
+ // `action--primary---bg`, which matches neither. The overlay value
736
+ // is the one a user-reported defect was fixed to (652a770e, then
737
+ // cb10d654) — re-pointing it is a design decision, not a wiring
738
+ // one.
739
+ //
740
+ // • `---active-overlay-opacity` is likewise read twice, with `1` on
741
+ // the uncolored branch and `0` on the colored one — opposite
742
+ // defaults by design, so no root value can hold both (its dormant
743
+ // twin says `0.12`, which is neither).
744
+ //
745
+ // All three stay in `baseline/token-var-channels.json`. A theme can
746
+ // still set them: an override lands on an element inside the
747
+ // component, where `--bg-base` / `--fg-base` DO resolve.
686
748
  &__item--is-active :deep(.origam-btn) {
687
749
  --origam-btn---background-color: var(
688
750
  --origam-pagination__item--is-active---background-color,
@@ -229,6 +229,22 @@ defineExpose({
229
229
  // the toolbar's own gutter (16 px) with whatever the layout
230
230
  // reserved on each side (defaults to 0 when no layout item is
231
231
  // present, so the standalone case still gets the 16 px gutter).
232
+ //
233
+ // ⛔ #596 — `--origam-layout---position-{left,right}` STAY UNDECLARED
234
+ // in the token sheets, deliberately. They are not theme tokens: they
235
+ // are runtime MEASUREMENTS, written as INLINE STYLES on the layout
236
+ // root by `useCreateLayout`'s `layoutStyles` (and on main by
237
+ // `mainStyles`) from `mainRect`, via `LAYOUT_POSITION_VARS` — see
238
+ // `composables/Commons/createLayout.composable.ts`. Descendants
239
+ // inherit them from that element, which is how this toolbar receives
240
+ // them. Declaring them at `:root` would publish a themeable channel
241
+ // that the layout's inline style overrides on every real instance —
242
+ // dead by construction — and `LAYOUT_DEFAULT_OFFSET` already is the
243
+ // `0px` written below. The guard flags them only because it compares
244
+ // names against the SHEETS; `OrigamMain` reads the same four vars and
245
+ // is absent from the baseline solely because it declares its own
246
+ // `0px` block locally. They stay in
247
+ // `baseline/token-var-channels.json` as known false positives.
232
248
  padding-inline-start: calc(
233
249
  var(--origam-toolbar---padding-inline, 16px) +
234
250
  var(--origam-layout---position-left, 0px)
@@ -267,6 +283,28 @@ defineExpose({
267
283
  border-end-start-radius: var(--origam-toolbar---border-end-start-radius, 0);
268
284
 
269
285
  background: var(--origam-toolbar---background);
286
+ // ⛔ #596 — `--origam-appbar---backdrop-filter` STAYS UNDECLARED in the
287
+ // token sheets, and that is a NAMING decision left open on purpose,
288
+ // not an oversight. Measured: the DS's canonical AppBar family is
289
+ // spelt with a hyphen — `--origam-app-bar---*`, 11 tokens declared in
290
+ // all four sheets and listed in `TTokenName`, every one of them
291
+ // DORMANT because `OrigamAppBar.vue` contains no `var(--origam-…)` at
292
+ // all and delegates its whole surface to this component. This read
293
+ // uses a THIRD spelling, `--origam-appbar---`, which is also the
294
+ // namespace `packages/marketing` adopted locally (7 themes set
295
+ // `--origam-appbar---bg`, read by `marketing/src/layouts/default.vue`;
296
+ // 5 of them additionally set `--origam-appbar---backdrop-filter`, and
297
+ // it does reach this line today).
298
+ // Declaring `none` here would engrave a SECOND grammar for one
299
+ // component into the public token surface, three lines from the
300
+ // `--origam-app-bar---*` block. The two defensible renames —
301
+ // `--origam-app-bar---backdrop-filter` (matches the authoring intent
302
+ // and marketing's naming) or `--origam-toolbar---backdrop-filter`
303
+ // (matches the component that actually reads it, per the
304
+ // `--origam-{component}---{property}` rule) — both break the 5
305
+ // marketing themes unless they move in the same commit, i.e. a
306
+ // cross-package decision. Left in `baseline/token-var-channels.json`
307
+ // until that call is made.
270
308
  backdrop-filter: var(--origam-appbar---backdrop-filter, none);
271
309
  -webkit-backdrop-filter: var(--origam-appbar---backdrop-filter, none);
272
310
  box-shadow: var(--origam-toolbar---box-shadow);
@@ -471,6 +509,26 @@ defineExpose({
471
509
  //
472
510
  // Shape: rounded SQUARE (8 px), overrides Btn's default
473
511
  // `&--icon { border-radius: 50% }`.
512
+ //
513
+ // ⛔ #596 — the two DERIVED channels,
514
+ // `--origam-toolbar---btn-background-color-{hover,active}`, STAY
515
+ // UNDECLARED in the token sheets. Their fallbacks are
516
+ // `color-mix(in srgb, var(--btn-bg-base), black {20,30}%)`, and
517
+ // `--btn-bg-base` is synthesised PER INSTANCE at the top of this block
518
+ // from `--origam-toolbar---btn-background-color` (which #596 DID
519
+ // declare, its fallback being the plain literal `transparent`). A
520
+ // custom property's computed value is its specified value with `var()`
521
+ // already substituted ON THE DECLARING ELEMENT, so a `:root`
522
+ // declaration of that `color-mix()` would be substituted where
523
+ // `--btn-bg-base` does not exist → guaranteed-invalid → every read
524
+ // falls back to the inline fallback anyway. Identical rendering, green
525
+ // guard, dead channel: a lie, not a fix. Freezing them to a static
526
+ // colour instead would be worse — it would sever the derivation from
527
+ // whatever base colour the consumer sets, which is the whole point of
528
+ // the block above. They stay in `baseline/token-var-channels.json` as
529
+ // known false positives; the guard compares NAMES, not fallback
530
+ // chains. A theme overriding them on the toolbar element itself (or
531
+ // deeper) still works, because `--btn-bg-base` resolves there.
474
532
  :deep(.origam-btn:not(:hover):not(.origam-btn--active)) {
475
533
  --origam-btn---background-color: var(--btn-bg-base);
476
534
  --origam-btn---color: var(--btn-fg-base);