@duskmoon-dev/core 1.15.0 → 1.16.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 (126) hide show
  1. package/dist/cjs/tailwind-plugin.cjs +38 -79
  2. package/dist/components/accordion.css +7 -7
  3. package/dist/components/alert.css +2 -2
  4. package/dist/components/appbar.css +5 -5
  5. package/dist/components/autocomplete.css +7 -7
  6. package/dist/components/avatar.css +5 -5
  7. package/dist/components/badge.css +3 -3
  8. package/dist/components/bottom-navigation.css +7 -7
  9. package/dist/components/bottomsheet.css +12 -12
  10. package/dist/components/button.css +19 -19
  11. package/dist/components/card.css +9 -2
  12. package/dist/components/cascader.css +9 -9
  13. package/dist/components/checkbox.css +1 -1
  14. package/dist/components/chip.css +12 -10
  15. package/dist/components/circle-menu.css +324 -0
  16. package/dist/components/code-block.css +133 -0
  17. package/dist/components/collapse.css +9 -9
  18. package/dist/components/datepicker.css +22 -22
  19. package/dist/components/dialog.css +5 -5
  20. package/dist/components/drawer.css +13 -13
  21. package/dist/components/file-upload.css +12 -12
  22. package/dist/components/form-group.css +162 -1
  23. package/dist/components/form.css +159 -22
  24. package/dist/components/index.css +1026 -385
  25. package/dist/components/input.css +23 -14
  26. package/dist/components/list.css +3 -3
  27. package/dist/components/markdown-body.css +6 -6
  28. package/dist/components/modal.css +7 -7
  29. package/dist/components/multi-select.css +16 -16
  30. package/dist/components/navigation.css +20 -20
  31. package/dist/components/nested-menu.css +5 -5
  32. package/dist/components/otp-input.css +5 -5
  33. package/dist/components/pin-input.css +5 -5
  34. package/dist/components/popover.css +15 -15
  35. package/dist/components/progress.css +2 -2
  36. package/dist/components/radio.css +2 -2
  37. package/dist/components/rating.css +1 -1
  38. package/dist/components/segment-control.css +6 -6
  39. package/dist/components/select.css +7 -7
  40. package/dist/components/skeleton.css +11 -11
  41. package/dist/components/slider.css +16 -16
  42. package/dist/components/snackbar.css +5 -5
  43. package/dist/components/stepper.css +9 -9
  44. package/dist/components/switch.css +1 -1
  45. package/dist/components/table.css +3 -3
  46. package/dist/components/textarea.css +5 -5
  47. package/dist/components/theme-controller.css +4 -4
  48. package/dist/components/time-input.css +10 -10
  49. package/dist/components/timeline.css +6 -6
  50. package/dist/components/toast.css +3 -3
  51. package/dist/components/toggle.css +8 -8
  52. package/dist/components/tooltip.css +1 -1
  53. package/dist/components/tree-select.css +14 -14
  54. package/dist/esm/components/accordion.js +7 -7
  55. package/dist/esm/components/alert.js +2 -2
  56. package/dist/esm/components/appbar.js +5 -5
  57. package/dist/esm/components/autocomplete.js +7 -7
  58. package/dist/esm/components/avatar.js +5 -5
  59. package/dist/esm/components/badge.js +3 -3
  60. package/dist/esm/components/bottom-navigation.js +7 -7
  61. package/dist/esm/components/bottomsheet.js +12 -12
  62. package/dist/esm/components/button.js +19 -19
  63. package/dist/esm/components/card.js +9 -2
  64. package/dist/esm/components/cascader.js +9 -9
  65. package/dist/esm/components/checkbox.js +1 -1
  66. package/dist/esm/components/chip.js +12 -10
  67. package/dist/esm/components/circle-menu.js +331 -0
  68. package/dist/esm/components/code-block.js +140 -0
  69. package/dist/esm/components/collapse.js +9 -9
  70. package/dist/esm/components/datepicker.js +22 -22
  71. package/dist/esm/components/dialog.js +5 -5
  72. package/dist/esm/components/drawer.js +13 -13
  73. package/dist/esm/components/file-upload.js +12 -12
  74. package/dist/esm/components/form-group.js +162 -1
  75. package/dist/esm/components/form.js +159 -22
  76. package/dist/esm/components/input.js +23 -14
  77. package/dist/esm/components/list.js +3 -3
  78. package/dist/esm/components/markdown-body.js +6 -6
  79. package/dist/esm/components/modal.js +7 -7
  80. package/dist/esm/components/multi-select.js +16 -16
  81. package/dist/esm/components/navigation.js +20 -20
  82. package/dist/esm/components/nested-menu.js +5 -5
  83. package/dist/esm/components/otp-input.js +5 -5
  84. package/dist/esm/components/pin-input.js +5 -5
  85. package/dist/esm/components/popover.js +15 -15
  86. package/dist/esm/components/progress.js +2 -2
  87. package/dist/esm/components/radio.js +2 -2
  88. package/dist/esm/components/rating.js +1 -1
  89. package/dist/esm/components/segment-control.js +6 -6
  90. package/dist/esm/components/select.js +7 -7
  91. package/dist/esm/components/skeleton.js +11 -11
  92. package/dist/esm/components/slider.js +16 -16
  93. package/dist/esm/components/snackbar.js +5 -5
  94. package/dist/esm/components/stepper.js +9 -9
  95. package/dist/esm/components/switch.js +1 -1
  96. package/dist/esm/components/table.js +3 -3
  97. package/dist/esm/components/textarea.js +5 -5
  98. package/dist/esm/components/theme-controller.js +4 -4
  99. package/dist/esm/components/time-input.js +10 -10
  100. package/dist/esm/components/timeline.js +6 -6
  101. package/dist/esm/components/toast.js +3 -3
  102. package/dist/esm/components/toggle.js +8 -8
  103. package/dist/esm/components/tooltip.js +1 -1
  104. package/dist/esm/components/tree-select.js +14 -14
  105. package/dist/esm/tailwind-plugin.js +38 -79
  106. package/dist/index.css +1435 -1137
  107. package/dist/index.min.css +1 -1
  108. package/dist/themes/{forest.css → generated/forest.css} +26 -94
  109. package/dist/themes/generated/moonlight.css +77 -0
  110. package/dist/themes/{ocean.css → generated/ocean.css} +26 -103
  111. package/dist/themes/generated/spacing.css +36 -0
  112. package/dist/themes/{sunset.css → generated/sunset.css} +26 -95
  113. package/dist/themes/generated/sunshine.css +77 -0
  114. package/dist/types/tailwind-plugin.d.ts +1 -0
  115. package/dist/types/tailwind-plugin.d.ts.map +1 -1
  116. package/dist/types/themes/generated/ts/types.d.ts +76 -0
  117. package/dist/types/themes/generated/ts/types.d.ts.map +1 -0
  118. package/dist/types/types/index.d.ts +1 -1
  119. package/dist/types/types/index.d.ts.map +1 -1
  120. package/dist/types/types/plugin.d.ts +1 -1
  121. package/dist/types/types/plugin.d.ts.map +1 -1
  122. package/dist/types/types/theme.d.ts +5 -152
  123. package/dist/types/types/theme.d.ts.map +1 -1
  124. package/package.json +11 -6
  125. package/dist/themes/moonlight.css +0 -271
  126. package/dist/themes/sunshine.css +0 -252
