@ropav/styles 0.4.0 → 0.6.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 (181) hide show
  1. package/README.md +89 -5
  2. package/dist/components/accordion.css +6 -14
  3. package/dist/components/alert-dialog.css +1 -13
  4. package/dist/components/alert.css +1 -1
  5. package/dist/components/autocomplete/autocomplete.styles.d.ts +33 -0
  6. package/dist/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
  7. package/dist/components/autocomplete/autocomplete.styles.js +12 -0
  8. package/dist/components/autocomplete.css +54 -36
  9. package/dist/components/breadcrumbs.css +9 -2
  10. package/dist/components/button-group.css +6 -10
  11. package/dist/components/button.css +10 -18
  12. package/dist/components/calendar-year-picker.css +20 -8
  13. package/dist/components/calendar.css +46 -21
  14. package/dist/components/card.css +1 -1
  15. package/dist/components/checkbox.css +54 -56
  16. package/dist/components/chip.css +3 -1
  17. package/dist/components/close-button.css +7 -6
  18. package/dist/components/color-area.css +6 -6
  19. package/dist/components/color-input-group/color-input-group.styles.d.ts +27 -0
  20. package/dist/components/color-input-group/color-input-group.styles.d.ts.map +1 -1
  21. package/dist/components/color-input-group/color-input-group.styles.js +6 -0
  22. package/dist/components/color-input-group.css +31 -28
  23. package/dist/components/color-picker.css +1 -5
  24. package/dist/components/color-slider.css +14 -12
  25. package/dist/components/color-swatch-picker.css +2 -85
  26. package/dist/components/color-swatch.css +1 -1
  27. package/dist/components/combo-box/combo-box.styles.d.ts +27 -0
  28. package/dist/components/combo-box/combo-box.styles.d.ts.map +1 -1
  29. package/dist/components/combo-box/combo-box.styles.js +17 -7
  30. package/dist/components/combo-box.css +34 -4
  31. package/dist/components/date-input-group/date-input-group.styles.d.ts +27 -0
  32. package/dist/components/date-input-group/date-input-group.styles.d.ts.map +1 -1
  33. package/dist/components/date-input-group/date-input-group.styles.js +6 -0
  34. package/dist/components/date-input-group.css +55 -33
  35. package/dist/components/date-picker.css +1 -5
  36. package/dist/components/date-range-picker.css +1 -5
  37. package/dist/components/disclosure.css +0 -4
  38. package/dist/components/drawer.css +4 -8
  39. package/dist/components/drop-zone/drop-zone.styles.d.ts +34 -0
  40. package/dist/components/drop-zone/drop-zone.styles.d.ts.map +1 -0
  41. package/dist/components/drop-zone/drop-zone.styles.js +8 -0
  42. package/dist/components/drop-zone/index.d.ts +2 -0
  43. package/dist/components/drop-zone/index.d.ts.map +1 -0
  44. package/dist/components/drop-zone/index.js +2 -0
  45. package/dist/components/drop-zone.css +78 -0
  46. package/dist/components/dropdown.css +1 -5
  47. package/dist/components/error-message.css +0 -4
  48. package/dist/components/field-error.css +0 -4
  49. package/dist/components/index.css +5 -0
  50. package/dist/components/index.d.ts +5 -0
  51. package/dist/components/index.d.ts.map +1 -1
  52. package/dist/components/input/input.styles.d.ts +15 -0
  53. package/dist/components/input/input.styles.d.ts.map +1 -1
  54. package/dist/components/input/input.styles.js +6 -0
  55. package/dist/components/input-group/input-group.styles.d.ts +27 -0
  56. package/dist/components/input-group/input-group.styles.d.ts.map +1 -1
  57. package/dist/components/input-group/input-group.styles.js +6 -0
  58. package/dist/components/input-group.css +35 -38
  59. package/dist/components/input-otp.css +14 -26
  60. package/dist/components/input.css +23 -32
  61. package/dist/components/kbd.css +3 -1
  62. package/dist/components/label.css +7 -2
  63. package/dist/components/link.css +13 -11
  64. package/dist/components/list-box/list-box.styles.d.ts +15 -0
  65. package/dist/components/list-box/list-box.styles.d.ts.map +1 -1
  66. package/dist/components/list-box/list-box.styles.js +15 -5
  67. package/dist/components/list-box-item.css +8 -12
  68. package/dist/components/list-box.css +19 -0
  69. package/dist/components/menu/menu.styles.d.ts +19 -1
  70. package/dist/components/menu/menu.styles.d.ts.map +1 -1
  71. package/dist/components/menu/menu.styles.js +9 -1
  72. package/dist/components/menu-item.css +4 -10
  73. package/dist/components/menu.css +19 -0
  74. package/dist/components/meter.css +8 -16
  75. package/dist/components/modal.css +1 -13
  76. package/dist/components/number-field/number-field.styles.d.ts +27 -0
  77. package/dist/components/number-field/number-field.styles.d.ts.map +1 -1
  78. package/dist/components/number-field/number-field.styles.js +6 -0
  79. package/dist/components/number-field.css +83 -36
  80. package/dist/components/pagination.css +6 -10
  81. package/dist/components/popover.css +15 -5
  82. package/dist/components/progress-bar/progress-bar.styles.d.ts +36 -0
  83. package/dist/components/progress-bar/progress-bar.styles.d.ts.map +1 -1
  84. package/dist/components/progress-bar/progress-bar.styles.js +10 -0
  85. package/dist/components/progress-bar.css +82 -16
  86. package/dist/components/progress-circle.css +0 -4
  87. package/dist/components/radio.css +7 -9
  88. package/dist/components/range-calendar.css +73 -31
  89. package/dist/components/search-field/search-field.styles.d.ts +27 -0
  90. package/dist/components/search-field/search-field.styles.d.ts.map +1 -1
  91. package/dist/components/search-field/search-field.styles.js +6 -0
  92. package/dist/components/search-field.css +36 -29
  93. package/dist/components/segmented-control/index.d.ts +2 -0
  94. package/dist/components/segmented-control/index.d.ts.map +1 -0
  95. package/dist/components/segmented-control/index.js +2 -0
  96. package/dist/components/segmented-control/segmented-control.styles.d.ts +73 -0
  97. package/dist/components/segmented-control/segmented-control.styles.d.ts.map +1 -0
  98. package/dist/components/segmented-control/segmented-control.styles.js +27 -0
  99. package/dist/components/segmented-control.css +188 -0
  100. package/dist/components/select/select.styles.d.ts +33 -0
  101. package/dist/components/select/select.styles.d.ts.map +1 -1
  102. package/dist/components/select/select.styles.js +12 -0
  103. package/dist/components/select.css +47 -33
  104. package/dist/components/sidebar/index.d.ts +2 -0
  105. package/dist/components/sidebar/index.d.ts.map +1 -0
  106. package/dist/components/sidebar/index.js +2 -0
  107. package/dist/components/sidebar/sidebar.styles.d.ts +226 -0
  108. package/dist/components/sidebar/sidebar.styles.d.ts.map +1 -0
  109. package/dist/components/sidebar/sidebar.styles.js +65 -0
  110. package/dist/components/sidebar.css +604 -0
  111. package/dist/components/slider.css +10 -11
  112. package/dist/components/splitter/index.d.ts +2 -0
  113. package/dist/components/splitter/index.d.ts.map +1 -0
  114. package/dist/components/splitter/index.js +2 -0
  115. package/dist/components/splitter/splitter.styles.d.ts +61 -0
  116. package/dist/components/splitter/splitter.styles.d.ts.map +1 -0
  117. package/dist/components/splitter/splitter.styles.js +26 -0
  118. package/dist/components/splitter.css +249 -0
  119. package/dist/components/switch.css +16 -15
  120. package/dist/components/table.css +72 -30
  121. package/dist/components/tabs.css +9 -20
  122. package/dist/components/tag.css +32 -24
  123. package/dist/components/textarea/textarea.styles.d.ts +15 -0
  124. package/dist/components/textarea/textarea.styles.d.ts.map +1 -1
  125. package/dist/components/textarea/textarea.styles.js +6 -0
  126. package/dist/components/textarea.css +23 -32
  127. package/dist/components/toast.css +4 -2
  128. package/dist/components/toggle-button-group.css +7 -11
  129. package/dist/components/toggle-button.css +9 -17
  130. package/dist/components/toolbar.css +1 -1
  131. package/dist/components/tooltip.css +15 -6
  132. package/dist/components/typography.css +12 -4
  133. package/dist/components/virtualizer/index.d.ts +2 -0
  134. package/dist/components/virtualizer/index.d.ts.map +1 -0
  135. package/dist/components/virtualizer/index.js +2 -0
  136. package/dist/components/virtualizer/virtualizer.styles.d.ts +44 -0
  137. package/dist/components/virtualizer/virtualizer.styles.d.ts.map +1 -0
  138. package/dist/components/virtualizer/virtualizer.styles.js +15 -0
  139. package/dist/components/virtualizer.css +72 -0
  140. package/dist/index.js +6 -1
  141. package/dist/ropav.min.css +2 -2
  142. package/dist/themes/airbnb.css +11 -4
  143. package/dist/themes/all.css +1 -0
  144. package/dist/themes/coinbase.css +11 -4
  145. package/dist/themes/default.css +40 -8
  146. package/dist/themes/discord.css +11 -4
  147. package/dist/themes/hero.css +282 -0
  148. package/dist/themes/lavender.css +11 -4
  149. package/dist/themes/mint.css +11 -4
  150. package/dist/themes/netflix.css +11 -4
  151. package/dist/themes/rabbit.css +11 -4
  152. package/dist/themes/shared/theme.css +20 -2
  153. package/dist/themes/sky.css +11 -4
  154. package/dist/themes/spotify.css +11 -4
  155. package/dist/themes/uber.css +11 -4
  156. package/dist/utilities/index.css +27 -0
  157. package/package.json +1 -1
  158. package/src/components/autocomplete/autocomplete.styles.ts +12 -0
  159. package/src/components/color-input-group/color-input-group.styles.ts +10 -0
  160. package/src/components/combo-box/combo-box.styles.ts +12 -0
  161. package/src/components/date-input-group/date-input-group.styles.ts +10 -0
  162. package/src/components/drop-zone/drop-zone.styles.ts +12 -0
  163. package/src/components/drop-zone/index.ts +1 -0
  164. package/src/components/index.ts +5 -0
  165. package/src/components/input/input.styles.ts +6 -0
  166. package/src/components/input-group/input-group.styles.ts +10 -0
  167. package/src/components/list-box/list-box.styles.ts +6 -0
  168. package/src/components/menu/menu.styles.ts +10 -0
  169. package/src/components/number-field/number-field.styles.ts +10 -0
  170. package/src/components/progress-bar/progress-bar.styles.ts +14 -0
  171. package/src/components/search-field/search-field.styles.ts +10 -0
  172. package/src/components/segmented-control/index.ts +1 -0
  173. package/src/components/segmented-control/segmented-control.styles.ts +37 -0
  174. package/src/components/select/select.styles.ts +12 -0
  175. package/src/components/sidebar/index.ts +1 -0
  176. package/src/components/sidebar/sidebar.styles.ts +117 -0
  177. package/src/components/splitter/index.ts +1 -0
  178. package/src/components/splitter/splitter.styles.ts +44 -0
  179. package/src/components/textarea/textarea.styles.ts +6 -0
  180. package/src/components/virtualizer/index.ts +1 -0
  181. package/src/components/virtualizer/virtualizer.styles.ts +15 -0
