@duskmoon-dev/core 1.12.4 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/components/alert.css +64 -2
  2. package/dist/components/appbar.css +119 -21
  3. package/dist/components/autocomplete.css +63 -3
  4. package/dist/components/avatar.css +22 -2
  5. package/dist/components/button.css +101 -49
  6. package/dist/components/card.css +38 -2
  7. package/dist/components/cascader.css +59 -9
  8. package/dist/components/checkbox.css +15 -5
  9. package/dist/components/chip.css +122 -2
  10. package/dist/components/collapse.css +32 -0
  11. package/dist/components/datepicker.css +79 -6
  12. package/dist/components/file-upload.css +68 -8
  13. package/dist/components/form.css +2 -1
  14. package/dist/components/index.css +1583 -409
  15. package/dist/components/input.css +21 -67
  16. package/dist/components/multi-select.css +59 -9
  17. package/dist/components/otp-input.css +48 -16
  18. package/dist/components/pin-input.css +50 -13
  19. package/dist/components/radio.css +12 -2
  20. package/dist/components/rating.css +35 -3
  21. package/dist/components/segment-control.css +23 -2
  22. package/dist/components/select.css +21 -37
  23. package/dist/components/slider.css +130 -6
  24. package/dist/components/switch.css +27 -4
  25. package/dist/components/textarea.css +21 -96
  26. package/dist/components/time-input.css +61 -12
  27. package/dist/components/toast.css +72 -3
  28. package/dist/components/toggle.css +63 -6
  29. package/dist/components/tooltip.css +84 -0
  30. package/dist/components/tree-select.css +60 -11
  31. package/dist/esm/components/alert.js +64 -2
  32. package/dist/esm/components/appbar.js +119 -21
  33. package/dist/esm/components/autocomplete.js +63 -3
  34. package/dist/esm/components/avatar.js +22 -2
  35. package/dist/esm/components/button.js +101 -49
  36. package/dist/esm/components/card.js +38 -2
  37. package/dist/esm/components/cascader.js +59 -9
  38. package/dist/esm/components/checkbox.js +15 -5
  39. package/dist/esm/components/chip.js +122 -2
  40. package/dist/esm/components/collapse.js +32 -0
  41. package/dist/esm/components/datepicker.js +79 -6
  42. package/dist/esm/components/file-upload.js +68 -8
  43. package/dist/esm/components/form.js +2 -1
  44. package/dist/esm/components/input.js +21 -67
  45. package/dist/esm/components/multi-select.js +59 -9
  46. package/dist/esm/components/otp-input.js +48 -16
  47. package/dist/esm/components/pin-input.js +50 -13
  48. package/dist/esm/components/radio.js +12 -2
  49. package/dist/esm/components/rating.js +35 -3
  50. package/dist/esm/components/segment-control.js +23 -2
  51. package/dist/esm/components/select.js +21 -37
  52. package/dist/esm/components/slider.js +130 -6
  53. package/dist/esm/components/switch.js +27 -4
  54. package/dist/esm/components/textarea.js +21 -96
  55. package/dist/esm/components/time-input.js +61 -12
  56. package/dist/esm/components/toast.js +72 -3
  57. package/dist/esm/components/toggle.js +63 -6
  58. package/dist/esm/components/tooltip.js +84 -0
  59. package/dist/esm/components/tree-select.js +60 -11
  60. package/dist/index.css +1583 -409
  61. package/dist/index.min.css +1 -1
  62. package/package.json +1 -1
@@ -95,8 +95,8 @@
95
95
  }
96
96
 
97
97
  .btn:focus-visible {
98
- outline: 2px solid var(--color-primary);
99
- outline-offset: 2px;
98
+ outline: none;
99
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
100
100
  }
101
101
 
102
102
  .btn:disabled {
@@ -118,10 +118,6 @@
118
118
  filter: none;
119
119
  }
120
120
 
121
- .btn-primary:focus-visible {
122
- outline-color: color-mix(in oklch, var(--color-primary), black 10%);
123
- }
124
-
125
121
  /* Secondary Button */
126
122
  .btn-secondary {
127
123
  --btn-text-color: var(--color-secondary-content);
@@ -135,10 +131,6 @@
135
131
  filter: none;
136
132
  }
137
133
 
138
- .btn-secondary:focus-visible {
139
- outline-color: color-mix(in oklch, var(--color-secondary), black 10%);
140
- }
141
-
142
134
  /* Tertiary Button */
143
135
  .btn-tertiary {
144
136
  --btn-text-color: var(--color-tertiary-content);
@@ -152,92 +144,102 @@
152
144
  filter: none;
153
145
  }
154
146
 
