@duskmoon-dev/core 1.17.0 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/components/alert.css +51 -0
  2. package/dist/components/appbar.css +69 -0
  3. package/dist/components/autocomplete.css +21 -0
  4. package/dist/components/avatar.css +15 -0
  5. package/dist/components/badge.css +45 -0
  6. package/dist/components/button.css +123 -0
  7. package/dist/components/card.css +27 -0
  8. package/dist/components/cascader.css +21 -0
  9. package/dist/components/chat.css +30 -0
  10. package/dist/components/checkbox.css +27 -0
  11. package/dist/components/chip.css +75 -0
  12. package/dist/components/circle-menu.css +24 -0
  13. package/dist/components/collapse.css +31 -1
  14. package/dist/components/datepicker.css +42 -0
  15. package/dist/components/divider.css +15 -0
  16. package/dist/components/file-upload.css +21 -0
  17. package/dist/components/form.css +83 -0
  18. package/dist/components/index.css +1200 -5
  19. package/dist/components/input.css +6 -0
  20. package/dist/components/multi-select.css +21 -0
  21. package/dist/components/navigation.css +50 -0
  22. package/dist/components/otp-input.css +24 -0
  23. package/dist/components/pin-input.css +24 -0
  24. package/dist/components/progress.css +12 -0
  25. package/dist/components/radio.css +12 -0
  26. package/dist/components/rating.css +18 -0
  27. package/dist/components/segment-control.css +15 -0
  28. package/dist/components/select.css +6 -0
  29. package/dist/components/slider.css +66 -0
  30. package/dist/components/snackbar.css +15 -0
  31. package/dist/components/switch.css +18 -0
  32. package/dist/components/textarea.css +6 -0
  33. package/dist/components/time-input.css +27 -0
  34. package/dist/components/toast.css +45 -0
  35. package/dist/components/toggle.css +27 -0
  36. package/dist/components/tooltip.css +63 -0
  37. package/dist/components/tree-select.css +21 -0
  38. package/dist/esm/components/alert.js +51 -0
  39. package/dist/esm/components/appbar.js +69 -0
  40. package/dist/esm/components/autocomplete.js +21 -0
  41. package/dist/esm/components/avatar.js +15 -0
  42. package/dist/esm/components/badge.js +45 -0
  43. package/dist/esm/components/button.js +123 -0
  44. package/dist/esm/components/card.js +27 -0
  45. package/dist/esm/components/cascader.js +21 -0
  46. package/dist/esm/components/chat.js +30 -0
  47. package/dist/esm/components/checkbox.js +27 -0
  48. package/dist/esm/components/chip.js +75 -0
  49. package/dist/esm/components/circle-menu.js +24 -0
  50. package/dist/esm/components/collapse.js +31 -1
  51. package/dist/esm/components/datepicker.js +42 -0
  52. package/dist/esm/components/divider.js +15 -0
  53. package/dist/esm/components/file-upload.js +21 -0
  54. package/dist/esm/components/form.js +83 -0
  55. package/dist/esm/components/input.js +6 -0
  56. package/dist/esm/components/multi-select.js +21 -0
  57. package/dist/esm/components/navigation.js +50 -0
  58. package/dist/esm/components/otp-input.js +24 -0
  59. package/dist/esm/components/pin-input.js +24 -0
  60. package/dist/esm/components/progress.js +12 -0
  61. package/dist/esm/components/radio.js +12 -0
  62. package/dist/esm/components/rating.js +18 -0
  63. package/dist/esm/components/segment-control.js +15 -0
  64. package/dist/esm/components/select.js +6 -0
  65. package/dist/esm/components/slider.js +66 -0
  66. package/dist/esm/components/snackbar.js +15 -0
  67. package/dist/esm/components/switch.js +18 -0
  68. package/dist/esm/components/textarea.js +6 -0
  69. package/dist/esm/components/time-input.js +27 -0
  70. package/dist/esm/components/toast.js +45 -0
  71. package/dist/esm/components/toggle.js +27 -0
  72. package/dist/esm/components/tooltip.js +63 -0
  73. package/dist/esm/components/tree-select.js +21 -0
  74. package/dist/index.css +1202 -7
  75. package/dist/index.min.css +1 -1
  76. package/dist/themes/generated/sunshine.css +1 -1
  77. package/package.json +1 -1
