@rcarls/rc-theme-material 0.5.0 → 0.7.0

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +600 -0
  2. package/DESIGN.md +1399 -0
  3. package/README.md +138 -5
  4. package/bridge.css +150 -55
  5. package/components/accordion.css +43 -157
  6. package/components/adaptive-menu.css +123 -0
  7. package/components/app-bar.css +49 -7
  8. package/components/bottom-sheet.css +10 -7
  9. package/components/button.css +215 -2
  10. package/components/card.css +2 -0
  11. package/components/carousel.css +23 -0
  12. package/components/chip-group.css +15 -0
  13. package/components/chip.css +12 -1
  14. package/components/combobox.css +68 -14
  15. package/components/dialog.css +77 -15
  16. package/components/disclosure.css +128 -84
  17. package/components/field.css +566 -0
  18. package/components/icons.css +48 -6
  19. package/components/list-item.css +142 -32
  20. package/components/listbox.css +5 -4
  21. package/components/markdown-editor.css +62 -35
  22. package/components/menu-button.css +105 -1
  23. package/components/menu.css +32 -16
  24. package/components/menubar.css +4 -1
  25. package/components/modes.css +36 -17
  26. package/components/navigation-bar.css +3 -5
  27. package/components/navigation-rail.css +5 -7
  28. package/components/popover.css +50 -0
  29. package/components/progress.css +15 -0
  30. package/components/range-slider.css +8 -3
  31. package/components/scroller.css +7 -0
  32. package/components/search-bar.css +12 -2
  33. package/components/segmented-button.css +2 -28
  34. package/components/select.css +106 -14
  35. package/components/splitter.css +4 -1
  36. package/components/switch.css +9 -1
  37. package/components/textarea.css +13 -3
  38. package/components/toolbar.css +2 -1
  39. package/components/tooltip.css +12 -0
  40. package/components/transfer-list.css +5 -1
  41. package/components/virtual-canvas.css +4 -1
  42. package/components/virtual-scroller.css +7 -0
  43. package/components.css +11 -1
  44. package/constraints/material.json +99 -0
  45. package/css-components/button.css +66 -0
  46. package/css-components/card.css +14 -0
  47. package/css-components/chip-group.css +9 -0
  48. package/css-components/chip.css +80 -0
  49. package/css-components/disclosure.css +25 -0
  50. package/css-components/list.css +34 -0
  51. package/css-components/select.css +20 -0
  52. package/css-components/textarea.css +22 -0
  53. package/css-components.css +31 -0
  54. package/defaults.css +329 -14
  55. package/native.css +258 -0
  56. package/package.json +21 -2
  57. package/state-layer.css +5 -1
package/defaults.css CHANGED
@@ -1,4 +1,5 @@
1
- @layer rc-theme-material.defaults, rc-theme-material.bridge, rc-theme-material.components;
1
+ @layer rc-base, rc-theme-material.defaults, rc-theme-material.bridge, rc-theme-material.native, rc-theme-material.components, rc-theme-material.css-components,
2
+ rc-theme-material.overrides;
2
3
 