@@ -19,7 +19,7 @@
19
19
  padding: 1rem;
20
20
  background-color: var(--color-surface);
21
21
  border: 1px solid var(--color-outline-variant);
22
- border-radius: 0.75rem;
22
+ border-radius: var(--radius-md);
23
23
  box-shadow: var(--shadow-lg);
24
24
  opacity: 0;
25
25
  visibility: hidden;
@@ -54,7 +54,7 @@
54
54
  padding: 1rem;
55
55
  background-color: var(--color-surface);
56
56
  border: 1px solid var(--color-outline-variant);
57
- border-radius: 0.75rem;
57
+ border-radius: var(--radius-md);
58
58
  box-shadow: var(--shadow-lg);
59
59
  opacity: 0;
60
60
  visibility: hidden;
@@ -220,7 +220,7 @@
220
220
  color: var(--color-on-surface-variant);
221
221
  background-color: transparent;
222
222
  border: none;
223
- border-radius: 0.25rem;
223
+ border-radius: var(--radius-xs);
224
224
  cursor: pointer;
225
225
  transition: background-color 150ms ease-in-out;
226
226
  }
@@ -230,8 +230,8 @@
230
230
  }
231
231
 
232
232
  .popover-close:focus-visible {
233
- outline: 2px solid var(--color-primary);
234
- outline-offset: 2px;
233
+ outline: none;
234
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
235
235
  }
