ui-lab-theme-onyx 0.3.45 → 0.3.46

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 (2) hide show
  1. package/package.json +1 -1
  2. package/styles.css +541 -382
package/styles.css CHANGED
@@ -1,4 +1,3 @@
1
- /* Onyx Theme - Button Styles */
2
1
 
3
2
  :root {
4
3
  --spacing: 0.25rem;
@@ -17,7 +16,6 @@
17
16
 
18
17
 
19
18
  @layer components {
20
- /* Universal variants (token presets) */
21
19
  [data-ring="true"] {
22
20
  --ring: #0f74c5;
23
21
  --ring-width: 2px;
@@ -31,14 +29,20 @@
31
29
  --background: var(--background-800);
32
30
  --foreground: var(--foreground-200);
33
31
  --background-border: var(--background-700);
34
- --background-hover: color-mix(in srgb, var(--background-600) 50%, var(--background-950));
35
- --background-hover-border: var(--background-600);
36
- --background-pressed: color-mix(in srgb, var(--background-600) 60%, var(--background-950));
37
- --background-pressed-border: var(--background-600);
38
32
  --focus-visible: var(--accent-400);
39
33
  font-size: var(--text-xs);
40
34
  }
41
35
 
36
+ .button[data-hovered="true"]:not([data-disabled="true"]) {
37
+ --background: color-mix(in srgb, var(--background-600) 50%, var(--background-950));
38
+ --background-border: var(--background-600);
39
+ }
40
+
41
+ .button[data-pressed="true"]:not([data-disabled="true"]) {
42
+ --background: color-mix(in srgb, var(--background-600) 60%, var(--background-950));
43
+ --background-border: var(--background-600);
44
+ }
45
+
42
46
  .button.sq { @apply aspect-square inline-flex items-center justify-center }
43
47
  .button.sm { @apply px-2.5 py-1.5 text-xs font-semibold }
44
48
  .button.md { @apply px-3 py-1.5 }
@@ -62,17 +66,20 @@
62
66
  --foreground-muted: var(--foreground-300);
63
67
  }
64
68
 
65
- /* Expand Styles */
69
+ .expand > .trigger {
70
+ --background: transparent;
71
+ --foreground: var(--foreground-50);
72
+ }
66
73
 
67
- .expand {
68
- --trigger-background: transparent;
69
- --trigger-background-hover: var(--background-900);
70
- --trigger-foreground: var(--foreground-50);
71
- --content-background: transparent;
72
- --content-foreground: var(--foreground-300);
74
+ .expand > .trigger[data-hovered="true"]:not([data-disabled="true"]),
75
+ .expand > .trigger:hover:not([data-disabled="true"]) {
76
+ --background: var(--background-900);
73
77
  }
74
78
 
75
- /* Card Styles */
79
+ .expand > .content {
80
+ --background: transparent;
81
+ --foreground: var(--foreground-300);
82
+ }
76
83
 
77
84
  .card {
78
85
  --background: var(--background-900);
@@ -90,57 +97,74 @@
90
97
  --background-border: var(--background-700);
91
98
  }
92
99
 
93
- /* List Styles */
94
-
95
100
  .list {
96
101
  --foreground: var(--foreground-50);
97
- --background-hover: color-mix(in srgb, var(--background-500) 6%, transparent);
98
- --background-highlighted: color-mix(in srgb, var(--background-500) 6%, transparent);
99
- --item-background: transparent;
100
- --item-background-hover: var(--background-hover);
101
- --item-background-highlighted: var(--background-highlighted);
102
102
  --header-title-foreground: var(--foreground-50);
103
103
  --header-subtitle-foreground: var(--foreground-400);
104
104
  --desc-foreground: var(--foreground-400);
105
- --action-foreground: var(--foreground-400);
106
- --action-foreground-hover: var(--foreground-50);
107
- --action-background-hover: var(--background-hover);
108
105
  }
109
106
 
110
- /* Group Styles */
107
+ .list > [role="listitem"] {
108
+ --background: transparent;
109
+ --foreground: var(--foreground-50);
110
+ }
111
+
112
+ .list > [role="listitem"]:hover:not([data-disabled="true"]) {
113
+ --background: color-mix(in srgb, var(--background-500) 6%, transparent);
114
+ }
115
+
116
+ .list[data-keyboard-mode="true"] > [role="listitem"][data-highlighted="true"] {
117
+ --background: color-mix(in srgb, var(--background-500) 6%, transparent);
118
+ }
119
+
120
+ .list > [role="listitem"][data-selected="true"] {
121
+ --background: color-mix(in srgb, var(--background-500) 10%, transparent);
122
+ }
123
+
124
+ .list > [role="listitem"][data-selected="true"]:hover:not([data-disabled="true"]),
125
+ .list[data-keyboard-mode="true"] > [role="listitem"][data-selected="true"][data-highlighted="true"] {
126
+ --background: color-mix(in srgb, var(--background-500) 14%, transparent);
127
+ }
128
+
129
+ .list > [role="listitem"] > [data-actions] button {
130
+ --background: transparent;
131
+ --foreground: var(--foreground-400);
132
+ }
133
+
134
+ .list > [role="listitem"] > [data-actions] button:hover:not([data-disabled="true"]) {
135
+ --background: color-mix(in srgb, var(--background-500) 6%, transparent);
136
+ --foreground: var(--foreground-50);
137
+ }
111
138
 
112
139
  .group {
113
140
  --background: var(--background-950);
114
141
  --background-border: var(--background-700);
115
- --group-background: var(--background);
116
- --group-foreground: var(--foreground);
117
- --group-border: var(--background-border);
118
- --group-hover: var(--background-hover, var(--group-background));
119
- --group-pressed: var(--background-pressed, var(--group-hover));
120
- --group-divider-background: var(--group-border);
121
- --group-input-background: var(--group-background);
122
- --group-input-foreground: var(--group-foreground);
123
- --group-input-border-width: 0px;
124
- --group-input-border: transparent;
125
- --group-input-hover-border: var(--group-input-border);
126
- --group-input-focused-border: var(--group-input-border);
127
- }
128
-
129
- .group.outline {
130
- --group-divider-background: var(--background-border);
131
- --group-input-background: transparent;
132
- }
133
-
134
- .group .button {
142
+ }
143
+
144
+ .group > .input {
145
+ --background: var(--background-950);
146
+ --background-border: var(--background-700);
147
+ }
148
+
149
+ .group > .divider {
150
+ --background: var(--background-border);
151
+ }
152
+
153
+ .group.outline > .divider {
154
+ --background: var(--background-border);
155
+ }
156
+
157
+ .group.outline > .input {
158
+ --background: transparent;
159
+ }
160
+
161
+ .group > .button {
135
162
  --button-selected-background: var(--background-800);
136
163
  --button-selected-foreground: var(--foreground-100);
137
164
  }
138
165
 
139
- /* Command Styles */
140
166
  .command {
141
167
  --background: var(--background-900);
142
- --background-hover: var(--background-800);
143
- --background-pressed: var(--background-800);
144
168
  --background-list: var(--background-950);
145
169
  --background-footer: var(--background-800);
146
170
  --border: var(--background-700);
@@ -151,8 +175,19 @@
151
175
  --shadow: 0 20px 25px -5px rgb(0 0 0 / 0.35);
152
176
  }
153
177
 
178
+ .command > .content .scroll [role="listbox"] > .item,
179
+ .command > .content .scroll [role="listbox"] > div > div > .item {
180
+ --background: transparent;
181
+ --foreground: var(--foreground-300);
182
+ }
183
+
184
+ .command > .content .scroll [role="listbox"] > .item:hover,
185
+ .command > .content .scroll [role="listbox"] > .item[data-highlighted="true"],
186
+ .command > .content .scroll [role="listbox"] > div > div > .item:hover,
187
+ .command > .content .scroll [role="listbox"] > div > div > .item[data-highlighted="true"] {
188
+ --background: var(--background-800);
189
+ }
154
190
 
155
- /* Date Styles */
156
191
 
157
192
  .date {
158
193
  --background: var(--background-950);
@@ -160,123 +195,151 @@
160
195
  --focus-ring: var(--foreground-300);
161
196
  }
162
197
 
163
- .date .date-header {
164
- --header-color: var(--foreground-300);
198
+ .date > .header {
199
+ --foreground: var(--foreground-300);
200
+ }
201
+
202
+ .date > .day-headers {
203
+ --background: var(--background-900);
165
204
  }
166
205
 
167
- .date .date-day-headers {
168
- --day-headers-background: var(--background-900);
206
+ .date > .day-headers > .day-header,
207
+ .date > .grid > .day-header {
208
+ --foreground: var(--foreground-400);
169
209
  }
170
210
 
171
- .date .date-day-header {
172
- --day-header-color: var(--foreground-400);
211
+ .date > .header > div > .nav-button {
212
+ --background: transparent;
213
+ --foreground: var(--foreground-400);
173
214
  }
174
215
 
175
- .date .date-nav-button {
176
- --nav-button-color: var(--foreground-400);
177
- --nav-button-background-hover: var(--background-800);
216
+ .date > .header > div > .nav-button:hover:not([data-disabled="true"]) {
217
+ --background: var(--background-800);
178
218
  }
179
219
 
180
- .date .date-grid {
181
- --grid-background: var(--background-900);
220
+ .date > .grid {
221
+ --background: var(--background-900);
182
222
  }
183
223
 
184
- .date .date-day {
185
- --cell-text: var(--foreground-300);
224
+ .date > .grid > .day {
225
+ --background: transparent;
226
+ --foreground: var(--foreground-300);
186
227
  }
187
228
 
188
- .date .date-day[data-selected="true"] {
189
- --cell-background: var(--background-800);
190
- --cell-text: var(--foreground-50);
229
+ .date > .grid > .day[data-selected="true"] {
230
+ --background: var(--background-800);
231
+ --foreground: var(--foreground-50);
191
232
  }
192
233
 
193
- .date .date-day[data-today="true"] {
194
- --cell-background: var(--background-800);
195
- --cell-text: var(--foreground-50);
234
+ .date > .grid > .day[data-today="true"] {
235
+ --background: var(--background-800);
236
+ --foreground: var(--foreground-50);
196
237
  }
197
238
 
198
- .date .date-day[data-disabled="true"],
199
- .date .date-day[data-out-of-range="true"] {
200
- --cell-text: var(--foreground-400);
239
+ .date > .grid > .day[data-disabled="true"],
240
+ .date > .grid > .day[data-out-of-range="true"] {
241
+ --foreground: var(--foreground-400);
201
242
  }
202
243
 
203
- .date .date-day:hover:not([data-disabled="true"]):not([data-out-of-range="true"]) {
204
- --hover-transition-duration: var(--hover-transition-enter-duration, 0ms);
205
- --cell-background: var(--background-800);
244
+ .date > .grid > .day[data-hovered="true"]:not([data-disabled="true"]):not([data-out-of-range="true"]),
245
+ .date > .grid > .day:hover:not([data-disabled="true"]):not([data-out-of-range="true"]) {
246
+ --background: var(--background-800);
206
247
  }
207
248
 
208
- /* Table Styles */
249
+ .date > .grid > .day[data-selected="true"][data-hovered="true"]:not([data-disabled="true"]):not([data-out-of-range="true"]),
250
+ .date > .grid > .day[data-selected="true"]:hover:not([data-disabled="true"]):not([data-out-of-range="true"]) {
251
+ --background: var(--background-800);
252
+ --foreground: var(--foreground-50);
253
+ }
209
254
 
210
255
  .table {
211
256
  --background: var(--background-950);
212
257
  --foreground: var(--foreground-300);
213
258
  --border: var(--background-700);
214
- --background-hover: var(--background-800);
215
- --background-selected: var(--background-800);
216
- --body-background-hover: var(--background-hover);
217
- --row-selected-background: var(--background-selected);
218
- --cell-background: transparent;
219
- --cell-foreground: var(--foreground-300);
220
- --filter-background: var(--background-900);
221
- --filter-border: var(--border);
222
- --empty-foreground: var(--foreground-400);
223
259
  --focus-ring: var(--foreground-300);
224
260
  }
225
261
 
226
- .table .header,
227
- .table .header-cell {
228
- --header-background: var(--background-900);
229
- --header-foreground: var(--foreground-400);
262
+ .table > .container > .element > .header,
263
+ .table > .container > .element > .header > .header-row > .header-cell {
264
+ --background: var(--background-900);
265
+ --foreground: var(--foreground-400);
266
+ }
267
+
268
+ .table > .container > .element > .body,
269
+ .table > .container > .element {
270
+ --background: var(--background-900);
271
+ }
272
+
273
+ .table > .container > .element > .body > .row > .cell {
274
+ --background: transparent;
275
+ --foreground: var(--foreground-300);
276
+ }
277
+
278
+ .table > .container > .element > .body > .row:hover:not([data-disabled="true"]) > .cell {
279
+ --background: var(--background-800);
230
280
  }
231
281
 
232
- .table .body,
233
- .table .element {
234
- --body-background: var(--background-900);
282
+ .table > .container > .element > .body > .row[data-selected="true"] > .cell {
283
+ --background: var(--background-800);
235
284
  }
236
285
 
237
- .table .filter-grid {
238
- --filter-grid-background: var(--background-900);
286
+ .table > .container > .element > .body > .row[data-selected="true"]:hover:not([data-disabled="true"]) > .cell {
287
+ --background: var(--background-800);
239
288
  }
240
289
 
241
- .table .filter-label {
242
- --filter-label-foreground: var(--foreground-400);
290
+ .table > .filter-bar {
291
+ --background: var(--background-900);
243
292
  }
244
293
 
245
- /* Checkbox Styles */
294
+ .table > .filter-bar > .filter-grid {
295
+ --background: var(--background-900);
296
+ }
297
+
298
+ .table > .filter-bar > .filter-grid > div > .filter-label {
299
+ --foreground: var(--foreground-400);
300
+ }
301
+
302
+ .table > .container > .element > .body > .empty-row > .empty-state {
303
+ --foreground: var(--foreground-400);
304
+ }
246
305
 
247
306
  .checkbox {
248
307
  --background: var(--background-900);
249
308
  --background-border: var(--background-700);
250
- --background-hover: color-mix(in srgb, var(--background-500) 10%, var(--background-900));
251
- --background-hover-border: var(--background-600);
252
309
  --ring: var(--accent-500);
310
+ --helper-foreground: var(--foreground-400);
311
+ --helper-error-foreground: var(--danger-600);
312
+ }
313
+
314
+ .checkbox:hover:not([data-disabled="true"]) {
315
+ --background: color-mix(in srgb, var(--background-500) 10%, var(--background-900));
316
+ --background-border: var(--background-600);
253
317
  }
254
318
 
255
319
  .checkbox[data-selected="true"] {
256
- --background-selected: var(--foreground-200);
257
- --background-selected-border: var(--foreground-200);
258
- --background-hover: var(--foreground-300);
259
- --background-hover-border: var(--foreground-300);
320
+ --background: var(--background-900);
321
+ --background-border: var(--background-700);
260
322
  }
261
323
 
262
- .checkbox[data-indeterminate="true"] {
263
- --background-indeterminate: var(--foreground-200);
264
- --background-indeterminate-border: var(--foreground-200);
265
- --background-hover: var(--foreground-300);
266
- --background-hover-border: var(--foreground-300);
324
+ .checkbox[data-selected="true"]:hover:not([data-disabled="true"]) {
325
+ --background: var(--background-800);
326
+ --background-border: var(--background-600);
267
327
  }
268
328
 
269
- .checkbox .checkmark,
270
- .checkbox .indeterminate {
271
- --icon-foreground: color-mix(in srgb, var(--accent-500) 20%, var(--background-950));
329
+ .checkbox[data-indeterminate="true"] {
330
+ --background: var(--foreground-200);
331
+ --background-border: var(--foreground-200);
272
332
  }
273
333
 
274
- .checkbox-root {
275
- --helper-foreground: var(--foreground-400);
276
- --helper-error-foreground: var(--danger-600);
334
+ .checkbox[data-indeterminate="true"]:hover:not([data-disabled="true"]) {
335
+ --background: var(--foreground-300);
336
+ --background-border: var(--foreground-300);
277
337
  }
278
338
 
279
- /* Color Styles */
339
+ .checkbox > div > .checkmark,
340
+ .checkbox > div > .indeterminate {
341
+ --foreground: var(--foreground-300)
342
+ }
280
343
 
281
344
  .color {
282
345
  --background: color-mix(in srgb, var(--background-800) 30%, transparent);
@@ -284,53 +347,49 @@
284
347
  --focus-visible: var(--accent-500);
285
348
  }
286
349
 
287
- .color .canvas-pointer {
350
+ .color > .canvas > .canvas-pointer {
288
351
  --pointer-border: color-mix(in srgb, var(--foreground-200) 50%, transparent);
289
352
  }
290
353
 
291
- .color .hue-thumb,
292
- .color .opacity-thumb {
354
+ .color > .controls > .hue-slider > .hue-track > .hue-thumb,
355
+ .color > .controls > .opacity-slider > .opacity-track > .opacity-thumb {
293
356
  --thumb-border: white;
294
357
  --thumb-background: white;
295
358
  }
296
359
 
297
- .color .opacity-track {
360
+ .color > .controls > .opacity-slider > .opacity-track {
298
361
  --checkerboard-dark: var(--background-800);
299
362
  --checkerboard-light: var(--background-700);
300
363
  }
301
364
 
302
- .color .preview-swatch,
303
- .color .preview {
365
+ .color > .controls > .group-scope > .group > .preview-swatch,
366
+ .color > .controls > .group-scope > .group > .preview {
304
367
  --checkerboard-dark: var(--background-700);
305
368
  --checkerboard-light: var(--background-800);
306
369
  }
307
370
 
308
- /* Label Styles */
309
-
310
371
  .label {
311
372
  --foreground: var(--foreground-300);
312
373
  --disabled-foreground: var(--foreground-400);
313
374
  --error-foreground: var(--danger-600);
314
375
  }
315
376
 
316
- .label .required-indicator {
377
+ .label > label > .required-indicator {
317
378
  --required-color: var(--danger-600);
318
379
  }
319
380
 
320
- .label .helper-text {
381
+ .label > .helper-text {
321
382
  --helper-color: var(--foreground-400);
322
383
  }
323
384
 
324
- .label .helper-text[data-error] {
385
+ .label > .helper-text[data-error] {
325
386
  --helper-error-color: var(--danger-600);
326
387
  }
327
388
 
328
- /* Input Styles */
329
-
330
389
  .input {
331
390
  --background: var(--background-950);
332
- --foreground: var(--foreground-50);
333
- --placeholder: var(--foreground-400);
391
+ --foreground: var(--foreground-300);
392
+ --placeholder: color-mix(in srgb, var(--foreground-400) 80%, transparent);
334
393
  --background-border: var(--background-700);
335
394
  --ring: var(--accent-500);
336
395
  --ring-border: var(--ring);
@@ -341,42 +400,6 @@
341
400
  font-weight: var(--font-weight-medium)
342
401
  }
343
402
 
344
- .input input {
345
- height: fit-content;
346
- flex: 1;
347
- min-width: 0;
348
- @apply py-1.5 px-3;
349
- font-family: inherit;
350
- font-size: var(--text-sm);
351
- font-weight: var(--font-weight-medium);
352
- line-height: var(--leading-snug);
353
- color: var(--foreground);
354
- background-color: transparent;
355
- border: none;
356
- outline: none;
357
- box-sizing: border-box;
358
- }
359
-
360
- .input input::placeholder {
361
- color: var(--placeholder);
362
- }
363
-
364
- .input input[data-disabled] {
365
- color: var(--disabled-foreground);
366
- cursor: not-allowed;
367
- }
368
-
369
- .input input[type="number"]::-webkit-outer-spin-button,
370
- .input input[type="number"]::-webkit-inner-spin-button {
371
- -webkit-appearance: none;
372
- margin: 0;
373
- display: none;
374
- }
375
-
376
- .input input[type="number"] {
377
- -moz-appearance: textfield;
378
- }
379
-
380
403
  .input[data-error] {
381
404
  --ring: var(--danger-600);
382
405
  --ring-border: var(--ring);
@@ -392,73 +415,105 @@
392
415
  box-shadow: none;
393
416
  }
394
417
 
395
- .input .icon {
396
- --foreground: var(--foreground-400);
418
+ .input > [data-start-adornments] > .icon-wrapper > .icon,
419
+ .input > [data-end-adornments] > .icon-wrapper > .icon {
420
+ --foreground: var(--foreground-300);
397
421
  }
398
422
 
399
- .input .stepper {
423
+ .input > [data-end-adornments] > div > .stepper {
400
424
  --foreground: var(--foreground-400);
401
425
  --hover-background: var(--background-800);
402
426
  --hover-color: var(--foreground-200);
403
427
  --active-background: var(--background-700);
404
- --active-color: var(--accent-500);
428
+ --active-color: var(--foreground-100);
405
429
  }
406
430
 
407
- /* Radio Styles */
408
-
409
431
  .radio {
410
- --background: var(--background-800);
432
+ --background: var(--background-900);
411
433
  --background-border: var(--background-700);
412
- --background-selected: var(--accent-500);
413
- --background-selected-border: var(--accent-500);
414
- --background-hover: var(--background-900);
415
- --background-hover-border: var(--background-500);
416
- --background-error-border: var(--danger-500);
417
- --dot-color: transparent;
418
- --dot-selected-color: var(--foreground-400);
419
434
  --focus-visible: rgb(59, 130, 246);
420
435
  }
421
436
 
422
- .radio-group .radio-label,
423
- .radio-item .radio-label {
437
+ .radio.secondary {
438
+ --background: var(--background-900);
439
+ --background-border: var(--background-700);
440
+ }
441
+
442
+ .radio.outline {
443
+ --background: transparent;
444
+ --background-border: var(--background-700);
445
+ }
446
+
447
+ .radio[data-hovered="true"]:not([data-disabled="true"]),
448
+ .radio:hover:not([data-disabled="true"]) {
449
+ --background: color-mix(in srgb, var(--background-500) 10%, var(--background-900));
450
+ --background-border: var(--background-600);
451
+ }
452
+
453
+ .radio[data-selected="true"] {
454
+ --background: var(--background-900);
455
+ --background-border: var(--background-700);
456
+ }
457
+
458
+ .radio.outline[data-selected="true"] {
459
+ --background: var(--background-600);
460
+ --background-border: var(--background-600);
461
+ }
462
+
463
+ .radio[data-selected="true"][data-hovered="true"]:not([data-disabled="true"]),
464
+ .radio[data-selected="true"]:hover:not([data-disabled="true"]) {
465
+ --background: var(--background-800);
466
+ --background-border: var(--background-600);
467
+ }
468
+
469
+ .radio[data-error="true"] {
470
+ --background-border: var(--danger-500);
471
+ }
472
+
473
+ .radio[data-error="true"][data-selected="true"] {
474
+ --background-border: var(--background-600);
475
+ }
476
+
477
+ .radio > .dot {
478
+ --background: var(--foreground-300);
479
+ }
480
+
481
+ .radio[data-selected="true"] > .dot {
482
+ --background: var(--foreground-400);
483
+ }
484
+
485
+ .radio-group > .radio-label,
486
+ .radio-item > div > .radio-label {
424
487
  --foreground: var(--foreground-300);
425
- --foreground-disabled: var(--foreground-400);
426
488
  }
427
489
 
428
- .radio-group .radio-description,
429
- .radio-item .radio-description {
490
+ .radio-group > .radio-label[data-disabled="true"],
491
+ .radio-item > div > .radio-label[data-disabled="true"] {
430
492
  --foreground: var(--foreground-400);
431
- --foreground-error: var(--danger-500);
432
493
  }
433
494
 
434
- .radio-item .helper-text {
495
+ .radio-group > .radio-description,
496
+ .radio-item > div > .radio-description {
435
497
  --foreground: var(--foreground-400);
436
- --foreground-error: var(--danger-500);
437
498
  }
438
499
 
439
- .radio.primary[data-selected="true"] {
440
- --background-selected: var(--accent-500);
441
- --background-selected-border: var(--accent-500);
500
+ .radio-group > .radio-description[data-error="true"],
501
+ .radio-item > div > .radio-description[data-error="true"] {
502
+ --foreground: var(--danger-500);
442
503
  }
443
504
 
444
- .radio.secondary {
445
- --background: var(--background-800);
446
- --background-border: var(--background-700);
505
+ .radio-item > .helper-text {
506
+ --foreground: var(--foreground-400);
447
507
  }
448
508
 
449
- .radio.outline {
450
- --background: transparent;
451
- --background-border: var(--background-700);
509
+ .radio-item > .helper-text[data-error="true"] {
510
+ --foreground: var(--danger-500);
452
511
  }
453
512
 
454
- .radio.outline[data-selected="true"] {
455
- --background-selected: color-mix(in srgb, var(--accent-500) 15%, transparent);
456
- --background-selected-border: var(--accent-500);
457
- --dot-selected-color: var(--accent-500);
513
+ .radio.outline[data-selected="true"] > .dot {
514
+ --background: var(--accent-500);
458
515
  }
459
516
 
460
- /* Select Styles */
461
-
462
517
  .select {
463
518
  --background: color-mix(in srgb, var(--background-800) 50%, transparent);
464
519
  --foreground: var(--foreground-300);
@@ -470,127 +525,136 @@
470
525
  --foreground-size: var(--text-xs)
471
526
  }
472
527
 
473
- .select .ghost {
528
+ .select.ghost,
529
+ .select > .ghost {
474
530
  --background: transparent;
475
531
  --background-border: transparent;
476
532
  --background-hover: color-mix(in srgb, var(--background-700) 50%, transparent);
477
533
  --background-pressed: color-mix(in srgb, var(--background-700) 50%, transparent);
478
534
  }
479
535
 
480
- .select .content,
481
- .select .sub-content {
536
+ .select > .content,
537
+ .select > .sub-content {
482
538
  --background: var(--background-900);
483
539
  --background-border: var(--background-700);
484
540
  }
485
541
 
486
- .select .item,
487
- .select .sub-trigger {
542
+ .select > .content [role="option"].item,
543
+ .select > .content [role="option"].sub-trigger,
544
+ .select > .sub-content [role="option"].item,
545
+ .select > .sub-content [role="option"].sub-trigger {
546
+ --background: transparent;
488
547
  --foreground: var(--foreground-300);
489
548
  --foreground-muted: var(--foreground-400);
490
549
  --icon-foreground: var(--foreground-300);
491
550
  --indicator-foreground: var(--accent-300);
492
- --background-highlighted: color-mix(in srgb, var(--background-700) 50%, transparent);
493
- --item-background: transparent;
494
- --item-background-hover: var(--background-highlighted);
495
- --item-background-highlighted: var(--background-highlighted);
496
551
  }
497
552
 
498
- .select .placeholder {
553
+ .select > .content [role="option"].item[data-highlighted="true"],
554
+ .select > .content [role="option"].sub-trigger[data-highlighted="true"],
555
+ .select > .sub-content [role="option"].item[data-highlighted="true"],
556
+ .select > .sub-content [role="option"].sub-trigger[data-highlighted="true"],
557
+ .select > .content [role="option"].sub-trigger[data-open="true"]:not([data-highlighted="true"]),
558
+ .select > .sub-content [role="option"].sub-trigger[data-open="true"]:not([data-highlighted="true"]) {
559
+ --background: color-mix(in srgb, var(--background-700) 50%, transparent);
560
+ }
561
+
562
+ .select > .placeholder {
499
563
  --foreground-muted: var(--foreground-400);
500
564
  }
501
565
 
502
- .select .empty-state {
566
+ .select > .content > .empty-state {
503
567
  font-size: var(--text-xs);
504
568
  }
505
569
 
506
- .select .search-trigger {
570
+ .select.search-trigger {
507
571
  --focus-visible: var(--accent-500);
508
572
  }
509
573
 
510
- /* Slider Styles */
511
-
512
- .slider .track {
574
+ .slider > .track {
513
575
  --background: var(--background-800);
514
576
  }
515
577
 
516
- .slider .range {
578
+ .slider > .track > .range {
517
579
  --background: color-mix(in srgb, var(--accent-500) 60%, transparent);
518
580
  --background-disabled: var(--background-600);
519
581
  }
520
582
 
521
- .slider .thumb {
583
+ .slider > .track > .thumb {
522
584
  --background: white;
523
- --background-border: color-mix(in srgb, var(--background-500) 40%, transparent);;
585
+ --background-border: color-mix(in srgb, var(--background-500) 40%, transparent);
524
586
  --background-focused: var(--accent-400);
525
587
  --background-disabled: var(--background-500);
526
588
  --focus-visible: color-mix(in srgb, var(--accent-500) 40%, transparent);
527
589
  }
528
590
 
529
- /* Switch Styles */
530
-
531
591
  .switch {
532
592
  --background: var(--background-700);
533
- --background-active: color-mix(in srgb, var(--accent-500) 80%, var(--background-500));
534
593
  --foreground: var(--background-500);
535
- --foreground-active: white;
594
+ --background-border: var(--background-600);
595
+ --focus-visible: 0 0 0 3px color-mix(in srgb, var(--accent-500) 40%, transparent);
596
+ }
536
597
 
537
- --border: var(--background-600);
538
- --border-hover: transparent;
539
- --border-pressed: transparent;
540
- --border-active: transparent;
598
+ .switch[data-selected="true"] {
599
+ --background: color-mix(in srgb, var(--background-500) 90%, transparent);
600
+ --background-border: color-mix(in srgb, var(--background-500) 20%, transparent);
601
+ --foreground: color-mix(in srgb, var(--foreground-400) 20%, white);
602
+ }
541
603
 
542
- --focus-visible: 0 0 0 3px color-mix(in srgb, var(--accent-500) 40%, transparent);
604
+ .switch[data-selected="true"][data-hovered="true"]:not([data-disabled="true"]) {
605
+ --background-border: color-mix(in srgb, var(--background-500) 30%, transparent);
543
606
  }
544
607
 
545
- /* Textarea Styles */
608
+ .switch:active:not([data-disabled="true"]) {
609
+ --background-border: color-mix(in srgb, var(--background-500) 30%, transparent);
610
+ }
611
+
612
+ .switch[data-selected="true"]:active:not([data-disabled="true"]) {
613
+ --background: var(--background-600);
614
+ }
546
615
 
547
616
  .textarea {
548
617
  --background: var(--background-950);
549
618
  --foreground: var(--foreground-50);
550
619
  --placeholder: var(--foreground-400);
551
620
  --background-border: var(--background-700);
552
- --background-hover: var(--background-900);
553
- --background-disabled: var(--background-900);
554
- --foreground-disabled: var(--foreground-400);
555
621
  --disabled-opacity: 0.6;
556
622
  }
557
623
 
558
- .textarea[data-error] {
559
- --background-error-border: var(--danger-600);
624
+ .textarea[data-disabled="true"] {
625
+ --background: var(--background-900);
626
+ --foreground: var(--foreground-400);
560
627
  }
561
628
 
562
- .textarea-scope .scroll-wrapper {
629
+ .textarea[data-error="true"] {
630
+ --background-border: var(--danger-600);
631
+ }
632
+
633
+ .textarea-scope > .container > .surface > .scroll-wrapper {
563
634
  --background: var(--background-950);
564
635
  --background-border: var(--background-700);
565
- --background-hover: var(--background-900);
566
- --background-disabled: var(--background-900);
567
636
  --disabled-opacity: 0.6;
568
637
  }
569
638
 
570
- .textarea-scope .scroll-wrapper[data-error] {
571
- --background-error-border: var(--danger-600);
639
+ .textarea-scope > .container > .surface > .resize-handle {
640
+ --background: color-mix(in srgb, var(--foreground-400) 72%, transparent);
572
641
  }
573
642
 
574
- .textarea-scope .resize-handle {
575
- --handle-background: color-mix(in srgb, var(--foreground-400) 72%, transparent);
576
- --handle-hover-background: color-mix(in srgb, var(--foreground-200) 90%, transparent);
643
+ .textarea-scope > .container > .surface > .resize-handle:hover {
644
+ --background: color-mix(in srgb, var(--foreground-200) 90%, transparent);
577
645
  }
578
646
 
579
- .textarea-scope .character-count {
580
- --count-foreground: var(--foreground-400);
581
- --count-over-limit-foreground: var(--danger-600);
647
+ .textarea-scope > .container > .character-count {
648
+ --foreground: var(--foreground-400);
649
+ --foreground-error: var(--danger-600);
582
650
  }
583
651
 
584
- /* Banner Styles */
585
-
586
652
  .banner {
587
653
  --background: var(--background-900);
588
654
  --foreground: var(--info-50);
589
655
  --border: var(--info-600);
590
656
  }
591
657
 
592
- /* Badge Styles */
593
-
594
658
  .badge.sm {
595
659
  @apply px-1.5 py-0.5 font-semibold
596
660
  }
@@ -611,28 +675,24 @@
611
675
  font-size: var(--text-xs)
612
676
  }
613
677
 
614
- .badge .dismiss {
615
- --dismiss-foreground: var(--foreground-400);
616
- --dismiss-hover-background: color-mix(in srgb, var(--background-700) 80%, var(--background-900));
617
- --dismiss-pressed-background: var(--background-700);
618
- --dismiss-focus-visible: var(--accent-400);
678
+ .badge > .dismiss {
679
+ --foreground: var(--foreground-400);
680
+ --background-hover: color-mix(in srgb, var(--background-700) 80%, var(--background-900));
681
+ --background-pressed: var(--background-700);
682
+ --focus-visible: var(--accent-400);
619
683
  }
620
684
 
621
- /* Popover Styles */
622
-
623
- .popover .content {
685
+ .popover > .content {
624
686
  --background: var(--background-900);
625
687
  --background-hover: var(--background-900);
626
688
  --background-border: var(--background-700);
627
689
  }
628
690
 
629
- .popover .frame {
691
+ .popover > .content > div > div > .frame {
630
692
  --foreground: var(--foreground-200);
631
693
  }
632
694
 
633
- /* Tooltip Styles */
634
-
635
- .tooltip .content {
695
+ .tooltip > .content {
636
696
  --background: var(--background-900);
637
697
  --background-hover: var(--background-900);
638
698
  --background-border: var(--background-700);
@@ -640,38 +700,37 @@
640
700
  font-weight: var(--font-weight-medium);
641
701
  }
642
702
 
643
- .tooltip .frame {
703
+ .tooltip > .content > div > div > .frame {
644
704
  --foreground: var(--foreground-200);
645
705
  }
646
706
 
647
- /* Progress Styles */
648
-
649
707
  .progress {
650
708
  --background: var(--background-700);
651
- --fill-background: color-mix(in srgb, var(--accent-600) 60%, var(--background-500));
652
709
  }
653
710
 
654
- .progress .label-row {
655
- --foreground: var(--foreground-400);
711
+ .progress > .fill {
712
+ --background: color-mix(in srgb, var(--accent-600) 60%, var(--background-500));
656
713
  }
657
714
 
658
- .progress .bar[data-variant="default"] .fill {
659
- --fill-background: var(--accent-500);
715
+ .progress > .label-row {
716
+ --foreground: var(--foreground-400);
660
717
  }
661
718
 
662
- .progress .bar[data-variant="success"] .fill {
663
- --fill-background: var(--success-500);
719
+ .progress > .bar[data-variant="default"] > .fill {
720
+ --background: var(--accent-500);
664
721
  }
665
722
 
666
- .progress .bar[data-variant="warning"] .fill {
667
- --fill-background: var(--warning-500);
723
+ .progress > .bar[data-variant="success"] > .fill {
724
+ --background: var(--success-500);
668
725
  }
669
726
 
670
- .progress .bar[data-variant="error"] .fill {
671
- --fill-background: var(--danger-500);
727
+ .progress > .bar[data-variant="warning"] > .fill {
728
+ --background: var(--warning-500);
672
729
  }
673
730
 
674
- /* Toast Styles */
731
+ .progress > .bar[data-variant="error"] > .fill {
732
+ --background: var(--danger-500);
733
+ }
675
734
 
676
735
  .toast {
677
736
  --background: var(--background-900);
@@ -686,120 +745,140 @@
686
745
  --background-border: var(--background-600);
687
746
  }
688
747
 
689
- .toast .icon {
748
+ .toast > .icon-wrap > .icon {
690
749
  --foreground: currentColor;
691
750
  }
692
751
 
693
- .toast .title {
752
+ .toast > .content > .title {
694
753
  --foreground: var(--foreground-100);
695
754
  }
696
755
 
697
- .toast .description {
756
+ .toast > .content > .description {
698
757
  --foreground: var(--foreground-300);
699
758
  }
700
759
 
701
- .toast.danger .icon {
760
+ .toast.danger > .icon-wrap > .icon {
702
761
  --foreground: var(--danger-600);
703
762
  }
704
763
 
705
- .toast.success .icon {
764
+ .toast.success > .icon-wrap > .icon {
706
765
  --foreground: var(--success-600);
707
766
  }
708
767
 
709
- .toast.info .icon {
768
+ .toast.info > .icon-wrap > .icon {
710
769
  --foreground: var(--info-600);
711
770
  }
712
771
 
713
- .toast.warning .icon {
772
+ .toast.warning > .icon-wrap > .icon {
714
773
  --foreground: var(--warning-600);
715
774
  }
716
775
 
717
- .toast .close {
776
+ .toast > .close {
777
+ --background: transparent;
718
778
  --foreground: currentColor;
719
- --background-hover: transparent;
720
779
  --focus-visible: var(--accent-400);
721
780
  }
722
781
 
723
-
724
-
725
- .toast.danger .close {
782
+ .toast.danger > .close {
726
783
  --foreground: color-mix(in srgb, var(--danger-600) 60%, var(--foreground-50));
727
- --background-hover: color-mix(in srgb, var(--danger-500) 20%, var(--background-900));
728
784
  --focus-visible: var(--danger-400);
729
785
  }
730
786
 
731
- .toast.success .close {
787
+ .toast.danger > .close[data-hovered="true"]:not([data-disabled="true"]) {
788
+ --background: color-mix(in srgb, var(--danger-500) 20%, var(--background-900));
789
+ }
790
+
791
+ .toast.success > .close {
732
792
  --foreground: color-mix(in srgb, var(--success-600) 60%, var(--foreground-50));
733
- --background-hover: color-mix(in srgb, var(--success-500) 20%, var(--background-900));
734
793
  --focus-visible: var(--success-400);
735
794
  }
736
795
 
737
- .toast.info .close {
796
+ .toast.success > .close[data-hovered="true"]:not([data-disabled="true"]) {
797
+ --background: color-mix(in srgb, var(--success-500) 20%, var(--background-900));
798
+ }
799
+
800
+ .toast.info > .close {
738
801
  --foreground: color-mix(in srgb, var(--info-600) 60%, var(--foreground-50));
739
- --background-hover: color-mix(in srgb, var(--info-500) 20%, var(--background-900));
740
802
  --focus-visible: var(--info-400);
741
803
  }
742
804
 
743
- .toast.warning .close {
805
+ .toast.info > .close[data-hovered="true"]:not([data-disabled="true"]) {
806
+ --background: color-mix(in srgb, var(--info-500) 20%, var(--background-900));
807
+ }
808
+
809
+ .toast.warning > .close {
744
810
  --foreground: color-mix(in srgb, var(--warning-600) 60%, var(--foreground-50));
745
- --background-hover: color-mix(in srgb, var(--warning-500) 20%, var(--background-900));
746
811
  --focus-visible: var(--warning-400);
747
812
  }
748
813
 
749
- /* Menu Styles */
814
+ .toast.warning > .close[data-hovered="true"]:not([data-disabled="true"]) {
815
+ --background: color-mix(in srgb, var(--warning-500) 20%, var(--background-900));
816
+ }
750
817
 
751
- .menu .content,
752
- .menu .sub-content {
818
+ .menu > .content,
819
+ .menu > .sub-content {
753
820
  --background: var(--background-900);
754
821
  --background-border: var(--background-700);
755
- --content-open-animation: slide-in-from-top 0.15s var(--ease-snappy-pop);
756
- --content-closed-animation: slide-out-to-top 0.15s var(--ease-snappy-pop);
822
+ --open-animation: slide-in-from-top 0.15s var(--ease-snappy-pop);
823
+ --closed-animation: slide-out-to-top 0.15s var(--ease-snappy-pop);
757
824
  font-size: var(--text-xs)
758
825
  }
759
826
 
760
- .menu .trigger {
827
+ .menu.trigger {
761
828
  --background-pressed: var(--background-700);
762
829
  }
763
830
 
764
- .menu .item,
765
- .menu .checkbox-item,
766
- .menu .radio-item,
767
- .menu .sub-trigger {
831
+ .menu > :is(.content, .sub-content) .item {
832
+ --background: transparent;
768
833
  --foreground: var(--foreground-300);
769
834
  --background-focused: color-mix(in srgb, var(--background-700) 50%, transparent);
770
835
  }
771
836
 
772
- .menu .item-indicator {
773
- --indicator-foreground: var(--accent-300);
837
+ .menu > :is(.content, .sub-content) .item-indicator {
838
+ --foreground: var(--accent-300);
774
839
  }
775
840
 
776
- .menu .label,
777
- .menu .shortcut {
841
+ .menu > :is(.content, .sub-content) :is(.label, .shortcut) {
778
842
  --foreground-muted: var(--foreground-400);
779
843
  }
780
844
 
781
- /* Path Styles */
782
-
783
- .path.link {
845
+ .path-link {
846
+ --background: transparent;
784
847
  --foreground: var(--foreground-300);
785
- --foreground-hover: var(--accent-300);
786
- --foreground-selected: var(--foreground-400);
787
- --foreground-disabled: var(--foreground-400);
788
- --background-hover: color-mix(in srgb, var(--background-700) 50%, transparent);
789
- --background-pressed: color-mix(in srgb, var(--background-700) 70%, transparent);
790
848
  --focus-visible: var(--accent-500);
791
849
  --disabled-opacity: 0.6;
792
850
  }
793
851
 
794
- .path.separator {
795
- --separator-foreground: var(--background-700);
852
+ .path-link[data-hovered="true"]:not([data-disabled="true"]):not([data-selected="true"]) {
853
+ --background: color-mix(in srgb, var(--background-700) 50%, transparent);
854
+ --foreground: var(--foreground-200);
855
+ }
856
+
857
+ .path-link[data-pressed="true"]:not([data-disabled="true"]):not([data-selected="true"]) {
858
+ --background: color-mix(in srgb, var(--background-700) 70%, transparent);
859
+ }
860
+
861
+ .path-link[data-selected="true"] {
862
+ --background: transparent;
863
+ --foreground: var(--foreground-100);
864
+ }
865
+
866
+ .path-link[data-selected="true"][data-hovered="true"]:not([data-disabled="true"]) {
867
+ --background: transparent;
868
+ }
869
+
870
+ .path-link[data-disabled="true"] {
871
+ --background: transparent;
872
+ --foreground: var(--foreground-400);
796
873
  }
797
874
 
798
- .path.item {
799
- --separator-foreground: var(--background-700);
875
+ .path-separator {
876
+ --foreground: var(--foreground-400);
800
877
  }
801
878
 
802
- /* Tabs Styles */
879
+ .path-item {
880
+ --foreground: var(--foreground-400);
881
+ }
803
882
 
804
883
  .tabs.indicator {
805
884
  --background: color-mix(in srgb, var(--background-700) 50%, transparent);
@@ -815,57 +894,80 @@
815
894
 
816
895
  .tabs.trigger {
817
896
  --background: transparent;
818
- --background-hover: var(--background-900);
819
- --background-pressed: var(--background-800);
820
- --background-selected: transparent;
821
- --background-focused: var(--background-800);
822
897
  --foreground: var(--foreground-400);
823
- --foreground-hover: var(--foreground-200);
824
- --foreground-pressed: var(--foreground-50);
825
- --foreground-selected: var(--foreground-50);
826
898
  --underline-border: var(--accent-500);
827
899
  font-size: var(--text-xs);
828
900
  }
829
901
 
902
+ .tabs.trigger[data-hovered="true"]:not([data-disabled="true"]):not([data-selected="true"]) {
903
+ --background: var(--background-900);
904
+ --foreground: var(--foreground-200);
905
+ }
906
+
907
+ .tabs.trigger[data-pressed="true"]:not([data-disabled="true"]):not([data-selected="true"]) {
908
+ --background: var(--background-800);
909
+ --foreground: var(--foreground-50);
910
+ }
911
+
912
+ .tabs.trigger[data-selected="true"] {
913
+ --background: transparent;
914
+ --foreground: var(--foreground-50);
915
+ }
916
+
917
+ .tabs.trigger[data-selected="true"][data-hovered="true"]:not([data-disabled="true"]) {
918
+ --background: transparent;
919
+ --foreground: var(--foreground-50);
920
+ }
921
+
830
922
  .tabs.content {
831
923
  --focus-visible: var(--accent-500);
832
924
  }
833
925
 
834
- /* Anchor Styles */
835
-
926
+ .anchor,
836
927
  .anchor.trigger {
837
928
  --foreground: var(--foreground-200);
838
929
  --underline-background: var(--background-600);
839
- --underline-background-hover: var(--foreground-400);
840
930
  --focus-ring: var(--color-background-600);
841
931
  }
842
932
 
843
- /* Modal Styles */
933
+ .anchor[data-hovered="true"]:not([data-disabled="true"]),
934
+ .anchor.trigger[data-hovered="true"]:not([data-disabled="true"]) {
935
+ --underline-background: var(--foreground-400);
936
+ }
844
937
 
845
938
  .modal {
846
939
  --background: var(--background-900);
847
940
  --background-border: var(--background-700);
848
941
  --foreground: var(--foreground-300);
849
942
  --focus-visible: var(--accent-500);
850
- --scrollbar-thumb-background: var(--background-700);
851
- --scrollbar-thumb-hover-background: var(--foreground-400);
852
943
  }
853
944
 
854
- .modal .title {
945
+ .modal > .panel > .header > .title {
855
946
  --title-foreground: var(--foreground-100);
856
947
  }
857
948
 
858
- .modal .close {
859
- --close-foreground: var(--foreground-400);
860
- --close-hover-foreground: var(--foreground-200);
949
+ .modal > .panel > .header > .close {
950
+ --foreground: var(--foreground-400);
861
951
  --focus-visible: var(--accent-500);
862
952
  }
863
953
 
864
- .modal .footer {
954
+ .modal > .panel > .header > .close[data-hovered="true"] {
955
+ --foreground: var(--foreground-200);
956
+ }
957
+
958
+ .modal > .panel > .content::-webkit-scrollbar-thumb {
959
+ --background: var(--background-700);
960
+ }
961
+
962
+ .modal > .panel > .content::-webkit-scrollbar-thumb:hover {
963
+ --background: var(--foreground-400);
964
+ }
965
+
966
+ .modal > .panel > .footer {
865
967
  --footer-background: var(--background-900);
866
968
  }
867
969
 
868
- .modal .backdrop {
970
+ .modal > .backdrop {
869
971
  --backdrop-background: rgb(0 0 0 / 50%);
870
972
  }
871
973
 
@@ -874,14 +976,20 @@
874
976
  }
875
977
 
876
978
  /* Scroll Component */
877
- .scroll .track {
878
- --track-background: transparent;
979
+ .scroll > .track {
980
+ --background: transparent;
981
+ }
982
+
983
+ .scroll > .track > .thumb {
984
+ --background: var(--background-700);
879
985
  }
880
986
 
881
- .scroll .thumb {
882
- --thumb-background: var(--background-700);
883
- --thumb-background-hover: var(--background-600);
884
- --thumb-background-pressed: color-mix(in srgb, var(--background-500) 40%, var(--background-900));
987
+ .scroll > .track > .thumb:hover {
988
+ --background: var(--background-600);
989
+ }
990
+
991
+ .scroll[data-pressed="true"] > .track > .thumb {
992
+ --background: color-mix(in srgb, var(--background-500) 40%, var(--background-900));
885
993
  }
886
994
  }
887
995
 
@@ -890,96 +998,147 @@
890
998
  --background: var(--foreground-100);
891
999
  --foreground: var(--background-900);
892
1000
  --background-border: var(--foreground-200);
893
- --background-hover: color-mix(in srgb, var(--foreground-100) 90%, var(--background-600));
894
- --background-hover-border: color-mix(in srgb, var(--foreground-100) 90%, var(--background-600));
895
- --background-pressed: color-mix(in srgb, var(--foreground-100) 85%, var(--background-600));
896
- --background-pressed-border: color-mix(in srgb, var(--foreground-100) 85%, var(--background-600));
1001
+ }
1002
+
1003
+ .primary[data-hovered="true"]:not([data-disabled="true"]) {
1004
+ --background: color-mix(in srgb, var(--foreground-100) 90%, var(--background-600));
1005
+ --background-border: color-mix(in srgb, var(--foreground-100) 90%, var(--background-600));
1006
+ }
1007
+
1008
+ .primary[data-pressed="true"]:not([data-disabled="true"]) {
1009
+ --background: color-mix(in srgb, var(--foreground-100) 85%, var(--background-600));
1010
+ --background-border: color-mix(in srgb, var(--foreground-100) 85%, var(--background-600));
897
1011
  }
898
1012
 
899
1013
  .secondary {
900
1014
  --background: var(--background-900);
901
1015
  --foreground: var(--foreground-200);
902
1016
  --background-border: var(--background-700);
903
- --background-hover: color-mix(in srgb, var(--background-700) 50%, var(--background-950));
904
- --background-hover-border: var(--background-700);
905
- --background-pressed: color-mix(in srgb, var(--background-700) 60%, var(--background-950));
906
- --background-pressed-border: var(--background-700);
1017
+ }
1018
+
1019
+ .secondary[data-hovered="true"]:not([data-disabled="true"]) {
1020
+ --background: color-mix(in srgb, var(--background-700) 50%, var(--background-950));
1021
+ --background-border: var(--background-700);
1022
+ }
1023
+
1024
+ .secondary[data-pressed="true"]:not([data-disabled="true"]) {
1025
+ --background: color-mix(in srgb, var(--background-700) 60%, var(--background-950));
1026
+ --background-border: var(--background-700);
907
1027
  }
908
1028
 
909
1029
  .outline {
910
1030
  --background: transparent;
911
1031
  --foreground: var(--foreground-300);
912
1032
  --background-border: var(--background-700);
913
- --background-hover: color-mix(in srgb, var(--background-950) 90%, var(--background-500));
914
- --background-hover-border: var(--background-600);
915
- --background-pressed: color-mix(in srgb, var(--background-900) 90%, var(--background-500));
916
- --background-pressed-border: var(--background-600);
917
1033
  outline: unset !important /* override tailwindcss */
918
1034
  }
919
1035
 
1036
+ .outline[data-hovered="true"]:not([data-disabled="true"]) {
1037
+ --background: color-mix(in srgb, var(--background-950) 90%, var(--background-500));
1038
+ --background-border: var(--background-600);
1039
+ }
1040
+
1041
+ .outline[data-pressed="true"]:not([data-disabled="true"]) {
1042
+ --background: color-mix(in srgb, var(--background-900) 90%, var(--background-500));
1043
+ --background-border: var(--background-600);
1044
+ }
1045
+
920
1046
  .danger {
921
1047
  --background: color-mix(in srgb, var(--danger-500) 15%, transparent);
922
1048
  --foreground: var(--danger-600);
923
1049
  --background-border: transparent;
924
1050
  --focus-visible: var(--danger-400);
925
- --background-hover: color-mix(in srgb, var(--danger-500) 25%, transparent);
926
- --background-hover-border: transparent;
927
- --background-pressed: color-mix(in srgb, var(--danger-500) 30%, transparent);
928
- --background-pressed-border: transparent;
1051
+ }
1052
+
1053
+ .danger[data-hovered="true"]:not([data-disabled="true"]) {
1054
+ --background: color-mix(in srgb, var(--danger-500) 25%, transparent);
1055
+ --background-border: transparent;
1056
+ }
1057
+
1058
+ .danger[data-pressed="true"]:not([data-disabled="true"]) {
1059
+ --background: color-mix(in srgb, var(--danger-500) 30%, transparent);
1060
+ --background-border: transparent;
929
1061
  }
930
1062
 
931
1063
  .ghost {
932
1064
  --background: transparent;
933
1065
  --foreground: var(--foreground-300);
934
1066
  --background-border: transparent;
935
- --background-hover: var(--background-800);
936
- --background-hover-border: transparent;
1067
+ }
1068
+
1069
+ .ghost[data-hovered="true"]:not([data-disabled="true"]) {
1070
+ --background: var(--background-800);
1071
+ --background-border: transparent;
937
1072
  }
938
1073
 
939
1074
  .default {
940
1075
  --background: color-mix(in srgb, var(--background-600) 10%, var(--background-900));
941
1076
  --foreground: var(--foreground-200);
942
1077
  --background-border: var(--background-700);
943
- --background-hover: color-mix(in srgb, var(--background-500) 20%, var(--background-900));
944
- --background-hover-border: var(--background-600);
945
- --background-pressed: color-mix(in srgb, var(--background-500) 30%, var(--background-900));
946
- --background-pressed-border: var(--background-600);
947
1078
  --focus-visible: var(--accent-400);
948
1079
  }
949
1080
 
1081
+ .default[data-hovered="true"]:not([data-disabled="true"]) {
1082
+ --background: color-mix(in srgb, var(--background-500) 20%, var(--background-900));
1083
+ --background-border: var(--background-600);
1084
+ }
1085
+
1086
+ .default[data-pressed="true"]:not([data-disabled="true"]) {
1087
+ --background: color-mix(in srgb, var(--background-500) 30%, var(--background-900));
1088
+ --background-border: var(--background-600);
1089
+ }
1090
+
950
1091
  .success {
951
1092
  --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
952
1093
  --foreground: var(--success-600);
953
1094
  --background-border: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
954
- --background-hover: color-mix(in srgb, var(--success-600) 15%, var(--background-900));
955
- --background-hover-border: color-mix(in srgb, var(--success-600) 30%, var(--background-900));
956
- --background-pressed: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
957
- --background-pressed-border: color-mix(in srgb, var(--success-600) 30%, var(--background-900));
958
1095
  --focus-visible: var(--success-400);
959
1096
  }
960
1097
 
1098
+ .success[data-hovered="true"]:not([data-disabled="true"]) {
1099
+ --background: color-mix(in srgb, var(--success-600) 15%, var(--background-900));
1100
+ --background-border: color-mix(in srgb, var(--success-600) 30%, var(--background-900));
1101
+ }
1102
+
1103
+ .success[data-pressed="true"]:not([data-disabled="true"]) {
1104
+ --background: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
1105
+ --background-border: color-mix(in srgb, var(--success-600) 30%, var(--background-900));
1106
+ }
1107
+
961
1108
  .warning {
962
1109
  --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
963
1110
  --foreground: var(--warning-600);
964
1111
  --background-border: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
965
- --background-hover: color-mix(in srgb, var(--warning-600) 15%, var(--background-900));
966
- --background-hover-border: color-mix(in srgb, var(--warning-600) 30%, var(--background-900));
967
- --background-pressed: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
968
- --background-pressed-border: color-mix(in srgb, var(--warning-600) 30%, var(--background-900));
969
1112
  --focus-visible: var(--warning-400);
970
1113
  }
971
1114
 
1115
+ .warning[data-hovered="true"]:not([data-disabled="true"]) {
1116
+ --background: color-mix(in srgb, var(--warning-600) 15%, var(--background-900));
1117
+ --background-border: color-mix(in srgb, var(--warning-600) 30%, var(--background-900));
1118
+ }
1119
+
1120
+ .warning[data-pressed="true"]:not([data-disabled="true"]) {
1121
+ --background: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
1122
+ --background-border: color-mix(in srgb, var(--warning-600) 30%, var(--background-900));
1123
+ }
1124
+
972
1125
  .info {
973
1126
  --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
974
1127
  --foreground: var(--info-600);
975
1128
  --background-border: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
976
- --background-hover: color-mix(in srgb, var(--info-600) 15%, var(--background-900));
977
- --background-hover-border: color-mix(in srgb, var(--info-600) 30%, var(--background-900));
978
- --background-pressed: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
979
- --background-pressed-border: color-mix(in srgb, var(--info-600) 30%, var(--background-900));
980
1129
  --focus-visible: var(--info-400);
981
1130
  }
982
1131
 
1132
+ .info[data-hovered="true"]:not([data-disabled="true"]) {
1133
+ --background: color-mix(in srgb, var(--info-600) 15%, var(--background-900));
1134
+ --background-border: color-mix(in srgb, var(--info-600) 30%, var(--background-900));
1135
+ }
1136
+
1137
+ .info[data-pressed="true"]:not([data-disabled="true"]) {
1138
+ --background: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
1139
+ --background-border: color-mix(in srgb, var(--info-600) 30%, var(--background-900));
1140
+ }
1141
+
983
1142
  .banner.note {
984
1143
  --background: var(--background-900);
985
1144
  --foreground: var(--foreground-200);