3
4
  @layer rc-theme-material.defaults {
4
5
  /*
@@ -149,10 +150,22 @@
149
150
  --md-ref-palette-neutral-variant100: #ffffffff;
150
151
  /* Neutral 0 */
151
152
  --md-ref-palette-neutral0: #000000ff;
153
+ /* Neutral 4 */
154
+ --md-ref-palette-neutral4: #0f0e11ff;
155
+ /* Neutral 6 */
156
+ --md-ref-palette-neutral6: #141317ff;
152
157
  /* Neutral 10 */
153
158
  --md-ref-palette-neutral10: #1c1b1fff;
159
+ /* Neutral 12 */
160
+ --md-ref-palette-neutral12: #211f23ff;
161
+ /* Neutral 17 */
162
+ --md-ref-palette-neutral17: #2b292eff;
154
163
  /* Neutral 20 */
155
164
  --md-ref-palette-neutral20: #313033ff;
165
+ /* Neutral 22 */
166
+ --md-ref-palette-neutral22: #363438ff;
167
+ /* Neutral 24 */
168
+ --md-ref-palette-neutral24: #3b383dff;
156
169
  /* Neutral 30 */
157
170
  --md-ref-palette-neutral30: #484649ff;
158
171
  /* Neutral 40 */
@@ -165,10 +178,20 @@
165
178
  --md-ref-palette-neutral70: #aeaaaeff;
166
179
  /* Neutral 80 */
167
180
  --md-ref-palette-neutral80: #c9c5caff;
181
+ /* Neutral 87 */
182
+ --md-ref-palette-neutral87: #ded8deff;
168
183
  /* Neutral 90 */
169
184
  --md-ref-palette-neutral90: #e6e1e5ff;
185
+ /* Neutral 92 */
186
+ --md-ref-palette-neutral92: #ece6ecff;
187
+ /* Neutral 94 */
188
+ --md-ref-palette-neutral94: #f2ecf2ff;
170
189
  /* Neutral 95 */
171
190
  --md-ref-palette-neutral95: #f4eff4ff;
191
+ /* Neutral 96 */
192
+ --md-ref-palette-neutral96: #f8f2f8ff;
193
+ /* Neutral 98 */
194
+ --md-ref-palette-neutral98: #fdf8fdff;
172
195
  /* Neutral 99 */
173
196
  --md-ref-palette-neutral99: #fffbfeff;
174
197
  /* Neutral 100 */
@@ -496,9 +519,9 @@
496
519
  /* Display Large font name */
497
520
  --md-sys-typescale-display-large-font: var(--md-ref-typeface-brand);
498
521
  /* Plain typeface */
499
- --md-ref-typeface-plain: Roboto;
522
+ --md-ref-typeface-plain: Roboto, system-ui, sans-serif;
500
523
  /* Brand typeface */
501
- --md-ref-typeface-brand: Roboto;
524
+ --md-ref-typeface-brand: Roboto, system-ui, sans-serif;
502
525
  /* Bold weight */
503
526
  --md-ref-typeface-weight-bold: 700;
504
527
  /* Medium weight */
@@ -645,6 +668,77 @@
645
668
  /* Motion path */
646
669
  --md-sys-motion-path-standard-path: 1;
647
670
 
671
+ /*
672
+ * Repo-authored composites, not vendored. The tokens above are the raw
673
+ * control points and millisecond primitives material-tokens ships;
674
+ * nothing composes them into a usable `cubic-bezier()` or names the
675
+ * duration bands the Material 3 motion spec actually refers to, so any
676
+ * component or bridge rule reaching for one directly resolved to
677
+ * nothing. Each alias below is assembled from those primitives; see
678
+ * defaults.test.ts for the full set this asserts, so a future re-vendor
679
+ * that drops or renames a primitive fails a test instead of silently
680
+ * breaking every alias that composes it.
681
+ */
682
+ --md-sys-motion-easing-standard: cubic-bezier(
683
+ var(--md-sys-motion-easing-standard-x0),
684
+ var(--md-sys-motion-easing-standard-y0),
685
+ var(--md-sys-motion-easing-standard-x1),
686
+ var(--md-sys-motion-easing-standard-y1)
687
+ );
688
+ --md-sys-motion-easing-standard-decelerate: cubic-bezier(
689
+ var(--md-sys-motion-easing-standard-decelerate-x0),
690
+ var(--md-sys-motion-easing-standard-decelerate-y0),
691
+ var(--md-sys-motion-easing-standard-decelerate-x1),
692
+ var(--md-sys-motion-easing-standard-decelerate-y1)
693
+ );
694
+ --md-sys-motion-easing-standard-accelerate: cubic-bezier(
695
+ var(--md-sys-motion-easing-standard-accelerate-x0),
696
+ var(--md-sys-motion-easing-standard-accelerate-y0),
697
+ var(--md-sys-motion-easing-standard-accelerate-x1),
698
+ var(--md-sys-motion-easing-standard-accelerate-y1)
699
+ );
700
+ --md-sys-motion-easing-emphasized: cubic-bezier(
701
+ var(--md-sys-motion-easing-emphasized-x0),
702
+ var(--md-sys-motion-easing-emphasized-y0),
703
+ var(--md-sys-motion-easing-emphasized-x1),
704
+ var(--md-sys-motion-easing-emphasized-y1)
705
+ );
706
+ --md-sys-motion-easing-emphasized-decelerate: cubic-bezier(
707
+ var(--md-sys-motion-easing-emphasized-decelerate-x0),
708
+ var(--md-sys-motion-easing-emphasized-decelerate-y0),
709
+ var(--md-sys-motion-easing-emphasized-decelerate-x1),
710
+ var(--md-sys-motion-easing-emphasized-decelerate-y1)
711
+ );
712
+ --md-sys-motion-easing-emphasized-accelerate: cubic-bezier(
713
+ var(--md-sys-motion-easing-emphasized-accelerate-x0),
714
+ var(--md-sys-motion-easing-emphasized-accelerate-y0),
715
+ var(--md-sys-motion-easing-emphasized-accelerate-x1),
716
+ var(--md-sys-motion-easing-emphasized-accelerate-y1)
717
+ );
718
+ --md-sys-motion-easing-linear: cubic-bezier(
719
+ var(--md-sys-motion-easing-linear-x0),
720
+ var(--md-sys-motion-easing-linear-y0),
721
+ var(--md-sys-motion-easing-linear-x1),
722
+ var(--md-sys-motion-easing-linear-y1)
723
+ );
724
+ /* Duration bands, named per the Material 3 motion spec. */
725
+ --md-sys-motion-duration-short1: var(--md-sys-motion-duration-50);
726
+ --md-sys-motion-duration-short2: var(--md-sys-motion-duration-100);
727
+ --md-sys-motion-duration-short3: var(--md-sys-motion-duration-150);
728
+ --md-sys-motion-duration-short4: var(--md-sys-motion-duration-200);
729
+ --md-sys-motion-duration-medium1: var(--md-sys-motion-duration-250);
730
+ --md-sys-motion-duration-medium2: var(--md-sys-motion-duration-300);
731
+ --md-sys-motion-duration-medium3: var(--md-sys-motion-duration-350);
732
+ --md-sys-motion-duration-medium4: var(--md-sys-motion-duration-400);
733
+ --md-sys-motion-duration-long1: var(--md-sys-motion-duration-450);
734
+ --md-sys-motion-duration-long2: var(--md-sys-motion-duration-500);
735
+ --md-sys-motion-duration-long3: var(--md-sys-motion-duration-550);
736
+ --md-sys-motion-duration-long4: var(--md-sys-motion-duration-600);
737
+ --md-sys-motion-duration-extra-long1: var(--md-sys-motion-duration-700);
738
+ --md-sys-motion-duration-extra-long2: var(--md-sys-motion-duration-800);
739
+ --md-sys-motion-duration-extra-long3: var(--md-sys-motion-duration-900);
740
+ --md-sys-motion-duration-extra-long4: var(--md-sys-motion-duration-1000);
741
+
648
742
  /* State tokens */
649
743
  /* Dragged state layer opacity */
650
744
  --md-sys-state-dragged-state-layer-opacity: 0.1599999964237213;
@@ -654,6 +748,15 @@
654
748
  --md-sys-state-focus-state-layer-opacity: 0.11999999731779099;
655
749
  /* Hover state layer opacity */
656
750
  --md-sys-state-hover-state-layer-opacity: 0.07999999821186066;
751
+ /*
752
+ * Disabled state layer and container opacity were missing from this
753
+ * vendored snapshot even though a dozen component recipes already
754
+ * referenced them with an inline `0.38` fallback; every reference
755
+ * silently used that literal instead of these tokens. 0.38 is the
756
+ * published Material 3 constant for both.
757
+ */
758
+ --md-sys-state-disabled-state-layer-opacity: 0.38;
759
+ --md-sys-state-disabled-container-opacity: 0.38;
657
760
 
658
761
  /* Elevation tokens */
659
762
  /* Surface tint color */
@@ -723,8 +826,18 @@
723
826
  var(--md-ref-palette-tertiary40),
724
827
  var(--md-ref-palette-tertiary80)
725
828
  );