@@ -119,6 +119,24 @@
119
119
  border-color: transparent;
120
120
  }
121
121
 
122
+ .alert-accent {
123
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
124
+ color: var(--color-on-surface);
125
+ border-color: transparent;
126
+ }
127
+
128
+ .alert-neutral {
129
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
130
+ color: var(--color-on-surface);
131
+ border-color: transparent;
132
+ }
133
+
134
+ .alert-base {
135
+ background-color: var(--color-base-200);
136
+ color: var(--color-base-content);
137
+ border-color: transparent;
138
+ }
139
+
122
140
  /* Filled Variants */
123
141
  .alert-filled.alert-info {
124
142
  background-color: var(--color-info);
@@ -155,6 +173,21 @@
155
173
  color: var(--color-tertiary-content);
156
174
  }
157
175
 
176
+ .alert-filled.alert-accent {
177
+ background-color: var(--color-accent);
178
+ color: var(--color-accent-content);
179
+ }
180
+
181
+ .alert-filled.alert-neutral {
182
+ background-color: var(--color-neutral);
183
+ color: var(--color-neutral-content);
184
+ }
185
+
186
+ .alert-filled.alert-base {
187
+ background-color: var(--color-base-100);
188
+ color: var(--color-base-content);
189
+ }
190
+
158
191
  /* Outlined Variants */
159
192
  .alert-outlined {
160
193
  background-color: transparent;
@@ -195,6 +228,21 @@
195
228
  color: var(--color-tertiary);
196
229
  }
197
230
 
231
+ .alert-outlined.alert-accent {
232
+ border-color: var(--color-accent);
233
+ color: var(--color-accent);
234
+ }
235
+
236
+ .alert-outlined.alert-neutral {
237
+ border-color: var(--color-neutral);
238
+ color: var(--color-neutral);
239
+ }
240
+
241
+ .alert-outlined.alert-base {
242
+ border-color: var(--color-base-content);
243
+ color: var(--color-base-content);
244
+ }
245
+
198
246
  /* Ghost Variant */