155
- .btn-tertiary:focus-visible {
156
- outline-color: color-mix(in oklch, var(--color-tertiary), black 10%);
157
- }
158
-
159
- /* Outline Variant */
160
- .btn-outline {
147
+ /* Outline / Outlined Variant (.btn-outlined is an alias) */
148
+ .btn-outline,
149
+ .btn-outlined {
161
150
  --btn-text-color: var(--color-on-surface);
162
151
  background-color: transparent;
163
152
  border: 1px solid var(--color-outline);
164
153
  }
165
154
 
166
- .btn-outline:hover {
155
+ .btn-outline:hover,
156
+ .btn-outlined:hover {
167
157
  background-color: var(--color-surface-container);
168
158
  filter: none;
169
159
  }
170
160
 
171
- .btn-outline.btn-primary {
161
+ .btn-outline.btn-primary,
162
+ .btn-outlined.btn-primary {
172
163
  --btn-text-color: var(--color-primary);
173
164
  border-color: var(--color-primary);
174
165
  }
175
166
 
176
- .btn-outline.btn-primary:hover {
167
+ .btn-outline.btn-primary:hover,
168
+ .btn-outlined.btn-primary:hover {
177
169
  --btn-text-color: var(--color-primary-content);
178
170
  background-color: var(--color-primary);
179
171
  }
180
172
 
181
- .btn-outline.btn-secondary {
173
+ .btn-outline.btn-secondary,
174
+ .btn-outlined.btn-secondary {
182
175
  --btn-text-color: var(--color-secondary);
183
176
  border-color: var(--color-secondary);
184
177
  }
185
178
 
186
- .btn-outline.btn-secondary:hover {
179
+ .btn-outline.btn-secondary:hover,
180
+ .btn-outlined.btn-secondary:hover {
187
181
  --btn-text-color: var(--color-secondary-content);
188
182
  background-color: var(--color-secondary);
189
183
  }
190
184
 
191
- .btn-outline.btn-tertiary {
185
+ .btn-outline.btn-tertiary,
186
+ .btn-outlined.btn-tertiary {
192
187
  --btn-text-color: var(--color-tertiary);
193
188
  border-color: var(--color-tertiary);
194
189
  }
195
190
 
196
- .btn-outline.btn-tertiary:hover {
191
+ .btn-outline.btn-tertiary:hover,
192
+ .btn-outlined.btn-tertiary:hover {
197
193
  --btn-text-color: var(--color-tertiary-content);
198
194
  background-color: var(--color-tertiary);
199
195
  }
200
196
 
201
- /* Outlined Variant (alias for .btn-outline - documentation aligned) */
202
- .btn-outlined {
203
- --btn-text-color: var(--color-on-surface);
204
- background-color: transparent;
205
- border: 1px solid var(--color-outline);
197
+ .btn-outline.btn-info,
198
+ .btn-outlined.btn-info {
199
+ --btn-text-color: var(--color-info);
200
+ border-color: var(--color-info);
206
201
  }
207
202
 
208
- .btn-outlined:hover {
209
- background-color: var(--color-surface-container);
210
- filter: none;
203
+ .btn-outline.btn-info:hover,
204
+ .btn-outlined.btn-info:hover {
205
+ --btn-text-color: var(--color-info-content);
206
+ background-color: var(--color-info);
211
207
  }
212
208
 
213
- .btn-outlined.btn-primary {
214
- --btn-text-color: var(--color-primary);
215
- border-color: var(--color-primary);
209
+ .btn-outline.btn-success,
210
+ .btn-outlined.btn-success {
211
+ --btn-text-color: var(--color-success);
212
+ border-color: var(--color-success);
216
213
  }
217
214
 
218
- .btn-outlined.btn-primary:hover {
219
- --btn-text-color: var(--color-primary-content);
220
- background-color: var(--color-primary);
215
+ .btn-outline.btn-success:hover,
216
+ .btn-outlined.btn-success:hover {
217
+ --btn-text-color: var(--color-success-content);
218
+ background-color: var(--color-success);
221
219
  }
222
220
 
223
- .btn-outlined.btn-secondary {
224
- --btn-text-color: var(--color-secondary);
225
- border-color: var(--color-secondary);
221
+ .btn-outline.btn-warning,
222
+ .btn-outlined.btn-warning {
223
+ --btn-text-color: var(--color-warning);
224
+ border-color: var(--color-warning);
226
225
  }
227
226
 
228
- .btn-outlined.btn-secondary:hover {
229
- --btn-text-color: var(--color-secondary-content);
230
- background-color: var(--color-secondary);
227
+ .btn-outline.btn-warning:hover,
228
+ .btn-outlined.btn-warning:hover {
229
+ --btn-text-color: var(--color-warning-content);
230
+ background-color: var(--color-warning);
231
231
  }
232
232
 
233
- .btn-outlined.btn-tertiary {
234
- --btn-text-color: var(--color-tertiary);
235
- border-color: var(--color-tertiary);
233
+ .btn-outline.btn-error,
234
+ .btn-outlined.btn-error {
235
+ --btn-text-color: var(--color-error);
236
+ border-color: var(--color-error);
236
237
  }
237
238
 
238
- .btn-outlined.btn-tertiary:hover {
239
- --btn-text-color: var(--color-tertiary-content);
240
- background-color: var(--color-tertiary);
239
+ .btn-outline.btn-error:hover,
240
+ .btn-outlined.btn-error:hover {
241
+ --btn-text-color: var(--color-error-content);
242
+ background-color: var(--color-error);
241
243
  }
242
244
 
243
245
  /* Ghost Variant */
@@ -279,6 +281,31 @@
279
281
  background-color: var(--color-tertiary-container);
280
282
  }
281
283
 
284
+ .btn-ghost.btn-info { --btn-text-color: var(--color-info); }
285
+ .btn-ghost.btn-success { --btn-text-color: var(--color-success); }
286
+ .btn-ghost.btn-warning { --btn-text-color: var(--color-warning); }
287
+ .btn-ghost.btn-error { --btn-text-color: var(--color-error); }
288
+
289
+ .btn-ghost.btn-info:hover {
290
+ --btn-text-color: var(--color-on-info-container);
291
+ background-color: var(--color-info-container);
292
+ }
293
+
294
+ .btn-ghost.btn-success:hover {
295
+ --btn-text-color: var(--color-on-success-container);
296
+ background-color: var(--color-success-container);
297
+ }
298
+
299
+ .btn-ghost.btn-warning:hover {
300
+ --btn-text-color: var(--color-on-warning-container);
301
+ background-color: var(--color-warning-container);
302
+ }
303
+
304
+ .btn-ghost.btn-error:hover {
305
+ --btn-text-color: var(--color-on-error-container);
306
+ background-color: var(--color-error-container);
307
+ }
308
+
282
309
  /* Text Variant (alias for .btn-ghost - documentation aligned) */
283
310
  .btn-text {
284
311
  --btn-text-color: var(--color-on-surface);
@@ -318,6 +345,31 @@
318
345
  background-color: var(--color-tertiary-container);
319
346
  }
320
347
 
348
+ .btn-text.btn-info { --btn-text-color: var(--color-info); }
349
+ .btn-text.btn-success { --btn-text-color: var(--color-success); }
350
+ .btn-text.btn-warning { --btn-text-color: var(--color-warning); }
351
+ .btn-text.btn-error { --btn-text-color: var(--color-error); }
352
+
353
+ .btn-text.btn-info:hover {
354
+ --btn-text-color: var(--color-on-info-container);
355
+ background-color: var(--color-info-container);
356
+ }
357
+
358
+ .btn-text.btn-success:hover {
359
+ --btn-text-color: var(--color-on-success-container);
360
+ background-color: var(--color-success-container);
361
+ }
362
+
363
+ .btn-text.btn-warning:hover {
364
+ --btn-text-color: var(--color-on-warning-container);
365
+ background-color: var(--color-warning-container);
366
+ }
367
+
368
+ .btn-text.btn-error:hover {
369
+ --btn-text-color: var(--color-on-error-container);
370
+ background-color: var(--color-error-container);
371
+ }
372
+
321
373
  /* Tonal Variant - uses container colors for subtle appearance */
322
374
  .btn-tonal {
323
375
  --btn-text-color: var(--color-on-primary-container);
@@ -691,6 +743,42 @@
691
743
  color: var(--color-on-tertiary-container);
692
744
  }
693
745
 
746
+ .card-info {
747
+ background-color: var(--color-info-container);
748
+ color: var(--color-on-info-container);
749
+ }
750
+
751
+ .card-info .card-title {
752
+ color: var(--color-on-info-container);
753
+ }
754
+
755
+ .card-success {
756
+ background-color: var(--color-success-container);
757
+ color: var(--color-on-success-container);
758
+ }
759
+
760
+ .card-success .card-title {
761
+ color: var(--color-on-success-container);
762
+ }
763
+
764
+ .card-warning {
765
+ background-color: var(--color-warning-container);
766
+ color: var(--color-on-warning-container);
767
+ }
768
+
769
+ .card-warning .card-title {
770
+ color: var(--color-on-warning-container);
771
+ }
772
+
773
+ .card-error {
774
+ background-color: var(--color-error-container);
775
+ color: var(--color-on-error-container);
776
+ }
777
+
778
+ .card-error .card-title {
779
+ color: var(--color-on-error-container);
780
+ }
781
+
694
782
  /* Glass Effect */
695
783
  .card-glass {
696
784
  background-color: rgb(255 255 255 / 0.1);
@@ -718,8 +806,8 @@
718
806
  }
719
807
 
720
808
  .card-interactive:focus-visible {
721
- outline: 2px solid var(--color-primary);
722
- outline-offset: 2px;
809
+ outline: none;
810
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
723
811
  }
724
812
 
725
813
  /* Full Image Card */
@@ -765,7 +853,7 @@
765
853
  line-height: 1.5rem;
766
854
  background-color: var(--color-surface);
767
855
  color: var(--color-on-surface);
768
- border: 1px solid transparent;
856
+ border: 1px solid currentColor;
769
857
  border-radius: 0.5rem;
770
858
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
771
859
  }
@@ -780,8 +868,7 @@
780
868
  }
781
869
 
782
870
  .input:focus-visible {
783
- border-color: var(--color-primary);
784
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
871
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
785
872
  outline: none;
786
873
  }
787
874
 
@@ -801,70 +888,17 @@
801
888
  border-color: var(--color-outline-variant);
802
889
  }
803
890
 
804
- /* Color Variants */
805
- .input-primary {
806
- border-color: var(--color-primary);
807
- }
808
-
809
- .input-primary:focus-visible {
810
- border-color: var(--color-primary);
811
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
812
- }
813
-
814
- .input-secondary {
815
- border-color: var(--color-secondary);
816
- }
817
-
818
- .input-secondary:focus-visible {
819
- border-color: var(--color-secondary);
820
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
821
- }
822
-
823
- .input-tertiary {
824
- border-color: var(--color-tertiary);
825
- }
826
-
827
- .input-tertiary:focus-visible {
828
- border-color: var(--color-tertiary);
829
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
830
- }
891
+ /* Color Variants — base .input:focus-visible uses currentColor 20%, so no per-variant
892
+ focus-visible overrides needed; setting color: here is sufficient. */
893
+ .input-primary { color: var(--color-primary); }
894
+ .input-secondary { color: var(--color-secondary); }
895
+ .input-tertiary { color: var(--color-tertiary); }
831
896
 
832
897
  /* Semantic Colors */
833
- .input-info {
834
- border-color: var(--color-info);
835
- }
836
-
837
- .input-info:focus-visible {
838
- border-color: var(--color-info);
839
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
840
- }
841
-
842
- .input-success {
843
- border-color: var(--color-success);
844
- }
845
-
846
- .input-success:focus-visible {
847
- border-color: var(--color-success);
848
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
849
- }
850
-
851
- .input-warning {
852
- border-color: var(--color-warning);
853
- }
854
-
855
- .input-warning:focus-visible {
856
- border-color: var(--color-warning);
857
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
858
- }
859
-
860
- .input-error {
861
- border-color: var(--color-error);
862
- }
863
-
864
- .input-error:focus-visible {
865
- border-color: var(--color-error);
866
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
867
- }
898
+ .input-info { color: var(--color-info); }
899
+ .input-success { color: var(--color-success); }
900
+ .input-warning { color: var(--color-warning); }
901
+ .input-error { color: var(--color-error); }
868
902
 
869
903
  /* Size Variants */
870
904
  .input-xs {
@@ -900,7 +934,7 @@
900
934
  .input-ghost:focus-visible {
901
935
  background-color: var(--color-surface-container);
902
936
  border-color: transparent;
903
- box-shadow: none;
937
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
904
938
  }
905
939
 
906
940
  /* Filled Input */
@@ -916,6 +950,14 @@
916
950
  box-shadow: none;
917
951
  }
918
952
 
953
+ .input-filled.input-primary:focus-visible { border-bottom-color: var(--color-primary); }
954
+ .input-filled.input-secondary:focus-visible { border-bottom-color: var(--color-secondary); }
955
+ .input-filled.input-tertiary:focus-visible { border-bottom-color: var(--color-tertiary); }
956
+ .input-filled.input-info:focus-visible { border-bottom-color: var(--color-info); }
957
+ .input-filled.input-success:focus-visible { border-bottom-color: var(--color-success); }
958
+ .input-filled.input-warning:focus-visible { border-bottom-color: var(--color-warning); }
959
+ .input-filled.input-error:focus-visible { border-bottom-color: var(--color-error); }
960
+
919
961
  /* Input with Icon */
920
962
  .input-group {
921
963
  display: flex;
@@ -986,7 +1028,7 @@
986
1028
  }
987
1029
 
988
1030
  .file-input:focus-visible {
989
- border-color: var(--color-primary);
1031
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
990
1032
  outline: none;
991
1033
  }
992
1034
  }
@@ -1006,6 +1048,7 @@
1006
1048
  gap: 0.25rem;
1007
1049
  width: 100%;
1008
1050
  margin-bottom: 1rem;
1051
+ color: var(--color-on-surface);
1009
1052
  }
1010
1053
 
1011
1054
  /* Label */
@@ -1019,7 +1062,7 @@
1019
1062
  .label-text {
1020
1063
  font-size: 0.875rem;
1021
1064
  font-weight: 500;
1022
- color: var(--color-base-content);
1065
+ color: var(--color-on-surface);
1023
1066
  padding-bottom: 0.25rem;
1024
1067
  }
1025
1068
 
@@ -2568,6 +2611,26 @@
2568
2611
  color: var(--color-tertiary-content);
2569
2612
  }
2570
2613
 
2614
+ .avatar-info {
2615
+ background-color: var(--color-info);
2616
+ color: var(--color-info-content);
2617
+ }
2618
+
2619
+ .avatar-success {
2620
+ background-color: var(--color-success);
2621
+ color: var(--color-success-content);
2622
+ }
2623
+
2624
+ .avatar-warning {
2625
+ background-color: var(--color-warning);
2626
+ color: var(--color-warning-content);
2627
+ }
2628
+
2629
+ .avatar-error {
2630
+ background-color: var(--color-error);
2631
+ color: var(--color-error-content);
2632
+ }
2633
+
2571
2634
  /* Ring */
2572
2635
  .avatar-ring {
2573
2636
  outline: 2px solid var(--color-primary);
@@ -2636,8 +2699,8 @@
2636
2699
 
2637
2700
  /* Focus State for Interactive Avatars */
2638
2701
  .avatar:focus-visible {
2639
- outline: 2px solid var(--color-primary);
2640
- outline-offset: 2px;
2702
+ outline: none;
2703
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
2641
2704
  }
2642
2705
  }
2643
2706
 
@@ -2857,8 +2920,8 @@
2857
2920
  }
2858
2921
 
2859
2922
  .chip:focus-visible {
2860
- outline: 2px solid var(--color-primary);
2861
- outline-offset: 2px;
2923
+ outline: none;
2924
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
2862
2925
  }
2863
2926
 
2864
2927
  /* Color Variants - Filled */
@@ -2889,6 +2952,42 @@
2889
2952
  background-color: color-mix(in oklch, var(--color-tertiary), black 10%);
2890
2953
  }
2891
2954
 
2955
+ .chip-info {
2956
+ background-color: var(--color-info);
2957
+ color: var(--color-info-content);
2958
+ }
2959
+
2960
+ .chip-info:hover {
2961
+ background-color: color-mix(in oklch, var(--color-info), black 10%);
2962
+ }
2963
+
2964
+ .chip-success {
2965
+ background-color: var(--color-success);
2966
+ color: var(--color-success-content);
2967
+ }
2968
+
2969
+ .chip-success:hover {
2970
+ background-color: color-mix(in oklch, var(--color-success), black 10%);
2971
+ }
2972
+
2973
+ .chip-warning {
2974
+ background-color: var(--color-warning);
2975
+ color: var(--color-warning-content);
2976
+ }
2977
+
2978
+ .chip-warning:hover {
2979
+ background-color: color-mix(in oklch, var(--color-warning), black 10%);
2980
+ }
2981
+
2982
+ .chip-error {
2983
+ background-color: var(--color-error);
2984
+ color: var(--color-error-content);
2985
+ }
2986
+
2987
+ .chip-error:hover {
2988
+ background-color: color-mix(in oklch, var(--color-error), black 10%);
2989
+ }
2990
+
2892
2991
  /* Outlined Variant */
2893
2992
  .chip-outlined {
2894
2993
  background-color: transparent;
@@ -2926,6 +3025,42 @@
2926
3025
  background-color: var(--color-tertiary-container);
2927
3026
  }
2928
3027
 
3028
+ .chip-outlined.chip-info {
3029
+ border-color: var(--color-info);
3030
+ color: var(--color-info);
3031
+ }
3032
+
3033
+ .chip-outlined.chip-info:hover {
3034
+ background-color: var(--color-info-container);
3035
+ }
3036
+
3037
+ .chip-outlined.chip-success {
3038
+ border-color: var(--color-success);
3039
+ color: var(--color-success);
3040
+ }
3041
+
3042
+ .chip-outlined.chip-success:hover {
3043
+ background-color: var(--color-success-container);
3044
+ }
3045
+
3046
+ .chip-outlined.chip-warning {
3047
+ border-color: var(--color-warning);
3048
+ color: var(--color-warning);
3049
+ }
3050
+
3051
+ .chip-outlined.chip-warning:hover {
3052
+ background-color: var(--color-warning-container);
3053
+ }
3054
+
3055
+ .chip-outlined.chip-error {
3056
+ border-color: var(--color-error);
3057
+ color: var(--color-error);
3058
+ }
3059
+
3060
+ .chip-outlined.chip-error:hover {
3061
+ background-color: var(--color-error-container);
3062
+ }
3063
+
2929
3064
  /* Tonal/Soft Variant */
2930
3065
  .chip-tonal {
2931
3066
  background-color: var(--color-surface-container-high);
@@ -2946,7 +3081,55 @@
2946
3081
  color: var(--color-on-tertiary-container);
2947
3082
  }
2948
3083
 
2949
- /* Size Variants */
3084
+ .chip-tonal.chip-info {
3085
+ background-color: var(--color-info-container);
3086
+ color: var(--color-on-info-container);
3087
+ }
3088
+
3089
+ .chip-tonal.chip-success {
3090
+ background-color: var(--color-success-container);
3091
+ color: var(--color-on-success-container);
3092
+ }
3093
+
3094
+ .chip-tonal.chip-warning {
3095
+ background-color: var(--color-warning-container);
3096
+ color: var(--color-on-warning-container);
3097
+ }
3098
+
3099
+ .chip-tonal.chip-error {
3100
+ background-color: var(--color-error-container);
3101
+ color: var(--color-on-error-container);
3102
+ }
3103
+
3104
+ /* Ghost Variant */
3105
+ .chip-ghost {
3106
+ background-color: transparent;
3107
+ border-color: transparent;
3108
+ }
3109
+
3110
+ .chip-ghost:hover {
3111
+ background-color: var(--color-surface-container);
3112
+ }
3113
+
3114
+ /* Ghost + color sub-variants: transparent bg/border, colored text.
3115
+ Hover uses container color (matches .chip-outlined.chip-*:hover pattern). */
3116
+ .chip-ghost.chip-primary { background-color: transparent; color: var(--color-primary); }
3117
+ .chip-ghost.chip-secondary { background-color: transparent; color: var(--color-secondary); }
3118
+ .chip-ghost.chip-tertiary { background-color: transparent; color: var(--color-tertiary); }
3119
+ .chip-ghost.chip-info { background-color: transparent; color: var(--color-info); }
3120
+ .chip-ghost.chip-success { background-color: transparent; color: var(--color-success); }
3121
+ .chip-ghost.chip-warning { background-color: transparent; color: var(--color-warning); }
3122
+ .chip-ghost.chip-error { background-color: transparent; color: var(--color-error); }
3123
+
3124
+ .chip-ghost.chip-primary:hover { background-color: var(--color-primary-container); }
3125
+ .chip-ghost.chip-secondary:hover { background-color: var(--color-secondary-container); }
3126
+ .chip-ghost.chip-tertiary:hover { background-color: var(--color-tertiary-container); }
3127
+ .chip-ghost.chip-info:hover { background-color: var(--color-info-container); }
3128
+ .chip-ghost.chip-success:hover { background-color: var(--color-success-container); }
3129
+ .chip-ghost.chip-warning:hover { background-color: var(--color-warning-container); }
3130
+ .chip-ghost.chip-error:hover { background-color: var(--color-error-container); }
3131
+
3132
+ /* Size Variants */
2950
3133
  .chip-sm {
2951
3134
  padding: 0.25rem 0.5rem;
2952
3135
  font-size: 0.75rem;
@@ -3447,15 +3630,14 @@
3447
3630
  line-height: 1.5;
3448
3631
  color: var(--color-on-surface);
3449
3632
  background-color: var(--color-surface);
3450
- border: 1px solid var(--color-outline);
3633
+ border: 1px solid currentColor;
3451
3634
  border-radius: 0.5rem;
3452
3635
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
3453
3636
  }
3454
3637
 
3455
3638
  .autocomplete-input:focus {
3456
3639
  outline: none;
3457
- border-color: var(--color-primary);
3458
- box-shadow: 0 0 0 3px var(--color-primary-container);
3640
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
3459
3641
  }
3460
3642
 
3461
3643
  .autocomplete-input:disabled {
@@ -3677,6 +3859,67 @@
3677
3859
  outline: none;
3678
3860
  }
3679
3861
 
3862
+ /* Color Variants */
3863
+ .autocomplete-primary .autocomplete-input {
3864
+ color: var(--color-primary);
3865
+ }
3866
+ .autocomplete-primary .autocomplete-input:focus {
3867
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
3868
+ }
3869
+
3870
+ .autocomplete-secondary .autocomplete-input {
3871
+ color: var(--color-secondary);
3872
+ }
3873
+ .autocomplete-secondary .autocomplete-input:focus {
3874
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
3875
+ }
3876
+
3877
+ .autocomplete-tertiary .autocomplete-input {
3878
+ color: var(--color-tertiary);
3879
+ }
3880
+ .autocomplete-tertiary .autocomplete-input:focus {
3881
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
3882
+ }
3883
+
3884
+ .autocomplete-info .autocomplete-input {
3885
+ color: var(--color-info);
3886
+ }
3887
+ .autocomplete-info .autocomplete-input:focus {
3888
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
3889
+ }
3890
+
3891
+ .autocomplete-success .autocomplete-input {
3892
+ color: var(--color-success);
3893
+ }
3894
+ .autocomplete-success .autocomplete-input:focus {
3895
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
3896
+ }
3897
+
3898
+ .autocomplete-warning .autocomplete-input {
3899
+ color: var(--color-warning);
3900
+ }
3901
+ .autocomplete-warning .autocomplete-input:focus {
3902
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
3903
+ }
3904
+
3905
+ .autocomplete-error .autocomplete-input {
3906
+ color: var(--color-error);
3907
+ }
3908
+ .autocomplete-error .autocomplete-input:focus {
3909
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
3910
+ }
3911
+
3912
+ /* Ghost Variant */
3913
+ .autocomplete-ghost .autocomplete-input {
3914
+ background-color: transparent;
3915
+ border-color: transparent;
3916
+ }
3917
+ .autocomplete-ghost .autocomplete-input:focus {
3918
+ background-color: var(--color-surface-container);
3919
+ border-color: transparent;
3920
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
3921
+ }
3922
+
3680
3923
  /* Size Variants */
3681
3924
  .autocomplete-sm .autocomplete-input {
3682
3925
  padding: 0.5rem 0.75rem;
@@ -3721,20 +3964,19 @@
3721
3964
  line-height: 1.5rem;
3722
3965
  color: var(--color-on-surface);
3723
3966
  background-color: var(--color-surface);
3724
- border: 1px solid var(--color-outline);
3967
+ border: 1px solid currentColor;
3725
3968
  border-radius: 0.5rem;
3726
3969
  cursor: pointer;
3727
3970
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
3728
3971
  }
3729
3972
 
3730
3973
  .cascader-trigger:hover:not(:disabled) {
3731
- border-color: var(--color-on-surface-variant);
3974
+ background-color: var(--color-surface-container);
3732
3975
  }
3733
3976
 
3734
3977
  .cascader-trigger:focus {
3735
3978
  outline: none;
3736
- border-color: var(--color-primary);
3737
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
3979
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
3738
3980
  }
3739
3981
 
3740
3982
  .cascader-trigger:disabled {
@@ -4061,20 +4303,71 @@
4061
4303
  }
4062
4304
 
4063
4305
  .cascader-filled .cascader-trigger:focus {
4064
- border-bottom-color: var(--color-primary);
4306
+ border-bottom-color: currentColor;
4065
4307
  box-shadow: none;
4066
4308
  }
4067
4309
 
4068
- /* Error State */
4069
- .cascader-error .cascader-trigger {
4070
- border-color: var(--color-error);
4310
+ /* Color Variants */
4311
+ .cascader-primary .cascader-trigger {
4312
+ color: var(--color-primary);
4313
+ }
4314
+ .cascader-primary .cascader-trigger:focus {
4315
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
4316
+ }
4317
+
4318
+ .cascader-secondary .cascader-trigger {
4319
+ color: var(--color-secondary);
4320
+ }
4321
+ .cascader-secondary .cascader-trigger:focus {
4322
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
4323
+ }
4324
+
4325
+ .cascader-tertiary .cascader-trigger {
4326
+ color: var(--color-tertiary);
4327
+ }
4328
+ .cascader-tertiary .cascader-trigger:focus {
4329
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
4330
+ }
4331
+
4332
+ .cascader-info .cascader-trigger {
4333
+ color: var(--color-info);
4334
+ }
4335
+ .cascader-info .cascader-trigger:focus {
4336
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
4337
+ }
4338
+
4339
+ .cascader-success .cascader-trigger {
4340
+ color: var(--color-success);
4341
+ }
4342
+ .cascader-success .cascader-trigger:focus {
4343
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
4344
+ }
4345
+
4346
+ .cascader-warning .cascader-trigger {
4347
+ color: var(--color-warning);
4348
+ }
4349
+ .cascader-warning .cascader-trigger:focus {
4350
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
4071
4351
  }
4072
4352
 
4353
+ .cascader-error .cascader-trigger {
4354
+ color: var(--color-error);
4355
+ }
4073
4356
  .cascader-error .cascader-trigger:focus {
4074
- border-color: var(--color-error);
4075
4357
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
4076
4358
  }
4077
4359
 
4360
+ /* Ghost Variant */
4361
+ .cascader-ghost .cascader-trigger {
4362
+ background-color: transparent;
4363
+ border-color: transparent;
4364
+ }
4365
+ .cascader-ghost .cascader-trigger:focus {
4366
+ background-color: var(--color-surface-container);
4367
+ border-color: transparent;
4368
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
4369
+ }
4370
+
4078
4371
  /* Disabled State */
4079
4372
  .cascader-disabled .cascader-trigger {
4080
4373
  cursor: not-allowed;
@@ -4129,6 +4422,7 @@
4129
4422
  --checkbox-size: 1.25rem;
4130
4423
  --checkbox-color: var(--color-primary);
4131
4424
  --checkbox-border-color: var(--color-on-surface-variant);
4425
+ color: var(--color-on-surface);
4132
4426
 
4133
4427
  position: relative;
4134
4428
  display: inline-grid;
@@ -4151,8 +4445,8 @@
4151
4445
  height: 0.35em;
4152
4446
  transform: scale(0) rotate(-45deg);
4153
4447
  transform-origin: center;
4154
- border-bottom: 2px solid var(--color-on-primary);
4155
- border-left: 2px solid var(--color-on-primary);
4448
+ border-bottom: 2px solid var(--color-primary-content);
4449
+ border-left: 2px solid var(--color-primary-content);
4156
4450
  transition: transform 150ms ease-in-out;
4157
4451
  }
4158
4452
 
@@ -4175,7 +4469,7 @@
4175
4469
  .checkbox:indeterminate::before {
4176
4470
  width: 0.5em;
4177
4471
  height: 0;
4178
- border-bottom: 2px solid var(--color-on-primary);
4472
+ border-bottom: 2px solid var(--color-primary-content);
4179
4473
  border-left: 0;
4180
4474
  transform: scale(1) rotate(0deg);
4181
4475
  }
@@ -4193,8 +4487,8 @@
4193
4487
 
4194
4488
  /* Focus State */
4195
4489
  .checkbox:focus-visible {
4196
- outline: 2px solid var(--checkbox-color);
4197
- outline-offset: 2px;
4490
+ outline: none;
4491
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--checkbox-color) 20%, transparent);
4198
4492
  }
4199
4493
 
4200
4494
  /* Disabled State */
@@ -4294,6 +4588,15 @@
4294
4588
  border-color: var(--color-info-content);
4295
4589
  }
4296
4590
 
4591
+ /* Ghost Variant — borderless unchecked state */
4592
+ .checkbox-ghost {
4593
+ --checkbox-border-color: transparent;
4594
+ }
4595
+
4596
+ .checkbox-ghost:hover:not(:disabled):not(:checked) {
4597
+ border-color: transparent;
4598
+ }
4599
+
4297
4600
  /* ========================================
4298
4601
  * Checkbox with Label (wrapper pattern)
4299
4602
  * ======================================== */
@@ -4369,7 +4672,7 @@
4369
4672
  line-height: 1.5;
4370
4673
  color: var(--color-on-surface);
4371
4674
  background-color: var(--color-surface);
4372
- border: 1px solid var(--color-outline);
4675
+ border: 1px solid currentColor;
4373
4676
  border-radius: 0.5rem;
4374
4677
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
4375
4678
  }
@@ -4388,8 +4691,7 @@
4388
4691
 
4389
4692
  .datepicker-input:focus {
4390
4693
  outline: none;
4391
- border-color: var(--color-primary);
4392
- box-shadow: 0 0 0 3px var(--color-primary-container);
4694
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
4393
4695
  }
4394
4696
 
4395
4697
  .datepicker-input:disabled {
@@ -5042,7 +5344,71 @@
5042
5344
  box-shadow: none;
5043
5345
  }
5044
5346
 
5045
- /* Color Variants */
5347
+ /* Input Color Variants */
5348
+ .datepicker-primary .datepicker-input {
5349
+ color: var(--color-primary);
5350
+ }
5351
+ .datepicker-primary .datepicker-input:focus {
5352
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
5353
+ }
5354
+
5355
+ .datepicker-secondary .datepicker-input {
5356
+ color: var(--color-secondary);
5357
+ }
5358
+ .datepicker-secondary .datepicker-input:focus {
5359
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
5360
+ }
5361
+
5362
+ .datepicker-tertiary .datepicker-input {
5363
+ color: var(--color-tertiary);
5364
+ }
5365
+ .datepicker-tertiary .datepicker-input:focus {
5366
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
5367
+ }
5368
+
5369
+ .datepicker-info .datepicker-input {
5370
+ color: var(--color-info);
5371
+ }
5372
+ .datepicker-info .datepicker-input:focus {
5373
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
5374
+ }
5375
+
5376
+ .datepicker-info .datepicker-day-selected,
5377
+ .datepicker-info .datepicker-day-range-start,
5378
+ .datepicker-info .datepicker-day-range-end {
5379
+ background-color: var(--color-info);
5380
+ color: var(--color-info-content);
5381
+ }
5382
+
5383
+ .datepicker-success .datepicker-input {
5384
+ color: var(--color-success);
5385
+ }
5386
+ .datepicker-success .datepicker-input:focus {
5387
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
5388
+ }
5389
+
5390
+ .datepicker-success .datepicker-day-selected,
5391
+ .datepicker-success .datepicker-day-range-start,
5392
+ .datepicker-success .datepicker-day-range-end {
5393
+ background-color: var(--color-success);
5394
+ color: var(--color-success-content);
5395
+ }
5396
+
5397
+ .datepicker-warning .datepicker-input {
5398
+ color: var(--color-warning);
5399
+ }
5400
+ .datepicker-warning .datepicker-input:focus {
5401
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
5402
+ }
5403
+
5404
+ .datepicker-warning .datepicker-day-selected,
5405
+ .datepicker-warning .datepicker-day-range-start,
5406
+ .datepicker-warning .datepicker-day-range-end {
5407
+ background-color: var(--color-warning);
5408
+ color: var(--color-warning-content);
5409
+ }
5410
+
5411
+ /* Day Selected Color Variants */
5046
5412
  .datepicker-primary .datepicker-day-selected,
5047
5413
  .datepicker-primary .datepicker-day-range-start,
5048
5414
  .datepicker-primary .datepicker-day-range-end {
@@ -5067,15 +5433,25 @@
5067
5433
  /* Error State */
5068
5434
  .datepicker-error .datepicker-input,
5069
5435
  .datetime-picker-error .datetime-picker-input {
5070
- border-color: var(--color-error);
5436
+ color: var(--color-error);
5071
5437
  }
5072
5438
 
5073
5439
  .datepicker-error .datepicker-input:focus,
5074
5440
  .datetime-picker-error .datetime-picker-input:focus {
5075
- border-color: var(--color-error);
5076
5441
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
5077
5442
  }
5078
5443
 
5444
+ /* Ghost Variant */
5445
+ .datepicker-ghost .datepicker-input {
5446
+ background-color: transparent;
5447
+ border-color: transparent;
5448
+ }
5449
+ .datepicker-ghost .datepicker-input:focus {
5450
+ background-color: var(--color-surface-container);
5451
+ border-color: transparent;
5452
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
5453
+ }
5454
+
5079
5455
  /* Reduce Motion */
5080
5456
  @media (prefers-reduced-motion: reduce) {
5081
5457
  .datepicker-dropdown,
@@ -5114,25 +5490,25 @@
5114
5490
  min-height: 10rem;
5115
5491
  padding: 2rem;
5116
5492
  background-color: var(--color-surface);
5117
- border: 2px dashed var(--color-outline);
5493
+ border: 2px dashed currentColor;
5118
5494
  border-radius: 0.75rem;
5119
5495
  cursor: pointer;
5120
5496
  transition: border-color 150ms ease-in-out, background-color 150ms ease-in-out;
5121
5497
  }
5122
5498
 
5123
5499
  .file-upload-dropzone:hover {
5124
- border-color: var(--color-primary);
5500
+ border-color: currentColor;
5125
5501
  background-color: var(--color-surface-container);
5126
5502
  }
5127
5503
 
5128
5504
  .file-upload-dropzone:focus-within {
5129
- border-color: var(--color-primary);
5130
- box-shadow: 0 0 0 3px var(--color-primary-container);
5505
+ border-color: currentColor;
5506
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
5131
5507
  }
5132
5508
 
5133
5509
  .file-upload-dropzone.dragging {
5134
- border-color: var(--color-primary);
5135
- background-color: var(--color-primary-container);
5510
+ border-color: currentColor;
5511
+ background-color: color-mix(in oklch, currentColor 10%, var(--color-surface));
5136
5512
  }
5137
5513
 
5138
5514
  .file-upload-dropzone.disabled {
@@ -5157,7 +5533,6 @@
5157
5533
  justify-content: center;
5158
5534
  width: 3rem;
5159
5535
  height: 3rem;
5160
- color: var(--color-primary);
5161
5536
  font-size: 2rem;
5162
5537
  }
5163
5538
 
@@ -5179,7 +5554,7 @@
5179
5554
  }
5180
5555
 
5181
5556
  .file-upload-browse {
5182
- color: var(--color-primary);
5557
+ color: currentColor;
5183
5558
  font-weight: 500;
5184
5559
  text-decoration: underline;
5185
5560
  cursor: pointer;
@@ -5391,6 +5766,67 @@
5391
5766
  cursor: not-allowed;
5392
5767
  }
5393
5768
 
5769
+ /* Color Variants */
5770
+ .file-upload-primary .file-upload-dropzone {
5771
+ color: var(--color-primary);
5772
+ }
5773
+ .file-upload-primary .file-upload-dropzone:focus-within {
5774
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
5775
+ }
5776
+
5777
+ .file-upload-secondary .file-upload-dropzone {
5778
+ color: var(--color-secondary);
5779
+ }
5780
+ .file-upload-secondary .file-upload-dropzone:focus-within {
5781
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
5782
+ }
5783
+
5784
+ .file-upload-tertiary .file-upload-dropzone {
5785
+ color: var(--color-tertiary);
5786
+ }
5787
+ .file-upload-tertiary .file-upload-dropzone:focus-within {
5788
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
5789
+ }
5790
+
5791
+ .file-upload-info .file-upload-dropzone {
5792
+ color: var(--color-info);
5793
+ }
5794
+ .file-upload-info .file-upload-dropzone:focus-within {
5795
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
5796
+ }
5797
+
5798
+ .file-upload-success .file-upload-dropzone {
5799
+ color: var(--color-success);
5800
+ }
5801
+ .file-upload-success .file-upload-dropzone:focus-within {
5802
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
5803
+ }
5804
+
5805
+ .file-upload-warning .file-upload-dropzone {
5806
+ color: var(--color-warning);
5807
+ }
5808
+ .file-upload-warning .file-upload-dropzone:focus-within {
5809
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
5810
+ }
5811
+
5812
+ .file-upload-error .file-upload-dropzone {
5813
+ color: var(--color-error);
5814
+ }
5815
+ .file-upload-error .file-upload-dropzone:focus-within {
5816
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
5817
+ }
5818
+
5819
+ /* Ghost Variant */
5820
+ .file-upload-ghost .file-upload-dropzone {
5821
+ background-color: transparent;
5822
+ border-color: transparent;
5823
+ }
5824
+ .file-upload-ghost .file-upload-dropzone:focus-within {
5825
+ background-color: var(--color-surface-container);
5826
+ border-color: transparent;
5827
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
5828
+ }
5829
+
5394
5830
  /* Size Variants */
5395
5831
  .file-upload-sm .file-upload-dropzone {
5396
5832
  min-height: 6rem;
@@ -5779,20 +6215,19 @@
5779
6215
  line-height: 1.5rem;
5780
6216
  color: var(--color-on-surface);
5781
6217
  background-color: var(--color-surface);
5782
- border: 1px solid var(--color-outline);
6218
+ border: 1px solid currentColor;
5783
6219
  border-radius: 0.5rem;
5784
6220
  cursor: pointer;
5785
6221
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
5786
6222
  }
5787
6223
 
5788
6224
  .multi-select-trigger:hover:not(:disabled) {
5789
- border-color: var(--color-on-surface-variant);
6225
+ background-color: var(--color-surface-container);
5790
6226
  }
5791
6227
 
5792
6228
  .multi-select-trigger:focus-within {
5793
6229
  outline: none;
5794
- border-color: var(--color-primary);
5795
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
6230
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
5796
6231
  }
5797
6232
 
5798
6233
  /* Placeholder */
@@ -6186,20 +6621,71 @@
6186
6621
  }
6187
6622
 
6188
6623
  .multi-select-filled .multi-select-trigger:focus-within {
6189
- border-bottom-color: var(--color-primary);
6624
+ border-bottom-color: currentColor;
6190
6625
  box-shadow: none;
6191
6626
  }
6192
6627
 
6193
- /* Error State */
6194
- .multi-select-error .multi-select-trigger {
6195
- border-color: var(--color-error);
6628
+ /* Color Variants */
6629
+ .multi-select-primary .multi-select-trigger {
6630
+ color: var(--color-primary);
6631
+ }
6632
+ .multi-select-primary .multi-select-trigger:focus-within {
6633
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
6196
6634
  }
6197
6635
 
6198
- .multi-select-error .multi-select-trigger:focus-within {
6199
- border-color: var(--color-error);
6636
+ .multi-select-secondary .multi-select-trigger {
6637
+ color: var(--color-secondary);
6638
+ }
6639
+ .multi-select-secondary .multi-select-trigger:focus-within {
6640
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
6641
+ }
6642
+
6643
+ .multi-select-tertiary .multi-select-trigger {
6644
+ color: var(--color-tertiary);
6645
+ }
6646
+ .multi-select-tertiary .multi-select-trigger:focus-within {
6647
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
6648
+ }
6649
+
6650
+ .multi-select-info .multi-select-trigger {
6651
+ color: var(--color-info);
6652
+ }
6653
+ .multi-select-info .multi-select-trigger:focus-within {
6654
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
6655
+ }
6656
+
6657
+ .multi-select-success .multi-select-trigger {
6658
+ color: var(--color-success);
6659
+ }
6660
+ .multi-select-success .multi-select-trigger:focus-within {
6661
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
6662
+ }
6663
+
6664
+ .multi-select-warning .multi-select-trigger {
6665
+ color: var(--color-warning);
6666
+ }
6667
+ .multi-select-warning .multi-select-trigger:focus-within {
6668
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
6669
+ }
6670
+
6671
+ .multi-select-error .multi-select-trigger {
6672
+ color: var(--color-error);
6673
+ }
6674
+ .multi-select-error .multi-select-trigger:focus-within {
6200
6675
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
6201
6676
  }
6202
6677
 
6678
+ /* Ghost Variant */
6679
+ .multi-select-ghost .multi-select-trigger {
6680
+ background-color: transparent;
6681
+ border-color: transparent;
6682
+ }
6683
+ .multi-select-ghost .multi-select-trigger:focus-within {
6684
+ background-color: var(--color-surface-container);
6685
+ border-color: transparent;
6686
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
6687
+ }
6688
+
6203
6689
  /* Disabled State */
6204
6690
  .multi-select-disabled .multi-select-trigger {
6205
6691
  cursor: not-allowed;
@@ -6268,7 +6754,7 @@
6268
6754
  text-align: center;
6269
6755
  color: var(--color-on-surface);
6270
6756
  background-color: var(--color-surface);
6271
- border: 2px solid var(--color-outline);
6757
+ border: 2px solid currentColor;
6272
6758
  border-radius: 0.5rem;
6273
6759
  outline: none;
6274
6760
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
@@ -6281,12 +6767,11 @@
6281
6767
  }
6282
6768
 
6283
6769
  .otp-input-field:hover:not(:disabled):not(:focus) {
6284
- border-color: var(--color-on-surface-variant);
6770
+ background-color: var(--color-surface-container);
6285
6771
  }
6286
6772
 
6287
6773
  .otp-input-field:focus {
6288
- border-color: var(--color-primary);
6289
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
6774
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
6290
6775
  }
6291
6776
 
6292
6777
  .otp-input-field:disabled {
@@ -6369,41 +6854,74 @@
6369
6854
  }
6370
6855
 
6371
6856
  /* Color Variants */
6857
+ .otp-input-primary .otp-input-field {
6858
+ color: var(--color-primary);
6859
+ }
6860
+
6372
6861
  .otp-input-primary .otp-input-field:focus {
6373
- border-color: var(--color-primary);
6374
6862
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
6375
6863
  }
6376
6864
 
6865
+ .otp-input-secondary .otp-input-field {
6866
+ color: var(--color-secondary);
6867
+ }
6868
+
6377
6869
  .otp-input-secondary .otp-input-field:focus {
6378
- border-color: var(--color-secondary);
6379
6870
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
6380
6871
  }
6381
6872
 
6873
+ .otp-input-tertiary .otp-input-field {
6874
+ color: var(--color-tertiary);
6875
+ }
6876
+
6382
6877
  .otp-input-tertiary .otp-input-field:focus {
6383
- border-color: var(--color-tertiary);
6384
6878
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
6385
6879
  }
6386
6880
 
6387
- /* Error State */
6388
- .otp-input-error .otp-input-field {
6389
- border-color: var(--color-error);
6881
+ .otp-input-info .otp-input-field {
6882
+ color: var(--color-info);
6390
6883
  }
6391
6884
 
6392
- .otp-input-error .otp-input-field:focus {
6393
- border-color: var(--color-error);
6394
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
6885
+ .otp-input-info .otp-input-field:focus {
6886
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
6395
6887
  }
6396
6888
 
6397
- /* Success State */
6398
6889
  .otp-input-success .otp-input-field {
6399
- border-color: var(--color-success);
6890
+ color: var(--color-success);
6400
6891
  }
6401
6892
 
6402
6893
  .otp-input-success .otp-input-field:focus {
6403
- border-color: var(--color-success);
6404
6894
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
6405
6895
  }
6406
6896
 
6897
+ .otp-input-warning .otp-input-field {
6898
+ color: var(--color-warning);
6899
+ }
6900
+
6901
+ .otp-input-warning .otp-input-field:focus {
6902
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
6903
+ }
6904
+
6905
+ .otp-input-error .otp-input-field {
6906
+ color: var(--color-error);
6907
+ }
6908
+
6909
+ .otp-input-error .otp-input-field:focus {
6910
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
6911
+ }
6912
+
6913
+ /* Ghost Variant */
6914
+ .otp-input-ghost .otp-input-field {
6915
+ background-color: transparent;
6916
+ border-color: transparent;
6917
+ }
6918
+
6919
+ .otp-input-ghost .otp-input-field:focus {
6920
+ background-color: var(--color-surface-container);
6921
+ border-color: transparent;
6922
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
6923
+ }
6924
+
6407
6925
  /* Masked Input (dots) */
6408
6926
  .otp-input-masked .otp-input-field {
6409
6927
  -webkit-text-security: disc;
@@ -6464,7 +6982,7 @@
6464
6982
  text-align: center;
6465
6983
  color: var(--color-on-surface);
6466
6984
  background-color: var(--color-surface);
6467
- border: 2px solid var(--color-outline);
6985
+ border: 2px solid currentColor;
6468
6986
  border-radius: 0.5rem;
6469
6987
  outline: none;
6470
6988
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
@@ -6478,12 +6996,11 @@
6478
6996
  }
6479
6997
 
6480
6998
  .pin-input-field:hover:not(:disabled):not(:focus) {
6481
- border-color: var(--color-on-surface-variant);
6999
+ background-color: var(--color-surface-container);
6482
7000
  }
6483
7001
 
6484
7002
  .pin-input-field:focus {
6485
- border-color: var(--color-primary);
6486
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
7003
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
6487
7004
  }
6488
7005
 
6489
7006
  .pin-input-field:disabled {
@@ -6554,29 +7071,60 @@
6554
7071
  }
6555
7072
 
6556
7073
  /* Color Variants */
7074
+ .pin-input-primary .pin-input-field {
7075
+ color: var(--color-primary);
7076
+ }
7077
+
6557
7078
  .pin-input-primary .pin-input-field:focus {
6558
- border-color: var(--color-primary);
6559
7079
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
6560
7080
  }
6561
7081
 
7082
+ .pin-input-secondary .pin-input-field {
7083
+ color: var(--color-secondary);
7084
+ }
7085
+
6562
7086
  .pin-input-secondary .pin-input-field:focus {
6563
- border-color: var(--color-secondary);
6564
7087
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
6565
7088
  }
6566
7089
 
7090
+ .pin-input-tertiary .pin-input-field {
7091
+ color: var(--color-tertiary);
7092
+ }
7093
+
6567
7094
  .pin-input-tertiary .pin-input-field:focus {
6568
- border-color: var(--color-tertiary);
6569
7095
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
6570
7096
  }
6571
7097
 
6572
- /* Error State */
7098
+ .pin-input-info .pin-input-field {
7099
+ color: var(--color-info);
7100
+ }
7101
+
7102
+ .pin-input-info .pin-input-field:focus {
7103
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
7104
+ }
7105
+
7106
+ .pin-input-success .pin-input-field {
7107
+ color: var(--color-success);
7108
+ }
7109
+
7110
+ .pin-input-success .pin-input-field:focus {
7111
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
7112
+ }
7113
+
7114
+ .pin-input-warning .pin-input-field {
7115
+ color: var(--color-warning);
7116
+ }
7117
+
7118
+ .pin-input-warning .pin-input-field:focus {
7119
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
7120
+ }
7121
+
6573
7122
  .pin-input-error .pin-input-field {
6574
- border-color: var(--color-error);
7123
+ color: var(--color-error);
6575
7124
  animation: pin-shake 300ms ease-in-out;
6576
7125
  }
6577
7126
 
6578
7127
  .pin-input-error .pin-input-field:focus {
6579
- border-color: var(--color-error);
6580
7128
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
6581
7129
  }
6582
7130
 
@@ -6586,9 +7134,16 @@
6586
7134
  40%, 80% { transform: translateX(4px); }
6587
7135
  }
6588
7136
 
6589
- /* Success State */
6590
- .pin-input-success .pin-input-field {
6591
- border-color: var(--color-success);
7137
+ /* Ghost Variant */
7138
+ .pin-input-ghost .pin-input-field {
7139
+ background-color: transparent;
7140
+ border-color: transparent;
7141
+ }
7142
+
7143
+ .pin-input-ghost .pin-input-field:focus {
7144
+ background-color: var(--color-surface-container);
7145
+ border-color: transparent;
7146
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
6592
7147
  }
6593
7148
 
6594
7149
  /* PIN Group with Label */
@@ -6640,6 +7195,7 @@
6640
7195
  --radio-size: 1.25rem;
6641
7196
  --radio-color: var(--color-primary);
6642
7197
  --radio-border-color: var(--color-on-surface-variant);
7198
+ color: var(--color-on-surface);
6643
7199
 
6644
7200
  position: relative;
6645
7201
  display: inline-grid;
@@ -6690,8 +7246,8 @@
6690
7246
 
6691
7247
  /* Focus State */
6692
7248
  .radio:focus-visible {
6693
- outline: 2px solid var(--radio-color);
6694
- outline-offset: 2px;
7249
+ outline: none;
7250
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--radio-color) 20%, transparent);
6695
7251
  }
6696
7252
 
6697
7253
  /* Disabled State */
@@ -6756,6 +7312,15 @@
6756
7312
  --radio-color: var(--color-info);
6757
7313
  }
6758
7314
 
7315
+ /* Ghost Variant — borderless unchecked state */
7316
+ .radio-ghost {
7317
+ --radio-border-color: transparent;
7318
+ }
7319
+
7320
+ .radio-ghost:hover:not(:disabled):not(:checked) {
7321
+ border-color: transparent;
7322
+ }
7323
+
6759
7324
  /* ========================================
6760
7325
  * Radio with Label (wrapper pattern)
6761
7326
  * ======================================== */
@@ -6821,6 +7386,7 @@
6821
7386
  display: inline-flex;
6822
7387
  align-items: center;
6823
7388
  gap: 0.125rem;
7389
+ color: var(--color-on-surface);
6824
7390
  }
6825
7391
 
6826
7392
  /* Rating Item */
@@ -6924,6 +7490,21 @@
6924
7490
  color: var(--color-success);
6925
7491
  }
6926
7492
 
7493
+ .rating-tertiary .rating-item.filled {
7494
+ color: var(--color-tertiary);
7495
+ }
7496
+
7497
+ .rating-info .rating-item.filled {
7498
+ color: var(--color-info);
7499
+ }
7500
+
7501
+ /* Note: .rating-warning is explicit even though the default rating filled color is
7502
+ already --color-warning. This allows resetting to warning after applying another
7503
+ color variant (e.g. class="rating rating-primary rating-warning"). */
7504
+ .rating-warning .rating-item.filled {
7505
+ color: var(--color-warning);
7506
+ }
7507
+
6927
7508
  /* Read Only */
6928
7509
  .rating-readonly .rating-item {
6929
7510
  cursor: default;
@@ -6967,13 +7548,29 @@
6967
7548
  color: var(--color-warning);
6968
7549
  }
6969
7550
 
6970
- /* Focus Visible */
7551
+ .rating-primary:not(.rating-readonly):hover .rating-item { color: var(--color-primary); }
7552
+ .rating-secondary:not(.rating-readonly):hover .rating-item { color: var(--color-secondary); }
7553
+ .rating-tertiary:not(.rating-readonly):hover .rating-item { color: var(--color-tertiary); }
7554
+ .rating-info:not(.rating-readonly):hover .rating-item { color: var(--color-info); }
7555
+ .rating-success:not(.rating-readonly):hover .rating-item { color: var(--color-success); }
7556
+ .rating-error:not(.rating-readonly):hover .rating-item { color: var(--color-error); }
7557
+
7558
+ /* Focus Visible — use warning (the default fill color) for the base ring;
7559
+ per-variant overrides below match the active fill color for each variant. */
6971
7560
  .rating-item:focus-visible {
6972
- outline: 2px solid var(--color-primary);
6973
- outline-offset: 2px;
7561
+ outline: none;
7562
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent);
6974
7563
  border-radius: 0.25rem;
6975
7564
  }
6976
7565
 
7566
+ .rating-primary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 20%, transparent); }
7567
+ .rating-secondary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 20%, transparent); }
7568
+ .rating-tertiary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 20%, transparent); }
7569
+ .rating-info .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 20%, transparent); }
7570
+ .rating-success .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 20%, transparent); }
7571
+ .rating-error .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 20%, transparent); }
7572
+ .rating-warning .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent); }
7573
+
6977
7574
  /* Rating Display (static) */