829
+ /* Tertiary fixed — persistent color, same value in both themes */
830
+ --md-sys-color-tertiary-fixed: var(--md-ref-palette-tertiary90);
831
+ /* On tertiary fixed */
832
+ --md-sys-color-on-tertiary-fixed: var(--md-ref-palette-tertiary10);
833
+ /* Tertiary fixed dim */
834
+ --md-sys-color-tertiary-fixed-dim: var(--md-ref-palette-tertiary80);
835
+ /* On tertiary fixed variant */
836
+ --md-sys-color-on-tertiary-fixed-variant: var(--md-ref-palette-tertiary30);
726
837
  /* Shadow */
727
838
  --md-sys-color-shadow: var(--md-ref-palette-neutral0);
839
+ /* Scrim */
840
+ --md-sys-color-scrim: var(--md-ref-palette-neutral0);
728
841
  /* Error */
729
842
  --md-sys-color-error: light-dark(var(--md-ref-palette-error40), var(--md-ref-palette-error80));
730
843
  /* Outline */
@@ -732,6 +845,11 @@
732
845
  var(--md-ref-palette-neutral-variant50),
733
846
  var(--md-ref-palette-neutral-variant60)
734
847
  );
848
+ /* Outline variant */
849
+ --md-sys-color-outline-variant: light-dark(
850
+ var(--md-ref-palette-neutral-variant80),
851
+ var(--md-ref-palette-neutral-variant30)
852
+ );
735
853
  /* On background */