199
247
  .alert-ghost {
200
248
  background-color: transparent;
@@ -208,6 +256,9 @@
208
256
  .alert-ghost.alert-success { color: var(--color-success); }
209
257
  .alert-ghost.alert-warning { color: var(--color-warning); }
210
258
  .alert-ghost.alert-error { color: var(--color-error); }
259
+ .alert-ghost.alert-accent { color: var(--color-accent); }
260
+ .alert-ghost.alert-neutral { color: var(--color-neutral); }
261
+ .alert-ghost.alert-base { color: var(--color-base-content); }
211
262
 
212
263
  /* Dismissible */
213
264
  .alert-dismissible {
@@ -380,6 +380,75 @@
380
380
  opacity: 0.8;
381
381
  }
382
382
 
383
+ .appbar-accent {
384
+ background-color: var(--color-accent);
385
+ color: var(--color-accent-content);
386
+ }
387
+
388
+ .appbar-accent .appbar-nav,
389
+ .appbar-accent .appbar-action,
390
+ .appbar-accent .appbar-back {
391
+ color: var(--color-accent-content);
392
+ }
393
+
394
+ .appbar-accent .appbar-nav:hover,
395
+ .appbar-accent .appbar-action:hover,
396
+ .appbar-accent .appbar-back:hover {
397
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
398
+ color: var(--color-accent);
399
+ }
400
+
401
+ .appbar-accent .appbar-subtitle {
402
+ color: var(--color-accent-content);
403
+ opacity: 0.8;
404
+ }
405
+
406
+ .appbar-neutral {
407
+ background-color: var(--color-neutral);
408
+ color: var(--color-neutral-content);
409
+ }
410
+
411
+ .appbar-neutral .appbar-nav,
412
+ .appbar-neutral .appbar-action,
413
+ .appbar-neutral .appbar-back {
414
+ color: var(--color-neutral-content);
415
+ }
416
+
417
+ .appbar-neutral .appbar-nav:hover,
418
+ .appbar-neutral .appbar-action:hover,
419
+ .appbar-neutral .appbar-back:hover {
420
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
421
+ color: var(--color-neutral);
422
+ }
423
+
424
+ .appbar-neutral .appbar-subtitle {
425
+ color: var(--color-neutral-content);
426
+ opacity: 0.8;
427
+ }
428
+
429
+ .appbar-base {
430
+ background-color: var(--color-base-100);
431
+ color: var(--color-base-content);
432
+ }
433
+
434
+ .appbar-base .appbar-nav,
435
+ .appbar-base .appbar-action,
436
+ .appbar-base .appbar-back {
437
+ color: var(--color-base-content);
438
+ }
439
+
440
+ .appbar-base .appbar-nav:hover,
441
+ .appbar-base .appbar-action:hover,
442
+ .appbar-base .appbar-back:hover {
443
+ background-color: var(--color-base-200);
444
+ color: var(--color-base-content);
445
+ }
446
+
447
+ .appbar-base .appbar-subtitle {
448
+ color: var(--color-base-content);
449
+ opacity: 0.8;
450
+ }
451
+
383
452
  .appbar-info {
384
453
  background-color: var(--color-info);
385
454
  color: var(--color-info-content);
@@ -298,6 +298,27 @@
298
298
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
299
299
  }
300
300
 
301
+ .autocomplete-accent .autocomplete-input {
302
+ color: var(--color-accent);
303
+ }
304
+ .autocomplete-accent .autocomplete-input:focus {
305
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
306
+ }
307
+
308
+ .autocomplete-neutral .autocomplete-input {
309
+ color: var(--color-neutral);
310
+ }
311
+ .autocomplete-neutral .autocomplete-input:focus {
312
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
313
+ }
314
+
315
+ .autocomplete-base .autocomplete-input {
316
+ color: var(--color-base-content);
317
+ }
318
+ .autocomplete-base .autocomplete-input:focus {
319
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
320
+ }
321
+
301
322
  /* Ghost Variant */
302
323
  .autocomplete-ghost .autocomplete-input {
303
324
  background-color: transparent;
@@ -113,6 +113,21 @@
113
113
  color: var(--color-error-content);
114
114
  }
115
115
 
116
+ .avatar-accent {
117
+ background-color: var(--color-accent);
118
+ color: var(--color-accent-content);
119
+ }
120
+
121
+ .avatar-neutral {
122
+ background-color: var(--color-neutral);
123
+ color: var(--color-neutral-content);
124
+ }
125
+
126
+ .avatar-base {
127
+ background-color: var(--color-base-100);
128
+ color: var(--color-base-content);
129
+ }
130
+
116
131
  /* Ring */
117
132
  .avatar-ring {
118
133
  outline: none;
@@ -35,6 +35,21 @@
35
35
  color: var(--color-tertiary-content);
36
36
  }
37
37
 
38
+ .badge-accent {
39
+ background-color: var(--color-accent);
40
+ color: var(--color-accent-content);
41
+ }
42
+
43
+ .badge-neutral {
44
+ background-color: var(--color-neutral);
45
+ color: var(--color-neutral-content);
46
+ }
47
+
48
+ .badge-base {
49
+ background-color: var(--color-base-100);
50
+ color: var(--color-base-content);
51
+ }
52
+
38
53
  .badge-info {
39
54
  background-color: var(--color-info);
40
55
  color: var(--color-info-content);
@@ -76,6 +91,21 @@
76
91
  border-color: var(--color-tertiary);
77
92
  }
78
93
 
94
+ .badge-outline.badge-accent {
95
+ color: var(--color-accent);
96
+ border-color: var(--color-accent);
97
+ }
98
+
99
+ .badge-outline.badge-neutral {
100
+ color: var(--color-neutral);
101
+ border-color: var(--color-neutral);
102
+ }
103
+
104
+ .badge-outline.badge-base {
105
+ color: var(--color-base-content);
106
+ border-color: var(--color-base-content);
107
+ }
108
+
79
109
  .badge-outline.badge-info {
80
110
  color: var(--color-info);
81
111
  border-color: var(--color-info);
@@ -117,6 +147,21 @@
117
147
  color: var(--color-on-tertiary-container);
118
148
  }
119
149
 
150
+ .badge-soft.badge-accent {
151
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
152
+ color: var(--color-on-surface);
153
+ }
154
+
155
+ .badge-soft.badge-neutral {
156
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
157
+ color: var(--color-on-surface);
158
+ }
159
+
160
+ .badge-soft.badge-base {
161
+ background-color: var(--color-base-200);
162
+ color: var(--color-base-content);
163
+ }
164
+
120
165
  .badge-soft.badge-info {
121
166
  background-color: var(--color-info-container);
122
167
  color: var(--color-on-info-container);
@@ -93,6 +93,42 @@
93
93
  filter: none;
94
94
  }
95
95
 
96
+ .btn-accent {
97
+ --btn-text-color: var(--color-accent-content);
98
+ background-color: var(--color-accent);
99
+ border-color: var(--color-accent);
100
+ }
101
+
102
+ .btn-accent:hover {
103
+ background-color: color-mix(in oklch, var(--color-accent), black 10%);
104
+ border-color: color-mix(in oklch, var(--color-accent), black 10%);
105
+ filter: none;
106
+ }
107
+
108
+ .btn-neutral {
109
+ --btn-text-color: var(--color-neutral-content);
110
+ background-color: var(--color-neutral);
111
+ border-color: var(--color-neutral);
112
+ }
113
+
114
+ .btn-neutral:hover {
115
+ background-color: color-mix(in oklch, var(--color-neutral), black 10%);
116
+ border-color: color-mix(in oklch, var(--color-neutral), black 10%);
117
+ filter: none;
118
+ }
119
+
120
+ .btn-base {
121
+ --btn-text-color: var(--color-base-content);
122
+ background-color: var(--color-base-100);
123
+ border-color: var(--color-base-100);
124
+ }
125
+
126
+ .btn-base:hover {
127
+ background-color: var(--color-base-200);
128
+ border-color: var(--color-base-200);
129
+ filter: none;
130
+ }
131
+
96
132
  /* Outline / Outlined Variant (.btn-outlined is an alias) */
97
133
  .btn-outline,
98
134
  .btn-outlined {
@@ -143,6 +179,42 @@
143
179
  background-color: var(--color-tertiary);
144
180
  }
145
181
 
182
+ .btn-outline.btn-accent,
183
+ .btn-outlined.btn-accent {
184
+ --btn-text-color: var(--color-accent);
185
+ border-color: currentColor;
186
+ }
187
+
188
+ .btn-outline.btn-accent:hover,
189
+ .btn-outlined.btn-accent:hover {
190
+ --btn-text-color: var(--color-accent-content);
191
+ background-color: var(--color-accent);
192
+ }
193
+
194
+ .btn-outline.btn-neutral,
195
+ .btn-outlined.btn-neutral {
196
+ --btn-text-color: var(--color-neutral);
197
+ border-color: currentColor;
198
+ }
199
+
200
+ .btn-outline.btn-neutral:hover,
201
+ .btn-outlined.btn-neutral:hover {
202
+ --btn-text-color: var(--color-neutral-content);
203
+ background-color: var(--color-neutral);
204
+ }
205
+
206
+ .btn-outline.btn-base,
207
+ .btn-outlined.btn-base {
208
+ --btn-text-color: var(--color-base-content);
209
+ border-color: currentColor;
210
+ }
211
+
212
+ .btn-outline.btn-base:hover,
213
+ .btn-outlined.btn-base:hover {
214
+ --btn-text-color: var(--color-base-content);
215
+ background-color: var(--color-base-100);
216
+ }
217
+
146
218
  .btn-outline.btn-info,
147
219
  .btn-outlined.btn-info {
148
220
  --btn-text-color: var(--color-info);
@@ -234,6 +306,24 @@
234
306
  .btn-ghost.btn-success { --btn-text-color: var(--color-success); }
235
307
  .btn-ghost.btn-warning { --btn-text-color: var(--color-warning); }
236
308
  .btn-ghost.btn-error { --btn-text-color: var(--color-error); }
309
+ .btn-ghost.btn-accent { --btn-text-color: var(--color-accent); }
310
+ .btn-ghost.btn-neutral { --btn-text-color: var(--color-neutral); }
311
+ .btn-ghost.btn-base { --btn-text-color: var(--color-base-content); }
312
+
313
+ .btn-ghost.btn-accent:hover {
314
+ --btn-text-color: var(--color-accent);
315
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
316
+ }
317
+
318
+ .btn-ghost.btn-neutral:hover {
319
+ --btn-text-color: var(--color-neutral);
320
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
321
+ }
322
+
323
+ .btn-ghost.btn-base:hover {
324
+ --btn-text-color: var(--color-base-content);
325
+ background-color: var(--color-base-200);
326
+ }
237
327
 
238
328
  .btn-ghost.btn-info:hover {
239
329
  --btn-text-color: var(--color-on-info-container);
@@ -298,6 +388,24 @@
298
388
  .btn-text.btn-success { --btn-text-color: var(--color-success); }
299
389
  .btn-text.btn-warning { --btn-text-color: var(--color-warning); }
300
390
  .btn-text.btn-error { --btn-text-color: var(--color-error); }
391
+ .btn-text.btn-accent { --btn-text-color: var(--color-accent); }
392
+ .btn-text.btn-neutral { --btn-text-color: var(--color-neutral); }
393
+ .btn-text.btn-base { --btn-text-color: var(--color-base-content); }
394
+
395
+ .btn-text.btn-accent:hover {
396
+ --btn-text-color: var(--color-accent);
397
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
398
+ }
399
+
400
+ .btn-text.btn-neutral:hover {
401
+ --btn-text-color: var(--color-neutral);
402
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
403
+ }
404
+
405
+ .btn-text.btn-base:hover {
406
+ --btn-text-color: var(--color-base-content);
407
+ background-color: var(--color-base-200);
408
+ }
301
409
 
302
410
  .btn-text.btn-info:hover {
303
411
  --btn-text-color: var(--color-on-info-container);
@@ -345,6 +453,21 @@
345
453
  background-color: var(--color-tertiary-container);
346
454
  }
347
455
 
456
+ .btn-tonal.btn-accent {
457
+ --btn-text-color: var(--color-on-surface);
458
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
459
+ }
460
+
461
+ .btn-tonal.btn-neutral {
462
+ --btn-text-color: var(--color-on-surface);
463
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
464
+ }
465
+
466
+ .btn-tonal.btn-base {
467
+ --btn-text-color: var(--color-base-content);
468
+ background-color: var(--color-base-200);
469
+ }
470
+
348
471
  .btn-tonal.btn-info {
349
472
  --btn-text-color: var(--color-on-info-container);
350
473
  background-color: var(--color-info-container);
@@ -198,6 +198,33 @@
198
198
  color: var(--color-on-error-container);
199
199
  }
200
200
 
201
+ .card-accent {
202
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
203
+ color: var(--color-on-surface);
204
+ }
205
+
206
+ .card-accent .card-title {
207
+ color: var(--color-on-surface);
208
+ }
209
+
210
+ .card-neutral {
211
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
212
+ color: var(--color-on-surface);
213
+ }
214
+
215
+ .card-neutral .card-title {
216
+ color: var(--color-on-surface);
217
+ }
218
+
219
+ .card-base {
220
+ background-color: var(--color-base-200);
221
+ color: var(--color-base-content);
222
+ }
223
+
224
+ .card-base .card-title {
225
+ color: var(--color-base-content);
226
+ }
227
+
201
228
  /* Glass Effect */
202
229
  .card-glass {
203
230
  background-color: rgb(255 255 255 / 0.1);
@@ -416,6 +416,27 @@
416
416
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
417
417
  }
418
418
 
419
+ .cascader-accent .cascader-trigger {
420
+ color: var(--color-accent);
421
+ }
422
+ .cascader-accent .cascader-trigger:focus {
423
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-accent) 10%, transparent);
424
+ }
425
+
426
+ .cascader-neutral .cascader-trigger {
427
+ color: var(--color-neutral);
428
+ }
429
+ .cascader-neutral .cascader-trigger:focus {
430
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-neutral) 10%, transparent);
431
+ }
432
+
433
+ .cascader-base .cascader-trigger {
434
+ color: var(--color-base-content);
435
+ }
436
+ .cascader-base .cascader-trigger:focus {
437
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-base-content) 10%, transparent);
438
+ }
439
+
419
440
  /* Ghost Variant */
