@semanticus/semanticus-css 2.2.0 → 3.0.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 (150) hide show
  1. package/README.md +21 -20
  2. package/dist/semanticus-no-utilities.css +1 -1
  3. package/dist/semanticus-semantics.css +1 -1
  4. package/dist/semanticus-utilities.css +1 -1
  5. package/dist/semanticus.css +2 -2
  6. package/dist/semanticus.palette.amber.css +1 -1
  7. package/dist/semanticus.palette.azure.css +1 -1
  8. package/dist/semanticus.palette.blue.css +1 -1
  9. package/dist/semanticus.palette.cyan.css +1 -1
  10. package/dist/semanticus.palette.fuchsia.css +1 -1
  11. package/dist/semanticus.palette.green.css +1 -1
  12. package/dist/semanticus.palette.grey.css +1 -1
  13. package/dist/semanticus.palette.indigo.css +1 -1
  14. package/dist/semanticus.palette.jade.css +1 -1
  15. package/dist/semanticus.palette.lime.css +1 -1
  16. package/dist/semanticus.palette.orange.css +1 -1
  17. package/dist/semanticus.palette.pink.css +1 -1
  18. package/dist/semanticus.palette.pumpkin.css +1 -1
  19. package/dist/semanticus.palette.purple.css +1 -1
  20. package/dist/semanticus.palette.red.css +1 -1
  21. package/dist/semanticus.palette.sand.css +1 -1
  22. package/dist/semanticus.palette.slate.css +1 -1
  23. package/dist/semanticus.palette.violet.css +1 -1
  24. package/dist/semanticus.palette.yellow.css +1 -1
  25. package/dist/semanticus.palette.zinc.css +1 -1
  26. package/dist/semanticus.size.pico.css +1 -1
  27. package/package.json +1 -1
  28. package/src/components/_card.css +55 -46
  29. package/src/components/_icons.css +2 -2
  30. package/src/components/_pane.css +15 -8
  31. package/src/components/_sidebar.css +6 -6
  32. package/src/components/_variables.css +28 -0
  33. package/src/components/modules.css +2 -0
  34. package/src/index.css +1 -1
  35. package/src/palettes/amber.css +22 -26
  36. package/src/palettes/azure.css +22 -26
  37. package/src/palettes/blue.css +22 -26
  38. package/src/palettes/cyan.css +22 -26
  39. package/src/palettes/fuchsia.css +25 -26
  40. package/src/palettes/green.css +22 -26
  41. package/src/palettes/grey.css +22 -26
  42. package/src/palettes/indigo.css +22 -26
  43. package/src/palettes/jade.css +22 -26
  44. package/src/palettes/lime.css +22 -26
  45. package/src/palettes/orange.css +22 -26
  46. package/src/palettes/pink.css +22 -26
  47. package/src/palettes/pumpkin.css +25 -26
  48. package/src/palettes/purple.css +22 -26
  49. package/src/palettes/red.css +22 -26
  50. package/src/palettes/sand.css +22 -26
  51. package/src/palettes/slate.css +22 -26
  52. package/src/palettes/violet.css +22 -26
  53. package/src/palettes/yellow.css +22 -26
  54. package/src/palettes/zinc.css +22 -26
  55. package/src/semantics/attributes/_aria-busy.css +1 -10
  56. package/src/semantics/attributes/_aria-disabled.css +2 -23
  57. package/src/semantics/attributes/_disabled.css +3 -0
  58. package/src/semantics/attributes/_popover.css +4 -3
  59. package/src/semantics/attributes/_role-group-search.css +135 -0
  60. package/src/semantics/attributes/_role-list.css +23 -0
  61. package/src/semantics/attributes/_role-status-alert.css +28 -22
  62. package/src/semantics/attributes/_role-tooltip.css +11 -8
  63. package/src/semantics/elements/_address.css +2 -2
  64. package/src/semantics/elements/_aside.css +1 -2
  65. package/src/semantics/elements/_blockquote.css +6 -6
  66. package/src/semantics/elements/_body.css +0 -2
  67. package/src/semantics/elements/_buttons.css +100 -0
  68. package/src/semantics/elements/_code.css +18 -8
  69. package/src/semantics/elements/_del.css +1 -1
  70. package/src/semantics/elements/_details.css +147 -162
  71. package/src/semantics/elements/_dialog.css +24 -17
  72. package/src/semantics/elements/_fieldset.css +27 -0
  73. package/src/semantics/elements/_figure.css +1 -1
  74. package/src/semantics/elements/_footer.css +0 -1
  75. package/src/semantics/elements/_header.css +0 -1
  76. package/src/semantics/elements/_headings.css +86 -9
  77. package/src/semantics/elements/_hgroup.css +2 -2
  78. package/src/semantics/elements/_hr.css +2 -2
  79. package/src/semantics/elements/_inputs.css +14 -0
  80. package/src/semantics/elements/_ins.css +1 -1
  81. package/src/semantics/elements/_label.css +4 -0
  82. package/src/semantics/elements/_links.css +39 -27
  83. package/src/semantics/elements/_lists.css +10 -8
  84. package/src/semantics/elements/_mark.css +2 -2
  85. package/src/semantics/elements/_nav.css +31 -7
  86. package/src/semantics/elements/_p.css +2 -2
  87. package/src/semantics/elements/_progress.css +18 -11
  88. package/src/semantics/elements/{_document.css → _root.css} +12 -9
  89. package/src/semantics/elements/_section.css +0 -1
  90. package/src/semantics/elements/_small.css +27 -0
  91. package/src/semantics/elements/_table.css +20 -6
  92. package/src/semantics/elements/inputs/_checkbox-radio.css +30 -0
  93. package/src/semantics/elements/inputs/_checkbox.css +19 -0
  94. package/src/semantics/elements/{_type-color.css → inputs/_color.css} +5 -3
  95. package/src/semantics/elements/inputs/_common.css +87 -0
  96. package/src/semantics/elements/inputs/_date.css +53 -0
  97. package/src/semantics/elements/inputs/_file.css +35 -0
  98. package/src/semantics/elements/inputs/_input.css +47 -0
  99. package/src/semantics/elements/inputs/_radio.css +11 -0
  100. package/src/semantics/elements/inputs/_range.css +69 -0
  101. package/src/semantics/elements/inputs/_search.css +48 -0
  102. package/src/semantics/elements/inputs/_select.css +32 -0
  103. package/src/semantics/elements/inputs/_switch.css +46 -0
  104. package/src/semantics/elements/inputs/_textarea.css +30 -0
  105. package/src/semantics/modules.css +9 -13
  106. package/src/sizes/pico.css +24 -23
  107. package/src/utilities/_grid.css +917 -179
  108. package/src/utilities/_variables.css +21 -14
  109. package/src/utilities/borders/_border-radius.css +9 -9
  110. package/src/utilities/borders/_border-style.css +10 -10
  111. package/src/utilities/colors/_bg-colors.css +22 -38
  112. package/src/utilities/colors/_border-colors.css +20 -26
  113. package/src/utilities/colors/_subtle-colors.css +55 -61
  114. package/src/utilities/colors/_text-bg-colors.css +35 -35
  115. package/src/utilities/colors/_text-colors.css +24 -46
  116. package/src/utilities/effects/_focus-ring.css +14 -11
  117. package/src/utilities/layout/_misc.css +4 -3
  118. package/src/utilities/sizing/_width.css +48 -0
  119. package/src/utilities/spacing/_gap.css +0 -43
  120. package/src/utilities/spacing/_margin.css +0 -1
  121. package/src/utilities/spacing/_padding.css +0 -1
  122. package/src/utilities/typography/_font-sizes.css +6 -6
  123. package/src/variables/_all.css +3 -4
  124. package/src/variables/_theme.css +394 -237
  125. package/src/variants/_intent.css +8 -0
  126. package/src/variants/_variables.css +109 -9
  127. package/src/variants/intent/_common.css +33 -0
  128. package/src/variants/intent/_contrast.css +30 -31
  129. package/src/variants/intent/_danger.css +7 -30
  130. package/src/variants/intent/_info.css +7 -30
  131. package/src/variants/intent/_primary.css +7 -30
  132. package/src/variants/intent/_secondary.css +7 -30
  133. package/src/variants/intent/_success.css +7 -30
  134. package/src/variants/intent/_warning.css +7 -30
  135. package/src/variants/modifiers/_ghost.css +52 -152
  136. package/src/variants/modifiers/_striped.css +6 -5
  137. package/src/variants/modifiers/_subtle.css +55 -113
  138. package/src/variants/modules.css +1 -7
  139. package/src/semantics/attributes/_role-group.css +0 -126
  140. package/src/semantics/attributes/_role-search.css +0 -14
  141. package/src/semantics/elements/_article.css +0 -3
  142. package/src/semantics/elements/_button.css +0 -124
  143. package/src/semantics/elements/_input.css +0 -302
  144. package/src/semantics/elements/_main.css +0 -3
  145. package/src/semantics/elements/_type-checkbox-radio.css +0 -139
  146. package/src/semantics/elements/_type-date.css +0 -37
  147. package/src/semantics/elements/_type-file.css +0 -23
  148. package/src/semantics/elements/_type-range.css +0 -87
  149. package/src/semantics/elements/_type-search.css +0 -30
  150. package/src/variables/_elements.css +0 -195