736
854
  --md-sys-color-on-background: light-dark(
737
855
  var(--md-ref-palette-neutral10),
@@ -739,8 +857,8 @@
739
857
  );
740
858
  /* Background */
741
859
  --md-sys-color-background: light-dark(
742
- var(--md-ref-palette-neutral99),
743
- var(--md-ref-palette-neutral10)
860
+ var(--md-ref-palette-neutral98),
861
+ var(--md-ref-palette-neutral6)
744
862
  );
745
863
  /* Inverse on surface */
746
864
  --md-sys-color-inverse-on-surface: light-dark(
@@ -767,35 +885,45 @@
767
885
  var(--md-ref-palette-neutral-variant90),
768
886
  var(--md-ref-palette-neutral-variant30)
769
887
  );
888
+ /* Surface dim */
889
+ --md-sys-color-surface-dim: light-dark(
890
+ var(--md-ref-palette-neutral87),
891
+ var(--md-ref-palette-neutral6)
892
+ );
770
893
  /* Surface */
771
894
  --md-sys-color-surface: light-dark(
772
- var(--md-ref-palette-neutral99),
773
- var(--md-ref-palette-neutral10)
895
+ var(--md-ref-palette-neutral98),
896
+ var(--md-ref-palette-neutral6)
897
+ );
898
+ /* Surface bright */
899
+ --md-sys-color-surface-bright: light-dark(
900
+ var(--md-ref-palette-neutral98),
901
+ var(--md-ref-palette-neutral24)
774
902
  );
775
903
  /* Surface container lowest (near-white / near-black) */
776
904
  --md-sys-color-surface-container-lowest: light-dark(
777
905
  var(--md-ref-palette-neutral100),
778
- var(--md-ref-palette-neutral10)
906
+ var(--md-ref-palette-neutral4)
779
907
  );
780
908
  /* Surface container low */
781
909
  --md-sys-color-surface-container-low: light-dark(
782
- var(--md-ref-palette-neutral99),
910
+ var(--md-ref-palette-neutral96),
783
911
  var(--md-ref-palette-neutral10)
784
912
  );
785
913
  /* Surface container — used for menus, sheets, and elevated surfaces */
786
914
  --md-sys-color-surface-container: light-dark(
787
- var(--md-ref-palette-neutral95),
788
- var(--md-ref-palette-neutral20)
915
+ var(--md-ref-palette-neutral94),
916
+ var(--md-ref-palette-neutral12)
789
917
  );
790
918
  /* Surface container high */
791
919
  --md-sys-color-surface-container-high: light-dark(
792
- var(--md-ref-palette-neutral90),
793
- var(--md-ref-palette-neutral20)
920
+ var(--md-ref-palette-neutral92),
921
+ var(--md-ref-palette-neutral17)
794
922
  );
795
923
  /* Surface container highest — used for text fields and chips */
796
924
  --md-sys-color-surface-container-highest: light-dark(
797
925
  var(--md-ref-palette-neutral90),
798
- var(--md-ref-palette-neutral20)
926
+ var(--md-ref-palette-neutral22)
799
927
  );
800
928
  /* On secondary container */
801
929
  --md-sys-color-on-secondary-container: light-dark(
@@ -817,6 +945,14 @@
817
945
  var(--md-ref-palette-secondary40),
818
946
  var(--md-ref-palette-secondary80)
819
947
  );
948
+ /* Secondary fixed — persistent color, same value in both themes */
949
+ --md-sys-color-secondary-fixed: var(--md-ref-palette-secondary90);
950
+ /* On secondary fixed */
951
+ --md-sys-color-on-secondary-fixed: var(--md-ref-palette-secondary10);
952
+ /* Secondary fixed dim */
953
+ --md-sys-color-secondary-fixed-dim: var(--md-ref-palette-secondary80);
954
+ /* On secondary fixed variant */
955
+ --md-sys-color-on-secondary-fixed-variant: var(--md-ref-palette-secondary30);
820
956
  /* Inverse primary */