6978
7575
  .rating-display {
6979
7576
  display: inline-flex;
@@ -7051,6 +7648,7 @@
7051
7648
  .segment-control {
7052
7649
  display: inline-flex;
7053
7650
  align-items: stretch;
7651
+ color: var(--color-on-surface);
7054
7652
  background-color: var(--color-surface-container);
7055
7653
  border: 1px solid var(--color-outline);
7056
7654
  border-radius: 1.25rem;
@@ -7084,8 +7682,8 @@
7084
7682
  }
7085
7683
 
7086
7684
  .segment-item:focus-visible {
7087
- outline: 2px solid var(--color-primary);
7088
- outline-offset: 2px;
7685
+ outline: none;
7686
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
7089
7687
  }
7090
7688
 
7091
7689
  .segment-item:disabled {
@@ -7155,6 +7753,26 @@
7155
7753
  color: var(--color-on-tertiary-container);
7156
7754
  }
7157
7755
 
7756
+ .segment-control-info .segment-item-active {
7757
+ background-color: var(--color-info-container);
7758
+ color: var(--color-on-info-container);
7759
+ }
7760
+
7761
+ .segment-control-success .segment-item-active {
7762
+ background-color: var(--color-success-container);
7763
+ color: var(--color-on-success-container);
7764
+ }
7765
+
7766
+ .segment-control-warning .segment-item-active {
7767
+ background-color: var(--color-warning-container);
7768
+ color: var(--color-on-warning-container);
7769
+ }
7770
+
7771
+ .segment-control-error .segment-item-active {
7772
+ background-color: var(--color-error-container);
7773
+ color: var(--color-on-error-container);
7774
+ }
7775
+
7158
7776
  /* Full Width */
7159
7777
  .segment-control-full {
7160
7778
  display: flex;
@@ -7243,7 +7861,7 @@
7243
7861
  line-height: 1.5rem;
7244
7862
  color: var(--color-on-surface);
7245
7863
  background-color: var(--color-surface);
7246
- border: 1px solid var(--color-outline);
7864
+ border: 1px solid currentColor;
7247
7865
  border-radius: 0.5rem;
7248
7866
  outline: none;
7249
7867
  cursor: pointer;
@@ -7256,7 +7874,7 @@
7256
7874
  }
7257
7875
 
7258
7876
  .select:hover:not(:disabled) {
7259
- border-color: var(--color-on-surface-variant);
7877
+ background-color: var(--color-surface-container);
7260
7878
  }
7261
7879
 
7262
7880
  .select:focus {
@@ -7264,8 +7882,7 @@
7264
7882
  }
7265
7883
 
7266
7884
  .select:focus-visible {
7267
- border-color: var(--color-primary);
7268
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
7885
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
7269
7886
  }
7270
7887
 
7271
7888
  .select:disabled {
@@ -7292,6 +7909,14 @@
7292
7909
  box-shadow: none;
7293
7910
  }
7294
7911
 
7912
+ .select-filled.select-primary:focus-visible { border-bottom-color: var(--color-primary); }
7913
+ .select-filled.select-secondary:focus-visible { border-bottom-color: var(--color-secondary); }
7914
+ .select-filled.select-tertiary:focus-visible { border-bottom-color: var(--color-tertiary); }
7915
+ .select-filled.select-info:focus-visible { border-bottom-color: var(--color-info); }
7916
+ .select-filled.select-success:focus-visible { border-bottom-color: var(--color-success); }
7917
+ .select-filled.select-warning:focus-visible { border-bottom-color: var(--color-warning); }
7918
+ .select-filled.select-error:focus-visible { border-bottom-color: var(--color-error); }
7919
+
7295
7920
  /* Outlined Variant (default is outlined) */
7296
7921
  .select-outlined {
7297
7922
  background-color: transparent;
@@ -7299,40 +7924,17 @@
7299
7924
  border-radius: 0.5rem;
7300
7925
  }
7301
7926
 
7302
- /* Color Variants */
7303
- .select-primary:focus-visible {
7304
- border-color: var(--color-primary);
7305
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
7306
- }
7307
-
7308
- .select-secondary:focus-visible {
7309
- border-color: var(--color-secondary);
7310
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
7311
- }
7312
-
7313
- .select-tertiary:focus-visible {
7314
- border-color: var(--color-tertiary);
7315
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
7316
- }
7927
+ /* Color Variants — base .select:focus-visible uses currentColor 20%, so no per-variant
7928
+ focus-visible overrides needed; setting color: here is sufficient. */
7929
+ .select-primary { color: var(--color-primary); }
7930
+ .select-secondary { color: var(--color-secondary); }
7931
+ .select-tertiary { color: var(--color-tertiary); }
7317
7932
 
7318
7933
  /* Semantic Colors */
7319
- .select-error {
7320
- border-color: var(--color-error);
7321
- }
7322
-
7323
- .select-error:focus-visible {
7324
- border-color: var(--color-error);
7325
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
7326
- }
7327
-
7328
- .select-success {
7329
- border-color: var(--color-success);
7330
- }
7331
-
7332
- .select-success:focus-visible {
7333
- border-color: var(--color-success);
7334
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
7335
- }
7934
+ .select-info { color: var(--color-info); }
7935
+ .select-success { color: var(--color-success); }
7936
+ .select-warning { color: var(--color-warning); }
7937
+ .select-error { color: var(--color-error); }
7336
7938
 
7337
7939
  /* Size Variants */
7338
7940
  .select-xs {
@@ -7423,7 +8025,7 @@
7423
8025
  .select-ghost:focus-visible {
7424
8026
  background-color: var(--color-surface-container);
7425
8027
  border-color: transparent;
7426
- box-shadow: none;
8028
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
7427
8029
  }
7428
8030
 
7429
8031
  /* Reduce Motion */
@@ -7449,6 +8051,7 @@
7449
8051
  height: 2.5rem;
7450
8052
  touch-action: none;
7451
8053
  user-select: none;
8054
+ color: var(--color-on-surface);
7452
8055
  }
7453
8056
 
7454
8057
  /* Slider Track */
@@ -7509,7 +8112,7 @@
7509
8112
  margin-bottom: 0.5rem;
7510
8113
  font-size: 0.75rem;
7511
8114
  font-weight: 500;
7512
- color: var(--color-on-primary);
8115
+ color: var(--color-primary-content);
7513
8116
  background-color: var(--color-primary);
7514
8117
  border-radius: 0.25rem;
7515
8118
  white-space: nowrap;
@@ -7563,7 +8166,7 @@
7563
8166
  }