@@ -0,0 +1,8 @@
1
+ @import "./intent/_common.css";
2
+ @import "./intent/_contrast.css";
3
+ @import "./intent/_danger.css";
4
+ @import "./intent/_primary.css";
5
+ @import "./intent/_secondary.css";
6
+ @import "./intent/_success.css";
7
+ @import "./intent/_warning.css";
8
+ @import "./intent/_info.css";
@@ -1,24 +1,124 @@
1
- :root, :host {
2
- --subtle-shade: light-dark(var(--color-zinc-250), var(--color-slate-750));
1
+ :root,
2
+ :host {
3
+ /* ===== MISSING VARIANT TOKENS ===== */
4
+
5
+ /* --- Contrast --- */
6
+ --contrast-background-color: light-dark(
7
+ var(--_color-slate-900),
8
+ var(--_color-slate-50)
9
+ );
10
+ --contrast-background-color-hover: color-mix(
11
+ in srgb,
12
+ var(--contrast-background-color),
13
+ var(--color-hover-shade) 30%
14
+ );
15
+ --contrast-color: light-dark(var(--_color-slate-900), var(--_color-slate-100));
16
+ --contrast-color-hover: color-mix(
17
+ in srgb,
18
+ var(--contrast-color),
19
+ var(--color-hover-shade) 30%
20
+ );
21
+ --contrast-outline-color: color-mix(
22
+ in srgb,
23
+ var(--contrast-color) 70%,
24
+ light-dark(white, black)
25
+ );
26
+
27
+ /* --- Info --- */
28
+ --_color-azure-450: #018cd4;
29
+ --_color-azure-250: #79c0ff;
30
+ --info-background-color: var(--_color-azure-450);
31
+ --info-background-color-hover: color-mix(
32
+ in srgb,
33
+ var(--info-background-color),
34
+ var(--color-hover-shade) 30%
35
+ );
36
+ --info-color: light-dark(var(--_color-azure-450), var(--_color-azure-250));
37
+ --info-color-hover: color-mix(
38
+ in srgb,
39
+ var(--info-color),
40
+ var(--color-hover-shade) 30%
41
+ );
42
+ --info-outline-color: color-mix(
43
+ in srgb,
44
+ var(--info-color) 70%,
45
+ light-dark(white, black)
46
+ );
47
+
48
+ /* --- Warning --- */
49
+ --_color-amber-350: #c79400;
50
+ --_color-amber-250: #e8ae01;
51
+ --warning-background-color: var(--_color-amber-350);
52
+ --warning-background-color-hover: color-mix(
53
+ in srgb,
54
+ var(--warning-background-color),
55
+ var(--color-hover-shade) 30%
56
+ );
57
+ --warning-color: light-dark(var(--_color-amber-350), var(--_color-amber-250));
58
+ --warning-color-hover: color-mix(
59
+ in srgb,
60
+ var(--warning-color),
61
+ var(--color-hover-shade) 30%
62
+ );
63
+ --warning-outline-color: color-mix(
64
+ in srgb,
65
+ var(--warning-color) 70%,
66
+ light-dark(white, black)
67
+ );
68
+
69
+ /* Subtle colors */
70
+
71
+ /* Private helper to derive subtle color variants from the base colors */
72
+ --_subtle-color-shade: light-dark(
73
+ var(--_color-zinc-250),
74
+ var(--_color-slate-750)
75
+ );
3
76
 
4
77
  /* Primary subtle colors */
5
- --color-primary-subtle-fill: color-mix(in srgb, var(--color-primary-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
78
+ --primary-subtle-background-color: color-mix(
79
+ in srgb,
80
+ var(--primary-background-color),
81
+ var(--_subtle-color-shade) 60%
82
+ );
6
83
 
7
84
  /* Secondary subtle colors */
8
- --color-secondary-subtle-fill: color-mix(in srgb, var(--color-secondary-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
85
+ --secondary-subtle-background-color: light-dark(
86
+ color-mix(in srgb, var(--_color-slate-50), white 25%),
87
+ color-mix(in srgb, var(--_color-slate-50), black 75%)
88
+ );
9
89
 
10
90
  /* Contrast subtle colors */
11
- --color-contrast-subtle-fill: color-mix(in srgb, var(--color-contrast-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
91
+ --contrast-subtle-background-color: color-mix(
92
+ in srgb,
93
+ var(--contrast-background-color),
94
+ var(--_subtle-color-shade) 60%
95
+ );
12
96
 
13
97
  /* Success subtle colors */
14
- --color-success-subtle-fill: color-mix(in srgb, var(--color-success-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
98
+ --success-subtle-background-color: color-mix(
99
+ in srgb,
100
+ var(--success-background-color),
101
+ var(--_subtle-color-shade) 60%
102
+ );
15
103
 
16
104
  /* Info subtle colors */
17
- --color-info-subtle-fill: color-mix(in srgb, var(--color-info-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
105
+ --info-subtle-background-color: color-mix(
106
+ in srgb,
107
+ var(--info-background-color),
108
+ var(--_subtle-color-shade) 60%
109
+ );
18
110
 
19
111
  /* Warning subtle colors */
20
- --color-warning-subtle-fill: color-mix(in srgb, var(--color-warning-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
112
+ --warning-subtle-background-color: color-mix(
113
+ in srgb,
114
+ var(--warning-background-color),
115
+ var(--_subtle-color-shade) 60%
116
+ );
21
117
 
22
118
  /* Danger subtle colors */
23
- --color-danger-subtle-fill: color-mix(in srgb, var(--color-danger-fill), var(--subtle-shade) var(--subtle-opacity, 60%));
119
+ --danger-subtle-background-color: color-mix(
120
+ in srgb,
121
+ var(--danger-background-color),
122
+ var(--_subtle-color-shade) 60%
123
+ );
24
124
  }
@@ -0,0 +1,33 @@
1
+ :is(.primary, .secondary, .contrast, .success, .info, .warning, .danger) {
2
+ /* --- Buttons Individual Styling --- */
3
+ --_buttons-background-color: var(--intent-background-color);
4
+ --_buttons-background-color-hover: var(--intent-background-color-hover);
5
+ --_buttons-outline-color: var(--intent-outline-color);
6
+
7
+ /* --- Alert Individual Styling --- */
8
+ --_alert-color: #fff;
9
+ --_alert-background-color: var(--intent-background-color);
10
+ --_alert-border-color: var(--intent-background-color);
11
+
12
+ /* --- Card Individual Styling --- */
13
+ --_card-color: #fff;
14
+ --_card-background-color: var(--intent-background-color);
15
+ --_card-marginals-background-color: color-mix(
16
+ in srgb,
17
+ light-dark(var(--_color-slate-900), var(--_color-slate-50)),
18
+ transparent 90%
19
+ );
20
+ --_card-border-color: var(--_card-marginals-background-color);
21
+
22
+ /* --- Link Individual Styling --- */
23
+ --_links-color: var(--intent-color);
24
+ --_links-color-hover: var(--intent-color-hover);
25
+ --_links-outline-color: var(--intent-outline-color);
26
+
27
+ /* --- Pane Individual Styling --- */
28
+ --_pane-color: #fff;
29
+ --_pane-background-color: var(--intent-background-color);
30
+
31
+ /* --- Progress Bar Individual Styling --- */
32
+ --_progress-accent-color: var(--intent-background-color);
33
+ }
@@ -1,42 +1,41 @@
1
+ /* See ./_common.css for shared styles */
2
+
1
3
  .contrast {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-contrast-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-contrast-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-contrast-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-contrast-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-contrast-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-50), var(--color-slate-900)), transparent 90%);
11
- --dialog-section-border: color-mix(in srgb, light-dark(var(--color-slate-50), black), transparent 95%);
12
- }
4
+ --intent-background-color: var(--contrast-background-color);
5
+ --intent-background-color-hover: var(--contrast-background-color-hover);
13
6
 
14
- &:is(a:not([role="button"]), [role="link"]) {
15
- --color-text: oklch(from var(--color-contrast-text) l c h / var(--color-text-opacity));
16
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
+ --intent-color: var(--contrast-color);
8
+ --intent-color-hover: var(--contrast-color-hover);
17
9
 
18
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
19
- --color-text: oklch(from var(--color-contrast-text-hover) l c h / var(--color-text-opacity));
20
- }
21
- }
10
+ --intent-outline-color: var(--contrast-outline-color);
22
11
 
23
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
24
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
25
- --color-background: oklch(from var(--color-contrast-fill-hover) l c h / var(--color-background-opacity));
26
- --border-color: oklch(from var(--color-contrast-fill-hover) l c h / var(--color-border-opacity));
27
- --color-text: oklch(from var(--color-contrast-on-fill) l c h / var(--color-text-opacity));
28
- }
12
+ /* Readability adjustments */
13
+ --_buttons-color: light-dark(#fff, #191c20);
14
+ --_buttons-color-hover: light-dark(#fff, #191c20);
29
15
 
30
- &:focus,
31
- &:is([aria-current]:not([aria-current="false"])):focus {
32
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-contrast-focus-ring);
33
- }
34
- }
16
+ --_alert-color: light-dark(#fff, #191c20);
17
+
18
+ --_card-color: light-dark(#fff, #191c20);
19
+ --_card-marginals-background-color: color-mix(
20
+ in srgb,
21
+ light-dark(var(--_color-slate-50), var(--_color-slate-900)),
22
+ transparent 90%
23
+ );
24
+
25
+ --_pane-color: light-dark(#fff, #191c20);
35
26
  }
36
27
 
37
28
  /* Accordion chevron override */
38
- details summary[role="button"].contrast::after {
29
+ details summary[role="button"].contrast {
39
30
  @container style(--theme: dark) {
40
- filter: brightness(0);
31
+ &::after {
32
+ filter: brightness(0);
33
+ }
34
+
35
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
36
+ &::after {
37
+ filter: brightness(0);
38
+ }
39
+ }
41
40
  }
42
41
  }
@@ -1,34 +1,11 @@
1
- .danger {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-danger-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-danger-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-danger-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-danger-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-danger-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-900), var(--color-slate-50)), transparent 90%);
11
- }
1
+ /* See ./_common.css for shared styles */
12
2
 
13
- &:is(a:not([role="button"]), [role="link"]) {
14
- --color-text: oklch(from var(--color-danger-text) l c h / var(--color-text-opacity));
15
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
16
-
17
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
18
- --color-text: oklch(from var(--color-danger-text-hover) l c h / var(--color-text-opacity));
19
- }
20
- }
3
+ .danger {
4
+ --intent-background-color: var(--danger-background-color);
5
+ --intent-background-color-hover: var(--danger-background-color-hover);
21
6
 
22
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
23
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
24
- --color-background: oklch(from var(--color-danger-fill-hover) l c h / var(--color-background-opacity));
25
- --border-color: oklch(from var(--color-danger-fill-hover) l c h / var(--color-border-opacity));
26
- --color-text: oklch(from var(--color-danger-on-fill) l c h / var(--color-text-opacity));
27
- }
7
+ --intent-color: var(--danger-color);
8
+ --intent-color-hover: var(--danger-color-hover);
28
9
 
29
- &:focus,
30
- &:is([aria-current]:not([aria-current="false"])):focus {
31
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-danger-focus-ring);
32
- }
33
- }
10
+ --intent-outline-color: var(--danger-outline-color);
34
11
  }
@@ -1,34 +1,11 @@
1
- .info {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-info-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-info-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-info-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-info-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-info-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-900), var(--color-slate-50)), transparent 90%);
11
- }
1
+ /* See ./_common.css for shared styles */
12
2
 
