@ecopages/radiant-themes 0.2.1 → 0.2.3

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 (39) hide show
  1. package/README.md +27 -15
  2. package/dist/compiled/themes/cloudflare/compact.css +40 -12
  3. package/dist/compiled/themes/cloudflare.css +40 -12
  4. package/dist/compiled/themes/github/compact.css +264 -67
  5. package/dist/compiled/themes/github.css +264 -67
  6. package/dist/compiled/themes/high-contrast/compact.css +88 -5
  7. package/dist/compiled/themes/high-contrast.css +88 -5
  8. package/dist/compiled/themes/macos/compact.css +679 -294
  9. package/dist/compiled/themes/macos-classic/compact.css +197 -25
  10. package/dist/compiled/themes/macos-classic.css +197 -25
  11. package/dist/compiled/themes/macos.css +679 -294
  12. package/dist/compiled/themes/material/compact.css +447 -132
  13. package/dist/compiled/themes/material.css +447 -132
  14. package/dist/compiled/themes/vercel/compact.css +104 -62
  15. package/dist/compiled/themes/vercel.css +104 -62
  16. package/dist/compiled/themes/vscode/compact.css +255 -40
  17. package/dist/compiled/themes/vscode.css +255 -40
  18. package/dist/compiled/themes/windows95/compact.css +260 -22
  19. package/dist/compiled/themes/windows95.css +260 -22
  20. package/dist/tokens/colors/github.css +32 -0
  21. package/dist/tokens/colors/macos.css +65 -25
  22. package/dist/tokens/colors/material.css +61 -20
  23. package/dist/tokens/colors/vercel.css +43 -39
  24. package/dist/tokens/colors/vscode.css +48 -4
  25. package/dist/tokens/colors/windows95.css +10 -5
  26. package/dist/tokens/components/cloudflare.css +55 -5
  27. package/dist/tokens/components/github.css +258 -40
  28. package/dist/tokens/components/high-contrast.css +93 -5
  29. package/dist/tokens/components/macos-classic.css +262 -24
  30. package/dist/tokens/components/macos.css +542 -106
  31. package/dist/tokens/components/material.css +354 -25
  32. package/dist/tokens/components/vercel.css +77 -15
  33. package/dist/tokens/components/vscode.css +248 -27
  34. package/dist/tokens/components/windows95.css +304 -19
  35. package/dist/tokens/roles/github.css +12 -12
  36. package/dist/tokens/roles/macos.css +97 -93
  37. package/dist/tokens/roles/material.css +65 -65
  38. package/dist/tokens/roles/vercel.css +3 -3
  39. package/package.json +3 -3
@@ -1,6 +1,11 @@
1
1
  @reference 'tailwindcss';
2
2
 