236
236
 
237
237
  /* Popover Body */
@@ -453,7 +453,7 @@
453
453
  color: var(--color-on-surface);
454
454
  background-color: transparent;
455
455
  border: none;
456
- border-radius: 0.5rem;
456
+ border-radius: var(--radius-sm);
457
457
  cursor: pointer;
458
458
  text-align: left;
459
459
  transition: background-color 150ms ease-in-out;
@@ -464,8 +464,8 @@
464
464
  }
465
465
 
466
466
  .popover-menu-item:focus-visible {
467
- outline: 2px solid var(--color-primary);
468
- outline-offset: -2px;
467
+ outline: none;
468
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
469
469
  }
470
470
 
471
471
  .popover-menu-item-icon {
@@ -508,7 +508,7 @@
508
508
  margin: 0;
509
509
  background-color: var(--color-surface);
510
510
  border: 1px solid var(--color-outline-variant);
511
- border-radius: 0.75rem;
511
+ border-radius: var(--radius-md);
512
512
  box-shadow: var(--shadow-lg);
513
513
  opacity: 0;
514
514
  transform: scale(0.95);
@@ -532,33 +532,33 @@
532
532
 
533
533
  /* Native popover backdrop */
534
534
  .popover[popover]::backdrop {
535
- background-color: rgb(0 0 0 / 0);
535
+ background-color: transparent;
536
536
  transition: background-color 150ms ease-out, overlay 150ms ease-out allow-discrete, display 150ms ease-out allow-discrete;
537
537
  }
538
538
 
539
539
  .popover[popover]:popover-open::backdrop {
540
- background-color: rgb(0 0 0 / 0.1);
540
+ background-color: color-mix(in srgb, var(--color-scrim) 10%, transparent);
541
541
  }
542
542
 
543
543
  @starting-style {
544
544
  .popover[popover]:popover-open::backdrop {
545
- background-color: rgb(0 0 0 / 0);
545
+ background-color: transparent;
546
546
  }
547
547
  }
548
548
 
549
549
  /* Native popover with modal backdrop */
550
550
  .popover-modal[popover]::backdrop {
551
- background-color: rgb(0 0 0 / 0);
551
+ background-color: transparent;
552
552
  transition: background-color 150ms ease-out, overlay 150ms ease-out allow-discrete, display 150ms ease-out allow-discrete;
553
553
  }
554
554
 
555
555
  .popover-modal[popover]:popover-open::backdrop {
556
- background-color: rgb(0 0 0 / 0.3);
556
+ background-color: color-mix(in srgb, var(--color-scrim) 30%, transparent);
557
557
  }
558
558
 
559
559
  @starting-style {
560
560
  .popover-modal[popover]:popover-open::backdrop {
561
- background-color: rgb(0 0 0 / 0);
561
+ background-color: transparent;
562
562
  }
563
563
  }
564
564
 
@@ -10,7 +10,7 @@
10
10
  width: 100%;
11
11
  height: 0.5rem;
12
12
  background-color: var(--color-surface-container-highest);
13
- border-radius: 9999px;
13
+ border-radius: var(--radius-full);
14
14
  overflow: hidden;
15
15
  }
16
16
 
@@ -21,7 +21,7 @@
21
21
  left: 0;
22
22
  height: 100%;
23
23
  background-color: var(--color-primary);
24
- border-radius: 9999px;
24
+ border-radius: var(--radius-full);
25
25
  transition: width 300ms ease-in-out;
26
26
  }
27
27
 
@@ -24,7 +24,7 @@
24
24
  appearance: none;
25
25
  background-color: transparent;
26
26
  border: 2px solid var(--radio-border-color);
27
- border-radius: 50%;
27
+ border-radius: var(--radius-full);
28
28
  transition: border-color 150ms ease-in-out;
29
29
  }
30
30
 
@@ -33,7 +33,7 @@
33
33
  content: "";
34
34
  width: 0.5em;
35
35
  height: 0.5em;
36
- border-radius: 50%;
36
+ border-radius: var(--radius-full);
37
37
  background-color: var(--radio-color);
38
38
  transform: scale(0);
39
39
  transition: transform 150ms ease-in-out;