13
- &:is(a:not([role="button"]), [role="link"]) {
14
- --color-text: oklch(from var(--color-info-text) l c h / var(--color-text-opacity));
15
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
16
-
17
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
18
- --color-text: oklch(from var(--color-info-text-hover) l c h / var(--color-text-opacity));
19
- }
20
- }
3
+ .info {
4
+ --intent-background-color: var(--info-background-color);
5
+ --intent-background-color-hover: var(--info-background-color-hover);
21
6
 
22
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
23
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
24
- --color-background: oklch(from var(--color-info-fill-hover) l c h / var(--color-background-opacity));
25
- --border-color: oklch(from var(--color-info-fill-hover) l c h / var(--color-border-opacity));
26
- --color-text: oklch(from var(--color-info-on-fill) l c h / var(--color-text-opacity));
27
- }
7
+ --intent-color: var(--info-color);
8
+ --intent-color-hover: var(--info-color-hover);
28
9
 
29
- &:focus,
30
- &:is([aria-current]:not([aria-current="false"])):focus {
31
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-info-focus-ring);
32
- }
33
- }
10
+ --intent-outline-color: var(--info-outline-color);
34
11
  }
@@ -1,34 +1,11 @@
1
- .primary {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-primary-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-primary-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-primary-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-primary-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-primary-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-900), var(--color-slate-50)), transparent 90%);
11
- }
1
+ /* See ./_common.css for shared styles */
12
2
 
