@duskmoon-dev/core 1.17.0 → 1.17.1

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 (77) hide show
  1. package/dist/components/alert.css +51 -0
  2. package/dist/components/appbar.css +69 -0
  3. package/dist/components/autocomplete.css +21 -0
  4. package/dist/components/avatar.css +15 -0
  5. package/dist/components/badge.css +45 -0
  6. package/dist/components/button.css +123 -0
  7. package/dist/components/card.css +27 -0
  8. package/dist/components/cascader.css +21 -0
  9. package/dist/components/chat.css +30 -0
  10. package/dist/components/checkbox.css +27 -0
  11. package/dist/components/chip.css +75 -0
  12. package/dist/components/circle-menu.css +24 -0
  13. package/dist/components/collapse.css +31 -1
  14. package/dist/components/datepicker.css +42 -0
  15. package/dist/components/divider.css +15 -0
  16. package/dist/components/file-upload.css +21 -0
  17. package/dist/components/form.css +83 -0
  18. package/dist/components/index.css +1200 -5
  19. package/dist/components/input.css +6 -0
  20. package/dist/components/multi-select.css +21 -0
  21. package/dist/components/navigation.css +50 -0
  22. package/dist/components/otp-input.css +24 -0
  23. package/dist/components/pin-input.css +24 -0
  24. package/dist/components/progress.css +12 -0
  25. package/dist/components/radio.css +12 -0
  26. package/dist/components/rating.css +18 -0
  27. package/dist/components/segment-control.css +15 -0
  28. package/dist/components/select.css +6 -0
  29. package/dist/components/slider.css +66 -0
  30. package/dist/components/snackbar.css +15 -0
  31. package/dist/components/switch.css +18 -0
  32. package/dist/components/textarea.css +6 -0
  33. package/dist/components/time-input.css +27 -0
  34. package/dist/components/toast.css +45 -0
  35. package/dist/components/toggle.css +27 -0
  36. package/dist/components/tooltip.css +63 -0
  37. package/dist/components/tree-select.css +21 -0
  38. package/dist/esm/components/alert.js +51 -0
  39. package/dist/esm/components/appbar.js +69 -0
  40. package/dist/esm/components/autocomplete.js +21 -0
  41. package/dist/esm/components/avatar.js +15 -0
  42. package/dist/esm/components/badge.js +45 -0
  43. package/dist/esm/components/button.js +123 -0
  44. package/dist/esm/components/card.js +27 -0
  45. package/dist/esm/components/cascader.js +21 -0
  46. package/dist/esm/components/chat.js +30 -0
  47. package/dist/esm/components/checkbox.js +27 -0
  48. package/dist/esm/components/chip.js +75 -0
  49. package/dist/esm/components/circle-menu.js +24 -0
  50. package/dist/esm/components/collapse.js +31 -1
  51. package/dist/esm/components/datepicker.js +42 -0
  52. package/dist/esm/components/divider.js +15 -0
  53. package/dist/esm/components/file-upload.js +21 -0
  54. package/dist/esm/components/form.js +83 -0
  55. package/dist/esm/components/input.js +6 -0
  56. package/dist/esm/components/multi-select.js +21 -0
  57. package/dist/esm/components/navigation.js +50 -0
  58. package/dist/esm/components/otp-input.js +24 -0
  59. package/dist/esm/components/pin-input.js +24 -0
  60. package/dist/esm/components/progress.js +12 -0
  61. package/dist/esm/components/radio.js +12 -0
  62. package/dist/esm/components/rating.js +18 -0
  63. package/dist/esm/components/segment-control.js +15 -0
  64. package/dist/esm/components/select.js +6 -0
  65. package/dist/esm/components/slider.js +66 -0
  66. package/dist/esm/components/snackbar.js +15 -0
  67. package/dist/esm/components/switch.js +18 -0
  68. package/dist/esm/components/textarea.js +6 -0
  69. package/dist/esm/components/time-input.js +27 -0
  70. package/dist/esm/components/toast.js +45 -0
  71. package/dist/esm/components/toggle.js +27 -0
  72. package/dist/esm/components/tooltip.js +63 -0
  73. package/dist/esm/components/tree-select.js +21 -0
  74. package/dist/index.css +1202 -7
  75. package/dist/index.min.css +1 -1
  76. package/dist/themes/generated/sunshine.css +1 -1
  77. package/package.json +1 -1
@@ -144,6 +144,42 @@
144
144
  filter: none;
145
145
  }
146
146
 
147
+ .btn-accent {
148
+ --btn-text-color: var(--color-accent-content);
149
+ background-color: var(--color-accent);
150
+ border-color: var(--color-accent);
151
+ }
152
+
153
+ .btn-accent:hover {
154
+ background-color: color-mix(in oklch, var(--color-accent), black 10%);
155
+ border-color: color-mix(in oklch, var(--color-accent), black 10%);
156
+ filter: none;
157
+ }
158
+
159
+ .btn-neutral {
160
+ --btn-text-color: var(--color-neutral-content);
161
+ background-color: var(--color-neutral);
162
+ border-color: var(--color-neutral);
163
+ }
164
+
165
+ .btn-neutral:hover {
166
+ background-color: color-mix(in oklch, var(--color-neutral), black 10%);
167
+ border-color: color-mix(in oklch, var(--color-neutral), black 10%);
168
+ filter: none;
169
+ }
170
+
171
+ .btn-base {
172
+ --btn-text-color: var(--color-base-content);
173
+ background-color: var(--color-base-100);
174
+ border-color: var(--color-base-100);
175
+ }
176
+
177
+ .btn-base:hover {
178
+ background-color: var(--color-base-200);
179
+ border-color: var(--color-base-200);
180
+ filter: none;
181
+ }
182
+
147
183
  /* Outline / Outlined Variant (.btn-outlined is an alias) */
148
184
  .btn-outline,
149
185
  .btn-outlined {
@@ -194,6 +230,42 @@
194
230
  background-color: var(--color-tertiary);
195
231
  }
196
232
 
233
+ .btn-outline.btn-accent,
234
+ .btn-outlined.btn-accent {
235
+ --btn-text-color: var(--color-accent);
236
+ border-color: currentColor;
237
+ }
238
+
239
+ .btn-outline.btn-accent:hover,
240
+ .btn-outlined.btn-accent:hover {
241
+ --btn-text-color: var(--color-accent-content);
242
+ background-color: var(--color-accent);
243
+ }
244
+
245
+ .btn-outline.btn-neutral,
246
+ .btn-outlined.btn-neutral {
247
+ --btn-text-color: var(--color-neutral);
248
+ border-color: currentColor;
249
+ }
250
+
251
+ .btn-outline.btn-neutral:hover,
252
+ .btn-outlined.btn-neutral:hover {
253
+ --btn-text-color: var(--color-neutral-content);
254
+ background-color: var(--color-neutral);
255
+ }
256
+
257
+ .btn-outline.btn-base,
258
+ .btn-outlined.btn-base {
259
+ --btn-text-color: var(--color-base-content);
260
+ border-color: currentColor;
261
+ }
262
+
263
+ .btn-outline.btn-base:hover,
264
+ .btn-outlined.btn-base:hover {
265
+ --btn-text-color: var(--color-base-content);
266
+ background-color: var(--color-base-100);
267
+ }
268
+
197
269
  .btn-outline.btn-info,