@@ -19,6 +19,7 @@
19
19
  [data-theme="airbnb"] {
20
20
  color-scheme: light;
21
21
 
22
+ --component-radius: calc(var(--radius) * 3);
22
23
  --field-radius: 0.75rem;
23
24
  --radius: 0.5rem;
24
25
 
@@ -81,6 +82,9 @@
81
82
  var(--field-foreground, var(--foreground)) 2%
82
83
  );
83
84
  --field-placeholder: oklch(51.6% 0 17.07);
85
+ --field-shadow:
86
+ 0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
87
+ 0 0 1px 0 rgba(0, 0, 0, 0.06);
84
88
 
85
89
  /* Status Colors */
86
90
  --danger: oklch(0.5392 0.1816 33.72);
@@ -108,10 +112,10 @@
108
112
  --segment-foreground: oklch(21.03% 0 17.07);
109
113
 
110
114
  /* Borders and separators */
111
- --border: oklch(90% 0 17.07);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
112
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
113
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
114
- --separator: oklch(92% 0 17.07);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
115
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
116
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
117
121
 
@@ -119,6 +123,7 @@
119
123
  --background-inverse: var(--foreground);
120
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
122
127
  }
123
128
 
124
129
  [data-theme="airbnb"].dark,
@@ -184,6 +189,7 @@
184
189
  var(--field-foreground, var(--foreground)) 2%