13
- &:is(a:not([role="button"]), [role="link"]) {
14
- --color-text: oklch(from var(--color-primary-text) l c h / var(--color-text-opacity));
15
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
16
-
17
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
18
- --color-text: oklch(from var(--color-primary-text-hover) l c h / var(--color-text-opacity));
19
- }
20
- }
3
+ .primary {
4
+ --intent-background-color: var(--primary-background-color);
5
+ --intent-background-color-hover: var(--primary-background-color-hover);
21
6
 
22
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
23
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
24
- --color-background: oklch(from var(--color-primary-fill-hover) l c h / var(--color-background-opacity));
25
- --border-color: oklch(from var(--color-primary-fill-hover) l c h / var(--color-border-opacity));
26
- --color-text: oklch(from var(--color-primary-on-fill) l c h / var(--color-text-opacity));
27
- }
7
+ --intent-color: var(--primary-color);
8
+ --intent-color-hover: var(--primary-color-hover);
28
9
 
29
- &:focus,
30
- &:is([aria-current]:not([aria-current="false"])):focus {
31
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-primary-focus-ring);
32
- }
33
- }
10
+ --intent-outline-color: var(--primary-outline-color);
34
11
  }
@@ -1,34 +1,11 @@
1
- .secondary {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-secondary-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-secondary-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-secondary-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-secondary-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-secondary-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-900), var(--color-slate-50)), transparent 90%);
11
- }
1
+ /* See ./_common.css for shared styles */
12
2
 