198
270
  .btn-outlined.btn-info {
199
271
  --btn-text-color: var(--color-info);
@@ -285,6 +357,24 @@
285
357
  .btn-ghost.btn-success { --btn-text-color: var(--color-success); }
286
358
  .btn-ghost.btn-warning { --btn-text-color: var(--color-warning); }
287
359
  .btn-ghost.btn-error { --btn-text-color: var(--color-error); }
360
+ .btn-ghost.btn-accent { --btn-text-color: var(--color-accent); }
361
+ .btn-ghost.btn-neutral { --btn-text-color: var(--color-neutral); }
362
+ .btn-ghost.btn-base { --btn-text-color: var(--color-base-content); }
363
+
364
+ .btn-ghost.btn-accent:hover {
365
+ --btn-text-color: var(--color-accent);
366
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
367
+ }
368
+
369
+ .btn-ghost.btn-neutral:hover {
370
+ --btn-text-color: var(--color-neutral);
371
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
372
+ }
373
+
374
+ .btn-ghost.btn-base:hover {
375
+ --btn-text-color: var(--color-base-content);
376
+ background-color: var(--color-base-200);
377
+ }
288
378
 
289
379
  .btn-ghost.btn-info:hover {
290
380
  --btn-text-color: var(--color-on-info-container);
@@ -349,6 +439,24 @@
349
439
  .btn-text.btn-success { --btn-text-color: var(--color-success); }
350
440
  .btn-text.btn-warning { --btn-text-color: var(--color-warning); }
351
441
  .btn-text.btn-error { --btn-text-color: var(--color-error); }
442
+ .btn-text.btn-accent { --btn-text-color: var(--color-accent); }
443
+ .btn-text.btn-neutral { --btn-text-color: var(--color-neutral); }
444
+ .btn-text.btn-base { --btn-text-color: var(--color-base-content); }
445
+
446
+ .btn-text.btn-accent:hover {
447
+ --btn-text-color: var(--color-accent);
448
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
449
+ }
450
+
451
+ .btn-text.btn-neutral:hover {
452
+ --btn-text-color: var(--color-neutral);
453
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
454
+ }
455
+
456
+ .btn-text.btn-base:hover {
457
+ --btn-text-color: var(--color-base-content);
458
+ background-color: var(--color-base-200);
459
+ }
352
460
 
353
461
  .btn-text.btn-info:hover {
354
462
  --btn-text-color: var(--color-on-info-container);
@@ -396,6 +504,21 @@
396
504
  background-color: var(--color-tertiary-container);
397
505
  }
398
506
 
507
+ .btn-tonal.btn-accent {
508
+ --btn-text-color: var(--color-on-surface);
509
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
510
+ }
511
+
512
+ .btn-tonal.btn-neutral {
513
+ --btn-text-color: var(--color-on-surface);
514
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
515
+ }
516
+
517
+ .btn-tonal.btn-base {
518
+ --btn-text-color: var(--color-base-content);
519
+ background-color: var(--color-base-200);
520
+ }
521
+
399
522
  .btn-tonal.btn-info {
400
523
  --btn-text-color: var(--color-on-info-container);
401
524
  background-color: var(--color-info-container);
@@ -779,6 +902,33 @@
779
902
  color: var(--color-on-error-container);
780
903
  }
781
904
 
905
+ .card-accent {
906
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
907
+ color: var(--color-on-surface);
908
+ }
909
+
910
+ .card-accent .card-title {
911
+ color: var(--color-on-surface);
912
+ }
913
+
914
+ .card-neutral {
915
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
916
+ color: var(--color-on-surface);
917
+ }
918
+
919
+ .card-neutral .card-title {
920
+ color: var(--color-on-surface);
921
+ }
922
+
923
+ .card-base {
924
+ background-color: var(--color-base-200);
925
+ color: var(--color-base-content);
926
+ }
927
+
928
+ .card-base .card-title {
929
+ color: var(--color-base-content);
930
+ }
931
+
782
932
  /* Glass Effect */
783
933
  .card-glass {
784
934
  background-color: rgb(255 255 255 / 0.1);
@@ -906,6 +1056,9 @@
906
1056
  .input-success { color: var(--color-success); }
907
1057
  .input-warning { color: var(--color-warning); }
908
1058
  .input-error { color: var(--color-error); }
1059
+ .input-accent { color: var(--color-accent); }
1060
+ .input-neutral { color: var(--color-neutral); }
1061
+ .input-base { color: var(--color-base-content); }
909
1062
 
910
1063
  /* Size Variants */
911
1064
  .input-xs {
@@ -964,6 +1117,9 @@
964
1117
  .input-filled.input-success:focus-visible { border-bottom-color: var(--color-success); }
965
1118
  .input-filled.input-warning:focus-visible { border-bottom-color: var(--color-warning); }
966
1119
  .input-filled.input-error:focus-visible { border-bottom-color: var(--color-error); }
1120
+ .input-filled.input-accent:focus-visible { border-bottom-color: var(--color-accent); }
1121
+ .input-filled.input-neutral:focus-visible { border-bottom-color: var(--color-neutral); }
1122
+ .input-filled.input-base:focus-visible { border-bottom-color: var(--color-base-content); }
967
1123
 
968
1124
  /* Input with Icon */
969
1125
  .input-group {
@@ -1167,6 +1323,33 @@
1167
1323
  border-color: var(--color-error);
1168
1324
  }
1169
1325
 
1326
+ .checkbox-accent:checked {
1327
+ background-color: var(--color-accent);
1328
+ border-color: var(--color-accent);
1329
+ }
1330
+
1331
+ .checkbox-accent:checked::after {
1332
+ border-color: var(--color-accent-content);
1333
+ }
1334
+
1335
+ .checkbox-neutral:checked {
1336
+ background-color: var(--color-neutral);
1337
+ border-color: var(--color-neutral);
1338
+ }
1339
+
1340
+ .checkbox-neutral:checked::after {
1341
+ border-color: var(--color-neutral-content);
1342
+ }
1343
+
1344
+ .checkbox-base:checked {
1345
+ background-color: var(--color-base-100);
1346
+ border-color: var(--color-base-100);
1347
+ }
1348
+
1349
+ .checkbox-base:checked::after {
1350
+ border-color: var(--color-base-content);
1351
+ }
1352
+
1170
1353
  /* Checkbox Sizes */
1171
1354
  .checkbox-xs {
1172
1355
  width: 0.875rem;
@@ -1283,6 +1466,30 @@
1283
1466
  background-color: var(--color-error);
1284
1467
  }
1285
1468
 
1469
+ .radio-accent:checked {
1470
+ border-color: var(--color-accent);
1471
+ }
1472
+
1473
+ .radio-accent:checked::after {
1474
+ background-color: var(--color-accent);
1475
+ }
1476
+
1477
+ .radio-neutral:checked {
1478
+ border-color: var(--color-neutral);
1479
+ }
1480
+
1481
+ .radio-neutral:checked::after {
1482
+ background-color: var(--color-neutral);
1483
+ }
1484
+
1485
+ .radio-base:checked {
1486
+ border-color: var(--color-base-content);
1487
+ }
1488
+
1489
+ .radio-base:checked::after {
1490
+ background-color: var(--color-base-content);
1491
+ }
1492
+
1286
1493
  /* Toggle/Switch */
1287
1494
  .toggle {
1288
1495
  appearance: none;
@@ -1410,6 +1617,38 @@
1410
1617
  border-color: var(--color-secondary);
1411
1618
  }
1412
1619
 
1620
+ .select-tertiary:focus-visible {
1621
+ border-color: var(--color-tertiary);
1622
+ }
1623
+
1624
+ .select-info:focus-visible {
1625
+ border-color: var(--color-info);
1626
+ }
1627
+
1628
+ .select-success:focus-visible {
1629
+ border-color: var(--color-success);
1630
+ }
1631
+
1632
+ .select-warning:focus-visible {
1633
+ border-color: var(--color-warning);
1634
+ }
1635
+
1636
+ .select-error:focus-visible {
1637
+ border-color: var(--color-error);
1638
+ }
1639
+
1640
+ .select-accent:focus-visible {
1641
+ border-color: var(--color-accent);
1642
+ }
1643
+
1644
+ .select-neutral:focus-visible {
1645
+ border-color: var(--color-neutral);
1646
+ }
1647
+
1648
+ .select-base:focus-visible {
1649
+ border-color: var(--color-base-content);
1650
+ }
1651
+
1413
1652
  /* Select Sizes */
1414
1653
  .select-xs {
1415
1654
  padding: 0.375rem 2rem 0.375rem 0.625rem;
@@ -1650,6 +1889,56 @@
1650
1889
  color: var(--color-on-surface);
1651
1890
  }
1652
1891
 
1892
+ .navbar-primary {
1893
+ background-color: var(--color-primary);
1894
+ color: var(--color-primary-content);
1895
+ }
1896
+
1897
+ .navbar-secondary {
1898
+ background-color: var(--color-secondary);
1899
+ color: var(--color-secondary-content);
1900
+ }
1901
+
1902
+ .navbar-tertiary {
1903
+ background-color: var(--color-tertiary);
1904
+ color: var(--color-tertiary-content);
1905
+ }
1906
+
1907
+ .navbar-accent {
1908
+ background-color: var(--color-accent);
1909
+ color: var(--color-accent-content);
1910
+ }
1911
+
1912
+ .navbar-neutral {
1913
+ background-color: var(--color-neutral);
1914
+ color: var(--color-neutral-content);
1915
+ }
1916
+
1917
+ .navbar-base {
1918
+ background-color: var(--color-base-100);
1919
+ color: var(--color-base-content);
1920
+ }
1921
+
1922
+ .navbar-info {
1923
+ background-color: var(--color-info);
1924
+ color: var(--color-info-content);
1925
+ }
1926
+
1927
+ .navbar-success {
1928
+ background-color: var(--color-success);
1929
+ color: var(--color-success-content);
1930
+ }
1931
+
1932
+ .navbar-warning {
1933
+ background-color: var(--color-warning);
1934
+ color: var(--color-warning-content);
1935
+ }
1936
+
1937
+ .navbar-error {
1938
+ background-color: var(--color-error);
1939
+ color: var(--color-error-content);
1940
+ }
1941
+
1653
1942
  .navbar-start {
1654
1943
  display: flex;
1655
1944
  align-items: center;
@@ -2784,6 +3073,21 @@
2784
3073
  color: var(--color-error-content);
2785
3074
  }
2786
3075
 
3076
+ .avatar-accent {
3077
+ background-color: var(--color-accent);
3078
+ color: var(--color-accent-content);
3079
+ }
3080
+
3081
+ .avatar-neutral {
3082
+ background-color: var(--color-neutral);
3083
+ color: var(--color-neutral-content);
3084
+ }
3085
+
3086
+ .avatar-base {
3087
+ background-color: var(--color-base-100);
3088
+ color: var(--color-base-content);
3089
+ }
3090
+
2787
3091
  /* Ring */
2788
3092
  .avatar-ring {
2789
3093
  outline: none;
@@ -2894,6 +3198,21 @@
2894
3198
  color: var(--color-tertiary-content);
2895
3199
  }
2896
3200
 
3201
+ .badge-accent {
3202
+ background-color: var(--color-accent);
3203
+ color: var(--color-accent-content);
3204
+ }
3205
+
3206
+ .badge-neutral {
3207
+ background-color: var(--color-neutral);
3208
+ color: var(--color-neutral-content);
3209
+ }
3210
+
3211
+ .badge-base {
3212
+ background-color: var(--color-base-100);
3213
+ color: var(--color-base-content);
3214
+ }
3215
+
2897
3216
  .badge-info {
2898
3217
  background-color: var(--color-info);
2899
3218
  color: var(--color-info-content);
@@ -2935,6 +3254,21 @@
2935
3254
  border-color: var(--color-tertiary);
2936
3255
  }
2937
3256
 
3257
+ .badge-outline.badge-accent {
3258
+ color: var(--color-accent);
3259
+ border-color: var(--color-accent);
3260
+ }
3261
+
3262
+ .badge-outline.badge-neutral {
3263
+ color: var(--color-neutral);
3264
+ border-color: var(--color-neutral);
3265
+ }
3266
+
3267
+ .badge-outline.badge-base {
3268
+ color: var(--color-base-content);
3269
+ border-color: var(--color-base-content);
3270
+ }
3271
+
2938
3272
  .badge-outline.badge-info {
2939
3273
  color: var(--color-info);
2940
3274
  border-color: var(--color-info);
@@ -2976,6 +3310,21 @@
2976
3310
  color: var(--color-on-tertiary-container);
2977
3311
  }
2978
3312
 
3313
+ .badge-soft.badge-accent {
3314
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
3315
+ color: var(--color-on-surface);
3316
+ }
3317
+
3318
+ .badge-soft.badge-neutral {
3319
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
3320
+ color: var(--color-on-surface);
3321
+ }
3322
+
3323
+ .badge-soft.badge-base {
3324
+ background-color: var(--color-base-200);
3325
+ color: var(--color-base-content);
3326
+ }
3327
+
2979
3328
  .badge-soft.badge-info {
2980
3329
  background-color: var(--color-info-container);
2981
3330
  color: var(--color-on-info-container);
@@ -3200,6 +3549,21 @@
3200
3549
  --chat-bubble-fg: var(--color-on-error-container);
3201
3550
  }
3202
3551
 
3552
+ .chat-bubble-accent {
3553
+ --chat-bubble-bg: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
3554
+ --chat-bubble-fg: var(--color-on-surface);
3555
+ }
3556
+
3557
+ .chat-bubble-neutral {
3558
+ --chat-bubble-bg: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
3559
+ --chat-bubble-fg: var(--color-on-surface);
3560
+ }
3561
+
3562
+ .chat-bubble-base {
3563
+ --chat-bubble-bg: var(--color-base-200);
3564
+ --chat-bubble-fg: var(--color-base-content);
3565
+ }
3566
+
3203
3567
  .chat-bubble-filled.chat-bubble-primary {
3204
3568
  --chat-bubble-bg: var(--color-primary);
3205
3569
  --chat-bubble-fg: var(--color-primary-content);
@@ -3235,6 +3599,21 @@
3235
3599
  --chat-bubble-fg: var(--color-error-content);
3236
3600
  }
3237
3601
 
3602
+ .chat-bubble-filled.chat-bubble-accent {
3603
+ --chat-bubble-bg: var(--color-accent);
3604
+ --chat-bubble-fg: var(--color-accent-content);
3605
+ }
3606
+
3607
+ .chat-bubble-filled.chat-bubble-neutral {
3608
+ --chat-bubble-bg: var(--color-neutral);
3609
+ --chat-bubble-fg: var(--color-neutral-content);
3610
+ }
3611
+
3612
+ .chat-bubble-filled.chat-bubble-base {
3613
+ --chat-bubble-bg: var(--color-base-100);
3614
+ --chat-bubble-fg: var(--color-base-content);
3615
+ }
3616
+
3238
3617
  .chat-bubble-xs {
3239
3618
  padding: 0.375rem 0.625rem;
3240
3619
  font-size: 0.75rem;
@@ -3515,6 +3894,36 @@
3515
3894
  background-color: color-mix(in oklch, var(--color-tertiary), black 10%);
3516
3895
  }
3517
3896
 
3897
+ .chip-accent {
3898
+ background-color: var(--color-accent);
3899
+ color: var(--color-accent-content);
3900
+ border-color: var(--color-accent);
3901
+ }
3902
+
3903
+ .chip-accent:hover {
3904
+ background-color: color-mix(in oklch, var(--color-accent), black 10%);
3905
+ }
3906
+
3907
+ .chip-neutral {
3908
+ background-color: var(--color-neutral);
3909
+ color: var(--color-neutral-content);
3910
+ border-color: var(--color-neutral);
3911
+ }
3912
+
3913
+ .chip-neutral:hover {
3914
+ background-color: color-mix(in oklch, var(--color-neutral), black 10%);
3915
+ }
3916
+
3917
+ .chip-base {
3918
+ background-color: var(--color-base-100);
3919
+ color: var(--color-base-content);
3920
+ border-color: var(--color-base-100);
3921
+ }
3922
+
3923
+ .chip-base:hover {
3924
+ background-color: var(--color-base-200);
3925
+ }
3926
+
3518
3927
  .chip-info {
3519
3928
  background-color: var(--color-info);
3520
3929
  color: var(--color-info-content);
@@ -3589,6 +3998,30 @@
3589
3998
  background-color: var(--color-tertiary-container);
3590
3999
  }
3591
4000
 
4001
+ .chip-outlined.chip-accent {
4002
+ color: var(--color-accent);
4003
+ }
4004
+
4005
+ .chip-outlined.chip-accent:hover {
4006
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
4007
+ }
4008
+
4009
+ .chip-outlined.chip-neutral {
4010
+ color: var(--color-neutral);
4011
+ }
4012
+
4013
+ .chip-outlined.chip-neutral:hover {
4014
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
4015
+ }
4016
+
4017
+ .chip-outlined.chip-base {
4018
+ color: var(--color-base-content);
4019
+ }
4020
+
4021
+ .chip-outlined.chip-base:hover {
4022
+ background-color: var(--color-base-200);
4023
+ }
4024
+
3592
4025
  .chip-outlined.chip-info {
3593
4026
  color: var(--color-info);
3594
4027
  }
@@ -3642,6 +4075,21 @@
3642
4075
  color: var(--color-on-tertiary-container);
3643
4076
  }
3644
4077
 
4078
+ .chip-tonal.chip-accent {
4079
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
4080
+ color: var(--color-on-surface);
4081
+ }
4082
+
4083
+ .chip-tonal.chip-neutral {
4084
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
4085
+ color: var(--color-on-surface);
4086
+ }
4087
+
4088
+ .chip-tonal.chip-base {
4089
+ background-color: var(--color-base-200);
4090
+ color: var(--color-base-content);
4091
+ }
4092
+
3645
4093
  .chip-tonal.chip-info {
3646
4094
  background-color: var(--color-info-container);
3647
4095
  color: var(--color-on-info-container);
@@ -3681,6 +4129,9 @@
3681
4129
  .chip-ghost.chip-success { background-color: transparent; color: var(--color-success); }
3682
4130
  .chip-ghost.chip-warning { background-color: transparent; color: var(--color-warning); }
3683
4131
  .chip-ghost.chip-error { background-color: transparent; color: var(--color-error); }
4132
+ .chip-ghost.chip-accent { background-color: transparent; color: var(--color-accent); }
4133
+ .chip-ghost.chip-neutral { background-color: transparent; color: var(--color-neutral); }
4134
+ .chip-ghost.chip-base { background-color: transparent; color: var(--color-base-content); }
3684
4135
 
3685
4136
  .chip-ghost.chip-primary:hover { background-color: var(--color-primary-container); }
3686
4137
  .chip-ghost.chip-secondary:hover { background-color: var(--color-secondary-container); }
@@ -3689,6 +4140,9 @@
3689
4140
  .chip-ghost.chip-success:hover { background-color: var(--color-success-container); }
3690
4141
  .chip-ghost.chip-warning:hover { background-color: var(--color-warning-container); }
3691
4142
  .chip-ghost.chip-error:hover { background-color: var(--color-error-container); }
4143
+ .chip-ghost.chip-accent:hover { background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface)); }
4144
+ .chip-ghost.chip-neutral:hover { background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface)); }
4145
+ .chip-ghost.chip-base:hover { background-color: var(--color-base-200); }
3692
4146
 