7564
8167
 
7565
8168
  .slider-mark-active {
7566
- background-color: var(--color-on-primary);
8169
+ background-color: var(--color-primary-content);
7567
8170
  }
7568
8171
 
7569
8172
  /* Mark Label */
@@ -7614,6 +8217,27 @@
7614
8217
  }
7615
8218
 
7616
8219
  /* Color Variants */
8220
+ .slider-primary .slider-track-filled,
8221
+ .slider-primary .slider-thumb {
8222
+ background-color: var(--color-primary);
8223
+ }
8224
+
8225
+ .slider-primary .slider-mark-active { background-color: var(--color-primary-content); }
8226
+
8227
+ .slider-primary .slider-thumb:hover,
8228
+ .slider-primary .slider-thumb:focus-visible {
8229
+ box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px rgb(0 0 0 / 0.2);
8230
+ }
8231
+
8232
+ .slider-primary .slider-thumb-label {
8233
+ background-color: var(--color-primary);
8234
+ color: var(--color-primary-content);
8235
+ }
8236
+
8237
+ .slider-primary .slider-thumb-label::after {
8238
+ border-top-color: var(--color-primary);
8239
+ }
8240
+
7617
8241
  .slider-secondary .slider-track-filled,
7618
8242
  .slider-secondary .slider-thumb {
7619
8243
  background-color: var(--color-secondary);
@@ -7624,9 +8248,11 @@
7624
8248
  box-shadow: 0 0 0 8px var(--color-secondary-container), 0 2px 4px rgb(0 0 0 / 0.2);
7625
8249
  }
