material-inspired-component-library 4.0.2 → 5.0.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 (99) hide show
  1. package/README.md +14 -0
  2. package/components/alert/index.scss +4 -4
  3. package/components/appbar/index.scss +3 -2
  4. package/components/badge/index.scss +2 -2
  5. package/components/bottomsheet/index.scss +6 -5
  6. package/components/button/index.scss +21 -20
  7. package/components/card/index.scss +10 -9
  8. package/components/checkbox/index.scss +11 -11
  9. package/components/datepicker/index.scss +435 -0
  10. package/components/datepicker/index.ts +600 -0
  11. package/components/dialog/README.md +14 -12
  12. package/components/dialog/index.scss +79 -62
  13. package/components/divider/index.scss +2 -0
  14. package/components/iconbutton/index.scss +18 -17
  15. package/components/list/index.scss +10 -10
  16. package/components/menu/index.scss +2 -1
  17. package/components/navigationrail/index.scss +10 -9
  18. package/components/radio/README.md +0 -1
  19. package/components/radio/index.scss +11 -11
  20. package/components/select/index.scss +2 -1
  21. package/components/sidesheet/index.scss +3 -1
  22. package/components/slider/index.scss +7 -7
  23. package/components/stepper/index.scss +5 -4
  24. package/components/switch/README.md +0 -1
  25. package/components/switch/index.scss +21 -21
  26. package/components/textfield/index.scss +6 -5
  27. package/components/textfield/index.ts +7 -6
  28. package/components/timepicker/README.md +135 -0
  29. package/components/timepicker/index.scss +245 -122
  30. package/components/timepicker/index.ts +348 -45
  31. package/dist/alert.css +1 -1
  32. package/dist/appbar.css +1 -1
  33. package/dist/badge.css +1 -1
  34. package/dist/bottomsheet.css +1 -1
  35. package/dist/button.css +1 -1
  36. package/dist/card.css +1 -1
  37. package/dist/checkbox.css +1 -1
  38. package/dist/components/datepicker/index.d.ts +6 -0
  39. package/dist/datepicker.css +1 -0
  40. package/dist/datepicker.js +1 -0
  41. package/dist/dialog.css +1 -1
  42. package/dist/divider.css +1 -1
  43. package/dist/foundations.css +1 -0
  44. package/dist/foundations.js +1 -0
  45. package/dist/iconbutton.css +1 -1
  46. package/dist/layout.css +1 -1
  47. package/dist/list.css +1 -1
  48. package/dist/menu.css +1 -1
  49. package/dist/micl.css +1 -1
  50. package/dist/micl.js +1 -1
  51. package/dist/navigationrail.css +1 -1
  52. package/dist/radio.css +1 -1
  53. package/dist/scrollbar.css +1 -0
  54. package/dist/scrollbar.js +1 -0
  55. package/dist/select.css +1 -1
  56. package/dist/sidesheet.css +1 -1
  57. package/dist/slider.css +1 -1
  58. package/dist/stepper.css +1 -1
  59. package/dist/switch.css +1 -1
  60. package/dist/textfield.css +1 -1
  61. package/dist/timepicker.css +1 -1
  62. package/docs/accordion.html +3 -1
  63. package/docs/alert.html +3 -1
  64. package/docs/bottomsheet.html +4 -2
  65. package/docs/button.html +3 -1
  66. package/docs/card.html +3 -1
  67. package/docs/checkbox.html +3 -1
  68. package/docs/datepicker.html +151 -0
  69. package/docs/dialog.html +33 -19
  70. package/docs/divider.html +3 -1
  71. package/docs/docs.js +43 -0
  72. package/docs/iconbutton.html +1 -1
  73. package/docs/index.html +34 -8
  74. package/docs/list.html +3 -1
  75. package/docs/menu.html +3 -1
  76. package/docs/micl.css +1 -1
  77. package/docs/micl.js +1 -1
  78. package/docs/navigationrail.html +3 -1
  79. package/docs/radio.html +3 -1
  80. package/docs/select.html +3 -1
  81. package/docs/sidesheet.html +3 -1
  82. package/docs/slider.html +1 -1
  83. package/docs/stepper.html +3 -1
  84. package/docs/switch.html +3 -1
  85. package/docs/textfield.html +3 -1
  86. package/docs/timepicker.html +66 -27
  87. package/foundations/index.scss +102 -0
  88. package/foundations/layout/index.scss +0 -52
  89. package/foundations/scrollbar/index.scss +46 -0
  90. package/intl.d.ts +9 -0
  91. package/micl.ts +18 -8
  92. package/package.json +17 -15
  93. package/styles/README.md +17 -8
  94. package/styles/motion.scss +3 -0
  95. package/styles/shapes.scss +23 -18
  96. package/styles/statelayer.scss +4 -0
  97. package/styles/typography.scss +2 -2
  98. package/styles.scss +3 -26
  99. package/tsconfig.json +2 -2