3693
4147
  /* Size Variants */
3694
4148
  .chip-sm {
@@ -4471,6 +4925,27 @@
4471
4925
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
4472
4926
  }
4473
4927
 
4928
+ .autocomplete-accent .autocomplete-input {
4929
+ color: var(--color-accent);
4930
+ }
4931
+ .autocomplete-accent .autocomplete-input:focus {
4932
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
4933
+ }
4934
+
4935
+ .autocomplete-neutral .autocomplete-input {
4936
+ color: var(--color-neutral);
4937
+ }
4938
+ .autocomplete-neutral .autocomplete-input:focus {
4939
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
4940
+ }
4941
+
4942
+ .autocomplete-base .autocomplete-input {
4943
+ color: var(--color-base-content);
4944
+ }
4945
+ .autocomplete-base .autocomplete-input:focus {
4946
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
4947
+ }
4948
+
4474
4949
  /* Ghost Variant */
4475
4950
  .autocomplete-ghost .autocomplete-input {
4476
4951
  background-color: transparent;
@@ -4919,6 +5394,27 @@
4919
5394
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
4920
5395
  }
4921
5396
 
5397
+ .cascader-accent .cascader-trigger {
5398
+ color: var(--color-accent);
5399
+ }
5400
+ .cascader-accent .cascader-trigger:focus {
5401
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
5402
+ }
5403
+
5404
+ .cascader-neutral .cascader-trigger {
5405
+ color: var(--color-neutral);
5406
+ }
5407
+ .cascader-neutral .cascader-trigger:focus {
5408
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
5409
+ }
5410
+
5411
+ .cascader-base .cascader-trigger {
5412
+ color: var(--color-base-content);
5413
+ }
5414
+ .cascader-base .cascader-trigger:focus {
5415
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
5416
+ }
5417
+
4922
5418
  /* Ghost Variant */