7626
8250
 
8251
+ .slider-secondary .slider-mark-active { background-color: var(--color-secondary-content); }
8252
+
7627
8253
  .slider-secondary .slider-thumb-label {
7628
8254
  background-color: var(--color-secondary);
7629
- color: var(--color-on-secondary);
8255
+ color: var(--color-secondary-content);
7630
8256
  }
7631
8257
 
7632
8258
  .slider-secondary .slider-thumb-label::after {
@@ -7643,13 +8269,103 @@
7643
8269
  box-shadow: 0 0 0 8px var(--color-tertiary-container), 0 2px 4px rgb(0 0 0 / 0.2);
7644
8270
  }
7645
8271
 
7646
- .slider-tertiary .slider-thumb-label {
7647
- background-color: var(--color-tertiary);
7648
- color: var(--color-on-tertiary);
8272
+ .slider-tertiary .slider-mark-active { background-color: var(--color-tertiary-content); }
8273
+
8274
+ .slider-tertiary .slider-thumb-label {
8275
+ background-color: var(--color-tertiary);
8276
+ color: var(--color-tertiary-content);
8277
+ }
8278
+
8279
+ .slider-tertiary .slider-thumb-label::after {
8280
+ border-top-color: var(--color-tertiary);
8281
+ }
8282
+
8283
+ /* Info */
8284
+ .slider-info .slider-track-filled,
8285
+ .slider-info .slider-thumb {
8286
+ background-color: var(--color-info);
8287
+ }
8288
+
8289
+ .slider-info .slider-thumb:hover,
8290
+ .slider-info .slider-thumb:focus-visible {
8291
+ box-shadow: 0 0 0 8px var(--color-info-container), 0 2px 4px rgb(0 0 0 / 0.2);
8292
+ }
8293
+
8294
+ .slider-info .slider-mark-active { background-color: var(--color-info-content); }
8295
+
8296
+ .slider-info .slider-thumb-label {
8297
+ background-color: var(--color-info);
8298
+ color: var(--color-info-content);
8299
+ }
8300
+
8301
+ .slider-info .slider-thumb-label::after {
8302
+ border-top-color: var(--color-info);
8303
+ }
8304
+
8305
+ /* Success */
8306
+ .slider-success .slider-track-filled,
8307
+ .slider-success .slider-thumb {
8308
+ background-color: var(--color-success);
8309
+ }
8310
+
8311
+ .slider-success .slider-thumb:hover,
8312
+ .slider-success .slider-thumb:focus-visible {
8313
+ box-shadow: 0 0 0 8px var(--color-success-container), 0 2px 4px rgb(0 0 0 / 0.2);
8314
+ }
8315
+
8316
+ .slider-success .slider-mark-active { background-color: var(--color-success-content); }
8317
+
8318
+ .slider-success .slider-thumb-label {
8319
+ background-color: var(--color-success);
8320
+ color: var(--color-success-content);
8321
+ }
8322
+
8323
+ .slider-success .slider-thumb-label::after {
8324
+ border-top-color: var(--color-success);
8325
+ }
8326
+
8327
+ /* Warning */
8328
+ .slider-warning .slider-track-filled,
8329
+ .slider-warning .slider-thumb {
8330
+ background-color: var(--color-warning);
8331
+ }
8332
+
8333
+ .slider-warning .slider-thumb:hover,
8334
+ .slider-warning .slider-thumb:focus-visible {
8335
+ box-shadow: 0 0 0 8px var(--color-warning-container), 0 2px 4px rgb(0 0 0 / 0.2);
8336
+ }
8337
+
8338
+ .slider-warning .slider-mark-active { background-color: var(--color-warning-content); }
8339
+
8340
+ .slider-warning .slider-thumb-label {
8341
+ background-color: var(--color-warning);
8342
+ color: var(--color-warning-content);
8343
+ }
8344
+
8345
+ .slider-warning .slider-thumb-label::after {
8346
+ border-top-color: var(--color-warning);
8347
+ }
8348
+
8349
+ /* Error */
8350
+ .slider-error .slider-track-filled,
8351
+ .slider-error .slider-thumb {
8352
+ background-color: var(--color-error);
8353
+ }
8354
+
8355
+ .slider-error .slider-thumb:hover,
8356
+ .slider-error .slider-thumb:focus-visible {
8357
+ box-shadow: 0 0 0 8px var(--color-error-container), 0 2px 4px rgb(0 0 0 / 0.2);
8358
+ }
8359
+
8360
+ .slider-error .slider-mark-active { background-color: var(--color-error-content); }
8361
+
8362
+ .slider-error .slider-thumb-label {
8363
+ background-color: var(--color-error);
8364
+ color: var(--color-error-content);
7649
8365
  }
7650
8366
 
7651
- .slider-tertiary .slider-thumb-label::after {
7652
- border-top-color: var(--color-tertiary);
8367
+ .slider-error .slider-thumb-label::after {
8368
+ border-top-color: var(--color-error);
7653
8369
  }
7654
8370
 
7655
8371
  /* Disabled State */
@@ -7708,9 +8424,18 @@
7708
8424
  right: 100%;
7709
8425
  transform: translateY(-50%);
7710
8426
  border-top-color: transparent;
7711
- border-right-color: var(--color-primary);
8427
+ border-right-color: var(--color-primary); /* overridden per-variant below */
7712
8428
  }
7713
8429
 
8430
+ /* Variant-specific vertical arrow colors (border-right-color cannot use currentColor
8431
+ since it must match the label background, not the text color) */
8432
+ .slider-secondary.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-secondary); }
8433
+ .slider-tertiary.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-tertiary); }
8434
+ .slider-info.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-info); }
8435
+ .slider-success.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-success); }
8436
+ .slider-warning.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-warning); }
8437
+ .slider-error.slider-vertical .slider-thumb-label::after { border-right-color: var(--color-error); }
8438
+
7714
8439
  .slider-vertical .slider-marks {
7715
8440
  flex-direction: column;
7716
8441
  top: 0;
@@ -7750,7 +8475,8 @@
7750
8475
 
7751
8476
  .slider-input:focus {
7752
8477
  outline: none;
7753
- border-color: var(--color-primary);
8478
+ border-color: currentColor;
8479
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
7754
8480
  }
7755
8481
 
7756
8482
  /* Reduce Motion */
@@ -7775,8 +8501,11 @@
7775
8501
  .switch {
7776
8502
  --switch-width: 3.25rem;
7777
8503
  --switch-height: 2rem;
8504
+ color: var(--color-on-surface);
7778
8505
  --switch-thumb-size: 1rem;
7779
8506
  --switch-color: var(--color-primary);
8507
+ --switch-content-color: var(--color-primary-content);
8508
+ --switch-container-color: var(--color-primary-container);
7780
8509
  --switch-track-color: var(--color-surface-container-highest);
7781
8510
  --switch-border-color: var(--color-outline);
7782
8511
  --switch-thumb-color: var(--color-outline);
@@ -7822,7 +8551,7 @@
7822
8551
  }
7823
8552
 
7824
8553
  .switch:checked::before {
7825
- background-color: var(--color-primary-content);
8554
+ background-color: var(--switch-content-color);
7826
8555
  }
7827
8556
 
7828
8557
  /* Hover State (unchecked) */
@@ -7841,13 +8570,13 @@
7841
8570
  }