185
190
  );
186
191
  --field-placeholder: oklch(70.5% 0 17.07);
192
+ --field-shadow: 0 0 0 0 transparent inset;
187
193
 
188
194
  /* Status Colors */
189
195
  --danger: oklch(0.5392 0.1816 33.72);
@@ -211,10 +217,10 @@
211
217
  --segment-foreground: oklch(99.11% 0 17.07);
212
218
 
213
219
  /* Borders and separators */
214
- --border: oklch(28% 0 17.07);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
215
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
216
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
217
- --separator: oklch(25% 0 17.07);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
218
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
219
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
220
226
 
@@ -222,5 +228,6 @@
222
228
  --background-inverse: var(--foreground);
223
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
224
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
225
232
  }
226
233
  }
@@ -4,6 +4,7 @@
4
4
  * Convenience for docs and playgrounds. Apps should import only the themes they offer.
5
5
  * Import without a `layer()` wrapper.
6
6
  */
7
+ @import "./hero.css";
7
8
  @import "./sky.css";
8
9
  @import "./lavender.css";
9
10
  @import "./mint.css";
@@ -19,6 +19,7 @@
19
19
  [data-theme="coinbase"] {
20
20
  color-scheme: light;
21
21
 
22
+ --component-radius: calc(var(--radius) * 3);
22
23
  --field-radius: 0.125rem;
23
24
  --radius: 0.5rem;
24
25
 
@@ -81,6 +82,9 @@
81
82
  var(--field-foreground, var(--foreground)) 2%
82
83
  );
83
84
  --field-placeholder: oklch(51.6% 0.004 262.87);
85
+ --field-shadow:
86
+ 0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
87
+ 0 0 1px 0 rgba(0, 0, 0, 0.06);
84
88
 
85
89
  /* Status Colors */
86
90
  --danger: oklch(0.5507 0.2062 24);
@@ -108,10 +112,10 @@
108
112
  --segment-foreground: oklch(21.03% 0.002 262.87);
109
113
 
110
114
  /* Borders and separators */