@@ -183,7 +183,7 @@
183
183
  .rating-item:focus-visible {
184
184
  outline: none;
185
185
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-warning) 20%, transparent);
186
- border-radius: 0.25rem;
186
+ border-radius: var(--radius-xs);
187
187
  }
188
188
 
189
189
  .rating-primary .rating-item:focus-visible { box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 20%, transparent); }
@@ -11,7 +11,7 @@
11
11
  color: var(--color-on-surface);
12
12
  background-color: var(--color-surface-container);
13
13
  border: 1px solid var(--color-outline);
14
- border-radius: 1.25rem;
14
+ border-radius: var(--radius-xl);
15
15
  padding: 0.25rem;
16
16
  gap: 0.25rem;
17
17
  }
@@ -30,7 +30,7 @@
30
30
  color: var(--color-on-surface);
31
31
  background-color: transparent;
32
32
  border: none;
33
- border-radius: 1rem;
33
+ border-radius: var(--radius-lg);
34
34
  cursor: pointer;
35
35
  transition: background-color 150ms ease-in-out, color 150ms ease-in-out;
36
36
  user-select: none;
@@ -74,27 +74,27 @@
74
74
  .segment-control-sm {
75
75
  padding: 0.125rem;
76
76
  gap: 0.125rem;
77
- border-radius: 1rem;
77
+ border-radius: var(--radius-lg);
78
78
  }
79
79
 
80
80
  .segment-control-sm .segment-item {
81
81
  padding: 0.375rem 0.75rem;
82
82
  font-size: 0.75rem;
83
83
  line-height: 1rem;
84
- border-radius: 0.75rem;
84
+ border-radius: var(--radius-md);
85
85
  }
86
86
 
87
87
  .segment-control-lg {
88
88
  padding: 0.375rem;
89
89
  gap: 0.375rem;
90
- border-radius: 1.5rem;
90
+ border-radius: var(--radius-2xl);
91
91
  }
92
92
 
93
93
  .segment-control-lg .segment-item {
94
94
  padding: 0.75rem 1.5rem;
95
95
  font-size: 1rem;
96
96
  line-height: 1.5rem;
97
- border-radius: 1.25rem;
97
+ border-radius: var(--radius-xl);
98
98
  }
99
99
 
100
100
  /* Color Variants */
@@ -14,7 +14,7 @@
14
14
  color: var(--color-on-surface);
15
15
  background-color: var(--color-surface);
16
16
  border: 1px solid currentColor;
17
- border-radius: 0.5rem;
17
+ border-radius: var(--radius-sm);
18
18
  outline: none;
19
19
  cursor: pointer;
20
20
  appearance: none;
@@ -48,7 +48,7 @@
48
48
  background-color: var(--color-surface-container);
49
49
  border: none;
50
50
  border-bottom: 2px solid var(--color-outline);
51
- border-radius: 0.5rem 0.5rem 0 0;
51
+ border-radius: var(--radius-sm) var(--radius-sm) 0 0;
52
52
  }
53
53
 