7842
8571
 
7843
8572
  .switch:checked:hover:not(:disabled)::before {
7844
- background-color: var(--color-primary-container);
8573
+ background-color: var(--switch-container-color);
7845
8574
  }
7846
8575
 
7847
8576
  /* Focus State */
7848
8577
  .switch:focus-visible {
7849
- outline: 2px solid var(--switch-color);
7850
- outline-offset: 2px;
8578
+ outline: none;
8579
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--switch-color) 20%, transparent);
7851
8580
  }
7852
8581
 
7853
8582
  /* Pressed/Active State - expand thumb slightly */
@@ -7924,30 +8653,50 @@
7924
8653
 
7925
8654
  .switch-primary {
7926
8655
  --switch-color: var(--color-primary);
8656
+ --switch-content-color: var(--color-primary-content);
8657
+ --switch-container-color: var(--color-primary-container);
7927
8658
  }
7928
8659
 
7929
8660
  .switch-secondary {
7930
8661
  --switch-color: var(--color-secondary);
8662
+ --switch-content-color: var(--color-secondary-content);
8663
+ --switch-container-color: var(--color-secondary-container);
7931
8664
  }
7932
8665
 
7933
8666
  .switch-tertiary {
7934
8667
  --switch-color: var(--color-tertiary);
8668
+ --switch-content-color: var(--color-tertiary-content);
8669
+ --switch-container-color: var(--color-tertiary-container);
7935
8670
  }
7936
8671
 
7937
8672
  .switch-success {
7938
8673
  --switch-color: var(--color-success);
8674
+ --switch-content-color: var(--color-success-content);
8675
+ --switch-container-color: var(--color-success-container);
7939
8676
  }
7940
8677
 
7941
8678
  .switch-warning {
7942
8679
  --switch-color: var(--color-warning);
8680
+ --switch-content-color: var(--color-warning-content);
8681
+ --switch-container-color: var(--color-warning-container);
7943
8682
  }
7944
8683
 
7945
8684
  .switch-error {
7946
8685
  --switch-color: var(--color-error);
8686
+ --switch-content-color: var(--color-error-content);
8687
+ --switch-container-color: var(--color-error-container);
7947
8688
  }
7948
8689
 
7949
8690
  .switch-info {
7950
8691
  --switch-color: var(--color-info);
8692
+ --switch-content-color: var(--color-info-content);
8693
+ --switch-container-color: var(--color-info-container);
8694
+ }
8695
+
8696
+ /* Ghost Variant — borderless track */
8697
+ .switch-ghost {
8698
+ --switch-border-color: transparent;
8699
+ --switch-track-color: transparent;
7951
8700
  }
7952
8701
 
7953
8702
  /* ========================================
@@ -8091,7 +8840,7 @@
8091
8840
  font-family: inherit;
8092
8841
  color: var(--color-on-surface);
8093
8842
  background-color: var(--color-surface);
8094
- border: 1px solid var(--color-outline);
8843
+ border: 1px solid currentColor;
8095
8844
  border-radius: 0.5rem;
8096
8845
  outline: none;
8097
8846
  resize: vertical;
@@ -8104,7 +8853,7 @@
8104
8853
  }
8105
8854
 
8106
8855
  .textarea:hover:not(:disabled) {
8107
- border-color: var(--color-on-surface-variant);
8856
+ background-color: var(--color-surface-container);
8108
8857
  }
8109
8858
 
8110
8859
  .textarea:focus {
@@ -8112,8 +8861,7 @@
8112
8861
  }
8113
8862
 
8114
8863
  .textarea:focus-visible {
8115
- border-color: var(--color-primary);
8116
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
8864
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
8117
8865
  }
8118
8866
 
8119
8867
  .textarea:disabled {
@@ -8155,6 +8903,14 @@
8155
8903
  box-shadow: none;
8156
8904
  }
8157
8905
 
8906
+ .textarea-filled.textarea-primary:focus-visible { border-bottom-color: var(--color-primary); }
8907
+ .textarea-filled.textarea-secondary:focus-visible { border-bottom-color: var(--color-secondary); }
8908
+ .textarea-filled.textarea-tertiary:focus-visible { border-bottom-color: var(--color-tertiary); }
8909
+ .textarea-filled.textarea-info:focus-visible { border-bottom-color: var(--color-info); }
8910
+ .textarea-filled.textarea-success:focus-visible { border-bottom-color: var(--color-success); }
8911
+ .textarea-filled.textarea-warning:focus-visible { border-bottom-color: var(--color-warning); }
8912
+ .textarea-filled.textarea-error:focus-visible { border-bottom-color: var(--color-error); }
8913
+
8158
8914
  /* Outlined Variant (default) */
8159
8915
  .textarea-outlined {
8160
8916
  background-color: transparent;
@@ -8176,109 +8932,27 @@
8176
8932
  .textarea-ghost:focus-visible {
8177
8933
  background-color: var(--color-surface-container);
8178
8934
  border-color: transparent;
8179
- box-shadow: none;
8935
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
8180
8936
  }
8181
8937
 
8182
8938
  /* ============================================
8183
8939
  * COLOR VARIANTS
8184
8940
  * ============================================ */
8185
8941
 
8186
- /* Primary */
8187
- .textarea-primary {
8188
- border-color: var(--color-primary);
8189
- }
8190
-
8191
- .textarea-primary:focus-visible {
8192
- border-color: var(--color-primary);
8193
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
8194
- }
8195
-
8196
- .textarea-filled.textarea-primary {
8197
- border-bottom-color: var(--color-primary);
8198
- }
8199
-
8200
- .textarea-filled.textarea-primary:focus-visible {
8201
- border-bottom-color: var(--color-primary);
8202
- }
8203
-
8204
- /* Secondary */
8205
- .textarea-secondary {
8206
- border-color: var(--color-secondary);
8207
- }
8208
-
8209
- .textarea-secondary:focus-visible {
8210
- border-color: var(--color-secondary);
8211
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
8212
- }
8213
-
8214
- .textarea-filled.textarea-secondary {
8215
- border-bottom-color: var(--color-secondary);
8216
- }
8217
-
8218
- .textarea-filled.textarea-secondary:focus-visible {
8219
- border-bottom-color: var(--color-secondary);
8220
- }
8221
-
8222
- /* Tertiary */
8223
- .textarea-tertiary {
8224
- border-color: var(--color-tertiary);
8225
- }
8226
-
8227
- .textarea-tertiary:focus-visible {
8228
- border-color: var(--color-tertiary);
8229
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
8230
- }
8231
-
8232
- .textarea-filled.textarea-tertiary {
8233
- border-bottom-color: var(--color-tertiary);
8234
- }
8235
-
8236
- .textarea-filled.textarea-tertiary:focus-visible {
8237
- border-bottom-color: var(--color-tertiary);
8238
- }
8942
+ /* Color Variants — base .textarea:focus-visible uses currentColor 20%, so no per-variant
8943
+ focus-visible overrides needed; setting color: here is sufficient. */
8944
+ .textarea-primary { color: var(--color-primary); }
8945
+ .textarea-secondary { color: var(--color-secondary); }
8946
+ .textarea-tertiary { color: var(--color-tertiary); }
8239
8947
 
8240
8948
  /* ============================================
8241
8949
  * SEMANTIC COLORS
8242
8950
  * ============================================ */
8243
8951
 
8244
- .textarea-error {
8245
- border-color: var(--color-error);
8246
- }
8247
-
8248
- .textarea-error:focus-visible {
8249
- border-color: var(--color-error);
8250
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
8251
- }
8252
-
8253
- .textarea-filled.textarea-error {
8254
- border-bottom-color: var(--color-error);
8255
- }
8256
-
8257
- .textarea-success {
8258
- border-color: var(--color-success);
8259
- }
8260
-
8261
- .textarea-success:focus-visible {
8262
- border-color: var(--color-success);
8263
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
8264
- }
8265
-
8266
- .textarea-filled.textarea-success {
8267
- border-bottom-color: var(--color-success);
8268
- }
8269
-
8270
- .textarea-warning {
8271
- border-color: var(--color-warning);
8272
- }
8273
-
8274
- .textarea-warning:focus-visible {
8275
- border-color: var(--color-warning);
8276
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
8277
- }
8278
-
8279
- .textarea-filled.textarea-warning {
8280
- border-bottom-color: var(--color-warning);
8281
- }
8952
+ .textarea-info { color: var(--color-info); }
8953
+ .textarea-success { color: var(--color-success); }
8954
+ .textarea-warning { color: var(--color-warning); }
8955
+ .textarea-error { color: var(--color-error); }
8282
8956
 
8283
8957
  /* ============================================
8284
8958
  * SIZE VARIANTS
@@ -8695,9 +9369,9 @@
8695
9369
  font-size: 0.875rem;
8696
9370
  font-weight: 500;
8697
9371
  line-height: 1.25rem;
8698
- color: var(--color-on-surface-variant);
9372
+ color: var(--color-on-surface);
8699
9373
  background-color: transparent;
8700
- border: 1px solid var(--color-outline);
9374
+ border: 1px solid currentColor;
8701
9375
  border-radius: 0.5rem;
8702
9376
  cursor: pointer;
8703
9377
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
@@ -8707,7 +9381,6 @@
8707
9381
  /* Hover state */
8708
9382
  .toggle-btn:hover:not(:disabled) {
8709
9383
  background-color: color-mix(in oklch, var(--color-surface-variant) 50%, transparent);
8710
- border-color: var(--color-outline-variant);
8711
9384
  }
8712
9385
 
8713
9386
  /* Active/Selected state */
@@ -8723,6 +9396,14 @@
8723
9396
  background-color: color-mix(in oklch, var(--color-primary-container) 90%, transparent);
8724
9397
  }
8725
9398
 
9399
+ /* Primary variant */
9400
+ .toggle-btn-primary.toggle-btn-active,
9401
+ .toggle-btn-primary.active {
9402
+ color: var(--color-on-primary-container);
9403
+ background-color: var(--color-primary-container);
9404
+ border-color: var(--color-primary);
9405
+ }
9406
+
8726
9407
  /* Secondary variant */
8727
9408
  .toggle-btn-secondary.toggle-btn-active,
8728
9409
  .toggle-btn-secondary.active {
@@ -8739,10 +9420,60 @@
8739
9420
  border-color: var(--color-tertiary);
8740
9421
  }
8741
9422
 
9423
+ /* Info variant */
9424
+ .toggle-btn-info.toggle-btn-active,
9425
+ .toggle-btn-info.active {
9426
+ color: var(--color-on-info-container);
9427
+ background-color: var(--color-info-container);
9428
+ border-color: var(--color-info);
9429
+ }
9430
+
9431
+ /* Success variant */
9432
+ .toggle-btn-success.toggle-btn-active,
9433
+ .toggle-btn-success.active {
9434
+ color: var(--color-on-success-container);
9435
+ background-color: var(--color-success-container);
9436
+ border-color: var(--color-success);
9437
+ }
9438
+
9439
+ /* Warning variant */
9440
+ .toggle-btn-warning.toggle-btn-active,
9441
+ .toggle-btn-warning.active {
9442
+ color: var(--color-on-warning-container);
9443
+ background-color: var(--color-warning-container);
9444
+ border-color: var(--color-warning);
9445
+ }
9446
+
9447
+ /* Error variant */
9448
+ .toggle-btn-error.toggle-btn-active,
9449
+ .toggle-btn-error.active {
9450
+ color: var(--color-on-error-container);
9451
+ background-color: var(--color-error-container);
9452
+ border-color: var(--color-error);
9453
+ }
9454
+
9455
+ /* Ghost Variant */
9456
+ .toggle-btn-ghost {
9457
+ background-color: transparent;
9458
+ border-color: transparent;
9459
+ }
9460
+ .toggle-btn-ghost:hover:not(:disabled) {
9461
+ background-color: var(--color-surface-container);
9462
+ border-color: transparent;
9463
+ }
9464
+
9465
+ .toggle-btn-ghost.toggle-btn-primary { color: var(--color-primary); }
9466
+ .toggle-btn-ghost.toggle-btn-secondary { color: var(--color-secondary); }
9467
+ .toggle-btn-ghost.toggle-btn-tertiary { color: var(--color-tertiary); }
9468
+ .toggle-btn-ghost.toggle-btn-info { color: var(--color-info); }
9469
+ .toggle-btn-ghost.toggle-btn-success { color: var(--color-success); }
9470
+ .toggle-btn-ghost.toggle-btn-warning { color: var(--color-warning); }
9471
+ .toggle-btn-ghost.toggle-btn-error { color: var(--color-error); }
9472
+
8742
9473
  /* Focus state */
8743
9474
  .toggle-btn:focus-visible {
8744
- outline: 2px solid var(--color-primary);
8745
- outline-offset: 2px;
9475
+ outline: none;
9476
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
8746
9477
  }
8747
9478
 
8748
9479
  /* Disabled state */
@@ -8879,7 +9610,7 @@
8879
9610
  .toggle-filled.toggle-btn-active,
8880
9611
  .toggle-filled.active {
8881
9612
  background-color: var(--color-primary);
8882
- color: var(--color-on-primary);
9613
+ color: var(--color-primary-content);
8883
9614
  }
8884
9615
 
8885
9616
  /* With badge/indicator */
@@ -8975,19 +9706,18 @@
8975
9706
  line-height: 1.5rem;
8976
9707
  color: var(--color-on-surface);