420
441
  .cascader-ghost .cascader-trigger {
421
442
  background-color: transparent;
@@ -162,6 +162,21 @@
162
162
  --chat-bubble-fg: var(--color-on-error-container);
163
163
  }
164
164
 
165
+ .chat-bubble-accent {
166
+ --chat-bubble-bg: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
167
+ --chat-bubble-fg: var(--color-on-surface);
168
+ }
169
+
170
+ .chat-bubble-neutral {
171
+ --chat-bubble-bg: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
172
+ --chat-bubble-fg: var(--color-on-surface);
173
+ }
174
+
175
+ .chat-bubble-base {
176
+ --chat-bubble-bg: var(--color-base-200);
177
+ --chat-bubble-fg: var(--color-base-content);
178
+ }
179
+
165
180
  .chat-bubble-filled.chat-bubble-primary {
166
181
  --chat-bubble-bg: var(--color-primary);
167
182
  --chat-bubble-fg: var(--color-primary-content);
@@ -197,6 +212,21 @@
197
212
  --chat-bubble-fg: var(--color-error-content);
198
213
  }
199
214
 
215
+ .chat-bubble-filled.chat-bubble-accent {
216
+ --chat-bubble-bg: var(--color-accent);
217
+ --chat-bubble-fg: var(--color-accent-content);
218
+ }
219
+
220
+ .chat-bubble-filled.chat-bubble-neutral {
221
+ --chat-bubble-bg: var(--color-neutral);
222
+ --chat-bubble-fg: var(--color-neutral-content);
223
+ }
224
+
225
+ .chat-bubble-filled.chat-bubble-base {
226
+ --chat-bubble-bg: var(--color-base-100);
227
+ --chat-bubble-fg: var(--color-base-content);
228
+ }
229
+
200
230
  .chat-bubble-xs {
201
231
  padding: 0.375rem 0.625rem;
202
232
  font-size: 0.75rem;
@@ -178,6 +178,33 @@
178
178
  border-color: var(--color-info-content);
179
179
  }