54
54
  .select-filled:hover:not(:disabled) {
@@ -73,7 +73,7 @@
73
73
  .select-outlined {
74
74
  background-color: transparent;
75
75
  border: 1px solid var(--color-outline);
76
- border-radius: 0.5rem;
76
+ border-radius: var(--radius-sm);
77
77
  }
78
78
 
79
79
  /* Color Variants — base .select:focus-visible uses currentColor 20%, so no per-variant
@@ -93,7 +93,7 @@
93
93
  padding: 0.375rem 2rem 0.375rem 0.625rem;
94
94
  font-size: 0.75rem;
95
95
  line-height: 1rem;
96
- border-radius: 0.25rem;
96
+ border-radius: var(--radius-xs);
97
97
  background-size: 1rem 1rem;
98
98
  }
99
99
 
@@ -101,7 +101,7 @@
101
101
  padding: 0.5rem 2.25rem 0.5rem 0.75rem;
102
102
  font-size: 0.875rem;
103
103
  line-height: 1.25rem;
104
- border-radius: 0.375rem;
104
+ border-radius: var(--radius-xs);
105
105
  background-size: 1.125rem 1.125rem;
106
106
  }
107
107
 
@@ -109,7 +109,7 @@
109
109
  padding: 1rem 3rem 1rem 1.25rem;
110
110
  font-size: 1.125rem;
111
111
  line-height: 1.75rem;
112
- border-radius: 0.625rem;
112
+ border-radius: var(--radius-sm);
113
113
  background-size: 1.5rem 1.5rem;
114
114
  background-position: right 1rem center;
115
115
  }
@@ -155,7 +155,7 @@
155
155
 
156
156
  .select-multiple option {
157
157
  padding: 0.5rem 0.75rem;
158
- border-radius: 0.25rem;
158
+ border-radius: var(--radius-xs);
159
159
  }
160
160
 
161
161
  .select-multiple option:checked {
@@ -7,7 +7,7 @@
7
7
  /* Base Skeleton */
8
8
  .skeleton {
9
9
  background-color: var(--color-surface-container-high);
10
- border-radius: 0.25rem;
10
+ border-radius: var(--radius-xs);
11
11
  animation: skeleton-pulse 2s ease-in-out infinite;
12
12
  }
13
13
 
@@ -15,20 +15,20 @@
15
15
  .skeleton-text {
16
16
  height: 1rem;
17
17
  width: 100%;
18
- border-radius: 0.25rem;
18
+ border-radius: var(--radius-xs);
19
19
  }
20
20
 
21
21
  .skeleton-circle {
22
- border-radius: 50%;
22
+ border-radius: var(--radius-full);
23
23
  aspect-ratio: 1;
24
24
  }
25
25
 
26
26
  .skeleton-rect {
27
- border-radius: 0.5rem;
27
+ border-radius: var(--radius-sm);
28
28
  }
29
29
 
30
30
  .skeleton-rounded {
31
- border-radius: 0.5rem;
31
+ border-radius: var(--radius-sm);
32
32
  }
33
33
 
34
34
  /* Size Variants */
@@ -56,7 +56,7 @@
56
56
  .skeleton-avatar {
57
57
  width: 3rem;
58
58
  height: 3rem;
59
- border-radius: 50%;
59
+ border-radius: var(--radius-full);
60
60
  }
61
61
 
62
62
  .skeleton-avatar-sm {
@@ -72,18 +72,18 @@
72
72
  .skeleton-button {
73
73
  height: 2.5rem;
74
74
  width: 6rem;
75
- border-radius: 0.5rem;
75
+ border-radius: var(--radius-sm);
76
76
  }
77
77
 
78
78
  .skeleton-image {
79
79
  aspect-ratio: 16 / 9;
80
80
  width: 100%;
81
- border-radius: 0.5rem;
81
+ border-radius: var(--radius-sm);
82
82
  }
83
83
 
84
84
  .skeleton-card {
85
85
  width: 100%;
86
- border-radius: 1rem;
86
+ border-radius: var(--radius-lg);
87
87
  padding: 1rem;
88
88
  }
89
89
 
@@ -92,7 +92,7 @@
92
92
  height: 0.875rem;
93
93
  width: 100%;
94
94
  margin-bottom: 0.5rem;
95
- border-radius: 0.25rem;
95
+ border-radius: var(--radius-xs);
96
96
  }
97
97
 
98
98
  .skeleton-line:last-child {
@@ -186,7 +186,7 @@
186
186
  .skeleton-table-cell {
187
187
  flex: 1;
188
188
  height: 1rem;
189
- border-radius: 0.25rem;
189
+ border-radius: var(--radius-xs);
190
190
  }
191
191
 
192
192
  /* List Skeleton */
@@ -22,7 +22,7 @@
22
22
  width: 100%;
23
23
  height: 0.25rem;
24
24
  background-color: var(--color-surface-container-highest);
25
- border-radius: 9999px;
25
+ border-radius: var(--radius-full);
26
26
  }
27
27
 
28
28
  /* Slider Track Filled (Progress) */
@@ -32,7 +32,7 @@
32
32
  left: 0;
33
33
  height: 100%;
34
34
  background-color: var(--color-primary);
35
- border-radius: 9999px;
35
+ border-radius: var(--radius-full);
36
36
  }
37
37
 
38
38
  /* Slider Thumb */
@@ -43,20 +43,20 @@
43
43
  height: 1.25rem;
44
44
  background-color: var(--color-primary);
45
45
  border: none;
46
- border-radius: 50%;
47
- box-shadow: 0 2px 4px rgb(0 0 0 / 0.2);
46
+ border-radius: var(--radius-full);
47
+ box-shadow: 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
48
48
  transform: translate(-50%, -50%);
