material-inspired-component-library 8.0.0 → 8.0.4

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 (84) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/components/alert/index.scss +5 -0
  3. package/components/appbar/index.scss +12 -0
  4. package/components/badge/index.scss +2 -0
  5. package/components/bottomsheet/index.scss +9 -0
  6. package/components/button/index.scss +106 -92
  7. package/components/card/index.scss +30 -0
  8. package/components/checkbox/index.scss +17 -0
  9. package/components/datepicker/index.scss +13 -0
  10. package/components/dialog/index.scss +16 -0
  11. package/components/iconbutton/index.scss +18 -0
  12. package/components/list/index.scss +32 -5
  13. package/components/menu/index.scss +18 -0
  14. package/components/navigationrail/index.scss +17 -0
  15. package/components/progressindicator/README.md +88 -0
  16. package/components/progressindicator/index.scss +225 -0
  17. package/components/progressindicator/index.ts +77 -0
  18. package/components/radio/index.scss +13 -0
  19. package/components/select/index.scss +8 -0
  20. package/components/shape/README.md +103 -0
  21. package/components/shape/_paths.generated.scss +64 -0
  22. package/components/shape/index.scss +66 -0
  23. package/components/shape/master.scss +28 -0
  24. package/components/sidesheet/index.scss +11 -0
  25. package/components/slider/index.scss +13 -0
  26. package/components/snackbar/index.scss +12 -0
  27. package/components/stepper/index.scss +2 -0
  28. package/components/switch/index.scss +9 -0
  29. package/components/textfield/index.scss +9 -0
  30. package/components/timepicker/index.scss +16 -0
  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/progressindicator/index.d.ts +6 -0
  39. package/dist/datepicker.css +1 -1
  40. package/dist/dialog.css +1 -1
  41. package/dist/foundations/form/index.js +1 -0
  42. package/dist/iconbutton.css +1 -1
  43. package/dist/layout.css +1 -1
  44. package/dist/list.css +1 -1
  45. package/dist/menu.css +1 -1
  46. package/dist/micl.css +1 -1
  47. package/dist/micl.js +1 -1
  48. package/dist/navigationrail.css +1 -1
  49. package/dist/progressindicator.css +1 -0
  50. package/dist/progressindicator.js +1 -0
  51. package/dist/radio.css +1 -1
  52. package/dist/select.css +1 -1
  53. package/dist/shape.css +1 -0
  54. package/dist/shape.js +1 -0
  55. package/dist/sidesheet.css +1 -1
  56. package/dist/slider.css +1 -1
  57. package/dist/snackbar.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/datepicker.html +21 -21
  63. package/docs/index.html +1 -0
  64. package/docs/micl.css +1 -1
  65. package/docs/micl.js +1 -1
  66. package/docs/progressindicator.html +288 -0
  67. package/docs/shape.css +1 -0
  68. package/docs/shape.js +1 -0
  69. package/docs/shapes.html +86 -21
  70. package/foundations/layout/README.md +1 -1
  71. package/foundations/layout/index.scss +3 -0
  72. package/micl.ts +2 -0
  73. package/package.json +4 -2
  74. package/styles/README.md +86 -8
  75. package/styles/elevation.scss +46 -13
  76. package/styles/motion.scss +51 -47
  77. package/styles/shapes.scss +38 -104
  78. package/styles/statelayer.scss +88 -41
  79. package/styles/typography.scss +120 -322
  80. package/styles.scss +10 -6
  81. package/tools/shapes/check.mjs +42 -0
  82. package/tools/shapes/generate.mjs +834 -0
  83. package/webpack.config.js +16 -1
  84. package/CLAUDE.md +0 -42
@@ -0,0 +1,14 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(node *)",
5
+ "WebSearch",
6
+ "Bash(npm run *)",
7
+ "WebFetch(domain:raw.githubusercontent.com)",
8
+ "WebFetch(domain:android.googlesource.com)",
9
+ "WebFetch(domain:m3.material.io)",
10
+ "WebFetch(domain:github.com)",
11
+ "Bash(xargs grep -l \"body\\\\|html\")"
12
+ ]
13
+ }
14
+ }
@@ -23,6 +23,11 @@
23
23
  @use '../../styles/shapes';