111
- --border: oklch(90% 0.002 262.87);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
112
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
113
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
114
- --separator: oklch(92% 0.002 262.87);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
115
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
116
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
117
121
 
@@ -119,6 +123,7 @@
119
123
  --background-inverse: var(--foreground);
120
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
122
127
  }
123
128
 
124
129
  [data-theme="coinbase"].dark,
@@ -184,6 +189,7 @@
184
189
  var(--field-foreground, var(--foreground)) 2%
185
190
  );
186
191
  --field-placeholder: oklch(70.5% 0.004 262.87);
192
+ --field-shadow: 0 0 0 0 transparent inset;
187
193
 
188
194
  /* Status Colors */
189
195
  --danger: oklch(0.6545 0.2145 22.31);
@@ -211,10 +217,10 @@
211
217
  --segment-foreground: oklch(99.11% 0.002 262.87);
212
218
 
213
219
  /* Borders and separators */
214
- --border: oklch(28% 0.002 262.87);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
215
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
216
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
217
- --separator: oklch(25% 0.002 262.87);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
218
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
219
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
220
226
 
@@ -222,5 +228,6 @@
222
228
  --background-inverse: var(--foreground);
223
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
224
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
225
232
  }
226
233
  }
@@ -39,7 +39,8 @@
39
39
 
40
40
  /* Radius */
41
41
  --radius: 0.5rem;
42
- --field-radius: calc(var(--radius) * 1.5);
42
+ --field-radius: calc(var(--radius) * 0.75);
43
+ --component-radius: var(--field-radius);
43
44
 
44
45
  /* == Light Theme Variables == */
45
46
 
@@ -73,7 +74,7 @@
73
74
  --default: oklch(94% 0.001 286.375);
74
75
  --default-foreground: var(--eclipse);
75
76
 
76
- --accent: oklch(0.6204 0.195 253.83);
77
+ --accent: oklch(0.62 0.2 260);
77
78
  --accent-foreground: var(--snow);
78
79
 
79
80
  /* Form Fields */
@@ -97,8 +98,12 @@
97
98
  --segment-foreground: var(--eclipse);
98
99
 
99
100
  /* Misc Colors */
100
- --border: oklch(90% 0.004 286.32);
101
- --separator: oklch(92% 0.004 286.32);
101
+ /* An edge, as an alpha of the surface foreground - `--surface-hover`'s reasoning, applied to a
102
+ * line. A flat neutral is picked against one fill and then disappears against any other of its
103
+ * own lightness: in the dark half `--separator` sat 0.7% from `--surface-secondary`, so a box
104
+ * drawn on the secondary fill had no edge left. */
105
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
106
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
102
107
  --focus: var(--accent);
103
108
  --link: var(--foreground);
104
109
 
@@ -108,6 +113,21 @@
108
113
  /* Calculated Colors */
109
114
  --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
110
115
 
116
+ /* The layer a state paints on whatever is behind it, named for what it is rather than for one
117
+ * of the states it serves - hover reads it, so do a press and the muted selection a calendar
118
+ * gives a day outside the month. Distinct from `--surface-hover` above, which is a surface
119
+ * that has been tinted and stays opaque: this one is an alpha, so a component transparent at
120
+ * rest can mark a state without inventing a fill of its own.
121
+ *
122
+ * A neutral cannot do this job. It has to be picked against one background and is then wrong
123
+ * on every other - invisible against a fill of its own lightness, and against a translucent
124
+ * surface it cannot know what is behind at all. An alpha darkens whatever it lands on.
125
+ *
126
+ * The halves carry different percentages because compositing happens in sRGB while the palette
127
+ * is authored in Oklab: the same alpha reads stronger over a dark surface than a light one.
128
+ * These are the pair that lands where the flat neutral used to. */
129
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
130
+
111
131
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
112
132
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
113
133
  --background-inverse: var(--foreground);
@@ -170,9 +190,16 @@
170
190
  --overlay-shadow:
171
191
  0 2px 8px 0 rgba(0, 0, 0, 0.06), 0 -6px 12px 0 rgba(0, 0, 0, 0.03),
172
192
  0 14px 28px 0 rgba(0, 0, 0, 0.08);
193
+ /* The edge of an overlay that has an arrow, as a filter over the combined silhouette:
194
+ * `--overlay-shadow` restated as drop-shadows, so the shadow wraps the arrow too. A theme
195
+ * whose overlays wear a hairline instead points this at `url(#ropav-overlay-edge)` — the
196
+ * filter every arrow carries — and colours the line with `--overlay-edge-line`. */
197
+ --overlay-edge: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.06))
198
+ drop-shadow(0 -6px 12px rgba(0, 0, 0, 0.03)) drop-shadow(0 14px 28px rgba(0, 0, 0, 0.08));
199
+ --overlay-edge-line: transparent;
173
200
  --field-shadow:
174
- 0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
175
- 0 0 1px 0 rgba(0, 0, 0, 0.06);
201
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02), 0 1px 2px 0 rgba(0, 0, 0, 0.03),
202
+ 0 0 1px 0 rgba(0, 0, 0, 0.03);
176
203
  /* Skeleton Default Global Animation */