@@ -19,7 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
- @use '../../foundations/layout';
22
+ @use '../../foundations';
23
23
  @use '../../styles/elevation';
24
24
  @use '../../styles/motion';
25
25
  @use '../../styles/shapes';
@@ -27,7 +27,10 @@
27
27
  @use '../../styles/typography';
28
28
 
29
29
  :root {
30
+ --md-sys-dialog-min-width: 280px;
31
+ --md-sys-dialog-max-width: 560px;
30
32
  --md-sys-dialog-padding: 24px;
33
+ --md-sys-dialog-headline-space: 16px;
31
34
  --md-sys-dialog-dir-factor: 1;
32
35
  }
33
36
 
@@ -35,8 +38,7 @@
35
38
  --md-sys-dialog-dir-factor: -1;
36
39
  }
37
40
 
38
- dialog.micl-dialog,
39
- dialog.micl-dialog-fullscreen {
41
+ dialog.micl-dialog {
40
42
  --statelayer-color: var(--md-sys-color-primary);
41
43
  --md-sys-dialog-motion-spatial: #{motion.$md-sys-motion-expressive-fast-spatial};
42
44
  --md-sys-dialog-motion-duration: #{motion.$md-sys-motion-expressive-fast-spatial-duration};
@@ -45,14 +47,15 @@ dialog.micl-dialog-fullscreen {
45
47
  box-sizing: border-box;
46
48
  display: none;
47
49
  flex-direction: column;
48
- min-width: 280px;
49
- max-width: 560px;
50
- max-height: 100vh;
50
+ min-inline-size: var(--md-sys-dialog-min-width, 280px);
51
+ max-inline-size: var(--md-sys-dialog-max-width, 560px);
52
+ max-block-size: 100vh;
51
53
  inset-block-start: anchor(start);
52
54
  inset-inline-start: anchor(start);
53
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(50%);
55
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(50%);
54
56
  padding: 0;
55
57
  margin: 0;
58
+ outline: none;
56
59
  border: none;
57
60
  border-radius: var(--md-sys-shape-corner-extra-large);
58
61
  background-color: var(--md-sys-color-surface-container-high);
@@ -65,8 +68,8 @@ dialog.micl-dialog-fullscreen {
65
68
  transition:
66
69
  inset-block-start var(--md-sys-dialog-motion-duration-reverse) linear,
67
70
  inset-inline-start var(--md-sys-dialog-motion-duration-reverse) linear,
68
- width var(--md-sys-dialog-motion-duration-reverse) linear,
69
- height var(--md-sys-dialog-motion-duration-reverse) linear,
71
+ inline-size var(--md-sys-dialog-motion-duration-reverse) linear,
72
+ block-size var(--md-sys-dialog-motion-duration-reverse) linear,
70
73
  transform var(--md-sys-dialog-motion-duration-reverse) linear,
71
74
  opacity var(--md-sys-dialog-motion-duration-reverse) motion.$md-sys-motion-easing-emphasized-decelerate,
72
75
  overlay var(--md-sys-dialog-motion-duration-reverse) linear allow-discrete,
@@ -74,12 +77,12 @@ dialog.micl-dialog-fullscreen {
74
77
  --statelayer-opacity var(--md-sys-dialog-motion-duration) linear;
75
78
 
76
79
  @starting-style {
77
- height: fit-content;
78
- width: fit-content;
80
+ block-size: fit-content;
81
+ inline-size: fit-content;
79
82
  inset-block-start: anchor(start);
80
83
  inset-inline-start: anchor(start);
81
84
  opacity: 0;
82
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(50%);
85
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(50%);
83
86
  }
84
87
 
85
88
  &:popover-open,
@@ -88,12 +91,12 @@ dialog.micl-dialog-fullscreen {
88
91
  inset-block-start: 50%;
89
92
  inset-inline-start: 50%;
90
93
  opacity: 1;
91
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(100%);
94
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(100%);
92
95
  transition:
93
96
  inset-block-start var(--md-sys-dialog-motion-duration) linear,
94
97
  inset-inline-start var(--md-sys-dialog-motion-duration) linear,
95
- width var(--md-sys-dialog-motion-duration) linear,
96
- height var(--md-sys-dialog-motion-duration) linear,
98
+ inline-size var(--md-sys-dialog-motion-duration) linear,
99
+ block-size var(--md-sys-dialog-motion-duration) linear,
97
100
  transform var(--md-sys-dialog-motion-duration) linear,
98
101
  opacity var(--md-sys-dialog-motion-duration) motion.$md-sys-motion-easing-emphasized-accelerate,
99
102
  overlay var(--md-sys-dialog-motion-duration) linear allow-discrete,
@@ -103,7 +106,7 @@ dialog.micl-dialog-fullscreen {
103
106
  inset-block-start: anchor(start);
104
107
  inset-inline-start: anchor(start);
105
108
  opacity: 0;
106
- transform: translate(calc(var(--md-sys-dialog-dir-factor) * -50%), -50%) scale(50%);
109
+ transform: translate(calc(var(--md-sys-dialog-dir-factor, 1) * -50%), -50%) scale(50%);
107
110
  }
108
111
  }
109
112
  &:not([popover]) {
@@ -132,14 +135,24 @@ dialog.micl-dialog-fullscreen {
132
135
  display var(--md-sys-dialog-motion-duration) linear allow-discrete;
133
136
  }
134
137
  &[open]::backdrop {
135
- background-color: rgba(0, 0, 0, 0.2);
138
+ background-color: rgba(0, 0, 0, var(--md-sys-state-backdrop-opacity, 32%));
136
139
 
137
140
  @starting-style {
138
141
  background-color: rgba(0, 0, 0, 0);
139
142
  }
140
143
  }
144
+
145
+ &.micl-dialog--docked {
146
+ position-anchor: auto;
147
+ inset-block: anchor(end) auto;
148
+ inset-inline: anchor(start) auto;
149
+ transform: none;
150
+ transition: none;
151
+ position-try-fallbacks: flip-block;
152
+ }
153
+
141
154
  // &:hover {
142
- // --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
155
+ // --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
143
156
  // }
144
157
 
145
158
  .micl-dialog__headline {
@@ -148,44 +161,39 @@ dialog.micl-dialog-fullscreen {
148
161
  flex-shrink: 0;
149
162
  align-items: flex-start;
150
163
  gap: 16px;
151
- padding: var(--md-sys-dialog-padding);
164
+ padding-block: var(--md-sys-dialog-padding, 24px) var(--md-sys-dialog-headline-space, 16px);
165
+ padding-inline: var(--md-sys-dialog-padding, 24px);
152
166
  background-color: transparent;
153
167
 
168
+ &:has(> .micl-dialog__icon) {
169
+ align-items: center;
170
+ }
171
+ .micl-dialog__icon {
172
+ inline-size: var(--md-sys-icon-size, 24px);
173
+ block-size: var(--md-sys-icon-size, 24px);
174
+ font-size: var(--md-sys-icon-size, 24px);
175
+ color: var(--md-sys-color-secondary);
176
+ }
154
177
  h1, h2, h3, h4, h5, h6, .micl-heading {
155
178
  @include typography.headline-small;
156
179
 
157
180
  flex: 1 1 100%;
158
181
  margin: 0;
182
+ color: var(--md-sys-color-on-surface);
183
+ }
184
+ .micl-dialog__subhead {
185
+ @include typography.title-medium;
186
+
187
+ padding-inline: var(--md-sys-dialog-padding, 24px);
159
188
  overflow: hidden;
160
189
  text-overflow: ellipsis;
161
190
  white-space: nowrap;
162
- color: var(--md-sys-color-on-surface);
163
- }
164
- .micl-dialog__icon {
165
- width: var(--md-sys-layout-icon-size, 24px);
166
- height: var(--md-sys-layout-icon-size, 24px);
167
- font-size: var(--md-sys-layout-icon-size, 24px);
168
- color: var(--md-sys-color-secondary);
169
- }
170
- button {
171
- display: none;
191
+ color: var(--md-sys-color-on-surface)
172
192
  }
173
- &+ .micl-dialog__actions {
174
- padding-block-start: 0;
193
+ &:has(+ .micl-dialog__actions) {
194
+ padding-block-end: 0;
175
195
  }
176
196
  }
177
- .micl-dialog__headline:has(> .micl-dialog__icon) {
178
- align-items: center;
179
- }
180
- .micl-dialog__subhead {
181
- @include typography.title-medium;
182
-
183
- padding-inline: var(--md-sys-dialog-padding);
184
- overflow: hidden;
185
- text-overflow: ellipsis;
186
- white-space: nowrap;
187
- color: var(--md-sys-color-on-surface)
188
- }
189
197
  .micl-dialog__supporting-text {
190
198
  @include typography.body-medium;
191
199
 
@@ -193,7 +201,7 @@ dialog.micl-dialog-fullscreen {
193
201
  }
194
202
  .micl-dialog__content {
195
203
  flex-shrink: 1;
196
- padding-inline: var(--md-sys-dialog-padding);
204
+ padding-inline: var(--md-sys-dialog-padding, 24px);
197
205
  background-color: inherit;
198
206
  overflow-y: auto;
199
207
  }
@@ -202,31 +210,35 @@ dialog.micl-dialog-fullscreen {
202
210
  flex-shrink: 0;
203
211
  justify-content: flex-end;
204
212
  column-gap: 8px;
205
- padding: var(--md-sys-dialog-padding);
213
+ padding: var(--md-sys-dialog-padding, 24px);
206
214
  opacity: 1;
207
- transition: opacity var(--md-sys-dialog-motion-duration) linear;
215
+ transition:
216
+ opacity var(--md-sys-dialog-motion-duration) linear allow-discrete,
217
+ overlay var(--md-sys-dialog-motion-duration) linear allow-discrete,
218
+ display var(--md-sys-dialog-motion-duration) linear allow-discrete;
208
219
  }
209
220
  }
210
221
 
211
- dialog.micl-dialog-fullscreen {
222
+ dialog.micl-dialog.micl-dialog--fullscreen {
212
223
  @media (max-width: 560px) {
213
- width: 100vw;
214
- height: 100vh;
215
- max-width: 100vw;
216
- border-radius: var(--md-sys-shape-corner-none);
224
+ inline-size: 100vw;
225
+ block-size: 100vh;
226
+ max-inline-size: 100vw;
227
+ border-radius: var(--md-sys-shape-corner-none, 0px);
217
228
  background-color: var(--md-sys-color-surface);
218
229
  box-shadow: var(--md-sys-elevation-level0);
219
230
  timeline-scope: --headlineTimeline;
220
231
 
221
232
  // &:hover {
222
- // --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
233
+ // --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
223
234
  // }
224
235
  .micl-dialog__headline {
225
- height: 56px;
236
+ block-size: 56px;
226
237
  flex-direction: row;
227
238
  align-items: center;
228
- gap: 4px;
229
- padding: 4px;
239
+ gap: 8px;
240
+ padding-block: 4px;
241
+ padding-inline: 8px 16px;
230
242
  animation-name: headlineScroll;
231
243
  animation-duration: 1ms;
232
244
  animation-timeline: --headlineTimeline;
@@ -245,22 +257,27 @@ dialog.micl-dialog-fullscreen {
245
257
  .micl-dialog__icon {
246
258
  display:none;
247
259
  }
248
- button {
249
- display: inline-block;
250
-
251
- &.micl-button {
252
- margin-right: 16px;
253
- }
254
- }
255
260
  }
256
261
  .micl-dialog__content {
257
262
  scroll-timeline: --headlineTimeline block;
258
263
  scroll-timeline: --headlineTimeline vertical;
259
264
  }
260
265
  .micl-dialog__actions {
266
+ display: none;
261
267
  opacity: 0;
262
268
  }
263
269
  }
270
+ @media (min-width: 561px) {
271
+ .micl-dialog__fullscreen {
272
+ display: none;
273
+ }
274
+ }
275
+ }
276
+
277
+ @media (max-width: 560px) {
278
+ body:has(dialog.micl-dialog.micl-dialog--fullscreen:popover-open) {
279
+ overflow-y: hidden;
280
+ }
264
281
  }
265
282
 
266
283
  @keyframes headlineScroll {
@@ -19,6 +19,8 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
+ @use '../../foundations';
23
+
22
24
  :root {
23
25
  --md-sys-divider-thickness: 1px;
24
26
  --md-sys-divider-inset-margin: 16px;
@@ -19,7 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
- @use '../../foundations/layout';
22
+ @use '../../foundations';
23
23
  @use '../../styles/elevation';
24
24
  @use '../../styles/motion';
25
25
  @use '../../styles/shapes';
@@ -53,6 +53,7 @@ button.micl-iconbutton-outlined-xl {
53
53
  --md-sys-iconbutton-motion-duration-reverse: #{motion.$md-sys-motion-expressive-fast-spatial-duration};
54
54
  --micl-ripple: 1;
55
55
 
56
+ align-items: center;
56
57
  padding: 0;
57
58
  border: none;
58
59
  border-radius: var(--md-sys-shape-corner-full);
@@ -74,13 +75,13 @@ button.micl-iconbutton-outlined-xl {
74
75
 
75
76
  &:disabled {
76
77
  background-color: rgb(from var(--md-sys-color-on-surface) r g b / 10%);
77
- color: rgb(from var(--md-sys-color-on-surface) r g b / 38%);
78
+ color: rgb(from var(--md-sys-color-on-surface) r g b / var(--md-sys-state-disabled-state-layer-opacity, 38%));
78
79
  box-shadow: var(--md-sys-elevation-level0);
79
80
  cursor: default;
80
81
  }
81
82
  &:not(:disabled) {
82
83
  &:focus-visible {
83
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
84
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
84
85
  outline-offset: 3px;
85
86
  }
86
87
  &:active {
@@ -154,7 +155,7 @@ button.micl-iconbutton-outlined-s {
154
155
  inline-size: var(--micl-width);
155
156
  min-inline-size: var(--micl-width);
156
157
  block-size: var(--micl-height);
157
- font-size: var(--md-sys-layout-icon-size, 24px);
158
+ font-size: var(--md-sys-icon-size, 24px);
158
159
 
159
160
  &::before {
160
161
  content: "";
@@ -201,7 +202,7 @@ button.micl-iconbutton-outlined-m {
201
202
  inline-size: var(--micl-width);
202
203
  min-inline-size: var(--micl-width);
203
204
  block-size: var(--micl-height);
204
- font-size: var(--md-sys-layout-icon-size, 24px);
205
+ font-size: var(--md-sys-icon-size, 24px);
205
206
 
206
207
  &.micl-button--toggle.micl-button--selected {
207
208
  border-radius: var(--md-sys-shape-corner-large);
@@ -322,13 +323,13 @@ button.micl-iconbutton-standard-xl {
322
323
  color: var(--md-sys-color-primary);
323
324
  }
324
325
  &:hover {
325
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
326
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
326
327
  }
327
328
  &:focus-visible {
328
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
329
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
329
330
  }
330
331
  &:active {
331
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
332
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
332
333
  }
333
334
  }
334
335
  }
@@ -352,13 +353,13 @@ button.micl-iconbutton-filled-xl {
352
353
  color: var(--md-sys-color-on-surface-variant);
353
354
  }
354
355
  &:hover {
355
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
356
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
356
357
  }
357
358
  &:focus-visible {
358
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
359
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
359
360
  }
360
361
  &:active {
361
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
362
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
362
363
  }
363
364
  }
364
365
  }
@@ -381,13 +382,13 @@ button.micl-iconbutton-tonal-xl {
381
382
  color: var(--md-sys-color-on-secondary);
382
383
  }
383
384
  &:hover {
384
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
385
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
385
386
  }
386
387
  &:focus-visible {
387
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
388
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
388
389
  }
389
390
  &:active {
390
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
391
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
391
392
  }
392
393
  }
393
394
  }
@@ -427,13 +428,13 @@ button.micl-iconbutton-outlined-xl {
427
428
  color: var(--md-sys-color-inverse-on-surface);
428
429
  }
429
430
  &:hover {
430
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
431
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
431
432
  }
432
433
  &:focus-visible {
433
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
434
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
434
435
  }
435
436
  &:active {
436
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
437
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
437
438
  }
438
439
  }
439
440
  }
@@ -19,7 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
- @use '../../foundations/layout';
22
+ @use '../../foundations';
23
23
  @use '../../styles/motion';
24
24
  @use '../../styles/shapes';
25
25
  @use '../../styles/statelayer';
@@ -100,24 +100,24 @@ select {
100
100
  cursor: pointer;
101
101
 
102
102
  &:hover {
103
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
103
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
104
104
 
105
105
  .micl-list-item__icon {
106
106
  font-variation-settings: 'FILL' 1;
107
107
  }
108
108
  }
109
109
  &:focus-visible {
110
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
110
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
111
111
 
112
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
113
- outline-offset: var(--md-sys-state-focus-indicator-inner-offset);
112
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
113
+ outline-offset: var(--md-sys-state-focus-indicator-inner-offset, -3px);
114
114
 
115
115
  .micl-list-item__icon {
116
116
  font-variation-settings: 'FILL' 1;
117
117
  }
118
118
  }
119
119
  &:active {
120
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
120
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
121
121
 
122
122
  background-size: 0%, 100%;
123
123
  transition: background-size 0ms;
@@ -184,11 +184,11 @@ select {
184
184
  .micl-list-item__text,
185
185
  .micl-list-item__text::after,
186
186
  .micl-list-item__trailing-text {
187
- color: rgb(from var(--md-sys-color-on-surface) r g b / 38%);
187
+ color: rgb(from var(--md-sys-color-on-surface) r g b / var(--md-sys-state-disabled-state-layer-opacity, 38%));
188
188
  }
189
189
  .micl-list-item__image,
190
190
  .micl-list-item__thumbnail {
191
- opacity: 38%;
191
+ opacity: var(--md-sys-state-disabled-state-layer-opacity, 38%);
192
192
  }
193
193
  a, button, label {
194
194
  pointer-events: none;
@@ -323,8 +323,8 @@ select {
323
323
  }
324
324
 
325
325
  .micl-list-item__icon {
326
- min-inline-size: var(--md-sys-layout-icon-size, 24px);
327
- font-size: var(--md-sys-layout-icon-size, 24px);
326
+ min-inline-size: var(--md-sys-icon-size, 24px);
327
+ font-size: var(--md-sys-icon-size, 24px);
328
328
  font-variation-settings: 'FILL' 0;
329
329
  color: var(--md-sys-color-on-surface-variant);
330
330
  transition: font-variation-settings var(--md-sys-list-motion-duration) linear;
@@ -19,6 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
+ @use '../../foundations';
22
23
  @use '../../styles/elevation';
23
24
  @use '../../styles/motion';
24
25
  @use '../../styles/shapes';
@@ -69,7 +70,7 @@
69
70
  transform: scaleY(0);
70
71
  }
71
72
  &::backdrop {
72
- background-color: rgba(0, 0, 0, 0.2);
73
+ background-color: rgba(0, 0, 0, var(--md-sys-state-backdrop-opacity, 32%));
73
74
 
74
75
  @starting-style {
75
76
  background-color: rgba(0, 0, 0, 0);
@@ -19,6 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
+ @use '../../foundations';
22
23
  @use '../../foundations/layout';
23
24
  @use '../../styles/elevation';
24
25
  @use '../../styles/motion';
@@ -119,8 +120,8 @@
119
120
  &> .micl-navigationrail__icon {
120
121
  --micl-ripple: 1;
121
122
 
122
- font-size: var(--md-sys-layout-icon-size, 24px);
123
- inline-size: var(--md-sys-layout-icon-size, 24px);
123
+ font-size: var(--md-sys-icon-size, 24px);
124
+ inline-size: var(--md-sys-icon-size, 24px);
124
125
  margin: 0;
125
126
  padding-block: 4px;
126
127
  padding-inline: 16px;
@@ -188,15 +189,15 @@ nav.micl-navigationrail:has(> .micl-navigationrail__headline .micl-button--toggl
188
189
  background-color: transparent;
189
190
  }
190
191
  &:hover {
191
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
192
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
192
193
  }
193
194
  &:focus-visible {
194
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
195
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
195
196
  }
196
197
  &:active {
197
198
  background-size: 0%, 100%;
198
199
  transition: background-size 0ms;
199
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
200
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
200
201
  }
201
202
  &> .micl-navigationrail__text {
202
203
  @include typography.label-large;
@@ -273,17 +274,17 @@ nav.micl-navigationrail:has(> .micl-navigationrail__headline .micl-button--toggl
273
274
  &> .micl-navigationrail__content > label.micl-navigationrail__item {
274
275
  &:hover {
275
276
  &> .micl-navigationrail__icon {
276
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
277
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
277
278
  }
278
279
  }
279
280
  &:focus-visible {
280
281
  &> .micl-navigationrail__icon {
281
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
282
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
282
283
  }
283
284
  }
284
285
  &:active {
285
286
  &> .micl-navigationrail__icon {
286
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
287
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
287
288
 
288
289
  background-size: 0%, 100%;
289
290
  transition:
@@ -346,7 +347,7 @@ nav.micl-navigationrail[popover] {
346
347
  display var(--md-sys-navigationrail-motion-duration) linear allow-discrete;
347
348
 
348
349
  &::backdrop {
349
- background-color: rgba(0, 0, 0, 0.2);
350
+ background-color: rgba(0, 0, 0, var(--md-sys-state-backdrop-opacity, 32%));
350
351
 
351
352
  @starting-style {
352
353
  background-color: rgba(0, 0, 0, 0);
@@ -43,7 +43,6 @@ You can customize the appearance of the Radio Button component by overriding its
43
43
  | ------------- | ------------- | ----------- |
44
44
  | --md-sys-radio-border-width | 2px | Controls the thickness of the radio button's border |
45
45
  | --md-sys-radio-container-size | 20px | Defines the diameter of the radio button itself |
46
- | --md-sys-radio-state-layer-size | 40px | Sets the size of the interactive area that indicates the component's current state (e.g., hover, focus, press) |
47
46
 
48
47
  **Example: Changing the size of the radio button**
49
48
 
@@ -19,6 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
+ @use '../../foundations';
22
23
  @use '../../styles/motion';
23
24
  @use '../../styles/shapes';
24
25
  @use '../../styles/statelayer';
@@ -26,7 +27,6 @@
26
27
  :root {
27
28
  --md-sys-radio-border-width: 2px;
28
29
  --md-sys-radio-container-size: 20px;
29
- --md-sys-radio-state-layer-size: 40px;
30
30
  }
31
31
 
32
32
  input[type=radio].micl-radio {
@@ -37,12 +37,12 @@ input[type=radio].micl-radio {
37
37
  appearance: none;
38
38
  box-sizing: border-box;
39
39
  position: relative;
40
- inline-size: var(--md-sys-target-size);
41
- min-inline-size: var(--md-sys-target-size);
42
- block-size: var(--md-sys-target-size);
43
- min-block-size: var(--md-sys-target-size);
40
+ inline-size: var(--md-sys-target-size, 48px);
41
+ min-inline-size: var(--md-sys-target-size, 48px);
42
+ block-size: var(--md-sys-target-size, 48px);
43
+ min-block-size: var(--md-sys-target-size, 48px);
44
44
  margin: 0;
45
- border: calc((var(--md-sys-target-size) - var(--md-sys-radio-state-layer-size)) / 2) solid transparent;
45
+ border: calc((var(--md-sys-target-size, 48px) - var(--md-sys-state-layer-size, 40px)) / 2) solid transparent;
46
46
  background-clip: content-box;
47
47
  background-color: transparent;
48
48
  -webkit-tap-highlight-color: transparent;
@@ -102,22 +102,22 @@ input[type=radio].micl-radio {
102
102
  }
103
103
  }
104
104
  &:hover {
105
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
105
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
106
106
  }
107
107
  &:focus-visible {
108
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
108
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
109
109
 
110
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
110
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
111
111
  }
112
112
  &:active {
113
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
113
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
114
114
 
115
115
  background-size: 0%, 100%;
116
116
  transition: background-size 0ms;
117
117
  }
118
118
  }
119
119
  &:disabled {
120
- opacity: 38%;
120
+ opacity: var(--md-sys-state-disabled-state-layer-opacity, 38%);
121
121
 
122
122
  &::after {
123
123
  border-color: var(--md-sys-color-on-surface);
@@ -19,6 +19,7 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
+ @use '../../foundations';
22
23
  @use '../../styles/elevation';
23
24
  @use '../../styles/motion';
24
25
  @use '../../styles/shapes';
@@ -114,7 +115,7 @@
114
115
  }
115
116
  }
116
117
  &:focus-visible {
117
- outline-offset: calc(-1 * var(--md-sys-state-focus-indicator-thickness));
118
+ outline-offset: calc(-1 * var(--md-sys-state-focus-indicator-thickness, 3px));
118
119
  z-index: 1;
119
120
  }
120
121
 
@@ -19,6 +19,8 @@
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
21
 
22
+ @use '../../foundations';
23
+ @use '../../foundations/layout';
22
24
  @use '../../styles/elevation';
23
25
  @use '../../styles/motion';
24
26
  @use '../../styles/shapes';
@@ -140,7 +142,7 @@ dialog.micl-sidesheet {
140
142
  transition: background-color var(--md-sys-sidesheet-motion-duration-reverse) linear;
141
143
  }
142
144
  &[open]::backdrop {
143
- background-color: rgba(0, 0, 0, 0.2);
145
+ background-color: rgba(0, 0, 0, var(--md-sys-state-backdrop-opacity, 32%));
144
146
  transition: background-color var(--md-sys-sidesheet-motion-duration) linear;
145
147
 
146
148
  @starting-style {