24
24
  @use '../../styles/typography';
25
25
 
26
+ @include shapes.corner('small');
27
+
28
+ @include typography.scale('title-medium');
29
+ @include typography.scale('body-medium');
30
+
26
31
  :root {
27
32
  --md-sys-alert-padding: 16px;
28
33
  --md-sys-alert-space: 16px;
@@ -26,6 +26,18 @@
26
26
  @use '../../styles/statelayer';
27
27
  @use '../../styles/typography';
28
28
 
29
+ @include elevation.level(0);
30
+ @include elevation.level(2);
31
+
32
+ @include shapes.corner('none');
33
+
34
+ @include typography.scale('display-small');
35
+ @include typography.scale('headline-medium');
36
+ @include typography.scale('title-large');
37
+ @include typography.scale('title-medium');
38
+ @include typography.scale('title-small');
39
+ @include typography.scale('label-medium');
40
+
29
41
  @mixin appbar-sticky() {
30
42
  position: sticky;
31
43
  inset: unset;
@@ -22,6 +22,8 @@
22
22
  @use '../../foundations';
23
23
  @use '../../styles/typography';
24
24
 
25
+ @include typography.scale('label-small');
26
+
25
27
  :root {
26
28
  --md-sys-badge-small-size: 6px;
27
29
  --md-sys-badge-large-size: 16px;
@@ -25,6 +25,15 @@
25
25
  @use '../../styles/shapes';
26
26
  @use '../../styles/statelayer';
27
27
 
28
+ @include elevation.level(1);
29
+
30
+ @include shapes.corner('extra-large');
31
+ @include shapes.corner('small');
32
+
33
+ @include statelayer.token('focus-indicator-thickness');
34
+ @include statelayer.token('focus-indicator-outer-offset');
35
+ @include statelayer.token('backdrop-opacity');
36
+
28
37
  dialog.micl-bottomsheet {
29
38
  --md-sys-bottomsheet-height: max-content;
30
39
  --md-sys-bottomsheet-margin: 56px;
@@ -26,35 +26,55 @@
26
26
  @use '../../styles/statelayer';
27
27
  @use '../../styles/typography';
28
28
 
29
- button.micl-button-text-xs,
30
- a.micl-button-text-xs,
31
- button.micl-button-text-s,
32
- a.micl-button-text-s,
33
- button.micl-button-text-m,
34
- a.micl-button-text-m,
35
- button.micl-button-text-l,
36
- button.micl-button-text-l,
37
- button.micl-button-text-xl,
38
- button.micl-button-elevated-xs,
39
- button.micl-button-elevated-s,
40
- button.micl-button-elevated-m,
41
- button.micl-button-elevated-l,
42
- button.micl-button-elevated-xl,
43
- button.micl-button-filled-xs,
44
- button.micl-button-filled-s,
45
- button.micl-button-filled-m,
46
- button.micl-button-filled-l,
47
- button.micl-button-filled-xl,
48
- button.micl-button-tonal-xs,
49
- button.micl-button-tonal-s,
50
- button.micl-button-tonal-m,
51
- button.micl-button-tonal-l,
52
- button.micl-button-tonal-xl,
53
- button.micl-button-outlined-xs,
54
- button.micl-button-outlined-s,
55
- button.micl-button-outlined-m,
56
- button.micl-button-outlined-l,
57
- button.micl-button-outlined-xl {
29
+ @include elevation.level(0);
30
+ @include elevation.level(1);
31
+
32
+ @include shapes.corner('small');
33
+ @include shapes.corner('medium');
34
+ @include shapes.corner('large');
35
+ @include shapes.corner('extra-large');
36
+
37
+ @include statelayer.token('hover-state-layer-opacity');
38
+ @include statelayer.token('focus-state-layer-opacity');
39
+ @include statelayer.token('pressed-state-layer-opacity');
40
+ @include statelayer.token('disabled-state-layer-opacity');
41
+ @include statelayer.token('focus-indicator-thickness');
42
+ @include statelayer.token('ripple-opacity-factor');
43
+ @include statelayer.token('ripple-duration');
44
+ @include statelayer.property;
45
+ @include statelayer.keyframes;
46
+
47
+ @include typography.scale('headline-large');
48
+ @include typography.scale('headline-small');
49
+ @include typography.scale('title-medium');
50
+ @include typography.scale('label-large');
51
+
52
+ .micl-button-text-xs,
53
+ .micl-button-text-s,
54
+ .micl-button-text-m,
55
+ .micl-button-text-l,
56
+ .micl-button-text-l,
57
+ .micl-button-text-xl,
58
+ .micl-button-elevated-xs,
59
+ .micl-button-elevated-s,
60
+ .micl-button-elevated-m,
61
+ .micl-button-elevated-l,
62
+ .micl-button-elevated-xl,
63
+ .micl-button-filled-xs,
64
+ .micl-button-filled-s,
65
+ .micl-button-filled-m,
66
+ .micl-button-filled-l,
67
+ .micl-button-filled-xl,
68
+ .micl-button-tonal-xs,
69
+ .micl-button-tonal-s,
70
+ .micl-button-tonal-m,
71
+ .micl-button-tonal-l,
72
+ .micl-button-tonal-xl,
73
+ .micl-button-outlined-xs,
74
+ .micl-button-outlined-s,
75
+ .micl-button-outlined-m,
76
+ .micl-button-outlined-l,
77
+ .micl-button-outlined-xl {
58
78
  --md-sys-button-motion-effects: #{motion.$md-sys-motion-expressive-fast-spatial};
59
79
  --md-sys-button-motion-duration: #{motion.$md-sys-motion-expressive-fast-spatial-duration};
60
80
  --md-sys-button-motion-duration-reverse: #{motion.$md-sys-motion-expressive-fast-spatial-duration};
@@ -112,12 +132,11 @@ button.micl-button-outlined-xl {
112
132
  }
113
133
  }
114
134
 
115
- button.micl-button-text-xs,
116
- a.micl-button-text-xs,
117
- button.micl-button-elevated-xs,
118
- button.micl-button-filled-xs,
119
- button.micl-button-tonal-xs,
120
- button.micl-button-outlined-xs {
135
+ .micl-button-text-xs,
136
+ .micl-button-elevated-xs,
137
+ .micl-button-filled-xs,
138
+ .micl-button-tonal-xs,
139
+ .micl-button-outlined-xs {
121
140
  @include typography.label-large;
122
141
 
123
142
  --micl-width: 32px;
@@ -160,12 +179,11 @@ button.micl-button-outlined-xs {
160
179
  }
161
180
  }
162
181
 
163
- button.micl-button-text-s,
164
- a.micl-button-text-s,
165
- button.micl-button-elevated-s,
166
- button.micl-button-filled-s,
167
- button.micl-button-tonal-s,
168
- button.micl-button-outlined-s {
182
+ .micl-button-text-s,
183
+ .micl-button-elevated-s,
184
+ .micl-button-filled-s,
185
+ .micl-button-tonal-s,
186
+ .micl-button-outlined-s {
169
187
  @include typography.label-large;
170
188
 
171
189
  --micl-width: 40px;
@@ -207,12 +225,11 @@ button.micl-button-outlined-s {
207
225
  }
208
226
  }
209
227
 
210
- button.micl-button-text-m,
211
- a.micl-button-text-m,
212
- button.micl-button-elevated-m,
213
- button.micl-button-filled-m,
214
- button.micl-button-tonal-m,
215
- button.micl-button-outlined-m {
228
+ .micl-button-text-m,
229
+ .micl-button-elevated-m,
230
+ .micl-button-filled-m,
231
+ .micl-button-tonal-m,
232
+ .micl-button-outlined-m {
216
233
  @include typography.title-medium;
217
234
 
218
235
  --micl-width: 56px;
@@ -245,11 +262,11 @@ button.micl-button-outlined-m {
245
262
  }
246
263
  }
247
264
 
248
- button.micl-button-text-l,
249
- button.micl-button-elevated-l,
250
- button.micl-button-filled-l,
251
- button.micl-button-tonal-l,
252
- button.micl-button-outlined-l {
265
+ .micl-button-text-l,
266
+ .micl-button-elevated-l,
267
+ .micl-button-filled-l,
268
+ .micl-button-tonal-l,
269
+ .micl-button-outlined-l {
253
270
  @include typography.headline-small;
254
271
 
255
272
  --micl-width: 96px;
@@ -282,11 +299,11 @@ button.micl-button-outlined-l {
282
299
  }
283
300
  }
284
301
 
285
- button.micl-button-text-xl,
286
- button.micl-button-elevated-xl,
287
- button.micl-button-filled-xl,
288
- button.micl-button-tonal-xl,
289
- button.micl-button-outlined-xl {
302
+ .micl-button-text-xl,
303
+ .micl-button-elevated-xl,
304
+ .micl-button-filled-xl,
305
+ .micl-button-tonal-xl,
306
+ .micl-button-outlined-xl {
290
307
  @include typography.headline-large;
291
308
 
292
309
  --micl-width: 136px;
@@ -319,14 +336,11 @@ button.micl-button-outlined-xl {
319
336
  }
320
337
  }
321
338
 
322
- button.micl-button-text-xs,
323
- a.micl-button-text-xs,
324
- button.micl-button-text-s,
325
- a.micl-button-text-s,
326
- button.micl-button-text-m,
327
- a.micl-button-text-m,
328
- button.micl-button-text-l,
329
- button.micl-button-text-xl {
339
+ .micl-button-text-xs,
340
+ .micl-button-text-s,
341
+ .micl-button-text-m,
342
+ .micl-button-text-l,
343
+ .micl-button-text-xl {
330
344
  --statelayer-color: var(--md-sys-color-primary);
331
345
 
332
346
  background-color: transparent;
@@ -350,11 +364,11 @@ button.micl-button-text-xl {
350
364
  }
351
365
  }
352
366
 
353
- button.micl-button-elevated-xs,
354
- button.micl-button-elevated-s,
355
- button.micl-button-elevated-m,
356
- button.micl-button-elevated-l,
357
- button.micl-button-elevated-xl {
367
+ .micl-button-elevated-xs,
368
+ .micl-button-elevated-s,
369
+ .micl-button-elevated-m,
370
+ .micl-button-elevated-l,
371
+ .micl-button-elevated-xl {
358
372
  --statelayer-color: var(--md-sys-color-primary);
359
373
 
360
374
  background-color: var(--md-sys-color-surface-container-low);
@@ -387,20 +401,20 @@ button.micl-button-elevated-xl {
387
401
  }
388
402
  }
389
403
  }
390
- button.micl-button-elevated-xs {
404
+ .micl-button-elevated-xs {
391
405
  block-size: 32px;
392
406
  border: none;
393
407
  }
394
- button.micl-button-elevated-s {
408
+ .micl-button-elevated-s {
395
409
  block-size: 40px;
396
410
  border: none;
397
411
  }
398
412
 
399
- button.micl-button-filled-xs,
400
- button.micl-button-filled-s,
401
- button.micl-button-filled-m,
402
- button.micl-button-filled-l,
403
- button.micl-button-filled-xl {
413
+ .micl-button-filled-xs,
414
+ .micl-button-filled-s,
415
+ .micl-button-filled-m,
416
+ .micl-button-filled-l,
417
+ .micl-button-filled-xl {
404
418
  --statelayer-color: var(--md-sys-color-on-primary);
405
419
 
406
420
  background-color: var(--md-sys-color-primary);
@@ -434,11 +448,11 @@ button.micl-button-filled-xl {
434
448
  }
435
449
  }
436
450
 
437
- button.micl-button-tonal-xs,
438
- button.micl-button-tonal-s,
439
- button.micl-button-tonal-m,
440
- button.micl-button-tonal-l,
441
- button.micl-button-tonal-xl {
451
+ .micl-button-tonal-xs,
452
+ .micl-button-tonal-s,
453
+ .micl-button-tonal-m,
454
+ .micl-button-tonal-l,
455
+ .micl-button-tonal-xl {
442
456
  --statelayer-color: var(--md-sys-color-on-secondary-container);
443
457
 
444
458
  background-color: var(--md-sys-color-secondary-container);
@@ -471,11 +485,11 @@ button.micl-button-tonal-xl {
471
485
  }
472
486
  }
473
487
 
474
- button.micl-button-outlined-xs,
475
- button.micl-button-outlined-s,
476
- button.micl-button-outlined-m,
477
- button.micl-button-outlined-l,
478
- button.micl-button-outlined-xl {
488
+ .micl-button-outlined-xs,
489
+ .micl-button-outlined-s,
490
+ .micl-button-outlined-m,
491
+ .micl-button-outlined-l,
492
+ .micl-button-outlined-xl {
479
493
  --statelayer-color: var(--md-sys-color-on-surface-variant);
480
494
 
481
495
  background-color: transparent;
@@ -507,14 +521,14 @@ button.micl-button-outlined-xl {
507
521
  }
508
522
  }
509
523
  }
510
- button.micl-button-outlined-xs,
511
- button.micl-button-outlined-s,
512
- button.micl-button-outlined-m {
524
+ .micl-button-outlined-xs,
525
+ .micl-button-outlined-s,
526
+ .micl-button-outlined-m {
513
527
  border: 1px solid var(--md-sys-color-outline-variant);
514
528
  }
515
- button.micl-button-outlined-l {
529
+ .micl-button-outlined-l {
516
530
  border: 2px solid var(--md-sys-color-outline-variant);
517
531
  }
518
- button.micl-button-outlined-xl {
532
+ .micl-button-outlined-xl {
519
533
  border: 3px solid var(--md-sys-color-outline-variant);
520
534
  }
@@ -27,6 +27,29 @@
27
27
  @use '../../styles/statelayer';
28
28
  @use '../../styles/typography';
29
29
 
30
+ @include elevation.level(0);
31
+ @include elevation.level(1);
32
+ @include elevation.level(2);
33
+ @include elevation.level(3);
34
+ @include elevation.level(4);
35
+
36
+ @include shapes.corner('medium');
37
+
38
+ @include statelayer.token('hover-state-layer-opacity');
39
+ @include statelayer.token('focus-state-layer-opacity');
40
+ @include statelayer.token('pressed-state-layer-opacity');
41
+ @include statelayer.token('dragged-state-layer-opacity');
42
+ @include statelayer.token('disabled-state-layer-opacity');
43
+ @include statelayer.token('focus-indicator-thickness');
44
+ @include statelayer.token('focus-indicator-outer-offset');
45
+ @include statelayer.token('ripple-opacity-factor');
46
+ @include statelayer.token('ripple-duration');
47
+ @include statelayer.property;
48
+ @include statelayer.keyframes;
49
+
50
+ @include typography.scale('title-medium');
51
+ @include typography.scale('body-smallmedium');
52
+
30
53
  @mixin card-variant(
31
54
  $name,
32
55
  $bg-default,
@@ -385,4 +408,11 @@
385
408
  gap: 8px;
386
409
  padding-block: 0 var(--md-comp-card-content-padding-block, 16px);
387
410
  padding-inline: var(--md-comp-card-padding-inline, 16px);
411
+
412
+ &.micl-card__actions--outset-start {
413
+ padding-inline-start: calc(var(--md-comp-card-padding-inline, 16px) - 16px);
414
+ }
415
+ &.micl-card__actions--outset-end {
416
+ padding-inline-end: calc(var(--md-comp-card-padding-inline, 16px) - 16px);
417
+ }
388
418
  }
@@ -21,9 +21,26 @@
21
21
 
22
22
  @use '../../foundations';
23
23
  @use '../../styles/motion';
24
+ @use '../../styles/shapes';
24
25
  @use '../../styles/statelayer';
25
26
  @use '../../styles/typography';
26
27
 
28
+ @include shapes.corner('full');
29
+
30
+ @include statelayer.token('layer-size');
31
+ @include statelayer.token('hover-state-layer-opacity');
32
+ @include statelayer.token('focus-state-layer-opacity');
33
+ @include statelayer.token('pressed-state-layer-opacity');
34
+ @include statelayer.token('disabled-state-layer-opacity');
35
+ @include statelayer.token('focus-indicator-thickness');
36
+ @include statelayer.token('ripple-opacity-factor');
37
+ @include statelayer.token('ripple-duration');
38
+ @include statelayer.property;
39
+ @include statelayer.keyframes;
40
+
41
+ @include motion.duration('short3');
42
+ @include motion.duration('long4');
43
+
27
44
  :root {
28
45
  --md-sys-checkbox-border-width: 2px;
29
46
  --md-sys-checkbox-check-thickness: 2px;
@@ -25,6 +25,19 @@
25
25
  @use '../../styles/statelayer';
26
26
  @use '../../styles/typography';
27
27
 
28
+ @include shapes.corner('large');
29
+ @include shapes.corner('full');
30
+
31
+ @include statelayer.token('hover-state-layer-opacity');
32
+ @include statelayer.token('focus-state-layer-opacity');
33
+ @include statelayer.token('pressed-state-layer-opacity');
34
+ @include statelayer.token('disabled-state-layer-opacity');
35
+ @include statelayer.property;
36
+
37
+ @include typography.scale('headline-large');
38
+ @include typography.scale('body-large');
39
+ @include typography.scale('label-large');
40
+
28
41
  :root {
29
42
  --md-comp-date-picker-docked-container-width: 360px;
30
43
  --md-comp-date-picker-modal-container-width: 360px;
@@ -26,6 +26,22 @@
26
26
  @use '../../styles/statelayer';
27
27
  @use '../../styles/typography';
28
28
 
29
+ @include elevation.level(0);
30
+ @include elevation.level(2);
31
+ @include elevation.level(3);
32
+
33
+ @include shapes.corner('none');
34
+ @include shapes.corner('extra-large');
35
+
36
+ @include statelayer.token('hover-state-layer-opacity');
37
+ @include statelayer.token('backdrop-opacity');
38
+ @include statelayer.property;
39
+
40
+ @include typography.scale('headline-small');
41
+ @include typography.scale('title-large');
42
+ @include typography.scale('title-medium');
43
+ @include typography.scale('body-medium');
44
+
29
45
  :root {
30
46
  --md-sys-dialog-min-width: 280px;
31
47
  --md-sys-dialog-max-width: 560px;
@@ -25,6 +25,24 @@
25
25
  @use '../../styles/shapes';
26
26
  @use '../../styles/statelayer';
27
27
 
28
+ @include elevation.level(0);
29
+
30
+ @include shapes.corner('small');
31
+ @include shapes.corner('medium');
32
+ @include shapes.corner('large');
33
+ @include shapes.corner('extra-large');
34
+ @include shapes.corner('full');
35
+
36
+ @include statelayer.token('hover-state-layer-opacity');
37
+ @include statelayer.token('focus-state-layer-opacity');
38
+ @include statelayer.token('pressed-state-layer-opacity');
39
+ @include statelayer.token('disabled-state-layer-opacity');
40
+ @include statelayer.token('focus-indicator-thickness');
41
+ @include statelayer.token('ripple-opacity-factor');
42
+ @include statelayer.token('ripple-duration');
43
+ @include statelayer.property;
44
+ @include statelayer.keyframes;
45
+
28
46
  button.micl-iconbutton-standard-xs,
29
47
  a.micl-iconbutton-standard-xs,
30
48
  button.micl-iconbutton-standard-s,
@@ -26,6 +26,31 @@
26
26
  @use '../../styles/statelayer';
27
27
  @use '../../styles/typography';
28
28
 
29
+ @include elevation.level(4);
30
+
31
+ @include shapes.corner('extra-small');
32
+ @include shapes.corner('small');
33
+ @include shapes.corner('medium');
34
+ @include shapes.corner('large');
35
+ @include shapes.corner('full');
36
+
37
+ @include statelayer.token('hover-state-layer-opacity');
38
+ @include statelayer.token('focus-state-layer-opacity');
39
+ @include statelayer.token('pressed-state-layer-opacity');
40
+ @include statelayer.token('dragged-state-layer-opacity');
41
+ @include statelayer.token('disabled-state-layer-opacity');
42
+ @include statelayer.token('focus-indicator-thickness');
43
+ @include statelayer.token('focus-indicator-inner-offset');
44
+ @include statelayer.token('ripple-opacity-factor');
45
+ @include statelayer.token('ripple-duration');
46
+ @include statelayer.property;
47
+ @include statelayer.keyframes;
48
+
49
+ @include typography.scale('title-medium');
50
+ @include typography.scale('body-large');
51
+ @include typography.scale('body-medium');
52
+ @include typography.scale('label-small');
53
+
29
54
  :root {
30
55
  --md-comp-accordion-item-space: 0px;
31
56
  }
@@ -33,10 +58,12 @@
33
58
  $item-padding-block: var(--md-comp-list-item-top-space, 10px) var(--md-comp-list-item-bottom-space, 10px);
34
59
  $item-padding-inline: var(--md-comp-list-item-leading-space, 16px) var(--md-comp-list-item-trailing-space, 16px);
35
60
 
61
+ $open-accordion: ':where(details[open] > *)';
62
+
36
63
  %shared-interactive-states {
37
64
  cursor: pointer;
38
65
 
39
- &:not(:has(input[type=checkbox]:checked)) {
66
+ &:not(:has(input[type=checkbox]:checked)):not(#{$open-accordion}) {
40
67
  &:hover {
41
68
  --_list-item-shape: var(--md-comp-list-item-container-hovered-expressive-shape, var(--md-sys-shape-corner-medium, 12px));
42
69
  --_headline-color: var(--md-comp-list-item-hover-label-text-color, var(--md-sys-color-on-surface));
@@ -84,7 +111,7 @@ $item-padding-inline: var(--md-comp-list-item-leading-space, 16px) var(--md-comp
84
111
  cursor: grabbing;
85
112
  }
86
113
  }
87
- &:has(input[type=checkbox]:checked) {
114
+ &:is(:has(input[type=checkbox]:checked), #{$open-accordion}) {
88
115
  &:hover {
89
116
  --_list-item-shape: var(--md-comp-list-item-container-selected-hovered-expressive-shape, var(--md-sys-shape-corner-large, 16px));
90
117
  --_headline-color: var(--md-comp-list-item-selected-hover-label-text-color, var(--md-sys-color-on-secondary-container));
@@ -302,7 +329,7 @@ $item-padding-inline: var(--md-comp-list-item-leading-space, 16px) var(--md-comp
302
329
  opacity: var(--md-sys-state-disabled-state-layer-opacity, 38%);
303
330
  }
304
331
 
305
- &:checked, &:has(input[type=checkbox]:checked) {
332
+ &:checked, &:has(input[type=checkbox]:checked), &#{$open-accordion} {
306
333
  --_list-item-background-color: var(--md-comp-list-item-selected-disabled-container-color, var(--md-sys-color-on-surface));
307
334
  --_list-item-background-opacity: var(--md-comp-list-item-selected-disabled-container-opacity, var(--md-sys-state-disabled-state-layer-opacity, 38%));
308
335
  --_list-item-shape: var(--md-comp-list-item-container-selected-disabled-expressive-shape, var(--md-sys-shape-corner-large, 16px));
@@ -316,7 +343,7 @@ $item-padding-inline: var(--md-comp-list-item-leading-space, 16px) var(--md-comp
316
343
  --statelayer-opacity: var(--md-comp-list-item-selected-disabled-state-layer-opacity, 0%);
317
344
  }
318
345
  }
319
- &:checked, &:has(input[type=checkbox]:checked) {
346
+ &:checked, &:has(input[type=checkbox]:checked), &#{$open-accordion} {
320
347
  --_list-item-background-color: var(--md-comp-list-item-selected-container-color, var(--md-sys-color-secondary-container));
321
348
  --_list-item-background-opacity: 100%;
322
349
  --_overline-color: var(--md-comp-list-item-selected-overline-color, var(--md-sys-color-on-secondary-container));
@@ -327,7 +354,7 @@ $item-padding-inline: var(--md-comp-list-item-leading-space, 16px) var(--md-comp
327
354
  --_trailing-icon-color: var(--md-comp-list-item-selected-trailing-icon-color, var(--md-sys-color-on-secondary-container));
328
355
  }
329
356
  &:not(:disabled):not(.micl-list-item--disabled) {
330
- &:checked, &:has(input[type=checkbox]:checked) {
357
+ &:checked, &:has(input[type=checkbox]:checked), &#{$open-accordion} {
331
358
  --_list-item-shape: var(--md-comp-list-item-container-selected-expressive-shape, var(--md-sys-shape-corner-large, 16px));
332
359
  }
333
360
  input[type=checkbox]:not(:disabled):hover,
@@ -23,8 +23,26 @@
23
23
  @use '../../styles/elevation';
24
24
  @use '../../styles/motion';
25
25
  @use '../../styles/shapes';
26
+ @use '../../styles/statelayer';
26
27
  @use '../../styles/typography';
27
28
 
29
+ @include elevation.level(2);
30
+
31
+ @include shapes.corner('small');
32
+ @include shapes.corner('large');
33
+
34
+ @include statelayer.token('hover-state-layer-opacity');
35
+ @include statelayer.token('focus-state-layer-opacity');
36
+ @include statelayer.token('pressed-state-layer-opacity');
37
+ @include statelayer.token('disabled-state-layer-opacity');
38
+ @include statelayer.token('focus-indicator-thickness');
39
+ @include statelayer.token('focus-indicator-inner-offset');
40
+ @include statelayer.token('backdrop-opacity');
41
+
42
+ @include typography.scale('label-large');
43
+ @include typography.scale('label-small');
44
+ @include typography.scale('body-small');
45
+
28
46
  :root {
29
47
  --md-comp-menu-width-max: 320px;
30
48
  --md-comp-menu-width-min: 112px;
@@ -27,6 +27,23 @@
27
27
  @use '../../styles/statelayer';
28
28
  @use '../../styles/typography';
29
29
 
30
+ @include elevation.level(0);
31
+ @include elevation.level(2);
32
+
33
+ @include shapes.corner('large');
34
+
35
+ @include statelayer.token('hover-state-layer-opacity');
36
+ @include statelayer.token('focus-state-layer-opacity');
37
+ @include statelayer.token('pressed-state-layer-opacity');
38
+ @include statelayer.token('backdrop-opacity');
39
+ @include statelayer.token('ripple-opacity-factor');
40
+ @include statelayer.token('ripple-duration');
41
+ @include statelayer.property;
42
+ @include statelayer.keyframes;
43
+
44
+ @include typography.scale('label-large');
45
+ @include typography.scale('label-medium');
46
+
30
47
  .micl-navigationrail {
31
48
  --md-comp-nav-rail-spring-buffer: 100px;
32
49
  --md-comp-nav-rail-divider-thickness: 0px;