177
204
  --skeleton-animation: shimmer; /* shimmer, pulse, none */
178
205
 
@@ -229,8 +256,8 @@
229
256
  --segment-foreground: var(--foreground);
230
257
 
231
258
  /* Misc Colors */
232
- --border: oklch(28% 0.006 286.033);
233
- --separator: oklch(25% 0.006 286.033);
259
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
260
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
234
261
  --focus: var(--accent);
235
262
  --link: var(--foreground);
236
263
 
@@ -240,10 +267,15 @@
240
267
  /* Shadows */
241
268
  --surface-shadow: 0 0 0 0 transparent inset; /* No shadow on dark mode */
242
269
  --overlay-shadow: 0 0 1px 0 rgba(255, 255, 255, 0.3) inset;
270
+ /* The arrowed overlays' edge: the same hairline, drawn by the filter the arrow carries so it
271
+ * follows the arrow's silhouette as well as the body's. */
272
+ --overlay-edge: url(#ropav-overlay-edge);
273
+ --overlay-edge-line: rgba(255, 255, 255, 0.3);
243
274
  --field-shadow: 0 0 0 0 transparent inset; /* Transparent shadow to allow ring utilities to work */
244
275
 
245
276
  /* Calculated Colors */
246
277
  --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
278
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
247
279
 
248
280
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
249
281
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
@@ -19,6 +19,7 @@
19
19
  [data-theme="discord"] {
20
20
  color-scheme: light;
21
21
 
22
+ --component-radius: calc(var(--radius) * 3);
22
23
  --field-radius: 0.75rem;
23
24
  --radius: 0.25rem;
24
25
 
@@ -81,6 +82,9 @@
81
82
  var(--field-foreground, var(--foreground)) 2%
82
83
  );
83
84
  --field-placeholder: oklch(51.6% 0.02 273.85);
85
+ --field-shadow:
86
+ 0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
87
+ 0 0 1px 0 rgba(0, 0, 0, 0.06);
84
88
 
85
89
  /* Status Colors */
86
90
  --danger: oklch(0.5884 0.1993 24.39);
@@ -108,10 +112,10 @@
108
112
  --segment-foreground: oklch(21.03% 0.01 273.85);
109
113
 
110
114
  /* Borders and separators */
111
- --border: oklch(90% 0.01 273.85);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
112
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
113
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
114
- --separator: oklch(92% 0.01 273.85);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
115
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
116
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
117
121
 
@@ -119,6 +123,7 @@
119
123
  --background-inverse: var(--foreground);
120
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
122
127
  }
123
128
 
124
129
  [data-theme="discord"].dark,
@@ -184,6 +189,7 @@
184
189
  var(--field-foreground, var(--foreground)) 2%
185
190
  );
186
191
  --field-placeholder: oklch(70.5% 0.02 273.85);
192
+ --field-shadow: 0 0 0 0 transparent inset;
187
193
 
188
194
  /* Status Colors */
189
195
  --danger: oklch(0.6318 0.2075 24.57);
@@ -211,10 +217,10 @@
211
217
  --segment-foreground: oklch(99.11% 0.01 273.85);
212
218
 
213
219
  /* Borders and separators */
214
- --border: oklch(28% 0.01 273.85);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
215
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
216
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
217
- --separator: oklch(25% 0.01 273.85);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
218
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
219
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
220
226
 
@@ -222,5 +228,6 @@
222
228
  --background-inverse: var(--foreground);
223
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
224
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
225
232
  }