4923
5419
  .cascader-ghost .cascader-trigger {
4924
5420
  background-color: transparent;
@@ -5150,6 +5646,33 @@
5150
5646
  border-color: var(--color-info-content);
5151
5647
  }
5152
5648
 
5649
+ .checkbox-accent {
5650
+ --checkbox-color: var(--color-accent);
5651
+ }
5652
+
5653
+ .checkbox-accent:checked::before,
5654
+ .checkbox-accent:indeterminate::before {
5655
+ border-color: var(--color-accent-content);
5656
+ }
5657
+
5658
+ .checkbox-neutral {
5659
+ --checkbox-color: var(--color-neutral);
5660
+ }
5661
+
5662
+ .checkbox-neutral:checked::before,
5663
+ .checkbox-neutral:indeterminate::before {
5664
+ border-color: var(--color-neutral-content);
5665
+ }
5666
+
5667
+ .checkbox-base {
5668
+ --checkbox-color: var(--color-base-100);
5669
+ }
5670
+
5671
+ .checkbox-base:checked::before,
5672
+ .checkbox-base:indeterminate::before {
5673
+ border-color: var(--color-base-content);
5674
+ }
5675
+
5153
5676
  /* Ghost Variant — borderless unchecked state */
5154
5677
  .checkbox-ghost {
5155
5678
  --checkbox-border-color: transparent;
@@ -5970,6 +6493,48 @@
5970
6493
  color: var(--color-warning-content);
5971
6494
  }
5972
6495
 
6496
+ .datepicker-accent .datepicker-input {
6497
+ color: var(--color-accent);
6498
+ }
6499
+ .datepicker-accent .datepicker-input:focus {
6500
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
6501
+ }
6502
+
6503
+ .datepicker-accent .datepicker-day-selected,
6504
+ .datepicker-accent .datepicker-day-range-start,
6505
+ .datepicker-accent .datepicker-day-range-end {
6506
+ background-color: var(--color-accent);
6507
+ color: var(--color-accent-content);
6508
+ }
6509
+
6510
+ .datepicker-neutral .datepicker-input {
6511
+ color: var(--color-neutral);
6512
+ }
6513
+ .datepicker-neutral .datepicker-input:focus {
6514
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
6515
+ }
6516
+
6517
+ .datepicker-neutral .datepicker-day-selected,
6518
+ .datepicker-neutral .datepicker-day-range-start,
6519
+ .datepicker-neutral .datepicker-day-range-end {
6520
+ background-color: var(--color-neutral);
6521
+ color: var(--color-neutral-content);
6522
+ }
6523
+
6524
+ .datepicker-base .datepicker-input {
6525
+ color: var(--color-base-content);
6526
+ }
6527
+ .datepicker-base .datepicker-input:focus {
6528
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
6529
+ }
6530
+
6531
+ .datepicker-base .datepicker-day-selected,
6532
+ .datepicker-base .datepicker-day-range-start,
6533
+ .datepicker-base .datepicker-day-range-end {
6534
+ background-color: var(--color-base-100);
6535
+ color: var(--color-base-content);
6536
+ }
6537
+
5973
6538
  /* Day Selected Color Variants */
5974
6539
  .datepicker-primary .datepicker-day-selected,
5975
6540
  .datepicker-primary .datepicker-day-range-start,
@@ -6378,6 +6943,27 @@
6378
6943
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
6379
6944
  }
6380
6945
 
6946
+ .file-upload-accent .file-upload-dropzone {
6947
+ color: var(--color-accent);
6948
+ }
6949
+ .file-upload-accent .file-upload-dropzone:focus-within {
6950
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
6951
+ }
6952
+
6953
+ .file-upload-neutral .file-upload-dropzone {
6954
+ color: var(--color-neutral);
6955
+ }
6956
+ .file-upload-neutral .file-upload-dropzone:focus-within {
6957
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
6958
+ }
6959
+
6960
+ .file-upload-base .file-upload-dropzone {
6961
+ color: var(--color-base-content);
6962
+ }
6963
+ .file-upload-base .file-upload-dropzone:focus-within {
6964
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
6965
+ }
6966
+
6381
6967
  /* Ghost Variant */
6382
6968
  .file-upload-ghost .file-upload-dropzone {
6383
6969
  background-color: transparent;
@@ -7391,11 +7977,32 @@
7391
7977
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
7392
7978
  }
7393
7979
 
