ui-lab-theme-onyx 0.3.4 → 0.3.42

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 +888 -765
package/styles.css CHANGED
@@ -1,768 +1,891 @@
1
1
  /* Onyx Theme - Button Styles */
2
2
 
3
- .button {
4
- --background: var(--background-800);
5
- --foreground: var(--foreground-200);
6
- --background-border: color-mix(in srgb, var(--background-600) 15%, transparent);
7
- --focus-visible: var(--accent-400);
8
- --hover-background: color-mix(in srgb, var(--background-600) 40%, var(--background-950));
9
- --hover-border: color-mix(in srgb, var(--background-600) 75%, var(--background-950));
3
+ @layer components {
4
+ .button {
5
+ --background: var(--background-800);
6
+ --foreground: var(--foreground-200);
7
+ --background-border: var(--background-700);
8
+ --background-hover: color-mix(in srgb, var(--background-600) 50%, var(--background-950));
9
+ --background-hover-border: var(--background-600);
10
+ --background-pressed: color-mix(in srgb, var(--background-600) 60%, var(--background-950));
11
+ --background-pressed-border: var(--background-600);
12
+ --focus-visible: var(--accent-400);
13
+ font-size: var(--text-xs);
14
+ }
15
+
16
+ .button.icon { @apply aspect-square }
17
+ .button.sm { @apply px-2 py-1.5 text-xs font-semibold }
18
+ .button.md { @apply px-3 py-1.5 }
19
+ .button.lg { @apply px-10 py-2 }
20
+
21
+ .button.primary {
22
+ --background: var(--foreground-100);
23
+ --foreground: var(--background-900);
24
+ --background-border: var(--foreground-200);
25
+ --background-hover: color-mix(in srgb, var(--foreground-100) 90%, var(--background-600));
26
+ --background-hover-border: color-mix(in srgb, var(--foreground-100) 90%, var(--background-600));
27
+ --background-pressed: color-mix(in srgb, var(--foreground-100) 85%, var(--background-600));
28
+ --background-pressed-border: color-mix(in srgb, var(--foreground-100) 85%, var(--background-600));
29
+ }
30
+
31
+ .button.secondary {
32
+ --background: var(--background-900);
33
+ --foreground: var(--foreground-200);
34
+ --background-border: var(--background-700);
35
+ --background-hover: color-mix(in srgb, var(--background-700) 50%, var(--background-950));
36
+ --background-hover-border: var(--background-700);
37
+ --background-pressed: color-mix(in srgb, var(--background-700) 60%, var(--background-950));
38
+ --background-pressed-border: var(--background-700);
39
+ }
40
+
41
+ .button.outline {
42
+ --background: transparent;
43
+ --foreground: var(--foreground-300);
44
+ --background-border: var(--background-700);
45
+ --background-hover: color-mix(in srgb, var(--background-950) 90%, var(--background-500));
46
+ --background-hover-border: var(--background-600);
47
+ --background-pressed: color-mix(in srgb, var(--background-900) 90%, var(--background-500));
48
+ --background-pressed-border: var(--background-600);
49
+ /* Override tailwind *outline* class */
50
+ outline-style: unset !important;
51
+ }
52
+
53
+ .button.danger {
54
+ --background: color-mix(in srgb, var(--danger-500) 15%, transparent);
55
+ --foreground: var(--danger-600);
56
+ --background-border: transparent;
57
+ --focus-visible: var(--danger-400);
58
+ --background-hover: color-mix(in srgb, var(--danger-500) 25%, transparent);
59
+ --background-hover-border: transparent;
60
+ --background-pressed: color-mix(in srgb, var(--danger-500) 30%, transparent);
61
+ --background-pressed-border: transparent;
62
+ }
63
+
64
+ .button.ghost {
65
+ --background: transparent;
66
+ --foreground: var(--foreground-300);
67
+ --background-border: transparent;
68
+ --background-hover: var(--background-800);
69
+ --background-hover-border: transparent;
70
+ }
71
+
72
+ /* Gallery Styles */
73
+
74
+ .gallery.item {
75
+ --background: var(--background-950);
76
+ --background-border: var(--background-700);
77
+ --background-hover-border: var(--background-600);
78
+ --background-pressed-border: var(--accent-500);
79
+ --focus-visible: var(--accent-500);
80
+ }
81
+
82
+ .gallery.view {
83
+ --background: var(--background-950);
84
+ }
85
+
86
+ .gallery.body {
87
+ --foreground: var(--foreground-50);
88
+ --foreground-muted: var(--foreground-300);
89
+ }
90
+
91
+ /* Expand Styles */
92
+
93
+ .expand {
94
+ --trigger-background: transparent;
95
+ --trigger-background-hover: var(--background-900);
96
+ --trigger-foreground: var(--foreground-50);
97
+ --content-background: transparent;
98
+ --content-foreground: var(--foreground-300);
99
+ }
100
+
101
+ /* Card Styles */
102
+
103
+ .card {
104
+ --background: var(--background-800);
105
+ --border: var(--background-700);
106
+ --focus-ring: var(--accent-400);
107
+ }
108
+
109
+ .card.header {
110
+ --border: var(--background-700);
111
+ }
112
+
113
+ .card.footer {
114
+ --background: color-mix(in srgb, var(--background-900) 50%, transparent);
115
+ --border: var(--background-700);
116
+ }
117
+
118
+ /* List Styles */
119
+
120
+ .list {
121
+ --foreground: var(--foreground-50);
122
+ --background-hover: color-mix(in srgb, var(--background-500) 6%, transparent);
123
+ --background-highlighted: color-mix(in srgb, var(--background-500) 6%, transparent);
124
+ --item-background: transparent;
125
+ --item-background-hover: var(--background-hover);
126
+ --item-background-highlighted: var(--background-highlighted);
127
+ --header-title-foreground: var(--foreground-50);
128
+ --header-subtitle-foreground: var(--foreground-400);
129
+ --desc-foreground: var(--foreground-400);
130
+ --action-foreground: var(--foreground-400);
131
+ --action-foreground-hover: var(--foreground-50);
132
+ --action-background-hover: var(--background-hover);
133
+ }
134
+
135
+ /* Group Styles */
136
+
137
+ .group {
138
+ --background: var(--background-950);
139
+ --background-border: var(--background-700);
140
+ --focus-visible: var(--accent-500);
141
+ }
142
+
143
+ .group.button {
144
+ --button-selected-background: var(--background-800);
145
+ --button-selected-foreground: var(--foreground-100);
146
+ }
147
+
148
+ .group.ghost {
149
+ --background: transparent;
150
+ }
151
+
152
+ /* Command Styles */
153
+ .command {
154
+ --background: var(--background-900);
155
+ --background-hover: var(--background-800);
156
+ --background-pressed: var(--background-800);
157
+ --background-list: var(--background-950);
158
+ --background-footer: var(--background-800);
159
+ --border-color: var(--background-700);
160
+ --foreground: var(--foreground-300);
161
+ --foreground-muted: var(--foreground-400);
162
+ --overlay: rgb(0 0 0 / 0.2);
163
+ --overlay-backdrop: blur(4px);
164
+ --shadow: 0 20px 25px -5px rgb(0 0 0 / 0.35);
165
+ }
166
+
167
+
168
+ /* Date Styles */
169
+
170
+ .date {
171
+ --background: var(--background-950);
172
+ --border: var(--background-700);
173
+ --focus-ring: var(--foreground-300);
174
+ }
175
+
176
+ .date.date-header {
177
+ --header-color: var(--foreground-300);
178
+ }
179
+
180
+ .date.date-day-headers {
181
+ --day-headers-background: var(--background-900);
182
+ }
183
+
184
+ .date.date-day-header {
185
+ --day-header-color: var(--foreground-400);
186
+ }
187
+
188
+ .date.date-nav-button {
189
+ --nav-button-color: var(--foreground-400);
190
+ --nav-button-background-hover: var(--background-800);
191
+ }
192
+
193
+ .date.date-grid {
194
+ --grid-background: var(--background-900);
195
+ }
196
+
197
+ .date.date-day {
198
+ --cell-text: var(--foreground-300);
199
+ }
200
+
201
+ .date.date-day[data-selected="true"] {
202
+ --cell-background: var(--background-800);
203
+ --cell-text: var(--foreground-50);
204
+ }
205
+
206
+ .date.date-day[data-today="true"] {
207
+ --cell-background: var(--background-800);
208
+ --cell-text: var(--foreground-50);
209
+ }
210
+
211
+ .date.date-day[data-disabled="true"],
212
+ .date.date-day[data-out-of-range="true"] {
213
+ --cell-text: var(--foreground-400);
214
+ }
215
+
216
+ .date.date-day:hover:not([data-disabled="true"]):not([data-out-of-range="true"]) {
217
+ --cell-background: var(--background-800);
218
+ }
219
+
220
+ /* Checkbox Styles */
221
+
222
+ .checkbox {
223
+ --background: var(--background-900);
224
+ --background-border: var(--background-700);
225
+ --background-hover: color-mix(in srgb, var(--background-500) 10%, transparent);
226
+ --background-hover-border: var(--background-600);
227
+ --focus-visible: var(--accent-500);
228
+ }
229
+
230
+ .checkbox[data-selected="true"] {
231
+ --background-selected: var(--accent-500);
232
+ --background-selected-border: var(--accent-500);
233
+ --background-hover: var(--accent-600);
234
+ --background-hover-border: var(--accent-400);
235
+ }
236
+
237
+ .checkbox[data-indeterminate="true"] {
238
+ --background-indeterminate: var(--accent-600);
239
+ --background-indeterminate-border: var(--accent-600);
240
+ --background-hover: var(--accent-500);
241
+ --background-hover-border: var(--accent-400);
242
+ }
243
+
244
+ .checkbox.checkmark,
245
+ .checkbox.indeterminate {
246
+ --icon-foreground: white;
247
+ }
248
+
249
+ .checkbox-root.helper-text {
250
+ --helper-text-foreground: currentColor;
251
+ --helper-text-error-foreground: white;
252
+ }
253
+
254
+ /* Color Styles */
255
+
256
+ .color {
257
+ --background: color-mix(in srgb, var(--background-800) 30%, transparent);
258
+ --background-border: var(--background-700);
259
+ --focus-visible: var(--accent-500);
260
+ }
261
+
262
+ .color.canvas-pointer {
263
+ --pointer-border: color-mix(in srgb, var(--foreground-200) 50%, transparent);
264
+ }
265
+
266
+ .color.hue-thumb,
267
+ .color.opacity-thumb {
268
+ --thumb-border: white;
269
+ --thumb-background: white;
270
+ }
271
+
272
+ .color.opacity-track {
273
+ --checkerboard-dark: var(--background-800);
274
+ --checkerboard-light: var(--background-700);
275
+ }
276
+
277
+ .color.preview-swatch,
278
+ .color.preview {
279
+ --checkerboard-dark: var(--background-700);
280
+ --checkerboard-light: var(--background-800);
281
+ }
282
+
283
+ /* Label Styles */
284
+
285
+ .label {
286
+ --foreground: var(--foreground-300);
287
+ --disabled-foreground: var(--foreground-400);
288
+ --error-foreground: var(--danger-600);
289
+ }
290
+
291
+ .label.required-indicator {
292
+ --required-color: var(--danger-600);
293
+ }
294
+
295
+ .label.helper-text {
296
+ --helper-color: var(--foreground-400);
297
+ }
298
+
299
+ .label.helper-text[data-error] {
300
+ --helper-error-color: var(--danger-600);
301
+ }
302
+
303
+ /* Input Styles */
304
+
305
+ .input {
306
+ --background: var(--background-950);
307
+ --foreground: var(--foreground-50);
308
+ --placeholder: var(--foreground-400);
309
+ --background-border: var(--background-700);
310
+ --background-focused-border: var(--accent-500);
311
+ --focus-visible: var(--accent-500);
312
+ --disabled-background: var(--background-900);
313
+ --disabled-foreground: var(--foreground-400);
314
+ font-size: var(--text-xs);
315
+ font-weight: var(--font-weight-medium)
316
+ }
317
+
318
+ .input[data-error] {
319
+ --background-focused-border: var(--danger-600);
320
+ --focus-visible: var(--danger-600);
321
+ }
322
+
323
+ .input[data-variant="ghost"] {
324
+ --background: transparent;
325
+ --background-border: transparent;
326
+ }
327
+
328
+ .input[data-variant="ghost"][data-focus-visible] {
329
+ box-shadow: none;
330
+ }
331
+
332
+ .input.icon-wrapper {
333
+ color: var(--foreground-400);
334
+ }
335
+
336
+ .input.spin-button {
337
+ --controls-color: var(--foreground-400);
338
+ --controls-hover-background: var(--background-800);
339
+ --controls-hover-color: var(--foreground-200);
340
+ --controls-active-background: var(--background-700);
341
+ --controls-active-color: var(--accent-500);
342
+ }
343
+
344
+ /* Radio Styles */
345
+
346
+ .radio {
347
+ --background: var(--background-800);
348
+ --background-border: var(--background-700);
349
+ --background-selected: var(--accent-500);
350
+ --background-selected-border: var(--accent-500);
351
+ --background-hover: var(--accent-500);
352
+ --background-hover-border: var(--background-500);
353
+ --background-error-border: var(--danger-500);
354
+ --dot-color: transparent;
355
+ --dot-selected-color: var(--accent-50);
356
+ --focus-visible: rgb(59, 130, 246);
357
+ }
358
+
359
+ .radio.radio-label {
360
+ --foreground: var(--foreground-300);
361
+ --foreground-disabled: var(--foreground-400);
362
+ }
363
+
364
+ .radio.radio-description {
365
+ --foreground: var(--foreground-400);
366
+ --foreground-error: var(--danger-500);
367
+ }
368
+
369
+ .radio.helper-text {
370
+ --foreground: var(--foreground-400);
371
+ --foreground-error: var(--danger-500);
372
+ }
373
+
374
+ .radio.primary[data-selected="true"] {
375
+ --background-selected: var(--accent-500);
376
+ --background-selected-border: var(--accent-500);
377
+ }
378
+
379
+ .radio.secondary {
380
+ --background: var(--background-800);
381
+ --background-border: var(--background-700);
382
+ }
383
+
384
+ .radio.outline {
385
+ --background: transparent;
386
+ --background-border: var(--background-700);
387
+ }
388
+
389
+ .radio.outline[data-selected="true"] {
390
+ --background-selected: color-mix(in srgb, var(--accent-500) 15%, transparent);
391
+ --background-selected-border: var(--accent-500);
392
+ --dot-selected-color: var(--accent-500);
393
+ }
394
+
395
+ /* Select Styles */
396
+
397
+ .select {
398
+ --background: color-mix(in srgb, var(--background-800) 50%, transparent);
399
+ --foreground: var(--foreground-300);
400
+ --background-border: var(--background-700);
401
+ --focus-visible: var(--accent-400);
402
+ --focus-visible-background: var(--background-950);
403
+ --background-hover: color-mix(in srgb, var(--background-700) 50%, transparent);
404
+ --background-pressed: color-mix(in srgb, var(--background-600) 50%, transparent);
405
+ --foreground-size: var(--text-xs)
406
+ }
407
+
408
+ .select.ghost {
409
+ --background: transparent;
410
+ --background-border: transparent;
411
+ --background-hover: color-mix(in srgb, var(--background-700) 50%, transparent);
412
+ --background-pressed: color-mix(in srgb, var(--background-700) 50%, transparent);
413
+ }
414
+
415
+ .select.content,
416
+ .select.sub-content {
417
+ --background: var(--background-900);
418
+ --background-border: var(--background-700);
419
+ }
420
+
421
+ .select.item,
422
+ .select.sub-trigger {
423
+ --foreground: var(--foreground-300);
424
+ --foreground-muted: var(--foreground-400);
425
+ --icon-foreground: var(--foreground-300);
426
+ --indicator-foreground: var(--accent-300);
427
+ --background-highlighted: color-mix(in srgb, var(--background-700) 50%, transparent);
428
+ --item-background: transparent;
429
+ --item-background-hover: var(--background-highlighted);
430
+ --item-background-highlighted: var(--background-highlighted);
431
+ }
432
+
433
+ .select.placeholder {
434
+ --foreground-muted: var(--foreground-400);
435
+ }
436
+
437
+ .select.search-trigger {
438
+ --focus-visible: var(--accent-500);
439
+ }
440
+
441
+ /* Slider Styles */
442
+
443
+ .slider.track {
444
+ --track-background: var(--background-800);
445
+ }
446
+
447
+ .slider.range {
448
+ --range-background: color-mix(in srgb, var(--accent-500) 60%, transparent);
449
+ --range-disabled-background: var(--background-600);
450
+ }
451
+
452
+ .slider.thumb {
453
+ --thumb-background: var(--accent-500);
454
+ --thumb-focused-background: var(--accent-400);
455
+ --thumb-disabled-background: var(--background-500);
456
+ --focus-visible: color-mix(in srgb, var(--accent-500) 40%, transparent);
457
+ }
458
+
459
+ /* Switch Styles */
460
+
461
+ .switch {
462
+ --background: var(--background-700);
463
+ --background-active: color-mix(in srgb, var(--accent-500) 80%, var(--background-500));
464
+ --foreground: var(--background-500);
465
+ --foreground-active: white;
466
+
467
+ --border-color: var(--background-600);
468
+ --border-color-hover: transparent;
469
+ --border-color-pressed: transparent;
470
+ --border-color-active: transparent;
471
+
472
+ --focus-visible: 0 0 0 3px color-mix(in srgb, var(--accent-500) 40%, transparent);
473
+ }
474
+
475
+ /* Textarea Styles */
476
+
477
+ .textarea {
478
+ --background: var(--background-950);
479
+ --foreground: var(--foreground-50);
480
+ --placeholder: var(--foreground-400);
481
+ --background-border: var(--background-700);
482
+ --background-focused-border: var(--accent-500);
483
+ --focus-visible: var(--accent-500);
484
+ --background-disabled: var(--background-900);
485
+ --foreground-disabled: var(--foreground-400);
486
+ }
487
+
488
+ .textarea[data-error] {
489
+ --background-error-border: var(--danger-600);
490
+ --background-error-focused-border: var(--danger-600);
491
+ --focus-visible: var(--danger-600);
492
+ }
493
+
494
+ .textarea.scroll-wrapper {
495
+ --background: var(--background-950);
496
+ --background-border: var(--background-700);
497
+ --background-focused-border: var(--accent-500);
498
+ --focus-visible: var(--accent-500);
499
+ --background-disabled: var(--background-900);
500
+ }
501
+
502
+ .textarea.scroll-wrapper[data-error] {
503
+ --background-error-border: var(--danger-600);
504
+ --background-error-focused-border: var(--danger-600);
505
+ --focus-visible: var(--danger-600);
506
+ }
507
+
508
+ .textarea.resize-handle {
509
+ --handle-background: color-mix(in srgb, var(--foreground-400) 72%, transparent);
510
+ --handle-hover-background: color-mix(in srgb, var(--foreground-200) 90%, transparent);
511
+ }
512
+
513
+ .textarea.character-count {
514
+ --count-foreground: var(--foreground-400);
515
+ --count-over-limit-foreground: var(--danger-600);
516
+ }
517
+
518
+ /* Banner Styles */
519
+
520
+ .banner {
521
+ --background: var(--background-900);
522
+ --foreground: var(--info-50);
523
+ --border: var(--info-600);
524
+ }
525
+
526
+ .banner.note {
527
+ --background: var(--background-900);
528
+ --foreground: var(--foreground-200);
529
+ --border: var(--background-700);
530
+ --icon-color: var(--background-500);
531
+ }
532
+
533
+ .banner.info {
534
+ --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
535
+ --foreground: var(--foreground-200);
536
+ --border: color-mix(in srgb, var(--info-600) 30%, var(--background-900));
537
+ --icon-color: var(--info-600);
538
+ }
539
+
540
+ .banner.success {
541
+ --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
542
+ --foreground: var(--foreground-200);
543
+ --border: color-mix(in srgb, var(--success-600) 30%, var(--background-900));
544
+ --icon-color: var(--success-600);
545
+ }
546
+
547
+ .banner.warning {
548
+ --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
549
+ --foreground: var(--foreground-200);
550
+ --border: color-mix(in srgb, var(--warning-600) 30%, var(--background-900));
551
+ --icon-color: var(--warning-600);
552
+ }
553
+
554
+ .banner.danger {
555
+ --background: color-mix(in srgb, var(--danger-600) 10%, var(--background-900));
556
+ --foreground: var(--foreground-200);
557
+ --border: color-mix(in srgb, var(--danger-600) 30%, var(--background-900));
558
+ --icon-color: var(--danger-600);
559
+ }
560
+
561
+ /* Badge Styles */
562
+
563
+ .badge.sm {
564
+ @apply px-1.5 py-0.5 font-semibold
565
+ }
566
+
567
+ .badge.md {
568
+ @apply px-2 py-1.5
569
+ }
570
+
571
+ .badge.lg {
572
+ @apply px-3 py-1.5
573
+ }
574
+
575
+ .badge {
576
+ --background: var(--background-800);
577
+ --foreground: var(--foreground-200);
578
+ --background-border: var(--background-600);
579
+ font-weight: var(--font-weight-semibold);
580
+ font-size: var(--text-xs)
581
+ }
582
+
583
+ .badge.dismiss {
584
+ --dismiss-foreground: var(--foreground-400);
585
+ --dismiss-hover-background: color-mix(in srgb, var(--background-700) 80%, var(--background-900));
586
+ --dismiss-pressed-background: var(--background-700);
587
+ --dismiss-focus-visible: var(--accent-400);
588
+ }
589
+
590
+ .badge.default {
591
+ --background: color-mix(in srgb, var(--background-600) 10%, var(--background-900));
592
+ --foreground: var(--foreground-200);
593
+ --background-border: var(--background-700);
594
+ }
595
+
596
+ .badge.secondary {
597
+ --background: color-mix(in srgb, var(--background-900) 90%, var(--background-600));
598
+ --foreground: var(--foreground-300);
599
+ --background-border: color-mix(in srgb, var(--background-600) 40%, transparent);
600
+ }
601
+
602
+ .badge.success {
603
+ --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
604
+ --foreground: var(--success-600);
605
+ --background-border: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
606
+ }
607
+
608
+ .badge.warning {
609
+ --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
610
+ --foreground: var(--warning-600);
611
+ --background-border: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
612
+ }
613
+
614
+ .badge.danger {
615
+ --background: color-mix(in srgb, var(--danger-600) 10%, var(--background-900));
616
+ --foreground: var(--danger-600);
617
+ --background-border: color-mix(in srgb, var(--danger-600) 20%, var(--background-900));
618
+ }
619
+
620
+ .badge.info {
621
+ --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
622
+ --foreground: var(--info-600);
623
+ --background-border: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
624
+ }
625
+
626
+ /* Popover Styles */
627
+
628
+ .popover.content {
629
+ --popover-fill: var(--background-900);
630
+ --popover-border-color: var(--background-700);
631
+ }
632
+
633
+ .popover.frame {
634
+ --foreground: var(--foreground-200);
635
+ }
636
+
637
+ /* Tooltip Styles */
638
+
639
+ .tooltip.content {
640
+ --background: var(--background-900);
641
+ --background-hover: var(--background-900);
642
+ --background-border: var(--background-700);
643
+ font-size: var(--text-xs);
644
+ font-weight: var(--font-weight-medium);
645
+ }
646
+
647
+ .tooltip.frame {
648
+ --foreground: var(--foreground-200);
649
+ }
650
+
651
+ /* Progress Styles */
652
+
653
+ .progress {
654
+ --background: var(--background-700);
655
+ --fill-background: color-mix(in srgb, var(--accent-600) 60%, var(--background-500));
656
+ }
657
+
658
+ .progress.label-row {
659
+ --foreground: var(--foreground-400);
660
+ }
661
+
662
+ .progress[data-variant="default"] .fill {
663
+ --fill-background: var(--accent-500);
664
+ }
665
+
666
+ .progress[data-variant="success"] .fill {
667
+ --fill-background: var(--success-500);
668
+ }
669
+
670
+ .progress[data-variant="warning"] .fill {
671
+ --fill-background: var(--warning-500);
672
+ }
673
+
674
+ .progress[data-variant="error"] .fill {
675
+ --fill-background: var(--danger-500);
676
+ }
677
+
678
+ /* Toast Styles */
679
+
680
+ .toast {
681
+ --background: var(--background-900);
682
+ --foreground: var(--foreground-200);
683
+ --background-border: var(--background-600);
684
+ --background-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
685
+ }
686
+
687
+ .toast.default {
688
+ --background: var(--background-900);
689
+ --foreground: var(--foreground-200);
690
+ --background-border: var(--background-600);
691
+ }
692
+
693
+ .toast.danger {
694
+ --background: color-mix(in srgb, var(--danger-600) 10%, var(--background-900));
695
+ --foreground: var(--foreground-200);
696
+ --background-border: color-mix(in srgb, var(--danger-600) 20%, var(--background-900));
697
+ }
698
+
699
+ .toast.success {
700
+ --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
701
+ --foreground: var(--foreground-200);
702
+ --background-border: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
703
+ }
704
+
705
+ .toast.info {
706
+ --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
707
+ --foreground: var(--foreground-200);
708
+ --background-border: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
709
+ }
710
+
711
+ .toast.warning {
712
+ --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
713
+ --foreground: var(--foreground-200);
714
+ --background-border: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
715
+ }
716
+
717
+ .toast.icon {
718
+ --foreground: currentColor;
719
+ }
720
+
721
+ .toast.danger.icon {
722
+ --foreground: var(--danger-600);
723
+ }
724
+
725
+ .toast.success.icon {
726
+ --foreground: var(--success-600);
727
+ }
728
+
729
+ .toast.info.icon {
730
+ --foreground: var(--info-600);
731
+ }
732
+
733
+ .toast.warning.icon {
734
+ --foreground: var(--warning-600);
735
+ }
736
+
737
+ .toast.title {
738
+ --foreground: var(--foreground-100);
739
+ }
740
+
741
+ .toast.description {
742
+ --foreground: var(--foreground-300);
743
+ }
744
+
745
+ .toast.close {
746
+ --foreground: currentColor;
747
+ --background-hover: transparent;
748
+ --focus-visible: var(--accent-400);
749
+ }
750
+
751
+ .toast.danger.close {
752
+ --foreground: color-mix(in srgb, var(--danger-600) 60%, var(--foreground-50));
753
+ --background-hover: color-mix(in srgb, var(--danger-500) 20%, var(--background-900));
754
+ --focus-visible: var(--danger-400);
755
+ }
756
+
757
+ .toast.success.close {
758
+ --foreground: color-mix(in srgb, var(--success-600) 60%, var(--foreground-50));
759
+ --background-hover: color-mix(in srgb, var(--success-500) 20%, var(--background-900));
760
+ --focus-visible: var(--success-400);
761
+ }
762
+
763
+ .toast.info.close {
764
+ --foreground: color-mix(in srgb, var(--info-600) 60%, var(--foreground-50));
765
+ --background-hover: color-mix(in srgb, var(--info-500) 20%, var(--background-900));
766
+ --focus-visible: var(--info-400);
767
+ }
768
+
769
+ .toast.warning.close {
770
+ --foreground: color-mix(in srgb, var(--warning-600) 60%, var(--foreground-50));
771
+ --background-hover: color-mix(in srgb, var(--warning-500) 20%, var(--background-900));
772
+ --focus-visible: var(--warning-400);
773
+ }
774
+
775
+ /* Menu Styles */
776
+
777
+ .menu.content,
778
+ .menu.sub-content {
779
+ --background: var(--background-900);
780
+ --background-border: var(--background-700);
781
+ --content-open-animation: slide-in-from-top 0.15s var(--ease-snappy-pop);
782
+ --content-closed-animation: slide-out-to-top 0.15s var(--ease-snappy-pop);
783
+ font-size: var(--text-xs)
784
+ }
785
+
786
+ .menu.trigger {
787
+ --background-pressed: var(--background-700);
788
+ }
789
+
790
+ .menu.item,
791
+ .menu.checkbox-item,
792
+ .menu.radio-item,
793
+ .menu.sub-trigger {
794
+ --foreground: var(--foreground-300);
795
+ --background-focused: color-mix(in srgb, var(--background-700) 50%, transparent);
796
+ }
797
+
798
+ .menu.item-indicator {
799
+ --indicator-foreground: var(--accent-300);
800
+ }
801
+
802
+ .menu.label,
803
+ .menu.shortcut {
804
+ --foreground-muted: var(--foreground-400);
805
+ }
806
+
807
+ /* Tabs Styles */
808
+
809
+ .tabs.indicator {
810
+ --background: color-mix(in srgb, var(--background-700) 50%, transparent);
811
+ }
812
+
813
+ .tabs.indicator.underline {
814
+ --background: var(--accent-500);
815
+ }
816
+
817
+ .tabs.list[data-variant="underline"][data-orientation="vertical"] {
818
+ --border-color: var(--background-700);
819
+ }
820
+
821
+ .tabs.trigger {
822
+ --background: transparent;
823
+ --background-hover: var(--background-900);
824
+ --background-pressed: var(--background-800);
825
+ --background-selected: transparent;
826
+ --background-focused: var(--background-800);
827
+ --foreground: var(--foreground-400);
828
+ --foreground-hover: var(--foreground-200);
829
+ --foreground-pressed: var(--foreground-50);
830
+ --foreground-selected: var(--foreground-50);
831
+ --underline-border: var(--accent-500);
832
+ font-size: var(--text-xs);
833
+ }
834
+
835
+ .tabs.content {
836
+ --focus-visible: var(--accent-500);
837
+ }
838
+
839
+ /* Anchor Styles */
840
+
841
+ .anchor.trigger {
842
+ --foreground: var(--foreground-200);
843
+ --underline-background: var(--background-600);
844
+ --underline-background-hover: var(--foreground-400);
845
+ --focus-ring: var(--color-background-600);
846
+ }
847
+
848
+ /* Modal Styles */
849
+
850
+ .modal {
851
+ --background: var(--background-900);
852
+ --background-border: var(--background-700);
853
+ --foreground: var(--foreground-300);
854
+ --focus-visible: var(--accent-500);
855
+ --scrollbar-thumb-background: var(--background-700);
856
+ --scrollbar-thumb-hover-background: var(--foreground-400);
857
+ }
858
+
859
+ .modal.title {
860
+ --title-foreground: var(--foreground-100);
861
+ }
862
+
863
+ .modal.close {
864
+ --close-foreground: var(--foreground-400);
865
+ --close-hover-foreground: var(--foreground-200);
866
+ --focus-visible: var(--accent-500);
867
+ }
868
+
869
+ .modal.footer {
870
+ --footer-background: var(--background-900);
871
+ }
872
+
873
+ .modal.backdrop {
874
+ --backdrop-background: rgb(0 0 0 / 50%);
875
+ }
876
+
877
+ .divider {
878
+ --background: var(--background-700)
879
+ }
880
+
881
+ /* Scroll Component */
882
+ .scroll.track {
883
+ --track-background: transparent;
884
+ }
885
+
886
+ .scroll.thumb {
887
+ --thumb-background: var(--background-700);
888
+ --thumb-background-hover: var(--background-600);
889
+ --thumb-background-pressed: color-mix(in srgb, var(--background-500) 40%, var(--background-900));
890
+ }
10
891
  }
11
-
12
- .button {
13
- font-size: var(--text-sm);
14
- }
15
-
16
- .button.icon { @apply aspect-square }
17
- .button.sm { @apply px-2 py-1.5 text-xs font-semibold }
18
- .button.md { @apply px-3 py-1.5 }
19
- .button.lg { @apply px-5 py-2.5 }
20
-
21
- .button.primary {
22
- --background: var(--foreground-200);
23
- --foreground: var(--background-900);
24
- --background-border: var(--foreground-200);
25
- --hover-background: var(--foreground-300);
26
- --hover-border: var(--foreground-300);
27
- }
28
-
29
- .button.secondary {
30
- --background: var(--background-900);
31
- --foreground: var(--foreground-300);
32
- --background-border: var(--background-700);
33
- }
34
-
35
- .button.outline {
36
- --background: transparent;
37
- --foreground: var(--foreground-300);
38
- --background-border: var(--background-700);
39
- --hover-background: var(--background-700);
40
- --hover-border: var(--background-700);
41
- outline-style: unset !important;
42
- }
43
-
44
- .button.danger {
45
- --background: color-mix(in srgb, var(--danger-500) 15%, transparent);
46
- --foreground: var(--danger-500);
47
- --background-border: transparent;
48
- --focus-visible: var(--danger-400);
49
- --hover-background: color-mix(in srgb, var(--danger-500) 25%, transparent);
50
- --hover-border: transparent;
51
- }
52
-
53
- .button.ghost {
54
- --background: transparent;
55
- --foreground: var(--foreground-300);
56
- --background-border: transparent;
57
- --hover-background: var(--background-700);
58
- --hover-border: transparent;
59
- }
60
-
61
- /* Gallery Styles */
62
-
63
- .gallery.item {
64
- --background: var(--background-950);
65
- --border: var(--background-700);
66
- --border-hover: var(--background-600);
67
- --border-focus: var(--accent-500);
68
- }
69
-
70
- .gallery.body {
71
- --title-color: var(--foreground-50);
72
- --description-color: var(--foreground-300);
73
- }
74
-
75
- /* Expand Styles */
76
-
77
- .expand {
78
- --trigger-background: transparent;
79
- --trigger-background-hover: var(--background-900);
80
- --trigger-foreground: var(--foreground-50);
81
- --content-background: transparent;
82
- --content-foreground: var(--foreground-300);
83
- }
84
-
85
- /* Card Styles */
86
-
87
- .card {
88
- --background: var(--background-800);
89
- --border: var(--background-700);
90
- --focus-ring: var(--accent-400);
91
- }
92
-
93
- .card.header {
94
- --border: var(--background-700);
95
- }
96
-
97
- .card.footer {
98
- --background: color-mix(in srgb, var(--background-900) 50%, transparent);
99
- --border: var(--background-700);
100
- }
101
-
102
- /* List Styles */
103
-
104
- .list {
105
- --foreground: var(--foreground-50);
106
- --background-hover: color-mix(in srgb, var(--background-500) 6%, transparent);
107
- --background-highlighted: color-mix(in srgb, var(--background-500) 6%, transparent);
108
- --header-title-color: var(--foreground-50);
109
- --header-subtitle-color: var(--foreground-400);
110
- --desc-color: var(--foreground-400);
111
- --action-color: var(--foreground-400);
112
- --action-hover-color: var(--foreground-50);
113
- }
114
-
115
- /* Group Styles */
116
-
117
- .group {
118
- --background: var(--background-950);
119
- /* --foreground: red; */
120
- --border: var(--background-700);
121
- --focus-ring-color: var(--accent-500);
122
- --active-background: var(--background-800);
123
- --active-foreground: var(--foreground-100);
124
- }
125
-
126
- .group.ghost {
127
- --background: transparent;
128
- }
129
-
130
- /* Command Styles */
131
- .command {
132
- --background-default: var(--background-900);
133
- --background-input: var(--background-900);
134
- --background-hover: var(--background-800);
135
- --background-selected: var(--background-800);
136
- --list-background: var(--background-950);
137
- --footer-background: var(--background-800);
138
- --border-default: var(--background-700);
139
- --color-default: var(--foreground-300);
140
- --color-muted: var(--foreground-400);
141
- --color-icon: var(--foreground-400);
142
- --overlay: rgb(0 0 0 / 0.2);
143
- --overlay-backdrop: blur(4px);
144
- --shadow: 0 20px 25px -5px rgb(#ff0000 / 0.1);
145
- }
146
-
147
-
148
- /* Date Styles */
149
-
150
- .date {
151
- --background: var(--background-950);
152
- --border: var(--background-700);
153
- --focus-ring: var(--foreground-300);
154
- }
155
-
156
- .date.date-header {
157
- --header-color: var(--foreground-300);
158
- }
159
-
160
- .date.date-day-headers {
161
- --day-headers-background: var(--background-900);
162
- }
163
-
164
- .date.date-day-header {
165
- --day-header-color: var(--foreground-400);
166
- }
167
-
168
- .date.date-nav-button {
169
- --nav-button-color: var(--foreground-400);
170
- --nav-button-background-hover: var(--background-800);
171
- }
172
-
173
- .date.date-grid {
174
- --grid-background: var(--background-900);
175
- }
176
-
177
- .date.date-day {
178
- --cell-text: var(--foreground-300);
179
- }
180
-
181
- .date.date-day[data-selected="true"] {
182
- --cell-background: var(--background-800);
183
- --cell-text: var(--foreground-50);
184
- }
185
-
186
- .date.date-day[data-today="true"] {
187
- --cell-background: var(--background-800);
188
- --cell-text: var(--foreground-50);
189
- }
190
-
191
- .date.date-day[data-disabled="true"],
192
- .date.date-day[data-out-of-range="true"] {
193
- --cell-text: var(--foreground-400);
194
- }
195
-
196
- .date.date-day:hover:not([data-disabled="true"]):not([data-out-of-range="true"]) {
197
- --cell-background: var(--background-800);
198
- }
199
-
200
- /* Checkbox Styles */
201
-
202
- .checkbox {
203
- --background: var(--background-900);
204
- --border: var(--background-700);
205
- --ring-color: var(--accent-500);
206
- --hover-background: color-mix(in srgb, var(--background-500) 10%, transparent);
207
- --hover-border: var(--background-600);
208
- }
209
-
210
- .checkbox[data-selected="true"] {
211
- --background: var(--accent-500);
212
- --hover-background: var(--accent-600);
213
- --border: var(--accent-500);
214
- --hover-border: var(--accent-400);
215
- }
216
-
217
- .checkbox[data-indeterminate="true"] {
218
- --background: var(--accent-600);
219
- --hover-background: var(--accent-500);
220
- --border: var(--accent-600);
221
- --hover-border: var(--accent-400);
222
- }
223
-
224
- .checkbox-root.checkbox-checkmark,
225
- .checkbox-root.checkbox-indeterminate {
226
- --checkmark-color: white
227
- }
228
-
229
- .checkbox-root.helper-text-error {
230
- --error-color: white;
231
- }
232
-
233
- /* Color Styles */
234
-
235
- .color {
236
- --background: color-mix(in srgb, var(--background-800) 30%, transparent);
237
- --border: var(--background-700);
238
- --ring-color: var(--accent-500);
239
- --pointer-border: color-mix(in srgb, var(--foreground-200) 50%, transparent);
240
- --thumb-border: white;
241
- --thumb-background: white;
242
- --checkerboard-dark: var(--background-800);
243
- --checkerboard-light: var(--background-700);
244
- }
245
-
246
- /* Label Styles */
247
-
248
- .label {
249
- --foreground: var(--foreground-300);
250
- --disabled-foreground: var(--foreground-400);
251
- --error-foreground: var(--danger-600);
252
- }
253
-
254
- .label.required-indicator {
255
- --required-color: var(--danger-600);
256
- }
257
-
258
- .label.helper-text {
259
- --helper-color: var(--foreground-400);
260
- }
261
-
262
- .label.helper-text[data-error] {
263
- --helper-error-color: var(--danger-600);
264
- }
265
-
266
- /* Input Styles */
267
-
268
- .input {
269
- --background: var(--background-950);
270
- --foreground: var(--foreground-50);
271
- --placeholder: var(--foreground-400);
272
- --border: var(--background-700);
273
- --background-hover: var(--background-700);
274
- --border-hover: var(--background-600);
275
- --ring-color: var(--accent-500);
276
- --disabled-background: var(--background-900);
277
- --disabled-foreground: var(--foreground-400);
278
- font-size: var(--text-xs);
279
- font-weight: var(--font-weight-medium)
280
- }
281
-
282
- .input[data-error] {
283
- --border: var(--danger-600);
284
- --ring-color: var(--danger-600);
285
- }
286
-
287
- .input[data-variant="ghost"] {
288
- --background: transparent;
289
- --border: transparent;
290
- --background-hover: transparent;
291
- --border-hover: transparent;
292
- }
293
-
294
- .input[data-variant="ghost"][data-focus-visible] {
295
- box-shadow: none;
296
- }
297
-
298
- .input.icon-wrapper {
299
- --icon-color: var(--foreground-400);
300
- }
301
-
302
- .input.spin-button {
303
- --spin-color: var(--foreground-400);
304
- --spin-hover-background: var(--background-800);
305
- --spin-hover-color: var(--foreground-200);
306
- --spin-active-background: var(--background-700);
307
- --spin-active-color: var(--accent-500);
308
- }
309
-
310
- /* Slider Styles */
311
-
312
- .radio {
313
- --radio-background-unchecked: var(--background-800);
314
- --radio-border-unchecked: var(--background-700);
315
- --radio-background-checked: var(--accent-500);
316
- --radio-border-checked: var(--accent-500);
317
- --radio-dot-unchecked: transparent;
318
- --radio-dot-checked: var(--accent-50);
319
- --radio-hover-background: var(--accent-500);
320
- --radio-hover-border: var(--background-500);
321
- --radio-error-border: var(--danger-500);
322
- --ring-color: rgb(59, 130, 246);
323
- }
324
-
325
- .radio.radio-label {
326
- --radio-foreground: var(--foreground-300);
327
- }
328
-
329
- .radio.radio-label-disabled {
330
- --radio-foreground-disabled: var(--foreground-400);
331
- }
332
-
333
- .radio.radio-description {
334
- --radio-helper: var(--foreground-400);
335
- }
336
-
337
- .radio.radio-description-error {
338
- --radio-helper-error: var(--danger-500);
339
- }
340
-
341
- .radio.primary[data-checked="true"] {
342
- --radio-background-checked: var(--accent-500);
343
- --radio-border-checked: var(--accent-500);
344
- }
345
-
346
- .radio.secondary {
347
- --radio-background-unchecked: var(--background-800);
348
- --radio-border-unchecked: var(--background-700);
349
- }
350
-
351
- .radio.outline {
352
- --radio-background-unchecked: transparent;
353
- --radio-border-unchecked: var(--background-700);
354
- }
355
-
356
- .radio.outline[data-checked="true"] {
357
- --radio-background-unchecked: color-mix(in srgb, var(--accent-500) 15%, transparent);
358
- --radio-border-unchecked: var(--accent-500);
359
- --radio-dot-unchecked: var(--accent-500);
360
- }
361
-
362
- /* Select Styles */
363
-
364
- .select {
365
- --background: color-mix(in srgb, var(--background-800) 50%, transparent);
366
- --foreground: var(--foreground-300);
367
- --border-color: var(--background-700);
368
- --ring-color: var(--accent-400);
369
- --focus-ring-background: var(--background-950);
370
- --hover-background: color-mix(in srgb, var(--background-700) 50%, transparent);
371
- --pressed-background: color-mix(in srgb, var(--background-600) 50%, transparent);
372
- --font-size: var(--text-xs)
373
- }
374
-
375
- .select.ghost {
376
- --background: transparent;
377
- --border-color: transparent;
378
- --hover-background: color-mix(in srgb, var(--background-700) 50%, transparent);
379
- --pressed-background: color-mix(in srgb, var(--background-700) 50%, transparent);
380
- }
381
-
382
- .select.content,
383
- .select.sub-content {
384
- --content-background: var(--background-900);
385
- --content-border: var(--background-700);
386
- }
387
-
388
- .select.item {
389
- --item-foreground: var(--foreground-300);
390
- --item-description-color: var(--foreground-400);
391
- --item-icon-color: var(--foreground-300);
392
- --item-indicator-color: var(--accent-300);
393
- --item-background-hover: color-mix(in srgb, var(--background-700) 50%, transparent);
394
- }
395
-
396
- .select.placeholder {
397
- --placeholder-color: var(--foreground-400);
398
- }
399
-
400
- .select.search-trigger {
401
- --search-divider-color: color-mix(in srgb, var(--border-color) 75%, transparent);
402
- --search-focus-ring: var(--accent-500);
403
- }
404
-
405
- .select.sub-trigger {
406
- --subtrigger-foreground: var(--foreground-300);
407
- --subtrigger-background-hover: color-mix(in srgb, var(--background-700) 30%, transparent);
408
- }
409
-
410
- /* Slider Styles */
411
-
412
- .slider {
413
- --slider-track-background: var(--background-800);
414
- --slider-range-background-default: color-mix(in srgb, var(--accent-500) 60%, transparent);
415
- --slider-range-background-disabled: var(--background-600);
416
- --slider-thumb-background-default: var(--accent-500);
417
- --slider-thumb-background-focus: var(--accent-400);
418
- --slider-thumb-background-disabled: var(--background-500);
419
- --slider-thumb-ring: color-mix(in srgb, var(--accent-500) 40%, transparent);
420
- }
421
-
422
- /* Switch Styles */
423
-
424
- .switch {
425
- --track-background-unchecked: var(--background-700);
426
- --track-background-checked: color-mix(in srgb, var(--accent-500) 80%, var(--background-500));
427
- --track-background-hover: var(--background-800);
428
- --track-background-active: var(--background-800);
429
- --track-background-disabled: var(--background-950);
430
- --thumb-background-unchecked: var(--background-500);
431
- --thumb-background-checked: white;
432
-
433
- --border: var(--background-600);
434
- --border-hover: transparent;
435
- --border-active: transparent;
436
- --border-checked: transparent;
437
-
438
- --focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent-500) 40%, transparent);
439
- }
440
-
441
- /* Textarea Styles */
442
-
443
- .textarea {
444
- --background: var(--background-950);
445
- --foreground: var(--foreground-50);
446
- --placeholder: var(--foreground-400);
447
- --border: var(--background-700);
448
- --ring-color: var(--accent-500);
449
- --disabled-background: var(--background-900);
450
- --disabled-foreground: var(--foreground-400);
451
- }
452
-
453
- .textarea[data-error] {
454
- --border: var(--danger-600);
455
- --ring-color: var(--danger-600);
456
- }
457
-
458
- .textarea.scroll-wrapper {
459
- --background: var(--background-950);
460
- --border: var(--background-700);
461
- --ring-color: var(--accent-500);
462
- --disabled-background: var(--background-900);
463
- }
464
-
465
- .textarea.scroll-wrapper[data-error] {
466
- --border: var(--danger-600);
467
- --ring-color: var(--danger-600);
468
- }
469
-
470
- .textarea.resize-handle {
471
- --resize-handle-color: color-mix(in srgb, var(--foreground-400) 72%, transparent);
472
- --resize-handle-color-hover: color-mix(in srgb, var(--foreground-200) 90%, transparent);
473
- }
474
-
475
- .textarea.character-count {
476
- --character-count-color: var(--foreground-400);
477
- --character-count-over-limit-color: var(--danger-600);
478
- }
479
-
480
- /* Banner Styles */
481
-
482
- .banner {
483
- --background: var(--background-900);
484
- --foreground: var(--info-50);
485
- --border: var(--info-600);
486
- }
487
-
488
- .banner.note {
489
- --background: var(--background-900);
490
- --foreground: var(--foreground-200);
491
- --border: var(--background-700);
492
- --icon-color: var(--background-500);
493
- }
494
-
495
- .banner.info {
496
- --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
497
- --foreground: var(--foreground-200);
498
- --border: color-mix(in srgb, var(--info-600) 30%, var(--background-900));
499
- --icon-color: var(--info-600);
500
- }
501
-
502
- .banner.success {
503
- --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
504
- --foreground: var(--foreground-200);
505
- --border: color-mix(in srgb, var(--success-600) 30%, var(--background-900));
506
- --icon-color: var(--success-600);
507
- }
508
-
509
- .banner.warning {
510
- --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
511
- --foreground: var(--foreground-200);
512
- --border: color-mix(in srgb, var(--warning-600) 30%, var(--background-900));
513
- --icon-color: var(--warning-600);
514
- }
515
-
516
- .banner.danger {
517
- --background: color-mix(in srgb, var(--danger-600) 10%, var(--background-900));
518
- --foreground: var(--foreground-200);
519
- --border: color-mix(in srgb, var(--danger-600) 30%, var(--background-900));
520
- --icon-color: var(--danger-600);
521
- }
522
-
523
- /* Badge Styles */
524
-
525
- .badge {
526
- --background: var(--background-800);
527
- --foreground: var(--foreground-200);
528
- --background-border: var(--background-600);
529
- --dismiss-color: var(--foreground-400);
530
- --dismiss-hover-background: color-mix(in srgb, var(--background-700) 80%, var(--background-900));
531
- --dismiss-pressed-background: var(--background-700);
532
- font-weight: var(--font-weight-semibold);
533
- font-size: var(--text-xs)
534
- }
535
-
536
- .badge.default {
537
- --background: color-mix(in srgb, var(--background-600) 10%, var(--background-900));
538
- --foreground: var(--foreground-200);
539
- --background-border: var(--background-700);
540
- }
541
-
542
- .badge.secondary {
543
- --background: color-mix(in srgb, var(--background-600) 40%, transparent);
544
- --foreground: var(--foreground-300);
545
- --background-border: color-mix(in srgb, var(--background-600) 40%, transparent);;
546
- }
547
-
548
- .badge.success {
549
- --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
550
- --foreground: var(--success-600);
551
- --background-border: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
552
- }
553
-
554
- .badge.warning {
555
- --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
556
- --foreground: var(--warning-600);
557
- --background-border: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
558
- }
559
-
560
- .badge.danger {
561
- --background: color-mix(in srgb, var(--danger-600) 10%, var(--background-900));
562
- --foreground: var(--danger-600);
563
- --background-border: color-mix(in srgb, var(--danger-600) 20%, var(--background-900));
564
- }
565
-
566
- .badge.info {
567
- --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
568
- --foreground: var(--info-600);
569
- --background-border: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
570
- }
571
-
572
- /* Popover Styles */
573
-
574
- .popover.content {
575
- --popover-fill: var(--background-900);
576
- --popover-border-color: var(--background-700);
577
- }
578
-
579
- .popover.frame {
580
- --foreground: var(--foreground-200);
581
- }
582
-
583
- /* Tooltip Styles */
584
-
585
- .tooltip.content {
586
- --tooltip-fill: var(--background-900);
587
- --tooltip-border-color: var(--background-700);
588
- font-size: var(--text-xs);
589
- font-weight: var(--font-weight-medium)
590
- }
591
-
592
- .tooltip.frame {
593
- --foreground: var(--foreground-200);
594
- }
595
-
596
- /* Progress Styles */
597
-
598
- .progress {
599
- --track-background: var(--background-700);
600
- --fill-background: color-mix(in srgb, var(--accent-600) 60%, var(--background-500));
601
- }
602
-
603
- .progress.label-row {
604
- --foreground: var(--foreground-400);
605
- }
606
-
607
- .progress.fill.default { --fill-background: var(--accent-500); }
608
- .progress.fill.success { --fill-background: var(--success-500); }
609
- .progress.fill.warning { --fill-background: var(--warning-500); }
610
- .progress.fill.error { --fill-background: var(--danger-500); }
611
-
612
- /* Toast Styles */
613
-
614
- .toast {
615
- --background: var(--background-900);
616
- --foreground: var(--foreground-200);
617
- --border: var(--background-600);
618
- --shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
619
- --icon-color: currentColor;
620
- --title-color: var(--foreground-100);
621
- --description-color: var(--foreground-300);
622
- --close-color: currentColor;
623
- --close-hover-background: transparent;
624
- }
625
-
626
- .toast.default {
627
- --background: var(--background-900);
628
- --foreground: var(--foreground-200);
629
- --border: var(--background-600);
630
- }
631
-
632
- .toast.danger {
633
- --background: color-mix(in srgb, var(--danger-600) 10%, var(--background-900));
634
- --foreground: var(--foreground-200);
635
- --border: color-mix(in srgb, var(--danger-600) 20%, var(--background-900));
636
- --icon-color: var(--danger-600);
637
- --close-color: color-mix(in srgb, var(--danger-600) 60%, var(--foreground-50));
638
- --close-hover-background: color-mix(in srgb, var(--danger-500) 20%, var(--background-900));
639
- }
640
-
641
- .toast.success {
642
- --background: color-mix(in srgb, var(--success-600) 10%, var(--background-900));
643
- --foreground: var(--foreground-200);
644
- --border: color-mix(in srgb, var(--success-600) 20%, var(--background-900));
645
- --icon-color: var(--success-600);
646
- --close-color: color-mix(in srgb, var(--success-600) 60%, var(--foreground-50));
647
- --close-hover-background: color-mix(in srgb, var(--success-500) 20%, var(--background-900));
648
- }
649
-
650
- .toast.info {
651
- --background: color-mix(in srgb, var(--info-600) 10%, var(--background-900));
652
- --foreground: var(--foreground-200);
653
- --border: color-mix(in srgb, var(--info-600) 20%, var(--background-900));
654
- --icon-color: var(--info-600);
655
- --close-color: color-mix(in srgb, var(--info-600) 60%, var(--foreground-50));
656
- --close-hover-background: color-mix(in srgb, var(--info-500) 20%, var(--background-900));
657
- }
658
-
659
- .toast.warning {
660
- --background: color-mix(in srgb, var(--warning-600) 10%, var(--background-900));
661
- --foreground: var(--foreground-200);
662
- --border: color-mix(in srgb, var(--warning-600) 20%, var(--background-900));
663
- --icon-color: var(--warning-600);
664
- --close-color: color-mix(in srgb, var(--warning-600) 60%, var(--foreground-50));
665
- --close-hover-background: color-mix(in srgb, var(--warning-500) 20%, var(--background-900));
666
- }
667
-
668
- /* Menu Styles */
669
-
670
- .menu.content,
671
- .menu.sub-content {
672
- --content-background: var(--background-900);
673
- --content-border: var(--background-700);
674
- font-size: var(--text-xs)
675
- }
676
-
677
- .menu.trigger {
678
- --trigger-active-background: var(--background-700);
679
- }
680
-
681
- .menu.item,
682
- .menu.checkbox-item,
683
- .menu.radio-item,
684
- .menu.sub-trigger {
685
- --item-foreground: var(--foreground-300);
686
- --item-highlighted-background: color-mix(in srgb, var(--background-700) 50%, transparent);
687
- }
688
-
689
- .menu.item-indicator {
690
- --item-indicator-color: var(--accent-300);
691
- }
692
-
693
- .menu.label {
694
- --label-foreground: var(--foreground-400);
695
- }
696
-
697
- .menu.separator {
698
- --separator-background: var(--background-700);
699
- }
700
-
701
- .menu.shortcut {
702
- --shortcut-foreground: var(--foreground-400);
703
- }
704
-
705
- /* Tabs Styles */
706
-
707
- .tabs.indicator {
708
- --indicator-background: color-mix(in srgb, var(--background-700) 50%, transparent);;
709
- }
710
-
711
- .tabs.indicator.underline {
712
- --indicator-background: var(--accent-500);
713
- }
714
-
715
- .tabs.list[data-variant="underline"][data-orientation="vertical"] {
716
- --list-border-color: var(--background-700);
717
- }
718
-
719
- .tabs.trigger {
720
- --trigger-color: var(--foreground-400);
721
- --trigger-hover-color: var(--foreground-200);
722
- --trigger-active-color: var(--foreground-50);
723
- --trigger-selected-color: var(--foreground-50);
724
- --trigger-selected-background: color-mix(in srgb, var(--background-700) 50%, transparent);
725
- --trigger-underline-color: var(--accent-500);
726
- --trigger-focus-background: var(--background-800);
727
- font-size: var(--text-xs);
728
- }
729
-
730
- .tabs.content {
731
- --content-outline-color: var(--accent-500);
732
- }
733
-
734
- /* Anchor Styles */
735
-
736
- .anchor.trigger {
737
- --foreground: var(--foreground-200);
738
- --underline-background: var(--background-600);
739
- --underline-background-hover: var(--foreground-400);
740
- --focus-ring: var(--color-background-600);
741
- }
742
-
743
- /* Modal Styles */
744
-
745
- .modal {
746
- --modal-background: var(--background-900);
747
- --modal-border: var(--background-700);
748
- --modal-title-color: var(--foreground-100);
749
- --modal-text-color: var(--foreground-300);
750
- --modal-close-color: var(--foreground-400);
751
- --modal-close-hover: var(--foreground-200);
752
- --modal-focus-ring: var(--accent-500);
753
- --footer-background: var(--background-900);
754
- }
755
-
756
- .modal.backdrop {
757
- --backdrop-background: rgb(0 0 0 / 0.5);
758
- }
759
-
760
- /* Scroll Styles */
761
-
762
- .scroll {
763
- --track-background: transparent;
764
- --thumb-background: var(--background-700);
765
- --thumb-hover-background: var(--background-600);
766
- --thumb-dragging-background: color-mix(in srgb, var(--background-500) 60%, var(--background-950));
767
- }
768
-