226
233
  }
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Hero theme — hand-written.
3
+ *
4
+ * HeroUI v3's own palette — the one Ropav's style layer was vendored from, offered under its own
5
+ * `data-theme` alongside the other brand themes.
6
+ *
7
+ * Not generated. The generator derives every grey from one hue and one chroma, and this palette
8
+ * does neither: its greys sit around hue 286 while its accent is at 253.83, its grey chroma runs
9
+ * from 0 (`--background`) to 0.0138 (`--muted`), and `--surface-tertiary` strays to 247.91 on
10
+ * dark. Its `scripts/themes/presets.ts` entry records the accent seeds and the radius pair, which
11
+ * is what the theme list and the Storybook toolbar read; `pnpm generate:themes` skips it.
12
+ *
13
+ * Colours, radii and the field shadow, like every other theme — `--spacing`, `--cursor-*`, the
14
+ * primitives, the surface and overlay shadows and `--backdrop` stay on `:root` / `.dark` in
15
+ * `themes/default.css`, which keeps matching an element that carries a `data-theme`. The primitive *values* are spelled out rather than
16
+ * aliased through `var(--eclipse)`, so this palette holds whatever the default theme is tuned to.
17
+ *
18
+ * The `theme` layer is declared inside this file, so it can be imported with or without a
19
+ * `layer()` wrapper:
20
+ *
21
+ * @import "@ropav/styles";
22
+ * @import "@ropav/styles/themes/hero.css";
23
+ *
24
+ * Light is the default; dark needs the `dark` class alongside the attribute:
25
+ * <html data-theme="hero"> light
26
+ * <html data-theme="hero" class="dark"> dark
27
+ */
28
+ @layer theme {
29
+ [data-theme="hero"] {
30
+ color-scheme: light;
31
+
32
+ /* Radius */
33
+ --radius: 0.5rem;
34
+ --field-radius: calc(var(--radius) * 1.5);
35
+ --component-radius: calc(var(--radius) * 3);
36
+
37
+ /* == Light Theme Variables == */
38
+
39
+ /* Base Colors */
40
+ --background: oklch(0.9702 0 0);
41
+ --foreground: oklch(0.2103 0.0059 285.89);
42
+
43
+ /* Surface: Used for non-overlay components (cards, accordions, disclosure groups) */
44
+ --surface: oklch(100% 0 0);
45
+ --surface-foreground: var(--foreground);
46
+
47
+ --surface-secondary: oklch(0.9524 0.0013 286.37);
48
+ --surface-secondary-foreground: var(--foreground);
49
+
50
+ --surface-tertiary: oklch(0.9373 0.0013 286.37);
51
+ --surface-tertiary-foreground: var(--foreground);
52
+
53
+ /* Overlay: Used for floating/overlay components (tooltips, popovers, modals, menus) */
54
+ --overlay: oklch(100% 0 0);
55
+ --overlay-foreground: var(--foreground);
56
+
57
+ --muted: oklch(0.516 0.0138 285.94);
58
+
59
+ --scrollbar: var(--scrollbar-thumb);
60
+ --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
61
+ --scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
62
+
63
+ --default: oklch(94% 0.001 286.375);
64
+ --default-foreground: oklch(0.2103 0.0059 285.89);
65
+
66
+ --accent: oklch(0.6204 0.195 253.83);
67
+ --accent-foreground: oklch(0.9911 0 0);
68
+
69
+ /* Form Fields */
70
+ --field-background: oklch(100% 0 0);
71
+ --field-foreground: oklch(0.2103 0.0059 285.89);
72
+ --field-placeholder: var(--muted);
73
+ --field-border: transparent; /* no border by default on form fields */
74
+ --field-shadow:
75
+ 0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
76
+ 0 0 1px 0 rgba(0, 0, 0, 0.06);
77
+
78
+ /* Status Colors */
79
+ --success: oklch(0.7329 0.1935 150.81);
80
+ --success-foreground: oklch(0.2103 0.0059 285.89);
81
+
82
+ --warning: oklch(0.7819 0.1585 72.33);
83
+ --warning-foreground: oklch(0.2103 0.0059 285.89);
84
+
85
+ --danger: oklch(0.6532 0.2328 25.74);
86
+ --danger-foreground: oklch(0.9911 0 0);
87
+
88
+ /* Component Colors */
89
+ --segment: oklch(100% 0 0);
90
+ --segment-foreground: oklch(0.2103 0.0059 285.89);
91
+
92
+ /* Misc Colors */
93
+ /* An edge, as an alpha of the surface foreground - `--surface-hover`'s reasoning, applied to a
94
+ * line. A flat neutral is picked against one fill and then disappears against any other of its
95
+ * own lightness: in the dark half `--separator` sat 0.7% from `--surface-secondary`, so a box
96
+ * drawn on the secondary fill had no edge left. */
97
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
98
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
99
+ --focus: var(--accent);
100
+ --link: var(--foreground);
101
+
102
+ /* Calculated Colors */
103
+ --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
104
+
105
+ /* The layer a state paints on whatever is behind it, named for what it is rather than for one
106
+ * of the states it serves - hover reads it, so do a press and the muted selection a calendar
107
+ * gives a day outside the month. Distinct from `--surface-hover` above, which is a surface
108
+ * that has been tinted and stays opaque: this one is an alpha, so a component transparent at
109
+ * rest can mark a state without inventing a fill of its own.
110
+ *
111
+ * A neutral cannot do this job. It has to be picked against one background and is then wrong
112
+ * on every other - invisible against a fill of its own lightness, and against a translucent
113
+ * surface it cannot know what is behind at all. An alpha darkens whatever it lands on.
114
+ *
115
+ * The halves carry different percentages because compositing happens in sRGB while the palette
116
+ * is authored in Oklab: the same alpha reads stronger over a dark surface than a light one.
117
+ * These are the pair that lands where the flat neutral used to. */
118
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
119
+
120
+ --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
+ --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
122
+ --background-inverse: var(--foreground);
123
+
124
+ --default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
125
+ --accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
126
+ --success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
127
+ --warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
128
+ --danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
129
+
130
+ --field-hover: color-mix(
131
+ in oklab,
132
+ var(--field-background, var(--default)) 90%,
133
+ var(--field-foreground, var(--foreground)) 2%
134
+ );
135
+ --field-focus: var(--field-background, var(--default));
136
+ --field-border-hover: color-mix(
137
+ in oklab,
138
+ var(--field-border, var(--border)) 88%,
139
+ var(--field-foreground, var(--foreground)) 10%
140
+ );
141
+ --field-border-focus: color-mix(
142
+ in oklab,
143
+ var(--field-border, var(--border)) 74%,
144
+ var(--field-foreground, var(--foreground)) 22%
145
+ );
146
+
147
+ --default-soft: color-mix(in oklab, var(--default) 50%, transparent);
148
+ --default-soft-foreground: var(--default-foreground);
149
+ --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
150
+
151
+ --accent-soft: color-mix(in oklab, var(--accent) 15%, transparent);
152
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 70%, var(--foreground) 45%);
153
+ --accent-soft-hover: color-mix(in oklab, var(--accent) 20%, transparent);
154
+
155
+ --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
156
+ --danger-soft-foreground: color-mix(in oklab, var(--danger) 70%, var(--foreground) 40%);
157
+ --danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
158
+
159
+ --warning-soft: color-mix(in oklab, var(--warning) 15%, transparent);
160
+ --warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 70%);
161
+ --warning-soft-hover: color-mix(in oklab, var(--warning) 20%, transparent);
162
+
163
+ --success-soft: color-mix(in oklab, var(--success) 15%, transparent);
164
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 75%);
165
+ --success-soft-hover: color-mix(in oklab, var(--success) 20%, transparent);
166
+
167
+ --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
168
+ --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
169
+
170
+ --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
171
+ --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
172
+ }
173
+
174
+ [data-theme="hero"].dark,
175
+ .dark [data-theme="hero"] {
176
+ color-scheme: dark;
177
+ /* == Dark Theme Variables == */
178
+
179
+ /* Base Colors */
180
+ --background: oklch(12% 0.005 285.823);
181
+ --foreground: oklch(0.9911 0 0);
182
+
183
+ /* Surface: Used for non-overlay components (cards, accordions, disclosure groups) */
184
+ --surface: oklch(0.2103 0.0059 285.89);
185
+ --surface-foreground: var(--foreground);
186
+
187
+ --surface-secondary: oklch(0.257 0.0037 286.14);
188
+ --surface-tertiary: oklch(0.2721 0.0024 247.91);
189
+
190
+ /* Overlay: Used for floating/overlay components (tooltips, popovers, modals, menus) - lighter for contrast */
191
+ --overlay: oklch(0.2103 0.0059 285.89);
192
+ --overlay-foreground: var(--foreground);
193
+
194
+ --muted: oklch(70.5% 0.015 286.067);
195
+
196
+ --scrollbar: var(--scrollbar-thumb);
197
+ --scrollbar-thumb: color-mix(in oklch, var(--foreground) 15%, transparent);
198
+ --scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
199
+
200
+ --default: oklch(27.4% 0.006 286.033);
201
+ --default-foreground: oklch(0.9911 0 0);
202
+
203
+ /* Form Fields */
204
+ --field-background: oklch(0.2103 0.0059 285.89);
205
+ --field-foreground: var(--foreground);
206
+ --field-shadow: 0 0 0 0 transparent inset; /* placeholder, so ring utilities still compose */
207
+
208
+ /* Status Colors */
209
+ --warning: oklch(0.8203 0.1388 76.34);
210
+ --warning-foreground: oklch(0.2103 0.0059 285.89);
211
+
212
+ --danger: oklch(0.594 0.1967 24.63);
213
+ --danger-foreground: oklch(0.9911 0 0);
214
+
215
+ /* Component Colors */
216
+ --segment: oklch(0.3964 0.01 285.93);
217
+ --segment-foreground: var(--foreground);
218
+
219
+ /* Misc Colors */
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
221
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
222
+ --focus: var(--accent);
223
+ --link: var(--foreground);
224
+
225
+ /* Calculated Colors */
226
+ --surface-hover: color-mix(in oklab, var(--surface) 92%, var(--surface-foreground) 8%);
227
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
228
+
229
+ --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
230
+ --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --background-inverse: var(--foreground);
232
+
233
+ --default-hover: color-mix(in oklab, var(--default) 96%, var(--default-foreground) 4%);
234
+ --accent-hover: color-mix(in oklab, var(--accent) 90%, var(--accent-foreground) 10%);
235
+ --success-hover: color-mix(in oklab, var(--success) 90%, var(--success-foreground) 10%);
236
+ --warning-hover: color-mix(in oklab, var(--warning) 90%, var(--warning-foreground) 10%);
237
+ --danger-hover: color-mix(in oklab, var(--danger) 90%, var(--danger-foreground) 10%);
238
+
239
+ --field-hover: color-mix(
240
+ in oklab,
241
+ var(--field-background, var(--default)) 90%,
242
+ var(--field-foreground, var(--foreground)) 2%
243
+ );
244
+ --field-focus: var(--field-background, var(--default));
245
+ --field-border-hover: color-mix(
246
+ in oklab,
247
+ var(--field-border, var(--border)) 88%,
248
+ var(--field-foreground, var(--foreground)) 10%
249
+ );
250
+ --field-border-focus: color-mix(
251
+ in oklab,
252
+ var(--field-border, var(--border)) 74%,
253
+ var(--field-foreground, var(--foreground)) 22%
254
+ );
255
+
256
+ --default-soft: color-mix(in oklab, var(--default) 50%, transparent);
257
+ --default-soft-foreground: var(--default-foreground);
258
+ --default-soft-hover: color-mix(in oklab, var(--default) 60%, transparent);
259
+
260
+ --accent-soft: color-mix(in oklab, var(--accent) 12%, transparent);
261
+ --accent-soft-foreground: color-mix(in oklab, var(--accent) 80%, var(--foreground) 30%);
262
+ --accent-soft-hover: color-mix(in oklab, var(--accent) 16%, transparent);
263
+
264
+ --danger-soft: color-mix(in oklab, var(--danger) 15%, transparent);
265
+ --danger-soft-foreground: color-mix(in oklab, var(--danger) 80%, var(--foreground) 30%);
266
+ --danger-soft-hover: color-mix(in oklab, var(--danger) 20%, transparent);
267
+
268
+ --warning-soft: color-mix(in oklab, var(--warning) 12%, transparent);
269
+ --warning-soft-foreground: color-mix(in oklab, var(--warning) 80%, var(--foreground) 30%);
270
+ --warning-soft-hover: color-mix(in oklab, var(--warning) 16%, transparent);
271
+
272
+ --success-soft: color-mix(in oklab, var(--success) 12%, transparent);
273
+ --success-soft-foreground: color-mix(in oklab, var(--success) 80%, var(--foreground) 30%);
274
+ --success-soft-hover: color-mix(in oklab, var(--success) 16%, transparent);
275
+
276
+ --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
277
+ --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
278
+
279
+ --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
280
+ --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
281
+ }
282
+ }
@@ -19,6 +19,7 @@
19
19
  [data-theme="lavender"] {
20
20
  color-scheme: light;
21
21
 
22
+ --component-radius: calc(var(--radius) * 3);
22
23
  --field-radius: 0.75rem;
23
24
  --radius: 0.5rem;
24
25
 
@@ -81,6 +82,9 @@
81
82
  var(--field-foreground, var(--foreground)) 2%
82
83
  );