7394
- .multi-select-error .multi-select-trigger {
7395
- color: var(--color-error);
7980
+ .multi-select-error .multi-select-trigger {
7981
+ color: var(--color-error);
7982
+ }
7983
+ .multi-select-error .multi-select-trigger:focus-within {
7984
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
7985
+ }
7986
+
7987
+ .multi-select-accent .multi-select-trigger {
7988
+ color: var(--color-accent);
7989
+ }
7990
+ .multi-select-accent .multi-select-trigger:focus-within {
7991
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
7992
+ }
7993
+
7994
+ .multi-select-neutral .multi-select-trigger {
7995
+ color: var(--color-neutral);
7996
+ }
7997
+ .multi-select-neutral .multi-select-trigger:focus-within {
7998
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
7999
+ }
8000
+
8001
+ .multi-select-base .multi-select-trigger {
8002
+ color: var(--color-base-content);
7396
8003
  }
7397
- .multi-select-error .multi-select-trigger:focus-within {
7398
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
8004
+ .multi-select-base .multi-select-trigger:focus-within {
8005
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
7399
8006
  }
7400
8007
 
7401
8008
  /* Ghost Variant */
@@ -7633,6 +8240,30 @@
7633
8240
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
7634
8241
  }
7635
8242
 
8243
+ .otp-input-accent .otp-input-field {
8244
+ color: var(--color-accent);
8245
+ }
8246
+
8247
+ .otp-input-accent .otp-input-field:focus {
8248
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
8249
+ }
8250
+
8251
+ .otp-input-neutral .otp-input-field {
8252
+ color: var(--color-neutral);
8253
+ }
8254
+
8255
+ .otp-input-neutral .otp-input-field:focus {
8256
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
8257
+ }
8258
+
8259
+ .otp-input-base .otp-input-field {
8260
+ color: var(--color-base-content);
8261
+ }
8262
+
8263
+ .otp-input-base .otp-input-field:focus {
8264
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
8265
+ }
8266
+
7636
8267
  /* Ghost Variant */
7637
8268
  .otp-input-ghost .otp-input-field {
7638
8269
  background-color: transparent;
@@ -7851,6 +8482,30 @@
7851
8482
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
7852
8483
  }
7853
8484
 
8485
+ .pin-input-accent .pin-input-field {
8486
+ color: var(--color-accent);
8487
+ }
8488
+
8489
+ .pin-input-accent .pin-input-field:focus {
8490
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
8491
+ }
8492
+
8493
+ .pin-input-neutral .pin-input-field {
8494
+ color: var(--color-neutral);
8495
+ }
8496
+
8497
+ .pin-input-neutral .pin-input-field:focus {
8498
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
8499
+ }
8500
+
8501
+ .pin-input-base .pin-input-field {
8502
+ color: var(--color-base-content);
8503
+ }
8504
+
8505
+ .pin-input-base .pin-input-field:focus {
8506
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
8507
+ }
8508
+
7854
8509
  @keyframes pin-shake {
7855
8510
  0%, 100% { transform: translateX(0); }
7856
8511
  20%, 60% { transform: translateX(-4px); }
@@ -8035,6 +8690,18 @@
8035
8690
  --radio-color: var(--color-info);
8036
8691
  }
8037
8692
 
8693
+ .radio-accent {
8694
+ --radio-color: var(--color-accent);
8695
+ }
8696
+
8697
+ .radio-neutral {
8698
+ --radio-color: var(--color-neutral);
8699
+ }
8700
+
8701
+ .radio-base {
8702
+ --radio-color: var(--color-base-content);
8703
+ }
8704
+
8038
8705
  /* Ghost Variant — borderless unchecked state */
8039
8706
  .radio-ghost {
8040
8707
  --radio-border-color: transparent;
@@ -8228,6 +8895,18 @@
8228
8895
  color: var(--color-warning);
8229
8896
  }
8230
8897
 
8898
+ .rating-accent .rating-item.filled {
8899
+ color: var(--color-accent);
8900
+ }
8901
+
8902
+ .rating-neutral .rating-item.filled {
8903
+ color: var(--color-neutral);
8904
+ }
8905
+
8906
+ .rating-base .rating-item.filled {
8907
+ color: var(--color-base-content);
8908
+ }
8909
+
8231
8910
  /* Read Only */
8232
8911
  .rating-readonly .rating-item {
8233
8912
  cursor: default;
@@ -8277,6 +8956,9 @@
8277
8956
  .rating-info:not(.rating-readonly):hover .rating-item { color: var(--color-info); }
8278
8957
  .rating-success:not(.rating-readonly):hover .rating-item { color: var(--color-success); }
8279
8958
  .rating-error:not(.rating-readonly):hover .rating-item { color: var(--color-error); }
8959
+ .rating-accent:not(.rating-readonly):hover .rating-item { color: var(--color-accent); }
8960
+ .rating-neutral:not(.rating-readonly):hover .rating-item { color: var(--color-neutral); }
8961
+ .rating-base:not(.rating-readonly):hover .rating-item { color: var(--color-base-content); }
8280
8962
 
8281
8963
  /* Focus Visible — use warning (the default fill color) for the base ring;
8282
8964
  per-variant overrides below match the active fill color for each variant. */
@@ -8293,6 +8975,9 @@
8293
8975
  .rating-success .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 20%, transparent); }
8294
8976
  .rating-error .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 20%, transparent); }
8295
8977
  .rating-warning .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent); }
8978
+ .rating-accent .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 20%, transparent); }
8979
+ .rating-neutral .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 20%, transparent); }
8980
+ .rating-base .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 20%, transparent); }
8296
8981
 
8297
8982
  /* Rating Display (static) */
8298
8983
  .rating-display {
@@ -8496,6 +9181,21 @@
8496
9181
  color: var(--color-on-error-container);
8497
9182
  }
8498
9183
 
9184
+ .segment-control-accent .segment-item-active {
9185
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
9186
+ color: var(--color-on-surface);
9187
+ }
9188
+
9189
+ .segment-control-neutral .segment-item-active {
9190
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
9191
+ color: var(--color-on-surface);
9192
+ }
9193
+
9194
+ .segment-control-base .segment-item-active {
9195
+ background-color: var(--color-base-200);
9196
+ color: var(--color-base-content);
9197
+ }
9198
+
8499
9199
  /* Full Width */
8500
9200
  .segment-control-full {
8501
9201
  display: flex;
@@ -8639,6 +9339,9 @@
8639
9339
  .select-filled.select-success:focus-visible { border-bottom-color: var(--color-success); }
8640
9340
  .select-filled.select-warning:focus-visible { border-bottom-color: var(--color-warning); }
8641
9341
  .select-filled.select-error:focus-visible { border-bottom-color: var(--color-error); }
9342
+ .select-filled.select-accent:focus-visible { border-bottom-color: var(--color-accent); }
9343
+ .select-filled.select-neutral:focus-visible { border-bottom-color: var(--color-neutral); }
9344
+ .select-filled.select-base:focus-visible { border-bottom-color: var(--color-base-content); }
8642
9345
 
8643
9346
  /* Outlined Variant (default is outlined) */
8644
9347
  .select-outlined {
@@ -8658,6 +9361,9 @@
8658
9361
  .select-success { color: var(--color-success); }
8659
9362
  .select-warning { color: var(--color-warning); }
8660
9363
  .select-error { color: var(--color-error); }
9364
+ .select-accent { color: var(--color-accent); }
9365
+ .select-neutral { color: var(--color-neutral); }
9366
+ .select-base { color: var(--color-base-content); }
8661
9367
 
8662
9368
  /* Size Variants */
8663
9369
  .select-xs {
@@ -9091,6 +9797,69 @@
9091
9797
  border-top-color: var(--color-error);
9092
9798
  }
9093
9799
 
9800
+ .slider-accent .slider-track-filled,
9801
+ .slider-accent .slider-thumb {
9802
+ background-color: var(--color-accent);
9803
+ }
9804
+
9805
+ .slider-accent .slider-thumb:hover,
9806
+ .slider-accent .slider-thumb:focus-visible {
9807
+ box-shadow: 0 0 0 8px color-mix(in oklch, var(--color-accent) 15%, var(--color-surface)), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
9808
+ }
9809
+
9810
+ .slider-accent .slider-mark-active { background-color: var(--color-accent-content); }
9811
+
9812
+ .slider-accent .slider-thumb-label {
9813
+ background-color: var(--color-accent);
9814
+ color: var(--color-accent-content);
9815
+ }
9816
+
9817
+ .slider-accent .slider-thumb-label::after {
9818
+ border-top-color: var(--color-accent);
9819
+ }
9820
+
9821
+ .slider-neutral .slider-track-filled,
9822
+ .slider-neutral .slider-thumb {
9823
+ background-color: var(--color-neutral);
9824
+ }
9825
+
9826
+ .slider-neutral .slider-thumb:hover,
9827
+ .slider-neutral .slider-thumb:focus-visible {
9828
+ box-shadow: 0 0 0 8px color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface)), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
9829
+ }
9830
+
9831
+ .slider-neutral .slider-mark-active { background-color: var(--color-neutral-content); }
9832
+
9833
+ .slider-neutral .slider-thumb-label {
9834
+ background-color: var(--color-neutral);
9835
+ color: var(--color-neutral-content);
9836
+ }
9837
+
9838
+ .slider-neutral .slider-thumb-label::after {
9839
+ border-top-color: var(--color-neutral);
9840
+ }
9841
+
9842
+ .slider-base .slider-track-filled,
9843
+ .slider-base .slider-thumb {
9844
+ background-color: var(--color-base-100);
9845
+ }
9846
+
9847
+ .slider-base .slider-thumb:hover,
9848
+ .slider-base .slider-thumb:focus-visible {
9849
+ box-shadow: 0 0 0 8px var(--color-base-200), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
9850
+ }
9851
+
9852
+ .slider-base .slider-mark-active { background-color: var(--color-base-content); }
9853
+
9854
+ .slider-base .slider-thumb-label {
9855
+ background-color: var(--color-base-100);
9856
+ color: var(--color-base-content);
9857
+ }
9858
+
9859
+ .slider-base .slider-thumb-label::after {
9860
+ border-top-color: var(--color-base-100);
9861
+ }
9862
+
9094
9863
  /* Disabled State */