821
957
  --md-sys-color-inverse-primary: light-dark(
822
958
  var(--md-ref-palette-primary80),
@@ -842,18 +978,191 @@
842
978
  var(--md-ref-palette-primary40),
843
979
  var(--md-ref-palette-primary80)
844
980
  );
981
+ /* Primary fixed — persistent color, same value in both themes */
982
+ --md-sys-color-primary-fixed: var(--md-ref-palette-primary90);
983
+ /* On primary fixed */
984
+ --md-sys-color-on-primary-fixed: var(--md-ref-palette-primary10);
985
+ /* Primary fixed dim */
986
+ --md-sys-color-primary-fixed-dim: var(--md-ref-palette-primary80);
987
+ /* On primary fixed variant */
988
+ --md-sys-color-on-primary-fixed-variant: var(--md-ref-palette-primary30);
989
+ }
990
+
991
+ /*
992
+ * Forced-colors (Windows High Contrast) coverage for every role defined
993
+ * above. Deliberately collapses to a few tiers rather than one system
994
+ * color per role: forced-colors mode exists to strip semantic hue in
995
+ * favor of the user's chosen palette, so distinguishing e.g. tertiary
996
+ * from error by color here would work against that intent.
997
+ * - True accent (primary and its container/fixed/inverse variants):
998
+ * a Highlight fill with HighlightText content, everywhere.
999
+ * - Secondary emphasis (secondary, tertiary, error, and each one's
1000
+ * container/fixed variants): styled as a plain control instead of
1001
+ * color-coded by family. The "plain" role in each triple (secondary,
1002
+ * tertiary, error) is also the one components use as a fill for
1003
+ * their own filled variant (see rc-button's danger/filled styling),
1004
+ * so it takes the fill/content pairing ButtonText fill with
1005
+ * ButtonFace content; the *-container/*-fixed roles are always
1006
+ * read as a soft background, so they get the inverse pairing:
1007
+ * ButtonFace fill with ButtonText content.
1008
+ * - Surfaces (background/surface and every container/dim/bright
1009
+ * tier, surface-variant): a Canvas fill with CanvasText content,
1010
+ * except surface-container-highest which stays Field (text
1011
+ * fields, chips).
1012
+ * - Borders: ButtonBorder.
1013
+ * Elevation shadows are zeroed throughout, since tonal/shadow elevation
1014
+ * isn't part of the forced-colors palette either.
1015
+ */
1016
+
1017
+ /*
1018
+ * Scoped type scale. An element marked data-rc-type-scale multiplies every
1019
+ * Material type size and line height beneath it by --rc-type-scale
1020
+ * (default 1), for a region such as a hands-busy reading view that needs
1021
+ * larger text than the rest of the page. Tokens set on the theme root are
1022
+ * resolved there, so the scaled values are derived again on the marked
1023
+ * element; bridge.css does the same for the RC text tokens built on them.
1024
+ */
1025
+ /* A marked theme root itself must outrank its own token rule above. */
1026
+ :where(.rc-theme-material [data-rc-type-scale], :host(.rc-theme-material) [data-rc-type-scale]),
1027
+ .rc-theme-material[data-rc-type-scale],
1028
+ :host(.rc-theme-material[data-rc-type-scale]) {
1029
+ --md-sys-typescale-display-large-size: calc(
1030
+ var(--md-sys-typescale-display-large-size-value) * var(--rc-type-scale, 1)
1031
+ );
1032
+ --md-sys-typescale-display-large-line-height: calc(
1033
+ var(--md-sys-typescale-display-large-line-height-value) * var(--rc-type-scale, 1)
1034
+ );
1035
+ --md-sys-typescale-display-medium-size: calc(
1036
+ var(--md-sys-typescale-display-medium-size-value) * var(--rc-type-scale, 1)
1037
+ );
1038
+ --md-sys-typescale-display-medium-line-height: calc(
1039
+ var(--md-sys-typescale-display-medium-line-height-value) * var(--rc-type-scale, 1)
1040
+ );
1041
+ --md-sys-typescale-display-small-size: calc(
1042
+ var(--md-sys-typescale-display-small-size-value) * var(--rc-type-scale, 1)
1043
+ );
1044
+ --md-sys-typescale-display-small-line-height: calc(
1045
+ var(--md-sys-typescale-display-small-line-height-value) * var(--rc-type-scale, 1)
1046
+ );
1047
+ --md-sys-typescale-headline-large-size: calc(
1048
+ var(--md-sys-typescale-headline-large-size-value) * var(--rc-type-scale, 1)
1049
+ );
1050
+ --md-sys-typescale-headline-large-line-height: calc(
1051
+ var(--md-sys-typescale-headline-large-line-height-value) * var(--rc-type-scale, 1)
1052
+ );
1053
+ --md-sys-typescale-headline-medium-size: calc(
1054
+ var(--md-sys-typescale-headline-medium-size-value) * var(--rc-type-scale, 1)
1055
+ );
1056
+ --md-sys-typescale-headline-medium-line-height: calc(
1057
+ var(--md-sys-typescale-headline-medium-line-height-value) * var(--rc-type-scale, 1)
1058
+ );
1059
+ --md-sys-typescale-headline-small-size: calc(
1060
+ var(--md-sys-typescale-headline-small-size-value) * var(--rc-type-scale, 1)
1061
+ );
1062
+ --md-sys-typescale-headline-small-line-height: calc(
1063
+ var(--md-sys-typescale-headline-small-line-height-value) * var(--rc-type-scale, 1)
1064
+ );
1065
+ --md-sys-typescale-title-large-size: calc(
1066
+ var(--md-sys-typescale-title-large-size-value) * var(--rc-type-scale, 1)
1067
+ );
1068
+ --md-sys-typescale-title-large-line-height: calc(
1069
+ var(--md-sys-typescale-title-large-line-height-value) * var(--rc-type-scale, 1)
1070
+ );
1071
+ --md-sys-typescale-title-medium-size: calc(
1072
+ var(--md-sys-typescale-title-medium-size-value) * var(--rc-type-scale, 1)
1073
+ );
1074
+ --md-sys-typescale-title-medium-line-height: calc(
1075
+ var(--md-sys-typescale-title-medium-line-height-value) * var(--rc-type-scale, 1)
1076
+ );
1077
+ --md-sys-typescale-title-small-size: calc(
1078
+ var(--md-sys-typescale-title-small-size-value) * var(--rc-type-scale, 1)
1079
+ );
1080
+ --md-sys-typescale-title-small-line-height: calc(
1081
+ var(--md-sys-typescale-title-small-line-height-value) * var(--rc-type-scale, 1)
1082
+ );
1083
+ --md-sys-typescale-body-large-size: calc(
1084
+ var(--md-sys-typescale-body-large-size-value) * var(--rc-type-scale, 1)
1085
+ );
1086
+ --md-sys-typescale-body-large-line-height: calc(
1087
+ var(--md-sys-typescale-body-large-line-height-value) * var(--rc-type-scale, 1)
1088
+ );
1089
+ --md-sys-typescale-body-medium-size: calc(
1090
+ var(--md-sys-typescale-body-medium-size-value) * var(--rc-type-scale, 1)
1091
+ );
1092
+ --md-sys-typescale-body-medium-line-height: calc(
1093
+ var(--md-sys-typescale-body-medium-line-height-value) * var(--rc-type-scale, 1)
1094
+ );
1095
+ --md-sys-typescale-body-small-size: calc(
1096
+ var(--md-sys-typescale-body-small-size-value) * var(--rc-type-scale, 1)
1097
+ );
1098
+ --md-sys-typescale-body-small-line-height: calc(
1099
+ var(--md-sys-typescale-body-small-line-height-value) * var(--rc-type-scale, 1)
1100
+ );
1101
+ --md-sys-typescale-label-large-size: calc(
1102
+ var(--md-sys-typescale-label-large-size-value) * var(--rc-type-scale, 1)
1103
+ );
1104
+ --md-sys-typescale-label-large-line-height: calc(
1105
+ var(--md-sys-typescale-label-large-line-height-value) * var(--rc-type-scale, 1)
1106
+ );
1107
+ --md-sys-typescale-label-medium-size: calc(
1108
+ var(--md-sys-typescale-label-medium-size-value) * var(--rc-type-scale, 1)
1109
+ );
1110
+ --md-sys-typescale-label-medium-line-height: calc(
1111
+ var(--md-sys-typescale-label-medium-line-height-value) * var(--rc-type-scale, 1)
1112
+ );
1113
+ --md-sys-typescale-label-small-size: calc(
1114
+ var(--md-sys-typescale-label-small-size-value) * var(--rc-type-scale, 1)
1115
+ );
1116
+ --md-sys-typescale-label-small-line-height: calc(
1117
+ var(--md-sys-typescale-label-small-line-height-value) * var(--rc-type-scale, 1)
1118
+ );
845
1119
  }