180
180
 
181
+ .checkbox-accent {
182
+ --checkbox-color: var(--color-accent);
183
+ }
184
+
185
+ .checkbox-accent:checked::before,
186
+ .checkbox-accent:indeterminate::before {
187
+ border-color: var(--color-accent-content);
188
+ }
189
+
190
+ .checkbox-neutral {
191
+ --checkbox-color: var(--color-neutral);
192
+ }
193
+
194
+ .checkbox-neutral:checked::before,
195
+ .checkbox-neutral:indeterminate::before {
196
+ border-color: var(--color-neutral-content);
197
+ }
198
+
199
+ .checkbox-base {
200
+ --checkbox-color: var(--color-base-100);
201
+ }
202
+
203
+ .checkbox-base:checked::before,
204
+ .checkbox-base:indeterminate::before {
205
+ border-color: var(--color-base-content);
206
+ }
207
+
181
208
  /* Ghost Variant — borderless unchecked state */
182
209
  .checkbox-ghost {
183
210
  --checkbox-border-color: transparent;
@@ -70,6 +70,36 @@
70
70
  background-color: color-mix(in oklch, var(--color-tertiary), black 10%);
71
71
  }
72
72
 
73
+ .chip-accent {
74
+ background-color: var(--color-accent);
75
+ color: var(--color-accent-content);
76
+ border-color: var(--color-accent);
77
+ }
78
+
79
+ .chip-accent:hover {
80
+ background-color: color-mix(in oklch, var(--color-accent), black 10%);
81
+ }
82
+
83
+ .chip-neutral {
84
+ background-color: var(--color-neutral);
85
+ color: var(--color-neutral-content);
86
+ border-color: var(--color-neutral);
87
+ }
88
+
89
+ .chip-neutral:hover {
90
+ background-color: color-mix(in oklch, var(--color-neutral), black 10%);
91
+ }
92
+
93
+ .chip-base {
94
+ background-color: var(--color-base-100);
95
+ color: var(--color-base-content);
96
+ border-color: var(--color-base-100);
97
+ }
98
+
99
+ .chip-base:hover {
100
+ background-color: var(--color-base-200);
101
+ }
102
+
73
103
  .chip-info {
74
104
  background-color: var(--color-info);
75
105
  color: var(--color-info-content);
@@ -144,6 +174,30 @@
144
174
  background-color: var(--color-tertiary-container);
145
175
  }