9095
9864
  .slider-disabled {
9096
9865
  opacity: 0.6;
@@ -9158,6 +9927,9 @@
9158
9927
  .slider-success.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-success); }
9159
9928
  .slider-warning.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-warning); }
9160
9929
  .slider-error.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-error); }
9930
+ .slider-accent.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-accent); }
9931
+ .slider-neutral.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-neutral); }
9932
+ .slider-base.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-base-100); }
9161
9933
 
9162
9934
  .slider-vertical .slider-marks {
9163
9935
  flex-direction: column;
@@ -9416,6 +10188,24 @@
9416
10188
  --switch-container-color: var(--color-info-container);
9417
10189
  }
9418
10190
 
10191
+ .switch-accent {
10192
+ --switch-color: var(--color-accent);
10193
+ --switch-content-color: var(--color-accent-content);
10194
+ --switch-container-color: color-mix(in oklch, var(--color-accent) 20%, var(--color-surface));
10195
+ }
10196
+
10197
+ .switch-neutral {
10198
+ --switch-color: var(--color-neutral);
10199
+ --switch-content-color: var(--color-neutral-content);
10200
+ --switch-container-color: color-mix(in oklch, var(--color-neutral) 20%, var(--color-surface));
10201
+ }
10202
+
10203
+ .switch-base {
10204
+ --switch-color: var(--color-base-100);
10205
+ --switch-content-color: var(--color-base-content);
10206
+ --switch-container-color: color-mix(in oklch, var(--color-base-100) 20%, var(--color-surface));
10207
+ }
10208
+
9419
10209
  /* Ghost Variant — borderless track */