49
49
  cursor: grab;
50
50
  transition: box-shadow 150ms ease-in-out, transform 150ms ease-in-out;
51
51
  }
52
52
 
53
53
  .slider-thumb:hover {
54
- box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px rgb(0 0 0 / 0.2);
54
+ box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
55
55
  }
56
56
 
57
57
  .slider-thumb:focus-visible {
58
58
  outline: none;
59
- box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px rgb(0 0 0 / 0.2);
59
+ box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
60
60
  }
61
61
 
62
62
  .slider-thumb:active {
@@ -76,7 +76,7 @@
76
76
  font-weight: 500;
77
77
  color: var(--color-primary-content);
78
78
  background-color: var(--color-primary);
79
- border-radius: 0.25rem;
79
+ border-radius: var(--radius-xs);
80
80
  white-space: nowrap;
81
81
  opacity: 0;
82
82
  visibility: hidden;
@@ -124,7 +124,7 @@
124
124
  width: 0.125rem;
125
125
  height: 0.5rem;
126
126
  background-color: var(--color-outline);
127
- border-radius: 9999px;
127
+ border-radius: var(--radius-full);
128
128
  }
129
129
 
130
130
  .slider-mark-active {
@@ -188,7 +188,7 @@
188
188
 
189
189
  .slider-primary .slider-thumb:hover,
190
190
  .slider-primary .slider-thumb:focus-visible {
191
- box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px rgb(0 0 0 / 0.2);
191
+ box-shadow: 0 0 0 8px var(--color-primary-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
192
192
  }
193
193
 
194
194
  .slider-primary .slider-thumb-label {
@@ -207,7 +207,7 @@
207
207
 
208
208
  .slider-secondary .slider-thumb:hover,
209
209
  .slider-secondary .slider-thumb:focus-visible {
210
- box-shadow: 0 0 0 8px var(--color-secondary-container), 0 2px 4px rgb(0 0 0 / 0.2);
210
+ box-shadow: 0 0 0 8px var(--color-secondary-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
211
211
  }
212
212
 
213
213
  .slider-secondary .slider-mark-active { background-color: var(--color-secondary-content); }
@@ -228,7 +228,7 @@
228
228
 
229
229
  .slider-tertiary .slider-thumb:hover,
230
230
  .slider-tertiary .slider-thumb:focus-visible {
231
- box-shadow: 0 0 0 8px var(--color-tertiary-container), 0 2px 4px rgb(0 0 0 / 0.2);
231
+ box-shadow: 0 0 0 8px var(--color-tertiary-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
232
232
  }
233
233
 
234
234
  .slider-tertiary .slider-mark-active { background-color: var(--color-tertiary-content); }
@@ -250,7 +250,7 @@
250
250
 
251
251
  .slider-info .slider-thumb:hover,
252
252
  .slider-info .slider-thumb:focus-visible {
253
- box-shadow: 0 0 0 8px var(--color-info-container), 0 2px 4px rgb(0 0 0 / 0.2);
253
+ box-shadow: 0 0 0 8px var(--color-info-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
254
254
  }
255
255
 
256
256
  .slider-info .slider-mark-active { background-color: var(--color-info-content); }
@@ -272,7 +272,7 @@
272
272
 
273
273
  .slider-success .slider-thumb:hover,
274
274
  .slider-success .slider-thumb:focus-visible {
275
- box-shadow: 0 0 0 8px var(--color-success-container), 0 2px 4px rgb(0 0 0 / 0.2);
275
+ box-shadow: 0 0 0 8px var(--color-success-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
276
276
  }
277
277
 
278
278
  .slider-success .slider-mark-active { background-color: var(--color-success-content); }
@@ -294,7 +294,7 @@
294
294
 
295
295
  .slider-warning .slider-thumb:hover,
296
296
  .slider-warning .slider-thumb:focus-visible {
297
- box-shadow: 0 0 0 8px var(--color-warning-container), 0 2px 4px rgb(0 0 0 / 0.2);
297
+ box-shadow: 0 0 0 8px var(--color-warning-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
298
298
  }
299
299
 
300
300
  .slider-warning .slider-mark-active { background-color: var(--color-warning-content); }
@@ -316,7 +316,7 @@
316
316
 
317
317
  .slider-error .slider-thumb:hover,
318
318
  .slider-error .slider-thumb:focus-visible {
319
- box-shadow: 0 0 0 8px var(--color-error-container), 0 2px 4px rgb(0 0 0 / 0.2);
319
+ box-shadow: 0 0 0 8px var(--color-error-container), 0 2px 4px color-mix(in srgb, var(--color-shadow) 20%, transparent);
320
320
  }
321
321
 
322
322
  .slider-error .slider-mark-active { background-color: var(--color-error-content); }
@@ -432,7 +432,7 @@
432
432
  color: var(--color-on-surface);
433
433
  background-color: var(--color-surface);
434
434
  border: 1px solid var(--color-outline);
435
- border-radius: 0.375rem;
435
+ border-radius: var(--radius-xs);
436
436
  }
437
437
 
438
438
  .slider-input:focus {
@@ -64,7 +64,7 @@
64
64
  padding: 0.875rem 1rem;
65
65
  background-color: var(--color-surface-container-highest);
66
66
  color: var(--color-on-surface);
67
- border-radius: 0.5rem;
67
+ border-radius: var(--radius-sm);
68
68
  box-shadow: var(--shadow-md);
69
69
  pointer-events: auto;
70
70
  opacity: 0;
@@ -171,7 +171,7 @@
171
171
  color: var(--color-primary);
172
172
  background-color: transparent;
173
173
  border: none;
174
- border-radius: 0.25rem;
174
+ border-radius: var(--radius-xs);
175
175
  cursor: pointer;
176
176
  transition: background-color 150ms ease-in-out;
177
177
  white-space: nowrap;
@@ -183,8 +183,8 @@
183
183
  }
184
184
 
185
185
  .snackbar-action:focus-visible {
186
- outline: 2px solid var(--color-primary);
187
- outline-offset: 2px;
186
+ outline: none;
187
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
188
188
  }
189
189
 
190
190
  /* Snackbar Close */
@@ -198,7 +198,7 @@
198
198
  color: var(--color-on-surface-variant);
199
199
  background-color: transparent;
200
200
  border: none;
201
- border-radius: 50%;
201
+ border-radius: var(--radius-full);
202
202
  cursor: pointer;
203
203
  transition: background-color 150ms ease-in-out;
204
204
  flex-shrink: 0;
@@ -56,8 +56,8 @@
56
56
  }
57
57
 
58
58
  .stepper-step-button:focus-visible .stepper-step-icon {
59
- outline: 2px solid var(--color-primary);
60
- outline-offset: 2px;
59
+ outline: none;
60
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
61
61
  }
62
62
 
63
63
  /* Step Icon (Number/Icon Circle) */
@@ -72,26 +72,26 @@
72
72
  color: var(--color-on-surface-variant);
73
73
  background-color: var(--color-surface);
74
74
  border: 2px solid var(--color-outline-variant);
75
- border-radius: 50%;
75
+ border-radius: var(--radius-full);
76
76
  transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out, color 150ms ease-in-out;
77
77
  }
78
78
 
79
79
  .stepper-step-active .stepper-step-icon {
80
80
  background-color: var(--color-primary);
81
81
  border-color: var(--color-primary);
82
- color: var(--color-on-primary);
82
+ color: var(--color-primary-content);
83
83
  }
84
84
 
85
85
  .stepper-step-completed .stepper-step-icon {
86
86
  background-color: var(--color-primary);
87
87
  border-color: var(--color-primary);
88
- color: var(--color-on-primary);
88
+ color: var(--color-primary-content);
89
89
  }
90
90
 
91
91
  .stepper-step-error .stepper-step-icon {
92
92
  background-color: var(--color-error);
93
93
  border-color: var(--color-error);
94
- color: var(--color-on-error);
94
+ color: var(--color-error-content);
95
95
  }
96
96
 
97
97
  .stepper-step-disabled .stepper-step-icon {
@@ -180,7 +180,7 @@
180
180
  .stepper-secondary .stepper-step-completed .stepper-step-icon {
181
181
  background-color: var(--color-secondary);
182
182
  border-color: var(--color-secondary);
183
- color: var(--color-on-secondary);
183
+ color: var(--color-secondary-content);
184
184
  }
185
185
 
186
186
  .stepper-secondary .stepper-step-completed .stepper-step-connector {
@@ -195,7 +195,7 @@
195
195
  .stepper-tertiary .stepper-step-completed .stepper-step-icon {
196
196
  background-color: var(--color-tertiary);
197
197
  border-color: var(--color-tertiary);
198
- color: var(--color-on-tertiary);
198
+ color: var(--color-tertiary-content);
199
199
  }
200
200
 
201
201
  .stepper-tertiary .stepper-step-completed .stepper-step-connector {
@@ -262,7 +262,7 @@
262
262
 
263
263
  .stepper-dots .stepper-step-active .stepper-step-icon {
264
264
  width: 1.5rem;
265
- border-radius: 9999px;
265
+ border-radius: var(--radius-full);
266
266
  background-color: var(--color-primary);
267
267
  }
268
268
 
@@ -46,7 +46,7 @@
46
46
  width: var(--switch-thumb-size);
47
47
  height: var(--switch-thumb-size);
48
48
  background-color: var(--switch-thumb-color);
49
- border-radius: 50%;
49
+ border-radius: var(--radius-full);
50
50
  /* Use !important to override global * { transition } rules */
51
51
  transition: background-color 200ms ease-in-out !important,
52
52
  width 200ms ease-in-out !important,
@@ -73,7 +73,7 @@
73
73
  /* Bordered Table */
74
74
  .table-bordered {
75
75
  border: 1px solid var(--color-outline);
76
- border-radius: 0.5rem;
76
+ border-radius: var(--radius-sm);
77
77
  overflow: hidden;
78
78
  }
79
79
 
@@ -193,7 +193,7 @@
193
193
  /* Focus State for Interactive Tables */
194
194
  .table tr:focus-visible,
195
195
  .table-row:focus-visible {
196
- outline: 2px solid var(--color-primary);
197
- outline-offset: -2px;
196
+ outline: none;
197
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
198
198
  }
199
199
  }
@@ -93,7 +93,7 @@
93
93
  color: var(--color-on-surface);
94
94
  background-color: var(--color-surface);
95
95
  border: 1px solid currentColor;
96
- border-radius: 0.5rem;
96
+ border-radius: var(--radius-sm);
97
97
  outline: none;
98
98
  resize: vertical;
99
99
  transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
@@ -142,7 +142,7 @@
142
142
  background-color: var(--color-surface-container);
143
143
  border: none;
144
144
  border-bottom: 2px solid var(--color-outline);
145
- border-radius: 0.5rem 0.5rem 0 0;
145
+ border-radius: var(--radius-sm) var(--radius-sm) 0 0;
146
146
  }
147
147
 
148
148
  .textarea-filled:hover:not(:disabled) {
@@ -167,7 +167,7 @@
167
167
  .textarea-outlined {
168
168
  background-color: transparent;
169
169
  border: 1px solid var(--color-outline);
170
- border-radius: 0.5rem;
170
+ border-radius: var(--radius-sm);
171
171
  }
172
172
 
173
173
  /* Ghost Variant */
@@ -215,7 +215,7 @@
215
215
  padding: 0.5rem 0.75rem;
216
216
  font-size: 0.875rem;
217
217
  line-height: 1.25rem;
218
- border-radius: 0.375rem;
218
+ border-radius: var(--radius-xs);
219
219
  }
220
220
 
221
221
  .textarea-lg {
@@ -223,7 +223,7 @@
223
223
  padding: 1rem 1.25rem;
224
224
  font-size: 1.125rem;
225
225
  line-height: 1.75rem;
226
- border-radius: 0.625rem;
226
+ border-radius: var(--radius-sm);
227
227
  }
228
228
 
229
229
  /* ============================================
@@ -54,8 +54,8 @@
54
54
 
55
55
  /* Focus-visible ring on the label when its radio is focused */
56
56
  .theme-controller-item:focus-visible + .theme-controller-label {
57
- outline: 2px solid var(--color-primary);
58
- outline-offset: 2px;
57
+ outline: none;
58
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
59
59
  }
60
60
 
61
61
  /* Active/checked state */
@@ -161,8 +161,8 @@
161
161
  }
162
162
 
163
163
  .theme-controller-trigger:focus-visible {
164
- outline: 2px solid var(--color-primary);
165
- outline-offset: 2px;
164
+ outline: none;
165
+ box-shadow: 0 0 0 3px color-mix(in oklch, currentColor 20%, transparent);
166
166
  }
167
167
 
168
168
  /* Chevron indicator */