8977
9708
  background-color: var(--color-surface);
8978
- border: 1px solid var(--color-outline);
9709
+ border: 1px solid currentColor;
8979
9710
  border-radius: 0.5rem;
8980
9711
  outline: none;
8981
9712
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
8982
9713
  }
8983
9714
 
8984
9715
  .time-input-field:hover:not(:disabled) {
8985
- border-color: var(--color-on-surface-variant);
9716
+ background-color: var(--color-surface-container);
8986
9717
  }
8987
9718
 
8988
9719
  .time-input-field:focus {
8989
- border-color: var(--color-primary);
8990
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
9720
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
8991
9721
  }
8992
9722
 
8993
9723
  .time-input-field:disabled {
@@ -9016,7 +9746,7 @@
9016
9746
  gap: 0.125rem;
9017
9747
  padding: 0.75rem 1rem;
9018
9748
  background-color: var(--color-surface);
9019
- border: 1px solid var(--color-outline);
9749
+ border: 1px solid currentColor;
9020
9750
  border-radius: 0.5rem;
9021
9751
  }
9022
9752
 
@@ -9109,37 +9839,87 @@
9109
9839
 
9110
9840
  .time-input-filled .time-input-field:focus,
9111
9841
  .time-input-filled .time-input-segments:focus-within {
9112
- border-bottom-color: var(--color-primary);
9842
+ border-bottom-color: currentColor;
9113
9843
  box-shadow: none;
9114
9844
  }
9115
9845
 
9116
9846
  /* Color Variants */
9847
+ .time-input-primary .time-input-field,
9848
+ .time-input-primary .time-input-segments {
9849
+ color: var(--color-primary);
9850
+ }
9851
+
9117
9852
  .time-input-primary .time-input-field:focus {
9118
- border-color: var(--color-primary);
9119
9853
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
9120
9854
  }
9121
9855
 
9856
+ .time-input-secondary .time-input-field,
9857
+ .time-input-secondary .time-input-segments {
9858
+ color: var(--color-secondary);
9859
+ }
9860
+
9122
9861
  .time-input-secondary .time-input-field:focus {
9123
- border-color: var(--color-secondary);
9124
9862
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
9125
9863
  }
9126
9864
 
9865
+ .time-input-tertiary .time-input-field,
9866
+ .time-input-tertiary .time-input-segments {
9867
+ color: var(--color-tertiary);
9868
+ }
9869
+
9127
9870
  .time-input-tertiary .time-input-field:focus {
9128
- border-color: var(--color-tertiary);
9129
9871
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
9130
9872
  }
9131
9873
 
9132
- /* Error State */
9874
+ .time-input-info .time-input-field,
9875
+ .time-input-info .time-input-segments {
9876
+ color: var(--color-info);
9877
+ }
9878
+
9879
+ .time-input-info .time-input-field:focus {
9880
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
9881
+ }
9882
+
9883
+ .time-input-success .time-input-field,
9884
+ .time-input-success .time-input-segments {
9885
+ color: var(--color-success);
9886
+ }
9887
+
9888
+ .time-input-success .time-input-field:focus {
9889
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
9890
+ }
9891
+
9892
+ .time-input-warning .time-input-field,
9893
+ .time-input-warning .time-input-segments {
9894
+ color: var(--color-warning);
9895
+ }
9896
+
9897
+ .time-input-warning .time-input-field:focus {
9898
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
9899
+ }
9900
+
9133
9901
  .time-input-error .time-input-field,
9134
9902
  .time-input-error .time-input-segments {
9135
- border-color: var(--color-error);
9903
+ color: var(--color-error);
9136
9904
  }
9137
9905
 
9138
9906
  .time-input-error .time-input-field:focus {
9139
- border-color: var(--color-error);
9140
9907
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
9141
9908
  }
9142
9909
 
9910
+ /* Ghost Variant */
9911
+ .time-input-ghost .time-input-field,
9912
+ .time-input-ghost .time-input-segments {
9913
+ background-color: transparent;
9914
+ border-color: transparent;
9915
+ }
9916
+
9917
+ .time-input-ghost .time-input-field:focus {
9918
+ background-color: var(--color-surface-container);
9919
+ border-color: transparent;
9920
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
9921
+ }
9922
+
9143
9923
  /* Time Picker Dropdown */
9144
9924
  .time-picker-dropdown {
9145
9925
  position: absolute;
@@ -9231,20 +10011,19 @@
9231
10011
  line-height: 1.5rem;
9232
10012
  color: var(--color-on-surface);
9233
10013
  background-color: var(--color-surface);
9234
- border: 1px solid var(--color-outline);
10014
+ border: 1px solid currentColor;
9235
10015
  border-radius: 0.5rem;
9236
10016
  cursor: pointer;
9237
10017
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
9238
10018
  }
9239
10019
 
9240
10020
  .tree-select-trigger:hover:not(:disabled) {
9241
- border-color: var(--color-on-surface-variant);
10021
+ background-color: var(--color-surface-container);
9242
10022
  }
9243
10023
 
9244
10024
  .tree-select-trigger:focus {
9245
10025
  outline: none;
9246
- border-color: var(--color-primary);
9247
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
10026
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
9248
10027
  }
9249
10028
 
9250
10029
  .tree-select-trigger:disabled,
@@ -9261,8 +10040,7 @@
9261
10040
 
9262
10041
  div.tree-select-trigger:focus-visible {
9263
10042
  outline: none;
9264
- border-color: var(--color-primary);
9265
- box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
10043
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
9266
10044
  }
9267
10045
 
9268
10046
  /* Value Display */
@@ -9579,7 +10357,7 @@
9579
10357
  }
9580
10358
 
9581
10359
  .tree-select-filled .tree-select-trigger:focus {
9582
- border-bottom-color: var(--color-primary);
10360
+ border-bottom-color: currentColor;
9583
10361
  box-shadow: none;
9584
10362
  }
9585
10363
 
@@ -9589,16 +10367,67 @@
9589
10367
  gap: 0.25rem;
9590
10368
  }
9591
10369
 
9592
- /* Error State */
9593
- .tree-select-error .tree-select-trigger {
9594
- border-color: var(--color-error);
10370
+ /* Color Variants */
10371
+ .tree-select-primary .tree-select-trigger {
10372
+ color: var(--color-primary);
10373
+ }
10374
+ .tree-select-primary .tree-select-trigger:focus {
10375
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
10376
+ }
10377
+
10378
+ .tree-select-secondary .tree-select-trigger {
10379
+ color: var(--color-secondary);
10380
+ }
10381
+ .tree-select-secondary .tree-select-trigger:focus {
10382
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-secondary) 10%, transparent);
10383
+ }
10384
+
10385
+ .tree-select-tertiary .tree-select-trigger {
10386
+ color: var(--color-tertiary);
10387
+ }
10388
+ .tree-select-tertiary .tree-select-trigger:focus {
10389
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-tertiary) 10%, transparent);
10390
+ }
10391
+
10392
+ .tree-select-info .tree-select-trigger {
10393
+ color: var(--color-info);
10394
+ }
10395
+ .tree-select-info .tree-select-trigger:focus {
10396
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-info) 10%, transparent);
10397
+ }
10398
+
10399
+ .tree-select-success .tree-select-trigger {
10400
+ color: var(--color-success);
10401
+ }
10402
+ .tree-select-success .tree-select-trigger:focus {
10403
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-success) 10%, transparent);
10404
+ }
10405
+
10406
+ .tree-select-warning .tree-select-trigger {
10407
+ color: var(--color-warning);
10408
+ }
10409
+ .tree-select-warning .tree-select-trigger:focus {
10410
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 10%, transparent);
9595
10411
  }
9596
10412
 
10413
+ .tree-select-error .tree-select-trigger {
10414
+ color: var(--color-error);
10415
+ }
9597
10416
  .tree-select-error .tree-select-trigger:focus {
9598
- border-color: var(--color-error);
9599
10417
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
9600
10418
  }
9601
10419
 
10420
+ /* Ghost Variant */
10421
+ .tree-select-ghost .tree-select-trigger {
10422
+ background-color: transparent;
10423
+ border-color: transparent;
10424
+ }
10425
+ .tree-select-ghost .tree-select-trigger:focus {
10426
+ background-color: var(--color-surface-container);
10427
+ border-color: transparent;
10428
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
10429
+ }
10430
+
9602
10431
  /* Disabled State */
9603
10432
  .tree-select-disabled .tree-select-trigger {
9604
10433
  cursor: not-allowed;
@@ -9758,8 +10587,8 @@
9758
10587
  }
9759
10588
 
9760
10589
  .alert-close:focus-visible {
9761
- outline: 2px solid currentColor;
9762
- outline-offset: 2px;
10590
+ outline: none;
10591
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
9763
10592
  }
9764
10593
 
9765
10594
  /* Type Variants */
@@ -9775,15 +10604,33 @@
9775
10604
  border-color: transparent;
9776
10605
  }
9777
10606
 
9778
- .alert-warning {
9779
- background-color: var(--color-warning-container);
9780
- color: var(--color-on-warning-container);
10607
+ .alert-warning {
10608
+ background-color: var(--color-warning-container);
10609
+ color: var(--color-on-warning-container);
10610
+ border-color: transparent;
10611
+ }
10612
+
10613
+ .alert-error {
10614
+ background-color: var(--color-error-container);
10615
+ color: var(--color-on-error-container);
10616
+ border-color: transparent;
10617
+ }
10618
+
10619
+ .alert-primary {
10620
+ background-color: var(--color-primary-container);
10621
+ color: var(--color-on-primary-container);
10622
+ border-color: transparent;
10623
+ }
10624
+
10625
+ .alert-secondary {
10626
+ background-color: var(--color-secondary-container);
10627
+ color: var(--color-on-secondary-container);
9781
10628
  border-color: transparent;
9782
10629
  }
9783
10630
 
9784
- .alert-error {
9785
- background-color: var(--color-error-container);
9786
- color: var(--color-on-error-container);
10631
+ .alert-tertiary {
10632
+ background-color: var(--color-tertiary-container);
10633
+ color: var(--color-on-tertiary-container);
9787
10634
  border-color: transparent;
9788
10635
  }
9789
10636
 
@@ -9808,6 +10655,21 @@
9808
10655
  color: var(--color-error-content);
9809
10656
  }
9810
10657
 
10658
+ .alert-filled.alert-primary {
10659
+ background-color: var(--color-primary);
10660
+ color: var(--color-primary-content);
10661
+ }
10662
+
10663
+ .alert-filled.alert-secondary {
10664
+ background-color: var(--color-secondary);
10665
+ color: var(--color-secondary-content);
10666
+ }
10667
+
10668
+ .alert-filled.alert-tertiary {
10669
+ background-color: var(--color-tertiary);
10670
+ color: var(--color-tertiary-content);
10671
+ }
10672
+
9811
10673
  /* Outlined Variants */
9812
10674
  .alert-outlined {
9813
10675
  background-color: transparent;
@@ -9833,6 +10695,35 @@
9833
10695
  color: var(--color-error);
9834
10696
  }
9835
10697
 
10698
+ .alert-outlined.alert-primary {
10699
+ border-color: var(--color-primary);
10700
+ color: var(--color-primary);
10701
+ }
10702
+
10703
+ .alert-outlined.alert-secondary {
10704
+ border-color: var(--color-secondary);
10705
+ color: var(--color-secondary);
10706
+ }
10707
+
10708
+ .alert-outlined.alert-tertiary {
10709
+ border-color: var(--color-tertiary);
10710
+ color: var(--color-tertiary);
10711
+ }
10712
+
10713
+ /* Ghost Variant */
10714
+ .alert-ghost {
10715
+ background-color: transparent;
10716
+ border-color: transparent;
10717
+ }
10718
+
10719
+ .alert-ghost.alert-primary { color: var(--color-primary); }
10720
+ .alert-ghost.alert-secondary { color: var(--color-secondary); }
10721
+ .alert-ghost.alert-tertiary { color: var(--color-tertiary); }
10722
+ .alert-ghost.alert-info { color: var(--color-info); }
10723
+ .alert-ghost.alert-success { color: var(--color-success); }
10724
+ .alert-ghost.alert-warning { color: var(--color-warning); }
10725
+ .alert-ghost.alert-error { color: var(--color-error); }
10726
+
9836
10727
  /* Dismissible */
9837
10728
  .alert-dismissible {
9838
10729
  padding-right: 2.5rem;
@@ -10976,8 +11867,8 @@
10976
11867
  }
10977
11868
 
10978
11869
  .toast-close:focus-visible {
10979
- outline: 2px solid var(--color-primary);
10980
- outline-offset: 2px;
11870
+ outline: none;
11871
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
10981
11872
  }
10982
11873
 
10983
11874
  /* Toast Actions */
@@ -11020,6 +11911,30 @@
11020
11911
  color: var(--color-error);
11021
11912
  }
11022
11913
 
11914
+ .toast-primary {
11915
+ border-color: var(--color-primary);
11916
+ }
11917
+
11918
+ .toast-primary .toast-icon {
11919
+ color: var(--color-primary);
11920
+ }
11921
+
11922
+ .toast-secondary {
11923
+ border-color: var(--color-secondary);
11924
+ }
11925
+
11926
+ .toast-secondary .toast-icon {
11927
+ color: var(--color-secondary);
11928
+ }
11929
+
11930
+ .toast-tertiary {
11931
+ border-color: var(--color-tertiary);
11932
+ }
11933
+
11934
+ .toast-tertiary .toast-icon {
11935
+ color: var(--color-tertiary);
11936
+ }
11937
+
11023
11938
  /* Filled Variants */
11024
11939
  .toast-filled.toast-info {
11025
11940
  background-color: var(--color-info-container);
@@ -11045,13 +11960,58 @@
11045
11960
  color: var(--color-on-error-container);
11046
11961
  }
11047
11962
 