13
- &:is(a:not([role="button"]), [role="link"]) {
14
- --color-text: oklch(from var(--color-secondary-text) l c h / var(--color-text-opacity));
15
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
16
-
17
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
18
- --color-text: oklch(from var(--color-secondary-text-hover) l c h / var(--color-text-opacity));
19
- }
20
- }
3
+ .secondary {
4
+ --intent-background-color: var(--secondary-background-color);
5
+ --intent-background-color-hover: var(--secondary-background-color-hover);
21
6
 
22
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
23
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
24
- --color-background: oklch(from var(--color-secondary-fill-hover) l c h / var(--color-background-opacity));
25
- --border-color: oklch(from var(--color-secondary-fill-hover) l c h / var(--color-border-opacity));
26
- --color-text: oklch(from var(--color-secondary-on-fill) l c h / var(--color-text-opacity));
27
- }
7
+ --intent-color: var(--secondary-color);
8
+ --intent-color-hover: var(--secondary-color-hover);
28
9
 
29
- &:focus,
30
- &:is([aria-current]:not([aria-current="false"])):focus {
31
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-secondary-focus-ring);
32
- }
33
- }
10
+ --intent-outline-color: var(--secondary-outline-color);
34
11
  }
@@ -1,34 +1,11 @@
1
- .success {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-success-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-success-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-success-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-success-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-success-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-900), var(--color-slate-50)), transparent 90%);
11
- }
1
+ /* See ./_common.css for shared styles */
12
2
 