3
- :root, :root[data-rui-theme='material'] {
3
+ /**
4
+ * Material 3 shapes and elevation: full-radius buttons, 4px fields and menus, 8px chips, 12px cards, 28px dialogs,
5
+ * tonal surfaces instead of borders on overlays, and a 3px secondary focus indicator.
6
+ */
7
+ :root,
8
+ :root[data-rui-theme='material'] {
4
9
  --font-sans: Roboto, 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
5
10
  --font-heading: Roboto, 'Noto Sans', ui-sans-serif, system-ui, sans-serif;
6
11
  --font-mono: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
@@ -12,30 +17,185 @@
12
17
  --border-radius-xl: 1.75rem;
13
18
  --border-radius-2xl: 2rem;
14
19
  --border-radius-3xl: 2.5rem;
15
- --radius-control: var(--border-radius-xl);
16
- --radius-container: var(--border-radius-lg);
20
+ --radius-control: var(--border-radius-xs);
21
+ --radius-container: var(--border-radius-md);
22
+ --focus-ring-width: 3px;
23
+ --focus-ring-offset: 2px;
24
+ --shadow-control: none;
25
+ --shadow-overlay: 0 1px 2px rgb(0 0 0 / 0.3), 0 2px 6px 2px rgb(0 0 0 / 0.15);
26
+ --shadow-modal: 0 1px 3px rgb(0 0 0 / 0.3), 0 4px 8px 3px rgb(0 0 0 / 0.15);
27
+ --sheen-image: none;
28
+ --material-state-hover: 8%;
29
+ --material-state-press: 10%;
30
+ }
31
+
32
+ /**
33
+ * @remarks Component knobs are declared unlayered on the host elements, so these overrides stay unlayered too.
34
+ */
35
+ :root rui-switch {
36
+ --rui-switch-width: 3.25rem;
37
+ --rui-switch-height: 2rem;
38
+ --rui-switch-thumb-size: 1rem;
39
+ --rui-switch-track: var(--surface-container-highest);
40
+ --rui-switch-track-hover: var(--surface-container-highest);
41
+ --rui-switch-track-on: var(--primary);
42
+ --rui-switch-track-on-hover: var(--primary);
43
+ --rui-switch-thumb: var(--material-outline);
44
+ --rui-switch-thumb-on: var(--on-primary);
45
+ }
46
+
47
+ :root rui-dialog {
48
+ --rui-dialog-radius: var(--border-radius-xl);
49
+ --rui-dialog-surface: var(--surface-container-high);
50
+ --rui-dialog-padding: 1.5rem;
51
+ }
52
+
53
+ :root rui-tooltip {
54
+ --rui-tooltip-radius: var(--border-radius-xs);
55
+ --rui-tooltip-surface: var(--material-inverse-surface);
56
+ --rui-tooltip-color: var(--material-inverse-on-surface);
57
+ --rui-tooltip-shadow: none;
58
+ }
59
+
60
+ :root rui-tabs {
61
+ --rui-tabs-indicator-width: 3px;
62
+ }
63
+
64
+ :root rui-meter {
65
+ --rui-meter-height: 0.25rem;
66
+ --rui-meter-radius: var(--border-radius-full, 9999px);
67
+ --rui-meter-track-color: var(--secondary-container);
68
+ }
69
+
70
+ :root rui-slider {
71
+ --rui-slider-track-size: 0.25rem;
72
+ --rui-slider-track-color: var(--secondary-container);
73
+ --rui-slider-thumb-background: var(--primary);
74
+ --rui-slider-thumb-border-color: var(--primary);
75
+ --rui-slider-thumb-radius: 9999px;
76
+ --rui-slider-thumb-shadow: var(--shadow-control);
17
77
  }
18
78
 
19
79
  @layer components {
80
+ /**
81
+ * @remarks The M3 handle grows from 16px off to 24px on (28px while pressed); the off track draws a 2px outline.
82
+ */
83
+ :root .rui-switch__track {
84
+ border: 2px solid var(--rui-control-border-color);
85
+ }
86
+
87
+ :root .rui-switch__input:checked + .rui-switch__track {
88
+ border-color: var(--primary);
89
+ }
90
+
91
+ :root .rui-switch__thumb {
92
+ left: 0.375rem;
93
+ transition-property: left, right, width, height, background-color;
94
+ }
95
+
96
+ :root .rui-switch__input:checked + .rui-switch__track .rui-switch__thumb {
97
+ right: 0.125rem;
98
+ width: 1.5rem;
99
+ height: 1.5rem;
100
+ }
101
+
102
+ :root .rui-switch__track:active .rui-switch__thumb {
103
+ width: 1.75rem;
104
+ height: 1.75rem;
105
+ }
106
+
20
107
  :root .rui-button {
21
- @apply rounded-control border border-transparent font-medium shadow-sm;
108
+ @apply rounded-pill border border-transparent font-medium;
109
+ letter-spacing: 0.00625rem;
110
+ }
111
+
112
+ :root .rui-button--sm {
113
+ padding-inline: 1rem;
114
+ }
115
+
116
+ :root .rui-button--md {
117
+ padding-inline: 1.5rem;
118
+ }
119
+
120
+ :root .rui-button--lg {
121
+ padding-inline: 2rem;
122
+ }
123
+
124
+ :root .rui-button--square,
125
+ :root .rui-button--link,
126
+ :root .rui-button--none {
127
+ padding-inline: 0;
128
+ }
129
+
130
+ :root .rui-button--filled:hover:not(:disabled) {
131
+ background-color: color-mix(in srgb, var(--on-primary) var(--material-state-hover), var(--primary));
132
+ box-shadow: var(--shadow-overlay);
133
+ }
134
+
135
+ :root .rui-button--filled:active:not(:disabled) {
136
+ background-color: color-mix(in srgb, var(--on-primary) var(--material-state-press), var(--primary));
137
+ box-shadow: none;
22
138
  }
23
139
 
24
- :root .rui-button--filled,
25
- :root .rui-button--destructive {
26
- @apply shadow-md;
140
+ :root .rui-button--destructive:hover:not(:disabled) {
141
+ background-color: color-mix(in srgb, var(--on-error) var(--material-state-hover), var(--error));
142
+ box-shadow: var(--shadow-overlay);
143
+ }
144
+
145
+ :root .rui-button--destructive:active:not(:disabled) {
146
+ background-color: color-mix(in srgb, var(--on-error) var(--material-state-press), var(--error));
147
+ box-shadow: none;
27
148
  }
28
149
 
29
150
  :root .rui-button--outline {
30
- @apply border-border bg-surface text-on-surface shadow-none;
151
+ @apply bg-transparent shadow-none;
31
152
  border-color: var(--rui-control-border-color);
153
+ color: var(--primary);
154
+ }
155
+
156
+ :root .rui-button--ghost {
157
+ color: var(--primary);
32
158
  }
33
159
 
34
- :root .rui-button--ghost:hover:not(:disabled),
35
- :root .rui-button--outline:hover:not(:disabled) {
36
- @apply bg-surface-container-low;
160
+ :root .rui-button--outline:hover:not(:disabled),
161
+ :root .rui-button--ghost:hover:not(:disabled) {
162
+ background-color: color-mix(in srgb, var(--primary) var(--material-state-hover), transparent);
37
163
  }
38
164
 
165
+ :root .rui-button--outline:active:not(:disabled),
166
+ :root .rui-button--ghost:active:not(:disabled) {
167
+ background-color: color-mix(in srgb, var(--primary) var(--material-state-press), transparent);
168
+ }
169
+
170
+ :root .rui-button--outline[aria-pressed='true'],
171
+ :root .rui-button--ghost[aria-pressed='true'] {
172
+ @apply shadow-none ring-0;
173
+ background-color: var(--secondary-container);
174
+ color: var(--on-secondary-container);
175
+ }
176
+
177
+ :root .rui-button:disabled {
178
+ opacity: 1;
179
+ background-color: color-mix(in srgb, var(--on-surface) 12%, transparent);
180
+ color: color-mix(in srgb, var(--on-surface) 38%, transparent);
181
+ box-shadow: none;
182
+ }
183
+
184
+ :root .rui-button--outline:disabled {
185
+ background-color: transparent;
186
+ border-color: color-mix(in srgb, var(--on-surface) 12%, transparent);
187
+ }
188
+
189
+ :root .rui-button--ghost:disabled,
190
+ :root .rui-button--link:disabled,
191
+ :root .rui-button--none:disabled {
192
+ background-color: transparent;
193
+ }
194
+
195
+ /**
196
+ * @remarks Outlined text fields: a 1px outline that becomes a 2px primary outline while focused, drawn with an inset
197
+ * shadow so the field keeps its size.
198
+ */
39
199
  :root .rui-input,
40
200
  :root .rui-textarea,
41
201
  :root .rui-autocomplete__input,
@@ -46,39 +206,208 @@
46
206
  :root .rui-number-field__group,
47
207
  :root rui-date-input:where(:not([data-date-field-input], [data-range-start], [data-range-end])),
48
208
  :root .rui-select__control {
49
- @apply rounded-control border-border bg-surface text-on-surface shadow-none;
209
+ @apply rounded-control bg-surface shadow-none;
50
210
  border-color: var(--rui-control-border-color);
211
+ color: var(--on-surface);
51
212
  }
52
213
 
53
- :root .rui-checkbox__control,
54
- :root .rui-radio__control {
55
- @apply border-border bg-surface;
56
- border-color: var(--rui-control-border-color);
214
+ :root .rui-input:hover:not(:disabled),
215
+ :root .rui-textarea:hover:not(:disabled),
216
+ :root .rui-select__control:hover {
217
+ border-color: var(--on-surface);
218
+ }
219
+
220
+ :root .rui-input:focus-visible,
221
+ :root .rui-textarea:focus-visible,
222
+ :root .rui-autocomplete__input:focus-visible,
223
+ :root .rui-combobox__control:focus-within,
224
+ :root .rui-date-field__group:focus-within,
225
+ :root .rui-date-range-picker__group:focus-within,
226
+ :root .rui-input-group:focus-within,
227
+ :root .rui-number-field__group:focus-within {
228
+ @apply ring-0 outline-none;
229
+ border-color: var(--primary);
230
+ box-shadow: inset 0 0 0 1px var(--primary);
231
+ }
232
+
233
+ :root .rui-input::placeholder,
234
+ :root .rui-textarea::placeholder {
235
+ color: var(--material-on-surface-variant);
57
236
  }
58
237
 
238
+ /**
239
+ * @remarks M3 check boxes are 18px with a 2px radius and a 2px on-surface-variant outline.
240
+ */
59
241
  :root .rui-checkbox__control {
60
- @apply rounded-xs;
242
+ @apply rounded-[2px];
243
+ width: 1.125rem;
244
+ height: 1.125rem;
245
+ border-width: 2px;
246
+ border-color: var(--material-on-surface-variant);
247
+ background-color: transparent;
248
+ }
249
+
250
+ :root .rui-radio__control {
251
+ width: 1.25rem;
252
+ height: 1.25rem;
253
+ border-width: 2px;
254
+ border-color: var(--material-on-surface-variant);
255
+ background-color: transparent;
256
+ }
257
+
258
+ :root .rui-radio__input:checked + .rui-radio__control::after {
259
+ width: 0.625rem;
260
+ height: 0.625rem;
261
+ }
262
+
263
+ :root .rui-checkbox__input:checked:not(:indeterminate):not([aria-checked='mixed']) + .rui-checkbox__control::after {
264
+ width: 0.75rem;
265
+ height: 0.75rem;
266
+ }
267
+
268
+ :root .rui-checkbox__input:indeterminate + .rui-checkbox__control,
269
+ :root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control {
270
+ background-color: var(--primary);
271
+ }
272
+
273
+ :root .rui-checkbox__input:indeterminate + .rui-checkbox__control::after,
274
+ :root .rui-checkbox__input[aria-checked='mixed'] + .rui-checkbox__control::after {
275
+ @apply rounded-none;
276
+ background-color: var(--on-primary);
277
+ }
278
+
279
+ :root .rui-dialog__surface {
280
+ @apply border-0;
281
+ background-color: var(--surface-container-high);
282
+ box-shadow: var(--shadow-modal);
283
+ }
284
+
285
+ :root .rui-dialog__title {
286
+ @apply font-normal;
287
+ font-size: 1.5rem;
288
+ line-height: 2rem;
289
+ }
290
+
291
+ :root .rui-popover {
292
+ --rui-popover-radius: var(--border-radius-xs);
293
+ --rui-popover-surface: var(--surface-container);
294
+ --rui-popover-border-color: transparent;
295
+ color: var(--on-surface);
296
+ }
297
+
298
+ :root .rui-popover .rui-listbox {
299
+ background-color: transparent;
61
300
  }
62
301
 
63
- :root .rui-dialog__surface,
64
- :root .rui-popover-host,
65
302
  :root .rui-hover-card__content,
303
+ :root .rui-menu-button__menu,
304
+ :root .rui-menubar__menu,
66
305
  :root .rui-select__listbox,
67
- :root .rui-combobox__listbox,
306
+ :root .rui-combobox__listbox {
307
+ @apply rounded-control border-0;
308
+ background-color: var(--surface-container);
309
+ color: var(--on-surface);
310
+ box-shadow: var(--shadow-overlay);
311
+ }
312
+
68
313
  :root .rui-calendar {
69
- @apply rounded-container border border-border bg-surface shadow-lg;
314
+ @apply rounded-[1rem] border-0;
315
+ background-color: var(--surface-container-high);
316
+ box-shadow: var(--shadow-overlay);
317
+ }
318
+
319
+ :root .rui-calendar__day[aria-selected='true']:not([data-range-middle='true']) {
320
+ @apply rounded-pill;
321
+ }
322
+
323
+ /**
324
+ * @remarks Toasts follow the M3 snackbar: inverse surface, 4px corners, and inverse-primary actions; the status
325
+ * color moves to the icon so text keeps inverse contrast.
326
+ */
327
+ :root .rui-toast {
328
+ @apply rounded-control border-0;
329
+ background-color: var(--material-inverse-surface);
330
+ color: var(--material-inverse-on-surface);
331
+ box-shadow: var(--shadow-modal);
332
+ }
333
+
334
+ :root .rui-toast__action .rui-button {
335
+ color: var(--material-inverse-primary);
70
336
  }
71
337
 
72
- :root .rui-listbox__option[aria-selected='true'],
338
+ :root .rui-listbox__option[aria-selected='true']:not([aria-disabled='true']),
73
339
  :root .rui-menu-button__item[aria-checked='true'],
74
- :root .rui-calendar__day[aria-selected='true'],
340
+ :root .rui-menubar__menu-item[aria-checked='true'],
341
+ :root .rui-tree__node[aria-selected='true'] {
342
+ @apply rounded-control;
343
+ background-color: var(--secondary-container);
344
+ background-image: none;
345
+ color: var(--on-secondary-container);
346
+ }
347
+
348
+ :root .rui-listbox__option[aria-selected='true'] .rui-listbox__option-indicator {
349
+ color: inherit;
350
+ }
351
+
352
+ /**
353
+ * @remarks Navigation drawer items use the full-radius secondary-container active indicator.
354
+ */
355
+ :root .rui-sidebar__menu-button {
356
+ @apply rounded-pill;
357
+ }
358
+
359
+ :root .rui-sidebar__menu-button[aria-current='page'],
75
360
  :root .rui-sidebar__menu-button--active {
76
- @apply rounded-control bg-primary-container text-on-primary-container;
361
+ background-color: var(--secondary-container);
362
+ color: var(--on-secondary-container);
363
+ }
364
+
365
+ :root .rui-tabs__tab {
366
+ @apply font-medium;
367
+ color: var(--material-on-surface-variant);
368
+ }
369
+
370
+ :root .rui-tabs__tab[aria-selected='true'],
371
+ :root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
372
+ color: var(--primary);
373
+ }
374
+
375
+ :root rui-tabs[variant='boxed'] .rui-tabs__tab:not([aria-selected='true']) {
376
+ opacity: 1;
377
+ color: var(--material-on-surface-variant);
378
+ }
379
+
380
+ :root .rui-tabs__tab:hover {
381
+ background-color: color-mix(in srgb, var(--on-surface) var(--material-state-hover), transparent);
77
382
  }
78
383
 
79
- :root .rui-badge,
80
384
  :root .rui-chip,
385
+ :root .rui-tag {
386
+ @apply rounded-[0.5rem];
387
+ }
388
+
389
+ :root .rui-chip--default,
390
+ :root .rui-tag {
391
+ border-color: var(--material-outline-variant);
392
+ background-color: transparent;
393
+ color: var(--material-on-surface-variant);
394
+ }
395
+
396
+ :root .rui-tag[aria-selected='true'] {
397
+ border-color: transparent;
398
+ background-color: var(--secondary-container);
399
+ background-image: none;
400
+ color: var(--on-secondary-container);
401
+ }
402
+
403
+ :root .rui-badge,
81
404
  :root .rui-pagination__link {
82
405
  @apply rounded-pill;
83
406
  }
407
+
408
+ :root .rui-feed__article {
409
+ border-color: var(--material-outline-variant);
410
+ background-color: var(--surface);
411
+ }
412
+
84
413
  }
@@ -1,7 +1,9 @@
1
+ @reference 'tailwindcss';
2
+
1
3
  :where(:root), :root[data-rui-theme='vercel'] {
2
- --font-sans: 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
3
- --font-heading: 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
4
- --font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
4
+ --font-sans: Geist, 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
5
+ --font-heading: Geist, 'Geist Sans', ui-sans-serif, system-ui, sans-serif;
6
+ --font-mono: 'Geist Mono', 'GeistMono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
5
7
  --rui-border-alpha: 100%;
6
8
  --border-radius-xs: 0.125rem;
7
9
  --border-radius-sm: 0.25rem;
@@ -34,6 +36,7 @@
34
36
 
35
37
  :root .rui-button {
36
38
  @apply rounded-control border border-transparent font-medium shadow-none;
39
+ background-image: none;
37
40
  }
38
41
 
39
42
  :root .rui-button--filled {
@@ -51,7 +54,12 @@
51
54
 
52
55
  :root .rui-button--outline:hover:not(:disabled),
53
56
  :root .rui-button--ghost:hover:not(:disabled) {
54
- @apply bg-surface-container-low;
57
+ background-color: var(--color-vercel-component-2);
58
+ }
59
+
60
+ :root .rui-button--outline:active:not(:disabled),
61
+ :root .rui-button--ghost:active:not(:disabled) {
62
+ background-color: var(--color-vercel-component-3);
55
63
  }
56
64
 
57
65
  :root .rui-input,
@@ -95,17 +103,50 @@
95
103
  }
96
104
 
97
105
  :root .rui-dialog__surface,
98
- :root .rui-popover-host,
99
106
  :root .rui-hover-card__content,
100
- :root .rui-menu-button__menu,
101
- :root .rui-menubar__menu,
102
- :root .rui-select__listbox,
103
- :root .rui-combobox__listbox,
104
107
  :root .rui-calendar,
105
108
  :root rui-tabs[variant='boxed'] {
106
109
  @apply rounded-container border border-border bg-surface shadow-sm;
107
110
  }
108
111
 
112
+ :root .rui-popover {
113
+ --rui-popover-radius: var(--radius-container);
114
+ --rui-popover-surface: var(--color-vercel-background-1);
115
+ --rui-popover-border-color: var(--color-vercel-border-4);
116
+ --rui-popover-shadow: 0 4px 8px -4px rgb(0 0 0 / 0.04), 0 16px 24px -8px rgb(0 0 0 / 0.06);
117
+ }
118
+
119
+ :root .rui-tooltip__content {
120
+ --rui-tooltip-radius: var(--radius-control);
121
+ --rui-tooltip-padding-x: 0.75rem;
122
+ --rui-tooltip-padding-y: 0.375rem;
123
+ }
124
+
125
+ /**
126
+ * Geist menus: a 12px floating panel with 8px padding and 6px rounded rows.
127
+ */
128
+ :root .rui-menu-button__menu,
129
+ :root .rui-menubar__menu,
130
+ :root .rui-select__listbox,
131
+ :root .rui-combobox__listbox {
132
+ @apply rounded-container border border-border p-2;
133
+ background-color: var(--color-vercel-background-1);
134
+ box-shadow:
135
+ 0 4px 8px -4px rgb(0 0 0 / 0.04),
136
+ 0 16px 24px -8px rgb(0 0 0 / 0.06);
137
+ }
138
+
139
+ :root .rui-select__listbox .rui-listbox,
140
+ :root .rui-combobox__listbox .rui-listbox {
141
+ @apply bg-transparent p-0;
142
+ }
143
+
144
+ :root .rui-listbox__option,
145
+ :root .rui-menu-button__item,
146
+ :root .rui-menubar__menu-item {
147
+ @apply rounded-control;
148
+ }
149
+
109
150
  :root rui-tabs[variant='boxed'] .rui-tabs__list {
110
151
  @apply border-b border-border bg-transparent px-2 pt-2;
111
152
  gap: 0;
@@ -117,7 +158,7 @@
117
158
  }
118
159
 
119
160
  :root rui-tabs[variant='boxed'] .rui-tabs__tab[aria-selected='true'] {
120
- @apply bg-transparent text-on-surface font-semibold;
161
+ @apply bg-transparent text-on-surface font-medium;
121
162
  border-bottom-color: var(--primary);
122
163
  }
123
164
 
@@ -126,13 +167,33 @@
126
167
  padding: var(--rui-tabs-panel-padding);
127
168
  }
128
169
 
129
- :root .rui-listbox__option:hover:not([aria-selected='true']):not([aria-disabled='true']):not([data-active]),
170
+ :root .rui-listbox__option:hover:not([aria-disabled='true']),
171
+ :root .rui-listbox__option[data-active]:not([aria-disabled='true']),
130
172
  :root .rui-menu-button__item:hover:not([aria-checked='true']):not([aria-disabled='true']),
131
173
  :root .rui-menubar__menu-item:hover:not([aria-expanded='true']):not([aria-disabled='true']) {
174
+ background-color: var(--color-vercel-component-1);
175
+ }
176
+
177
+ /**
178
+ * @remarks Geist marks the selected menu row with a check on a hover-strength fill, not an inverted fill, so the
179
+ * indicator uses the text color instead of `on-primary`.
180
+ */
181
+ :root .rui-listbox__option[aria-selected='true']:not([aria-disabled='true']),
182
+ :root .rui-listbox__option[aria-selected='true']:focus-visible {
132
183
  background-color: var(--color-vercel-component-2);
184
+ background-image: none;
185
+ color: var(--color-vercel-text-primary);
186
+ }
187
+
188
+ :root .rui-listbox__option[aria-selected='true'] .rui-listbox__option-indicator {
189
+ color: var(--color-vercel-text-primary);
133
190
  }
134
191
 
135
- :root .rui-table__header,
192
+ :root .rui-listbox__option[aria-selected='true'][data-active]:not([aria-disabled='true']) {
193
+ --tw-ring-color: transparent;
194
+ }
195
+
196
+ :root .rui-table__column,
136
197
  :root .rui-treegrid__row--header {
137
198
  @apply bg-surface-container-low text-on-surface font-medium;
138
199
  }
@@ -141,12 +202,13 @@
141
202
  @apply rounded-control shadow-none;
142
203
  }
143
204
 
144
- :root .rui-toast__content {
145
- @apply rounded-control border border-border bg-surface text-on-surface shadow-none;
205
+ :root .rui-toast {
206
+ @apply rounded-control shadow-none;
207
+ background-image: none;
146
208
  }
147
209
 
148
210
  :root .rui-separator,
149
211
  :root .rui-sidebar__separator {
150
212
  @apply bg-border;
151
213
  }
152
- }
214
+ }