9420
10210
  .switch-ghost {
9421
10211
  --switch-border-color: transparent;
@@ -9633,6 +10423,9 @@
9633
10423
  .textarea-filled.textarea-success:focus-visible { border-bottom-color: var(--color-success); }
9634
10424
  .textarea-filled.textarea-warning:focus-visible { border-bottom-color: var(--color-warning); }
9635
10425
  .textarea-filled.textarea-error:focus-visible { border-bottom-color: var(--color-error); }
10426
+ .textarea-filled.textarea-accent:focus-visible { border-bottom-color: var(--color-accent); }
10427
+ .textarea-filled.textarea-neutral:focus-visible { border-bottom-color: var(--color-neutral); }
10428
+ .textarea-filled.textarea-base:focus-visible { border-bottom-color: var(--color-base-content); }
9636
10429
 
9637
10430
  /* Outlined Variant (default) */
9638
10431
  .textarea-outlined {
@@ -9676,6 +10469,9 @@
9676
10469
  .textarea-success { color: var(--color-success); }
9677
10470
  .textarea-warning { color: var(--color-warning); }
9678
10471
  .textarea-error { color: var(--color-error); }
10472
+ .textarea-accent { color: var(--color-accent); }
10473
+ .textarea-neutral { color: var(--color-neutral); }
10474
+ .textarea-base { color: var(--color-base-content); }
9679
10475
 
9680
10476
  /* ============================================
9681
10477
  * SIZE VARIANTS
@@ -10175,6 +10971,30 @@
10175
10971
  border-color: var(--color-error);
10176
10972
  }
10177
10973
 
10974
+ /* Accent variant */
10975
+ .toggle-btn-accent.toggle-btn-active,
10976
+ .toggle-btn-accent.active {
10977
+ color: var(--color-on-surface);
10978
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
10979
+ border-color: var(--color-accent);
10980
+ }
10981
+
10982
+ /* Neutral variant */
10983
+ .toggle-btn-neutral.toggle-btn-active,
10984
+ .toggle-btn-neutral.active {
10985
+ color: var(--color-on-surface);
10986
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
10987
+ border-color: var(--color-neutral);
10988
+ }
10989
+
10990
+ /* Base variant */
10991
+ .toggle-btn-base.toggle-btn-active,
10992
+ .toggle-btn-base.active {
10993
+ color: var(--color-base-content);
10994
+ background-color: var(--color-base-200);
10995
+ border-color: var(--color-base-content);
10996
+ }
10997
+
10178
10998
  /* Ghost Variant */
10179
10999
  .toggle-btn-ghost {
10180
11000
  background-color: transparent;
@@ -10192,6 +11012,9 @@
10192
11012
  .toggle-btn-ghost.toggle-btn-success { color: var(--color-success); }
10193
11013
  .toggle-btn-ghost.toggle-btn-warning { color: var(--color-warning); }
10194
11014
  .toggle-btn-ghost.toggle-btn-error { color: var(--color-error); }
11015
+ .toggle-btn-ghost.toggle-btn-accent { color: var(--color-accent); }
11016
+ .toggle-btn-ghost.toggle-btn-neutral { color: var(--color-neutral); }
11017
+ .toggle-btn-ghost.toggle-btn-base { color: var(--color-base-content); }
10195
11018
 
10196
11019
  /* Focus state */
10197
11020
  .toggle-btn:focus-visible {
@@ -10630,6 +11453,33 @@
10630
11453
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
10631
11454
  }
10632
11455
 
11456
+ .time-input-accent .time-input-field,
11457
+ .time-input-accent .time-input-segments {
11458
+ color: var(--color-accent);
11459
+ }
11460
+
11461
+ .time-input-accent .time-input-field:focus {
11462
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
11463
+ }
11464
+
11465
+ .time-input-neutral .time-input-field,
11466
+ .time-input-neutral .time-input-segments {
11467
+ color: var(--color-neutral);
11468
+ }
11469
+
11470
+ .time-input-neutral .time-input-field:focus {
11471
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
11472
+ }
11473
+
11474
+ .time-input-base .time-input-field,
11475
+ .time-input-base .time-input-segments {
11476
+ color: var(--color-base-content);
11477
+ }
11478
+
11479
+ .time-input-base .time-input-field:focus {
11480
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
11481
+ }
11482
+
10633
11483
  /* Ghost Variant */
10634
11484
  .time-input-ghost .time-input-field,
10635
11485
  .time-input-ghost .time-input-segments {
@@ -11140,6 +11990,27 @@
11140
11990
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
11141
11991
  }
11142
11992
 
11993
+ .tree-select-accent .tree-select-trigger {
11994
+ color: var(--color-accent);
11995
+ }
11996
+ .tree-select-accent .tree-select-trigger:focus {
11997
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
11998
+ }
11999
+
12000
+ .tree-select-neutral .tree-select-trigger {
12001
+ color: var(--color-neutral);
12002
+ }
12003
+ .tree-select-neutral .tree-select-trigger:focus {
12004
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
12005
+ }
12006
+
12007
+ .tree-select-base .tree-select-trigger {
12008
+ color: var(--color-base-content);
12009
+ }
12010
+ .tree-select-base .tree-select-trigger:focus {
12011
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
12012
+ }
12013
+
11143
12014
  /* Ghost Variant */
11144
12015
  .tree-select-ghost .tree-select-trigger {
11145
12016
  background-color: transparent;
@@ -11357,6 +12228,24 @@
11357
12228
  border-color: transparent;
11358
12229
  }
11359
12230
 
12231
+ .alert-accent {
12232
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
12233
+ color: var(--color-on-surface);
12234
+ border-color: transparent;
12235
+ }
12236
+
12237
+ .alert-neutral {
12238
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
12239
+ color: var(--color-on-surface);
12240
+ border-color: transparent;
12241
+ }
12242
+
12243
+ .alert-base {
12244
+ background-color: var(--color-base-200);
12245
+ color: var(--color-base-content);
12246
+ border-color: transparent;
12247
+ }
12248
+
11360
12249
  /* Filled Variants */
11361
12250
  .alert-filled.alert-info {
11362
12251
  background-color: var(--color-info);
@@ -11393,6 +12282,21 @@
11393
12282
  color: var(--color-tertiary-content);
11394
12283
  }
11395
12284
 
12285
+ .alert-filled.alert-accent {
12286
+ background-color: var(--color-accent);
12287
+ color: var(--color-accent-content);
12288
+ }
12289
+
12290
+ .alert-filled.alert-neutral {
12291
+ background-color: var(--color-neutral);
12292
+ color: var(--color-neutral-content);
12293
+ }
12294
+
12295
+ .alert-filled.alert-base {
12296
+ background-color: var(--color-base-100);
12297
+ color: var(--color-base-content);
12298
+ }
12299
+
11396
12300
  /* Outlined Variants */
11397
12301
  .alert-outlined {
11398
12302
  background-color: transparent;
@@ -11433,6 +12337,21 @@
11433
12337
  color: var(--color-tertiary);
11434
12338
  }
11435
12339
 
12340
+ .alert-outlined.alert-accent {
12341
+ border-color: var(--color-accent);
12342
+ color: var(--color-accent);
12343
+ }
12344
+
12345
+ .alert-outlined.alert-neutral {
12346
+ border-color: var(--color-neutral);
12347
+ color: var(--color-neutral);
12348
+ }
12349
+
12350
+ .alert-outlined.alert-base {
12351
+ border-color: var(--color-base-content);
12352
+ color: var(--color-base-content);
12353
+ }
12354
+
11436
12355
  /* Ghost Variant */
11437
12356
  .alert-ghost {
11438
12357
  background-color: transparent;
@@ -11446,6 +12365,9 @@
11446
12365
  .alert-ghost.alert-success { color: var(--color-success); }
11447
12366
  .alert-ghost.alert-warning { color: var(--color-warning); }
11448
12367
  .alert-ghost.alert-error { color: var(--color-error); }
12368
+ .alert-ghost.alert-accent { color: var(--color-accent); }
12369
+ .alert-ghost.alert-neutral { color: var(--color-neutral); }
12370
+ .alert-ghost.alert-base { color: var(--color-base-content); }
11449
12371
 
11450
12372
  /* Dismissible */
11451
12373
  .alert-dismissible {
@@ -11728,6 +12650,18 @@
11728
12650
  background-color: var(--color-error);
11729
12651
  }
11730
12652
 
12653
+ .progress-accent .progress-bar {
12654
+ background-color: var(--color-accent);
12655
+ }
12656
+
12657
+ .progress-neutral .progress-bar {
12658
+ background-color: var(--color-neutral);
12659
+ }
12660
+
12661
+ .progress-base .progress-bar {
12662
+ background-color: var(--color-base-content);
12663
+ }
12664
+
11731
12665
  /* Size Variants */
11732
12666
  .progress-xs {
11733
12667
  height: 0.25rem;
@@ -12375,6 +13309,21 @@
12375
13309
  color: var(--color-on-tertiary-container);
12376
13310
  }
12377
13311
 
13312
+ .snackbar-accent {
13313
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
13314
+ color: var(--color-on-surface);
13315
+ }
13316
+
13317
+ .snackbar-neutral {
13318
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
13319
+ color: var(--color-on-surface);
13320
+ }
13321
+
13322
+ .snackbar-base {
13323
+ background-color: var(--color-base-200);
13324
+ color: var(--color-base-content);
13325
+ }
13326
+
12378
13327
  /* Dark Snackbar (default MD3 style) */
12379
13328
  .snackbar-dark {
12380
13329
  background-color: var(--color-on-surface);
@@ -12658,6 +13607,30 @@
12658
13607
  color: var(--color-tertiary);
12659
13608
  }
12660
13609
 
13610
+ .toast-accent {
13611
+ border-color: var(--color-accent);
13612
+ }
13613
+
13614
+ .toast-accent .toast-icon {
13615
+ color: var(--color-accent);
13616
+ }
13617
+
13618
+ .toast-neutral {
13619
+ border-color: var(--color-neutral);
13620
+ }
13621
+
13622
+ .toast-neutral .toast-icon {
13623
+ color: var(--color-neutral);
13624
+ }
13625
+
13626
+ .toast-base {
13627
+ border-color: var(--color-base-content);
13628
+ }
13629
+
13630
+ .toast-base .toast-icon {
13631
+ color: var(--color-base-content);
13632
+ }
13633
+
12661
13634
  /* Filled Variants */
12662
13635
  .toast-filled.toast-info {
12663
13636
  background-color: var(--color-info-container);
@@ -12701,6 +13674,24 @@
12701
13674
  color: var(--color-on-tertiary-container);
12702
13675
  }
12703
13676
 
13677
+ .toast-filled.toast-accent {
13678
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
13679
+ border-color: transparent;
13680
+ color: var(--color-on-surface);
13681
+ }
13682
+
13683
+ .toast-filled.toast-neutral {
13684
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
13685
+ border-color: transparent;
13686
+ color: var(--color-on-surface);
13687
+ }
13688
+
13689
+ .toast-filled.toast-base {
13690
+ background-color: var(--color-base-200);
13691
+ border-color: transparent;
13692
+ color: var(--color-base-content);
13693
+ }
13694
+
12704
13695
  /* Filled variant sub-element color inheritance fix.
12705
13696
  .toast-title and .toast-message have explicit color rules that would otherwise
12706
13697
  override the filled variant's inherited on-container color. */
@@ -12722,6 +13713,9 @@
12722
13713
  .toast-ghost.toast-success { color: var(--color-success); }
12723
13714
  .toast-ghost.toast-warning { color: var(--color-warning); }
12724
13715
  .toast-ghost.toast-error { color: var(--color-error); }
13716
+ .toast-ghost.toast-accent { color: var(--color-accent); }
13717
+ .toast-ghost.toast-neutral { color: var(--color-neutral); }
13718
+ .toast-ghost.toast-base { color: var(--color-base-content); }
12725
13719
 
12726
13720
  .toast-ghost .toast-title,
12727
13721
  .toast-ghost .toast-message {
@@ -13081,6 +14075,69 @@
13081
14075
  border-right-color: var(--color-warning);
13082
14076
  }
13083
14077
 
14078
+ .tooltip.tooltip-accent .tooltip-content {
14079
+ background-color: var(--color-accent);
14080
+ color: var(--color-accent-content);
14081
+ }
14082
+
14083
+ .tooltip.tooltip-accent .tooltip-content::before {
14084
+ border-top-color: var(--color-accent);
14085
+ }
14086
+
14087
+ .tooltip.tooltip-accent.tooltip-bottom .tooltip-content::before {
14088
+ border-bottom-color: var(--color-accent);
14089
+ }
14090
+
14091
+ .tooltip.tooltip-accent.tooltip-left .tooltip-content::before {
14092
+ border-left-color: var(--color-accent);
14093
+ }
14094
+
14095
+ .tooltip.tooltip-accent.tooltip-right .tooltip-content::before {
14096
+ border-right-color: var(--color-accent);
14097
+ }
14098
+
14099
+ .tooltip.tooltip-neutral .tooltip-content {
14100
+ background-color: var(--color-neutral);
14101
+ color: var(--color-neutral-content);
14102
+ }
14103
+
14104
+ .tooltip.tooltip-neutral .tooltip-content::before {
14105
+ border-top-color: var(--color-neutral);
14106
+ }
14107
+
14108
+ .tooltip.tooltip-neutral.tooltip-bottom .tooltip-content::before {
14109
+ border-bottom-color: var(--color-neutral);
14110
+ }
14111
+
14112
+ .tooltip.tooltip-neutral.tooltip-left .tooltip-content::before {
14113
+ border-left-color: var(--color-neutral);
14114
+ }
14115
+
14116
+ .tooltip.tooltip-neutral.tooltip-right .tooltip-content::before {
14117
+ border-right-color: var(--color-neutral);
14118
+ }
14119
+
14120
+ .tooltip.tooltip-base .tooltip-content {
14121
+ background-color: var(--color-base-100);
14122
+ color: var(--color-base-content);
14123
+ }
14124
+
14125
+ .tooltip.tooltip-base .tooltip-content::before {
14126
+ border-top-color: var(--color-base-100);
14127
+ }
14128
+
14129
+ .tooltip.tooltip-base.tooltip-bottom .tooltip-content::before {
14130
+ border-bottom-color: var(--color-base-100);
14131
+ }
14132
+
14133
+ .tooltip.tooltip-base.tooltip-left .tooltip-content::before {
14134
+ border-left-color: var(--color-base-100);
14135
+ }
14136
+
14137
+ .tooltip.tooltip-base.tooltip-right .tooltip-content::before {
14138
+ border-right-color: var(--color-base-100);
14139
+ }
14140
+
13084
14141
  /* Multi-line Tooltip */
13085
14142
  .tooltip-multiline .tooltip-content {
13086
14143
  white-space: normal;
@@ -13517,6 +14574,75 @@
13517
14574
  opacity: 0.8;
13518
14575
  }
13519
14576
 
14577
+ .appbar-accent {
14578
+ background-color: var(--color-accent);
14579
+ color: var(--color-accent-content);
14580
+ }
14581
+
14582
+ .appbar-accent .appbar-nav,
14583
+ .appbar-accent .appbar-action,
14584
+ .appbar-accent .appbar-back {
14585
+ color: var(--color-accent-content);
14586
+ }
14587
+
14588
+ .appbar-accent .appbar-nav:hover,
14589
+ .appbar-accent .appbar-action:hover,
14590
+ .appbar-accent .appbar-back:hover {
14591
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
14592
+ color: var(--color-accent);
14593
+ }
14594
+
14595
+ .appbar-accent .appbar-subtitle {
14596
+ color: var(--color-accent-content);
14597
+ opacity: 0.8;
14598
+ }
14599
+
14600
+ .appbar-neutral {
14601
+ background-color: var(--color-neutral);
14602
+ color: var(--color-neutral-content);
14603
+ }
14604
+
14605
+ .appbar-neutral .appbar-nav,
14606
+ .appbar-neutral .appbar-action,
14607
+ .appbar-neutral .appbar-back {
14608
+ color: var(--color-neutral-content);
14609
+ }
14610
+
14611
+ .appbar-neutral .appbar-nav:hover,
14612
+ .appbar-neutral .appbar-action:hover,
14613
+ .appbar-neutral .appbar-back:hover {
14614
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
14615
+ color: var(--color-neutral);
14616
+ }
14617
+
14618
+ .appbar-neutral .appbar-subtitle {
14619
+ color: var(--color-neutral-content);
14620
+ opacity: 0.8;
14621
+ }
14622
+
14623
+ .appbar-base {
14624
+ background-color: var(--color-base-100);
14625
+ color: var(--color-base-content);
14626
+ }
14627
+
14628
+ .appbar-base .appbar-nav,
14629
+ .appbar-base .appbar-action,
14630
+ .appbar-base .appbar-back {
14631
+ color: var(--color-base-content);
14632
+ }
14633
+
14634
+ .appbar-base .appbar-nav:hover,
14635
+ .appbar-base .appbar-action:hover,
14636
+ .appbar-base .appbar-back:hover {
14637
+ background-color: var(--color-base-200);
14638
+ color: var(--color-base-content);
14639
+ }
14640
+
14641
+ .appbar-base .appbar-subtitle {
14642
+ color: var(--color-base-content);
14643
+ opacity: 0.8;
14644
+ }
14645
+
13520
14646
  .appbar-info {
13521
14647
  background-color: var(--color-info);
13522
14648
  color: var(--color-info-content);
@@ -13913,6 +15039,21 @@
13913
15039
  background-color: var(--color-error);
13914
15040
  }
13915
15041
 
15042
+ .divider-accent::before,
15043
+ .divider-accent::after {
15044
+ background-color: var(--color-accent);
15045
+ }
15046
+
15047
+ .divider-neutral::before,
15048
+ .divider-neutral::after {
15049
+ background-color: var(--color-neutral);
15050
+ }
15051
+
15052
+ .divider-base::before,
15053
+ .divider-base::after {
15054
+ background-color: var(--color-base-content);
15055
+ }
15056
+
13916
15057
  /* ── Gradient Lines ─────────────────────────────────────────────── */
13917
15058
  .divider-gradient::before,
13918
15059
  .divider-gradient::after {
@@ -14660,6 +15801,30 @@
14660
15801
  --circle-menu-item-ring: color-mix(in oklch, var(--color-error) 40%, transparent);
14661
15802
  }
14662
15803
 
15804
+ .circle-menu-accent {
15805
+ --circle-menu-btn-bg: var(--color-accent);
15806
+ --circle-menu-bar-color: var(--color-accent-content);
15807
+ --circle-menu-item-bg: var(--color-accent);
15808
+ --circle-menu-item-color: var(--color-accent-content);
15809
+ --circle-menu-item-ring: color-mix(in oklch, var(--color-accent) 40%, transparent);
15810
+ }
15811
+
15812
+ .circle-menu-neutral {
15813
+ --circle-menu-btn-bg: var(--color-neutral);
15814
+ --circle-menu-bar-color: var(--color-neutral-content);
15815
+ --circle-menu-item-bg: var(--color-neutral);
15816
+ --circle-menu-item-color: var(--color-neutral-content);
15817
+ --circle-menu-item-ring: color-mix(in oklch, var(--color-neutral) 40%, transparent);
15818
+ }
15819
+
15820
+ .circle-menu-base {
15821
+ --circle-menu-btn-bg: var(--color-base-100);
15822
+ --circle-menu-bar-color: var(--color-base-content);
15823
+ --circle-menu-item-bg: var(--color-base-100);
15824
+ --circle-menu-item-color: var(--color-base-content);
15825
+ --circle-menu-item-ring: color-mix(in oklch, var(--color-base-content) 40%, transparent);
15826
+ }
15827
+
14663
15828
  /* === Reduced motion === */
14664
15829
  @media (prefers-reduced-motion: reduce) {
14665
15830
  .circle-menu-label {
@@ -16392,10 +17557,16 @@
16392
17557
 
16393
17558
  .collapse-card .collapse-inner,
16394
17559
  .collapse-card .collapse-content > * {
16395
- padding: 0 1rem 1rem;
16396
17560
  color: var(--color-on-surface-variant);
16397
17561
  }
16398
17562
 
17563
+ .collapse-card.collapse-open .collapse-inner,
17564
+ .collapse-card.collapse-open .collapse-content > *,
17565
+ .collapse-card.show .collapse-inner,
17566
+ .collapse-card.show .collapse-content > * {
17567
+ padding: 0 1rem 1rem;
17568
+ }
17569
+
16399
17570
  /* Bordered Variant */
16400
17571
  .collapse-bordered {
16401
17572
  border: 1px solid var(--color-outline-variant);
@@ -16468,6 +17639,30 @@
16468
17639
  background-color: var(--color-error-container);
16469
17640
  }
16470
17641
 
17642
+ .collapse-accent .collapse-trigger {
17643
+ color: var(--color-accent);
17644
+ }
17645
+
17646
+ .collapse-accent .collapse-trigger:hover {
17647
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
17648
+ }
17649
+
17650
+ .collapse-neutral .collapse-trigger {
17651
+ color: var(--color-neutral);
17652
+ }
17653
+
17654
+ .collapse-neutral .collapse-trigger:hover {
17655
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
17656
+ }
17657
+
17658
+ .collapse-base .collapse-trigger {
17659
+ color: var(--color-base-content);
17660
+ }
17661
+
17662
+ .collapse-base .collapse-trigger:hover {
17663
+ background-color: var(--color-base-200);
17664
+ }
17665
+
16471
17666
  /* Size Variants */
16472
17667
  .collapse-sm .collapse-trigger {
16473
17668
  padding: 0.5rem 0.75rem;