11963
+ .toast-filled.toast-primary {
11964
+ background-color: var(--color-primary-container);
11965
+ border-color: transparent;
11966
+ color: var(--color-on-primary-container);
11967
+ }
11968
+
11969
+ .toast-filled.toast-secondary {
11970
+ background-color: var(--color-secondary-container);
11971
+ border-color: transparent;
11972
+ color: var(--color-on-secondary-container);
11973
+ }
11974
+
11975
+ .toast-filled.toast-tertiary {
11976
+ background-color: var(--color-tertiary-container);
11977
+ border-color: transparent;
11978
+ color: var(--color-on-tertiary-container);
11979
+ }
11980
+
11981
+ /* Filled variant sub-element color inheritance fix.
11982
+ .toast-title and .toast-message have explicit color rules that would otherwise
11983
+ override the filled variant's inherited on-container color. */
11984
+ .toast-filled .toast-title,
11985
+ .toast-filled .toast-message {
11986
+ color: inherit;
11987
+ }
11988
+
11989
+ /* Ghost Variant */
11990
+ .toast-ghost {
11991
+ background-color: transparent;
11992
+ border-color: transparent;
11993
+ }
11994
+
11995
+ .toast-ghost.toast-primary { color: var(--color-primary); }
11996
+ .toast-ghost.toast-secondary { color: var(--color-secondary); }
11997
+ .toast-ghost.toast-tertiary { color: var(--color-tertiary); }
11998
+ .toast-ghost.toast-info { color: var(--color-info); }
11999
+ .toast-ghost.toast-success { color: var(--color-success); }
12000
+ .toast-ghost.toast-warning { color: var(--color-warning); }
12001
+ .toast-ghost.toast-error { color: var(--color-error); }
12002
+
12003
+ .toast-ghost .toast-title,
12004
+ .toast-ghost .toast-message {
12005
+ color: inherit;
12006
+ }
12007
+
11048
12008
  /* Progress Bar (for auto-dismiss) */
11049
12009
  .toast-progress {
11050
12010
  position: absolute;
11051
12011
  bottom: 0;
11052
12012
  left: 0;
11053
12013
  height: 3px;
11054
- background-color: var(--color-primary);
12014
+ background-color: currentColor;
11055
12015
  border-radius: 0 0 0.75rem 0.75rem;
11056
12016
  animation: toast-progress linear forwards;
11057
12017
  }
@@ -11314,6 +12274,90 @@
11314
12274
  border-right-color: var(--color-error);
11315
12275
  }
11316
12276
 
12277
+ .tooltip.tooltip-tertiary .tooltip-content {
12278
+ background-color: var(--color-tertiary);
12279
+ color: var(--color-tertiary-content);
12280
+ }
12281
+
12282
+ .tooltip.tooltip-tertiary .tooltip-content::before {
12283
+ border-top-color: var(--color-tertiary);
12284
+ }
12285
+
12286
+ .tooltip.tooltip-tertiary.tooltip-bottom .tooltip-content::before {
12287
+ border-bottom-color: var(--color-tertiary);
12288
+ }
12289
+
12290
+ .tooltip.tooltip-tertiary.tooltip-left .tooltip-content::before {
12291
+ border-left-color: var(--color-tertiary);
12292
+ }
12293
+
12294
+ .tooltip.tooltip-tertiary.tooltip-right .tooltip-content::before {
12295
+ border-right-color: var(--color-tertiary);
12296
+ }
12297
+
12298
+ .tooltip.tooltip-info .tooltip-content {
12299
+ background-color: var(--color-info);
12300
+ color: var(--color-info-content);
12301
+ }
12302
+
12303
+ .tooltip.tooltip-info .tooltip-content::before {
12304
+ border-top-color: var(--color-info);
12305
+ }
12306
+
12307
+ .tooltip.tooltip-info.tooltip-bottom .tooltip-content::before {
12308
+ border-bottom-color: var(--color-info);
12309
+ }
12310
+
12311
+ .tooltip.tooltip-info.tooltip-left .tooltip-content::before {
12312
+ border-left-color: var(--color-info);
12313
+ }
12314
+
12315
+ .tooltip.tooltip-info.tooltip-right .tooltip-content::before {
12316
+ border-right-color: var(--color-info);
12317
+ }
12318
+
12319
+ .tooltip.tooltip-success .tooltip-content {
12320
+ background-color: var(--color-success);
12321
+ color: var(--color-success-content);
12322
+ }
12323
+
12324
+ .tooltip.tooltip-success .tooltip-content::before {
12325
+ border-top-color: var(--color-success);
12326
+ }
12327
+
12328
+ .tooltip.tooltip-success.tooltip-bottom .tooltip-content::before {
12329
+ border-bottom-color: var(--color-success);
12330
+ }
12331
+
12332
+ .tooltip.tooltip-success.tooltip-left .tooltip-content::before {
12333
+ border-left-color: var(--color-success);
12334
+ }
12335
+
12336
+ .tooltip.tooltip-success.tooltip-right .tooltip-content::before {
12337
+ border-right-color: var(--color-success);
12338
+ }
12339
+
12340
+ .tooltip.tooltip-warning .tooltip-content {
12341
+ background-color: var(--color-warning);
12342
+ color: var(--color-warning-content);
12343
+ }
12344
+
12345
+ .tooltip.tooltip-warning .tooltip-content::before {
12346
+ border-top-color: var(--color-warning);
12347
+ }
12348
+
12349
+ .tooltip.tooltip-warning.tooltip-bottom .tooltip-content::before {
12350
+ border-bottom-color: var(--color-warning);
12351
+ }
12352
+
12353
+ .tooltip.tooltip-warning.tooltip-left .tooltip-content::before {
12354
+ border-left-color: var(--color-warning);
12355
+ }
12356
+
12357
+ .tooltip.tooltip-warning.tooltip-right .tooltip-content::before {
12358
+ border-right-color: var(--color-warning);
12359
+ }
12360
+
11317
12361
  /* Multi-line Tooltip */
11318
12362
  .tooltip-multiline .tooltip-content {
11319
12363
  white-space: normal;
@@ -11472,8 +12516,8 @@
11472
12516
  }
11473
12517
 
11474
12518
  .appbar-nav:focus-visible {
11475
- outline: 2px solid var(--color-primary);
11476
- outline-offset: 2px;
12519
+ outline: none;
12520
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
11477
12521
  }
11478
12522
 
11479
12523
  /* App Bar Title */
@@ -11535,8 +12579,8 @@
11535
12579
  }
11536
12580
 
11537
12581
  .appbar-action:focus-visible {
11538
- outline: 2px solid var(--color-primary);
11539
- outline-offset: 2px;
12582
+ outline: none;
12583
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
11540
12584
  }
11541
12585
 
11542
12586
  /* App Bar Logo/Brand */
@@ -11651,8 +12695,8 @@
11651
12695
  }
11652
12696
 
11653
12697
  .appbar-back:focus-visible {
11654
- outline: 2px solid var(--color-primary);
11655
- outline-offset: 2px;
12698
+ outline: none;
12699
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
11656
12700
  }
11657
12701
 
11658
12702
  /* Search Input (direct on element) */
@@ -11683,64 +12727,162 @@
11683
12727
  /* Color Variants */
11684
12728
  .appbar-primary {
11685
12729
  background-color: var(--color-primary);
11686
- color: var(--color-on-primary);
12730
+ color: var(--color-primary-content);
11687
12731
  }
11688
12732
 
11689
12733
  .appbar-primary .appbar-nav,
11690
- .appbar-primary .appbar-action {
11691
- color: var(--color-on-primary);
12734
+ .appbar-primary .appbar-action,
12735
+ .appbar-primary .appbar-back {
12736
+ color: var(--color-primary-content);
11692
12737
  }
11693
12738
 
11694
12739
  .appbar-primary .appbar-nav:hover,
11695
- .appbar-primary .appbar-action:hover {
12740
+ .appbar-primary .appbar-action:hover,
12741
+ .appbar-primary .appbar-back:hover {
11696
12742
  background-color: var(--color-primary-container);
11697
12743
  color: var(--color-on-primary-container);
11698
12744
  }
11699
12745
 
11700
12746
  .appbar-primary .appbar-subtitle {
11701
- color: var(--color-on-primary);
12747
+ color: var(--color-primary-content);
11702
12748
  opacity: 0.8;
11703
12749
  }
11704
12750
 
11705
12751
  .appbar-secondary {
11706
12752
  background-color: var(--color-secondary);
11707
- color: var(--color-on-secondary);
12753
+ color: var(--color-secondary-content);
11708
12754
  }
11709
12755
 
11710
12756
  .appbar-secondary .appbar-nav,
11711
- .appbar-secondary .appbar-action {
11712
- color: var(--color-on-secondary);
12757
+ .appbar-secondary .appbar-action,
12758
+ .appbar-secondary .appbar-back {
12759
+ color: var(--color-secondary-content);
11713
12760
  }
11714
12761
 
11715
12762
  .appbar-secondary .appbar-nav:hover,
11716
- .appbar-secondary .appbar-action:hover {
12763
+ .appbar-secondary .appbar-action:hover,
12764
+ .appbar-secondary .appbar-back:hover {
11717
12765
  background-color: var(--color-secondary-container);
11718
12766
  color: var(--color-on-secondary-container);
11719
12767
  }
11720
12768
 
11721
12769
  .appbar-secondary .appbar-subtitle {
11722
- color: var(--color-on-secondary);
12770
+ color: var(--color-secondary-content);
11723
12771
  opacity: 0.8;
11724
12772
  }
11725
12773
 
11726
12774
  .appbar-tertiary {
11727
12775
  background-color: var(--color-tertiary);
11728
- color: var(--color-on-tertiary);
12776
+ color: var(--color-tertiary-content);
11729
12777
  }
11730
12778
 
11731
12779
  .appbar-tertiary .appbar-nav,
11732
- .appbar-tertiary .appbar-action {
11733
- color: var(--color-on-tertiary);
12780
+ .appbar-tertiary .appbar-action,
12781
+ .appbar-tertiary .appbar-back {
12782
+ color: var(--color-tertiary-content);
11734
12783
  }
11735
12784
 
11736
12785
  .appbar-tertiary .appbar-nav:hover,
11737
- .appbar-tertiary .appbar-action:hover {
12786
+ .appbar-tertiary .appbar-action:hover,
12787
+ .appbar-tertiary .appbar-back:hover {
11738
12788
  background-color: var(--color-tertiary-container);
11739
12789
  color: var(--color-on-tertiary-container);
11740
12790
  }
11741
12791
 
11742
12792
  .appbar-tertiary .appbar-subtitle {
11743
- color: var(--color-on-tertiary);
12793
+ color: var(--color-tertiary-content);
12794
+ opacity: 0.8;
12795
+ }
12796
+
12797
+ .appbar-info {
12798
+ background-color: var(--color-info);
12799
+ color: var(--color-info-content);
12800
+ }
12801
+
12802
+ .appbar-info .appbar-nav,
12803
+ .appbar-info .appbar-action,
12804
+ .appbar-info .appbar-back {
12805
+ color: var(--color-info-content);
12806
+ }
12807
+
12808
+ .appbar-info .appbar-nav:hover,
12809
+ .appbar-info .appbar-action:hover,
12810
+ .appbar-info .appbar-back:hover {
12811
+ background-color: var(--color-info-container);
12812
+ color: var(--color-on-info-container);
12813
+ }
12814
+
12815
+ .appbar-info .appbar-subtitle {
12816
+ color: var(--color-info-content);
12817
+ opacity: 0.8;
12818
+ }
12819
+
12820
+ .appbar-success {
12821
+ background-color: var(--color-success);
12822
+ color: var(--color-success-content);
12823
+ }
12824
+
12825
+ .appbar-success .appbar-nav,
12826
+ .appbar-success .appbar-action,
12827
+ .appbar-success .appbar-back {
12828
+ color: var(--color-success-content);
12829
+ }
12830
+
12831
+ .appbar-success .appbar-nav:hover,
12832
+ .appbar-success .appbar-action:hover,
12833
+ .appbar-success .appbar-back:hover {
12834
+ background-color: var(--color-success-container);
12835
+ color: var(--color-on-success-container);
12836
+ }
12837
+
12838
+ .appbar-success .appbar-subtitle {
12839
+ color: var(--color-success-content);
12840
+ opacity: 0.8;
12841
+ }
12842
+
12843
+ .appbar-warning {
12844
+ background-color: var(--color-warning);
12845
+ color: var(--color-warning-content);
12846
+ }
12847
+
12848
+ .appbar-warning .appbar-nav,
12849
+ .appbar-warning .appbar-action,
12850
+ .appbar-warning .appbar-back {
12851
+ color: var(--color-warning-content);
12852
+ }
12853
+
12854
+ .appbar-warning .appbar-nav:hover,
12855
+ .appbar-warning .appbar-action:hover,
12856
+ .appbar-warning .appbar-back:hover {
12857
+ background-color: var(--color-warning-container);
12858
+ color: var(--color-on-warning-container);
12859
+ }
12860
+
12861
+ .appbar-warning .appbar-subtitle {
12862
+ color: var(--color-warning-content);
12863
+ opacity: 0.8;
12864
+ }
12865
+
12866
+ .appbar-error {
12867
+ background-color: var(--color-error);
12868
+ color: var(--color-error-content);
12869
+ }
12870
+
12871
+ .appbar-error .appbar-nav,
12872
+ .appbar-error .appbar-action,
12873
+ .appbar-error .appbar-back {
12874
+ color: var(--color-error-content);
12875
+ }
12876
+
12877
+ .appbar-error .appbar-nav:hover,
12878
+ .appbar-error .appbar-action:hover,
12879
+ .appbar-error .appbar-back:hover {
12880
+ background-color: var(--color-error-container);
12881
+ color: var(--color-on-error-container);
12882
+ }
12883
+
12884
+ .appbar-error .appbar-subtitle {
12885
+ color: var(--color-error-content);
11744
12886
  opacity: 0.8;
11745
12887
  }
11746
12888
 
@@ -14171,6 +15313,38 @@
14171
15313
  background-color: var(--color-tertiary-container);
14172
15314
  }
14173
15315
 
15316
+ .collapse-info .collapse-trigger {
15317
+ color: var(--color-info);
15318
+ }
15319
+
15320
+ .collapse-info .collapse-trigger:hover {
15321
+ background-color: var(--color-info-container);
15322
+ }
15323
+
15324
+ .collapse-success .collapse-trigger {
15325
+ color: var(--color-success);
15326
+ }
15327
+
15328
+ .collapse-success .collapse-trigger:hover {
15329
+ background-color: var(--color-success-container);
15330
+ }
15331
+
15332
+ .collapse-warning .collapse-trigger {
15333
+ color: var(--color-warning);
15334
+ }
15335
+
15336
+ .collapse-warning .collapse-trigger:hover {
15337
+ background-color: var(--color-warning-container);
15338
+ }
15339
+
15340
+ .collapse-error .collapse-trigger {
15341
+ color: var(--color-error);
15342
+ }
15343
+
15344
+ .collapse-error .collapse-trigger:hover {
15345
+ background-color: var(--color-error-container);
15346
+ }
15347
+
14174
15348
  /* Size Variants */
14175
15349
  .collapse-sm .collapse-trigger {
14176
15350
  padding: 0.5rem 0.75rem;