146
176
 
177
+ .chip-outlined.chip-accent {
178
+ color: var(--color-accent);
179
+ }
180
+
181
+ .chip-outlined.chip-accent:hover {
182
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
183
+ }
184
+
185
+ .chip-outlined.chip-neutral {
186
+ color: var(--color-neutral);
187
+ }
188
+
189
+ .chip-outlined.chip-neutral:hover {
190
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
191
+ }
192
+
193
+ .chip-outlined.chip-base {
194
+ color: var(--color-base-content);
195
+ }
196
+
197
+ .chip-outlined.chip-base:hover {
198
+ background-color: var(--color-base-200);
199
+ }
200
+
147
201
  .chip-outlined.chip-info {
148
202
  color: var(--color-info);
149
203
  }
@@ -197,6 +251,21 @@
197
251
  color: var(--color-on-tertiary-container);
198
252
  }
199
253
 
254
+ .chip-tonal.chip-accent {
255
+ background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface));
256
+ color: var(--color-on-surface);
257
+ }
258
+
259
+ .chip-tonal.chip-neutral {
260
+ background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface));
261
+ color: var(--color-on-surface);
262
+ }
263
+
264
+ .chip-tonal.chip-base {
265
+ background-color: var(--color-base-200);
266
+ color: var(--color-base-content);
267
+ }
268
+
200
269
  .chip-tonal.chip-info {
201
270
  background-color: var(--color-info-container);
202
271
  color: var(--color-on-info-container);
@@ -236,6 +305,9 @@
236
305
  .chip-ghost.chip-success { background-color: transparent; color: var(--color-success); }
237
306
  .chip-ghost.chip-warning { background-color: transparent; color: var(--color-warning); }
238
307
  .chip-ghost.chip-error { background-color: transparent; color: var(--color-error); }
308
+ .chip-ghost.chip-accent { background-color: transparent; color: var(--color-accent); }
309
+ .chip-ghost.chip-neutral { background-color: transparent; color: var(--color-neutral); }
310
+ .chip-ghost.chip-base { background-color: transparent; color: var(--color-base-content); }
239
311
 
240
312
  .chip-ghost.chip-primary:hover { background-color: var(--color-primary-container); }
241
313
  .chip-ghost.chip-secondary:hover { background-color: var(--color-secondary-container); }
@@ -244,6 +316,9 @@
244
316
  .chip-ghost.chip-success:hover { background-color: var(--color-success-container); }
245
317
  .chip-ghost.chip-warning:hover { background-color: var(--color-warning-container); }
246
318
  .chip-ghost.chip-error:hover { background-color: var(--color-error-container); }
319
+ .chip-ghost.chip-accent:hover { background-color: color-mix(in oklch, var(--color-accent) 15%, var(--color-surface)); }
320
+ .chip-ghost.chip-neutral:hover { background-color: color-mix(in oklch, var(--color-neutral) 15%, var(--color-surface)); }
321
+ .chip-ghost.chip-base:hover { background-color: var(--color-base-200); }
247
322
 
248
323
  /* Size Variants */
249
324
  .chip-sm {
@@ -301,6 +301,30 @@
301
301
  --circle-menu-item-ring: color-mix(in oklch, var(--color-error) 40%, transparent);
302
302
  }
303
303
 
304
+ .circle-menu-accent {
305
+ --circle-menu-btn-bg: var(--color-accent);
306
+ --circle-menu-bar-color: var(--color-accent-content);
307
+ --circle-menu-item-bg: var(--color-accent);
308
+ --circle-menu-item-color: var(--color-accent-content);
309
+ --circle-menu-item-ring: color-mix(in oklch, var(--color-accent) 40%, transparent);
310
+ }
311
+
312
+ .circle-menu-neutral {
313
+ --circle-menu-btn-bg: var(--color-neutral);
314
+ --circle-menu-bar-color: var(--color-neutral-content);
315
+ --circle-menu-item-bg: var(--color-neutral);
316
+ --circle-menu-item-color: var(--color-neutral-content);
317
+ --circle-menu-item-ring: color-mix(in oklch, var(--color-neutral) 40%, transparent);
318
+ }
319
+
320
+ .circle-menu-base {
321
+ --circle-menu-btn-bg: var(--color-base-100);
322
+ --circle-menu-bar-color: var(--color-base-content);
323
+ --circle-menu-item-bg: var(--color-base-100);
324
+ --circle-menu-item-color: var(--color-base-content);
325
+ --circle-menu-item-ring: color-mix(in oklch, var(--color-base-content) 40%, transparent);
326
+ }
327
+
304
328
  /* === Reduced motion === */
305
329
  @media (prefers-reduced-motion: reduce) {
306
330
  .circle-menu-label {