83
84
  --field-placeholder: oklch(51.6% 0.003 305);
85
+ --field-shadow:
86
+ 0 2px 4px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.06),
87
+ 0 0 1px 0 rgba(0, 0, 0, 0.06);
84
88
 
85
89
  /* Status Colors */
86
90
  --danger: oklch(65.32% 0.2335 31.88);
@@ -108,10 +112,10 @@
108
112
  --segment-foreground: oklch(21.03% 0.0015 305);
109
113
 
110
114
  /* Borders and separators */
111
- --border: oklch(90% 0.0015 305);
115
+ --border: color-mix(in oklab, var(--surface-foreground) 14%, transparent);
112
116
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
113
117
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
114
- --separator: oklch(92% 0.0015 305);
118
+ --separator: color-mix(in oklab, var(--surface-foreground) 12%, transparent);
115
119
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
116
120
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
117
121
 
@@ -119,6 +123,7 @@
119
123
  --background-inverse: var(--foreground);
120
124
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
121
125
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
126
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 9%, transparent);
122
127
  }
123
128
 
124
129
  [data-theme="lavender"].dark,
@@ -184,6 +189,7 @@
184
189
  var(--field-foreground, var(--foreground)) 2%
185
190
  );
186
191
  --field-placeholder: oklch(70.5% 0.003 305);