13
- &:is(a:not([role="button"]), [role="link"]) {
14
- --color-text: oklch(from var(--color-success-text) l c h / var(--color-text-opacity));
15
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
16
-
17
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
18
- --color-text: oklch(from var(--color-success-text-hover) l c h / var(--color-text-opacity));
19
- }
20
- }
3
+ .success {
4
+ --intent-background-color: var(--success-background-color);
5
+ --intent-background-color-hover: var(--success-background-color-hover);
21
6
 
22
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
23
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
24
- --color-background: oklch(from var(--color-success-fill-hover) l c h / var(--color-background-opacity));
25
- --border-color: oklch(from var(--color-success-fill-hover) l c h / var(--color-border-opacity));
26
- --color-text: oklch(from var(--color-success-on-fill) l c h / var(--color-text-opacity));
27
- }
7
+ --intent-color: var(--success-color);
8
+ --intent-color-hover: var(--success-color-hover);
28
9
 
29
- &:focus,
30
- &:is([aria-current]:not([aria-current="false"])):focus {
31
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-success-focus-ring);
32
- }
33
- }
10
+ --intent-outline-color: var(--success-outline-color);
34
11
  }
@@ -1,34 +1,11 @@
1
- .warning {
2
- &:not(a:not([role="button"]), [role="link"]) {
3
- --color-background: oklch(from var(--color-warning-fill) l c h / var(--color-background-opacity));
4
- --border-color: oklch(from var(--color-warning-fill) l c h / var(--color-border-opacity));
5
- --color-text: oklch(from var(--color-warning-on-fill) l c h / var(--color-text-opacity));
6
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
7
-
8
- --dialog-fill: oklch(from var(--color-warning-fill) l c h / var(--color-background-opacity));
9
- --dialog-border: oklch(from var(--color-warning-fill) l c h / var(--color-background-opacity));
10
- --dialog-section-fill: color-mix(in srgb, light-dark(var(--color-slate-900), var(--color-slate-50)), transparent 90%);
11
- }
1
+ /* See ./_common.css for shared styles */
12
2
 
13
- &:is(a:not([role="button"]), [role="link"]) {
14
- --color-text: oklch(from var(--color-warning-text) l c h / var(--color-text-opacity));
15
- --color-text-muted: color-mix(in srgb, var(--color-text), transparent 40%);
16
-
17
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
18
- --color-text: oklch(from var(--color-warning-text-hover) l c h / var(--color-text-opacity));
19
- }
20
- }
3
+ .warning {
4
+ --intent-background-color: var(--warning-background-color);
5
+ --intent-background-color-hover: var(--warning-background-color-hover);
21
6
 
22
- &:is(button, [type="submit"], [type="button"], [role="button"]):not([role="link"]) {
23
- &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
24
- --color-background: oklch(from var(--color-warning-fill-hover) l c h / var(--color-background-opacity));
25
- --border-color: oklch(from var(--color-warning-fill-hover) l c h / var(--color-border-opacity));
26
- --color-text: oklch(from var(--color-warning-on-fill) l c h / var(--color-text-opacity));
27
- }
7
+ --intent-color: var(--warning-color);
8
+ --intent-color-hover: var(--warning-color-hover);
28
9
 
29
- &:focus,
30
- &:is([aria-current]:not([aria-current="false"])):focus {
31
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-warning-focus-ring);
32
- }
33
- }
10
+ --intent-outline-color: var(--warning-outline-color);
34
11
  }