846
1120
 
847
1121
  @media (forced-colors: active) {
848
1122
  .rc-theme-material,
849
1123
  :host(.rc-theme-material) {
1124
+ /* Accent tier */
850
1125
  --md-sys-color-primary: Highlight;
851
1126
  --md-sys-color-on-primary: HighlightText;
852
1127
  --md-sys-color-primary-container: Highlight;
853
1128
  --md-sys-color-on-primary-container: HighlightText;
1129
+ --md-sys-color-primary-fixed: Highlight;
1130
+ --md-sys-color-primary-fixed-dim: Highlight;
1131
+ --md-sys-color-on-primary-fixed: HighlightText;
1132
+ --md-sys-color-on-primary-fixed-variant: HighlightText;
1133
+ --md-sys-color-inverse-primary: Canvas;
1134
+
1135
+ /* Secondary-emphasis tier: secondary, tertiary, and error all
1136
+ styled as plain controls rather than color-coded */
1137
+ --md-sys-color-secondary: ButtonText;
1138
+ --md-sys-color-on-secondary: ButtonFace;
854
1139
  --md-sys-color-secondary-container: ButtonFace;
855
1140
  --md-sys-color-on-secondary-container: ButtonText;
1141
+ --md-sys-color-secondary-fixed: ButtonFace;
1142
+ --md-sys-color-secondary-fixed-dim: ButtonFace;
1143
+ --md-sys-color-on-secondary-fixed: ButtonText;
1144
+ --md-sys-color-on-secondary-fixed-variant: ButtonText;
1145
+ --md-sys-color-tertiary: ButtonText;
1146
+ --md-sys-color-on-tertiary: ButtonFace;
1147
+ --md-sys-color-tertiary-container: ButtonFace;
1148
+ --md-sys-color-on-tertiary-container: ButtonText;
1149
+ --md-sys-color-tertiary-fixed: ButtonFace;
1150
+ --md-sys-color-tertiary-fixed-dim: ButtonFace;
1151
+ --md-sys-color-on-tertiary-fixed: ButtonText;
1152
+ --md-sys-color-on-tertiary-fixed-variant: ButtonText;
1153
+ --md-sys-color-error: ButtonText;
1154
+ --md-sys-color-on-error: ButtonFace;
1155
+ --md-sys-color-error-container: ButtonFace;
1156
+ --md-sys-color-on-error-container: ButtonText;
1157
+
1158
+ /* Surface tier */
1159
+ --md-sys-color-background: Canvas;
1160
+ --md-sys-color-on-background: CanvasText;
856
1161
  --md-sys-color-surface: Canvas;
1162
+ --md-sys-color-surface-variant: Canvas;
1163
+ --md-sys-color-surface-dim: Canvas;
1164
+ --md-sys-color-surface-bright: Canvas;
1165
+ --md-sys-color-surface-container-lowest: Canvas;
857
1166
  --md-sys-color-surface-container-low: Canvas;
858
1167
  --md-sys-color-surface-container: Canvas;
859
1168
  --md-sys-color-surface-container-high: Canvas;
@@ -862,11 +1171,17 @@
862
1171
  --md-sys-color-on-surface-variant: CanvasText;
863
1172
  --md-sys-color-inverse-surface: CanvasText;
864
1173
  --md-sys-color-inverse-on-surface: Canvas;
1174
+
1175
+ /* Borders */
865
1176
  --md-sys-color-outline: ButtonBorder;
866
1177
  --md-sys-color-outline-variant: ButtonBorder;
1178
+
1179
+ /* Elevation: shadows carry no meaning under forced colors */
867
1180
  --md-sys-elevation-level1: 0px;
868
1181
  --md-sys-elevation-level2: 0px;
869
1182
  --md-sys-elevation-level3: 0px;
1183
+ --md-sys-elevation-level4: 0px;
1184
+ --md-sys-elevation-level5: 0px;
870
1185
  }
871
1186
  }
872
1187
  }