192
+ --field-shadow: 0 0 0 0 transparent inset;
187
193
 
188
194
  /* Status Colors */
189
195
  --danger: oklch(59.4% 0.1973 30.77);
@@ -211,10 +217,10 @@
211
217
  --segment-foreground: oklch(99.11% 0.0015 305);
212
218
 
213
219
  /* Borders and separators */
214
- --border: oklch(28% 0.0015 305);
220
+ --border: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
215
221
  --border-secondary: color-mix(in oklab, var(--surface) 78%, var(--surface-foreground) 22%);
216
222
  --border-tertiary: color-mix(in oklab, var(--surface) 66%, var(--surface-foreground) 34%);
217
- --separator: oklch(25% 0.0015 305);
223
+ --separator: color-mix(in oklab, var(--surface-foreground) 4%, transparent);
218
224
  --separator-secondary: color-mix(in oklab, var(--surface) 85%, var(--surface-foreground) 15%);
219
225
  --separator-tertiary: color-mix(in oklab, var(--surface) 81%, var(--surface-foreground) 19%);
220
226
 
@@ -222,5 +228,6 @@
222
228
  --background-inverse: var(--foreground);
223
229
  --background-secondary: color-mix(in oklab, var(--background) 96%, var(--foreground) 4%);
224
230
  --background-tertiary: color-mix(in oklab, var(--background) 92%, var(--foreground) 8%);
231
+ --state-layer: color-mix(in oklab, var(--surface-foreground) 7%, transparent);
225
232
  }
226
233
  }