material-inspired-component-library 1.1.1 → 1.2.2

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 (57) hide show
  1. package/README.md +4 -0
  2. package/components/bottomsheet/index.scss +18 -16
  3. package/components/button/index.scss +6 -2
  4. package/components/card/index.scss +5 -2
  5. package/components/checkbox/index.scss +5 -4
  6. package/components/dialog/index.scss +28 -23
  7. package/components/iconbutton/index.scss +6 -2
  8. package/components/list/README.md +51 -21
  9. package/components/list/index.scss +122 -57
  10. package/components/list/index.ts +1 -1
  11. package/components/menu/index.scss +17 -13
  12. package/components/radio/index.scss +8 -5
  13. package/components/select/index.scss +1 -3
  14. package/components/sidesheet/index.scss +21 -19
  15. package/components/slider/README.md +8 -0
  16. package/components/slider/index.scss +140 -51
  17. package/components/slider/index.ts +67 -31
  18. package/components/switch/index.scss +11 -8
  19. package/components/textfield/index.scss +8 -5
  20. package/dist/bottomsheet.css +1 -1
  21. package/dist/button.css +1 -1
  22. package/dist/card.css +1 -1
  23. package/dist/checkbox.css +1 -1
  24. package/dist/dialog.css +1 -1
  25. package/dist/iconbutton.css +1 -1
  26. package/dist/list.css +1 -1
  27. package/dist/menu.css +1 -1
  28. package/dist/micl.css +1 -1
  29. package/dist/micl.js +1 -1
  30. package/dist/radio.css +1 -1
  31. package/dist/select.css +1 -1
  32. package/dist/sidesheet.css +1 -1
  33. package/dist/slider.css +1 -1
  34. package/dist/switch.css +1 -1
  35. package/dist/textfield.css +1 -1
  36. package/docs/accordion.html +1 -1
  37. package/docs/bottomsheet.html +2 -2
  38. package/docs/button.html +1 -1
  39. package/docs/card.html +1 -1
  40. package/docs/checkbox.html +1 -1
  41. package/docs/dialog.html +6 -6
  42. package/docs/divider.html +1 -1
  43. package/docs/iconbutton.html +1 -1
  44. package/docs/index.html +2 -2
  45. package/docs/list.html +51 -34
  46. package/docs/menu.html +15 -11
  47. package/docs/micl.css +1 -1
  48. package/docs/micl.js +1 -1
  49. package/docs/radio.html +1 -1
  50. package/docs/select.html +11 -9
  51. package/docs/sidesheet.html +1 -1
  52. package/docs/slider.html +57 -21
  53. package/docs/switch.html +1 -1
  54. package/docs/textfield.html +1 -1
  55. package/micl.ts +5 -1
  56. package/package.json +1 -1
  57. package/styles/layout.scss +74 -0
@@ -37,10 +37,13 @@
37
37
  }
38
38
 
39
39
  .micl-list {
40
- --md-sys-list-item-background-color: var(--md-sys-color-surface);
40
+ --md-sys-list-item-container-color: var(--md-sys-color-surface);
41
+ --md-sys-list-motion-duration: #{motion.$md-sys-motion-expressive-default-effects-duration};
42
+ --md-sys-accordion-motion-spatial: #{motion.$md-sys-motion-expressive-default-spatial};
43
+ --md-sys-accordion-motion-duration: #{motion.$md-sys-motion-expressive-default-spatial-duration};
41
44
 
42
45
  margin: 0;
43
- padding: 0;
46
+ padding: 8px 0;
44
47
  interpolate-size: allow-keywords;
45
48
  list-style-type: none;
46
49
 
@@ -49,8 +52,8 @@
49
52
  height: 0;
50
53
  overflow: hidden;
51
54
  transition:
52
- content-visibility var(--md-sys-motion-duration-medium4) allow-discrete,
53
- height var(--md-sys-motion-duration-medium4) linear(motion.$md-sys-motion-spring-default-spatial);
55
+ height var( --md-sys-accordion-motion-duration) var(--md-sys-accordion-motion-spatial),
56
+ content-visibility var(--md-sys-accordion-motion-duration) linear allow-discrete;
54
57
  }
55
58
  &[open]::details-content {
56
59
  height: auto;
@@ -68,8 +71,8 @@
68
71
  pointer-events: none;
69
72
  }
70
73
  &:not(.micl-list-item--disabled) {
71
- --miclripple: 1;
72
74
  @include ripple.effect;
75
+ --miclripple: 1;
73
76
 
74
77
  cursor: pointer;
75
78
  }
@@ -77,7 +80,7 @@
77
80
  .micl-list-item__content {
78
81
  box-sizing: border-box;
79
82
  padding-inline: var(--md-sys-list-item-padding-inline);
80
- background-color: var(--md-sys-list-item-background-color);
83
+ background-color: var(--md-sys-list-item-container-color);
81
84
  overflow: hidden;
82
85
  }
83
86
  }
@@ -95,16 +98,33 @@
95
98
  .micl-list-item-one,
96
99
  .micl-list-item-two,
97
100
  .micl-list-item-three {
101
+ --md-sys-list-item-thumbnail-aspect-ratio: 1.778;
102
+
98
103
  box-sizing: border-box;
99
104
  display: flex;
100
105
  align-items: center;
101
106
  column-gap: var(--md-sys-list-item-space);
102
107
  padding-inline: var(--md-sys-list-item-space);
103
108
  border-radius: var(--md-sys-shape-corner-none);
104
- background-color: var(--md-sys-list-item-background-color);
109
+ background-color: var(--md-sys-list-item-container-color);
105
110
  list-style: none;
106
- transition: background-color var(--md-sys-motion-duration-long2) linear;
111
+ transition: background-color var(--md-sys-list-motion-duration) linear;
107
112
 
113
+ &> a,
114
+ &> label {
115
+ display: inherit;
116
+ align-items: inherit;
117
+ column-gap: inherit;
118
+ border-radius: inherit;
119
+ background-color: inherit;
120
+ inline-size: 100%;
121
+ padding-inline: var(--md-sys-list-item-space);
122
+ text-decoration: none;
123
+ cursor: pointer;
124
+ }
125
+ &:has(> a,> label) {
126
+ padding-inline: 0;
127
+ }
108
128
  &:disabled,
109
129
  &.micl-list-item--disabled {
110
130
  .micl-list-item__icon,
@@ -119,12 +139,16 @@
119
139
  .micl-list-item__thumbnail {
120
140
  opacity: 38%;
121
141
  }
142
+ a, label {
143
+ pointer-events: none;
144
+ cursor: auto;
145
+ }
122
146
  }
123
147
  &:not(:disabled):not(.micl-list-item--disabled) {
124
148
  &:hover {
125
- background-color: color-mix(in srgb, var(--md-sys-list-item-background-color), var(--md-sys-color-on-surface) var(--md-sys-state-hover-state-layer-opacity));
149
+ background-color: color-mix(in srgb, var(--md-sys-list-item-container-color), var(--md-sys-color-on-surface) var(--md-sys-state-hover-state-layer-opacity));
126
150
 
127
- &:has(input[type=checkbox].micl-checkbox) {
151
+ &:has(input[type=checkbox]) {
128
152
  cursor: pointer;
129
153
  }
130
154
  .micl-list-item__icon {
@@ -133,26 +157,26 @@
133
157
  }
134
158
  &:focus-visible {
135
159
  outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
136
- background-color: color-mix(in srgb, var(--md-sys-list-item-background-color), var(--md-sys-color-on-surface) var(--md-sys-state-focus-state-layer-opacity));
137
- z-index: 1;
160
+ outline-offset: calc(-1 * var(--md-sys-state-focus-indicator-thickness));
161
+ background-color: color-mix(in srgb, var(--md-sys-list-item-container-color), var(--md-sys-color-on-surface) var(--md-sys-state-focus-state-layer-opacity));
138
162
 
139
163
  .micl-list-item__icon {
140
164
  font-variation-settings: 'FILL' 1;
141
165
  }
142
166
  }
143
167
  &:active {
144
- background-color: color-mix(in srgb, var(--md-sys-list-item-background-color), var(--md-sys-color-on-surface) var(--md-sys-state-pressed-state-layer-opacity));
168
+ background-color: color-mix(in srgb, var(--md-sys-list-item-container-color), var(--md-sys-color-on-surface) var(--md-sys-state-pressed-state-layer-opacity));
145
169
 
146
170
  .micl-list-item__icon {
147
171
  font-variation-settings: 'FILL' 1;
148
172
  }
149
173
  }
150
- &:has(input[type=checkbox].micl-checkbox) {
174
+ &:has(input[type=checkbox]) {
175
+ @include ripple.effect;
151
176
  --miclripple: 1;
152
177
  --md-sys-ripple-background-color: var(--md-sys-color-primary);
153
- @include ripple.effect;
154
178
  }
155
- &:has(input[type=checkbox].micl-checkbox:checked) {
179
+ &:has(input[type=checkbox]:checked) {
156
180
  background-color: var(--md-sys-color-secondary-container);
157
181
 
158
182
  .micl-list-item__headline {
@@ -163,45 +187,70 @@
163
187
  .micl-list-item__trailing-text {
164
188
  color: var(--md-sys-color-on-surface);
165
189
  }
190
+ &:focus-visible {
191
+ background-color: color-mix(in srgb, var(--md-sys-color-secondary-container), var(--md-sys-color-on-surface) var(--md-sys-state-focus-state-layer-opacity));
192
+ }
193
+ &:active {
194
+ background-color: color-mix(in srgb, var(--md-sys-color-secondary-container), var(--md-sys-color-on-surface) var(--md-sys-state-pressed-state-layer-opacity));
195
+ }
166
196
  }
167
- input[type=checkbox].micl-checkbox:not(:disabled):hover,
168
- input[type=checkbox].micl-checkbox:not(:disabled):active {
197
+ input[type=checkbox]:not(:disabled):hover,
198
+ input[type=checkbox]:not(:disabled):active {
169
199
  --checkbox-state-layer-color: initial;
170
200
  --checkbox-outline-color: initial;
171
201
  --md-sys-ripple-background-color: transparent;
172
202
  }
173
203
  }
174
- &> a {
175
- box-sizing: border-box;
176
- display: flex;
177
- align-items: center;
178
- align-self: normal;
179
- width: 100%;
180
- column-gap: var(--md-sys-list-item-space);
181
- text-decoration: none;
182
- }
183
204
  }
184
205
 
185
206
  .micl-list-item-one {
186
207
  min-height: var(--md-sys-list-item-one-height);
187
- padding-block-start: var(--md-sys-list-item-one-padding);
188
- padding-block-end: var(--md-sys-list-item-one-padding);
189
208
 
190
- &:has(.micl-list-item__thumbnail) {
191
- padding-block-start: var(--md-sys-list-item-three-padding);
192
- padding-block-end: var(--md-sys-list-item-three-padding);
193
- padding-inline-start: 0px;
209
+ &:not(:has(> a,> label)) {
210
+ padding-block-start: var(--md-sys-list-item-one-padding);
211
+ padding-block-end: var(--md-sys-list-item-one-padding);
212
+
213
+ &:has(.micl-list-item__thumbnail) {
214
+ padding-block-start: var(--md-sys-list-item-three-padding);
215
+ padding-block-end: var(--md-sys-list-item-three-padding);
216
+ padding-inline-start: 0px;
217
+ }
218
+ }
219
+ &> a,
220
+ &> label {
221
+ padding-block-start: var(--md-sys-list-item-one-padding);
222
+ padding-block-end: var(--md-sys-list-item-one-padding);
223
+
224
+ &:has(.micl-list-item__thumbnail) {
225
+ padding-block-start: var(--md-sys-list-item-three-padding);
226
+ padding-block-end: var(--md-sys-list-item-three-padding);
227
+ padding-inline-start: 0px;
228
+ }
194
229
  }
195
230
  }
196
231
  .micl-list-item-two {
197
232
  min-height: var(--md-sys-list-item-two-height);
198
- padding-block-start: var(--md-sys-list-item-two-padding);
199
- padding-block-end: var(--md-sys-list-item-two-padding);
200
233
 
201
- &:has(.micl-list-item__thumbnail) {
202
- padding-inline-start: 0px;
203
- padding-block-start: 12px;
204
- padding-block-end: 12px;
234
+ &:not(:has(> a, > label)) {
235
+ padding-block-start: var(--md-sys-list-item-two-padding);
236
+ padding-block-end: var(--md-sys-list-item-two-padding);
237
+
238
+ &:has(.micl-list-item__thumbnail) {
239
+ padding-inline-start: 0px;
240
+ padding-block-start: 12px;
241
+ padding-block-end: 12px;
242
+ }
243
+ }
244
+ &> a,
245
+ &> label {
246
+ padding-block-start: var(--md-sys-list-item-two-padding);
247
+ padding-block-end: var(--md-sys-list-item-two-padding);
248
+
249
+ &:has(.micl-list-item__thumbnail) {
250
+ padding-inline-start: 0px;
251
+ padding-block-start: 12px;
252
+ padding-block-end: 12px;
253
+ }
205
254
  }
206
255
  .micl-list-item__supporting-text {
207
256
  white-space: nowrap;
@@ -211,13 +260,27 @@
211
260
  }
212
261
  .micl-list-item-three {
213
262
  min-height: var(--md-sys-list-item-three-height);
214
- padding-block-start: var(--md-sys-list-item-three-padding);
215
- padding-block-end: var(--md-sys-list-item-three-padding);
216
263
 
217
- &:has(.micl-list-item__thumbnail) {
264
+ &:not(:has(> a, > label)) {
265
+ padding-block-start: var(--md-sys-list-item-three-padding);
266
+ padding-block-end: var(--md-sys-list-item-three-padding);
267
+
268
+ &:has(.micl-list-item__thumbnail) {
269
+ padding-block-start: var(--md-sys-list-item-three-padding);
270
+ padding-block-end: var(--md-sys-list-item-three-padding);
271
+ padding-inline-start: 0px;
272
+ }
273
+ }
274
+ &> a,
275
+ &> label {
218
276
  padding-block-start: var(--md-sys-list-item-three-padding);
219
277
  padding-block-end: var(--md-sys-list-item-three-padding);
220
- padding-inline-start: 0px;
278
+
279
+ &:has(.micl-list-item__thumbnail) {
280
+ padding-block-start: var(--md-sys-list-item-three-padding);
281
+ padding-block-end: var(--md-sys-list-item-three-padding);
282
+ padding-inline-start: 0px;
283
+ }
221
284
  }
222
285
  .micl-list-item__icon,
223
286
  .micl-list-item__avatar,
@@ -230,7 +293,7 @@
230
293
  -webkit-box-orient: vertical;
231
294
  -webkit-line-clamp: 2;
232
295
  }
233
- input[type=checkbox].micl-checkbox {
296
+ input[type=checkbox] {
234
297
  align-self: flex-start;
235
298
  margin-block-start: -12px;
236
299
  }
@@ -238,37 +301,39 @@
238
301
 
239
302
  .micl-list-item__icon {
240
303
  color: var(--md-sys-color-on-surface-variant);
304
+ font-size: 24px;
241
305
  font-variation-settings: 'FILL' 0;
242
- transition: font-variation-settings var(--md-sys-motion-duration-long2) linear;
306
+ transition: font-variation-settings var(--md-sys-list-motion-duration) linear;
243
307
  }
244
308
  .micl-list-item__avatar {
245
- font-size: 40px;
246
- border-radius: var(--md-sys-shape-corner-full);
247
- color: var(--md-sys-color-primary-container);
248
- }
249
- .micl-list-item__avatar-text {
250
309
  @include typography.title-medium;
251
310
 
252
- color: var(--md-sys-on-primary-container);
311
+ display: flex;
312
+ align-items: center;
313
+ justify-content: center;
314
+ block-size: 40px;
315
+ min-inline-size: 40px;
316
+ border-radius: var(--md-sys-shape-corner-full);
317
+ color: var(--md-sys-color-on-primary-container);
318
+ background-color: var(--md-sys-color-primary-container);
253
319
  }
254
320
  .micl-list-item__image {
255
321
  display: inline-block;
256
- width: 56px;
257
322
  height: 56px;
258
323
  min-width: 56px;
259
- min-height: 56px;
260
324
  border-radius: var(--md-sys-shape-corner-none);
325
+ background-position: center;
326
+ background-repeat: no-repeat;
261
327
  background-size: cover;
262
328
  }
263
329
  .micl-list-item__thumbnail {
264
330
  display: inline-block;
265
- width: auto;
266
331
  height: 64px;
267
- min-height: 64px;
268
- aspect-ratio: 1.5;
332
+ min-width: calc(64px * var(--md-sys-list-item-thumbnail-aspect-ratio));
269
333
  border-radius: var(--md-sys-shape-corner-none);
270
- background-size: contain;
334
+ background-position: center;
271
335
  background-repeat: no-repeat;
336
+ background-size: contain;
272
337
  }
273
338
 
274
339
  .micl-list-item__text {
@@ -91,7 +91,7 @@ export default (() =>
91
91
  break;
92
92
  case 'Enter':
93
93
  case ' ':
94
- const cb = (event.target as Element).querySelector('input[type=checkbox].micl-checkbox');
94
+ const cb = (event.target as Element).querySelector('input[type=checkbox]');
95
95
  if (cb instanceof HTMLInputElement) {
96
96
  cb.checked = !cb.checked;
97
97
  }
@@ -26,6 +26,10 @@
26
26
  @use '../../styles/statelayer';
27
27
 
28
28
  .micl-menu[popover] {
29
+ --md-sys-menu-motion-spatial: #{motion.$md-sys-motion-expressive-default-spatial};
30
+ --md-sys-menu-motion-duration: #{motion.$md-sys-motion-expressive-default-spatial-duration};
31
+ --md-sys-menu-motion-duration-reverse: #{motion.$md-sys-motion-expressive-fast-spatial-duration};
32
+
29
33
  position: absolute;
30
34
  inset: unset;
31
35
  inset-block-start: anchor(end);
@@ -33,29 +37,29 @@
33
37
  position-try-fallbacks: flip-block, flip-inline;
34
38
  min-width: 112px;
35
39
  max-width: 280px;
36
- padding-block: 8px;
37
40
  padding-inline: 0;
38
41
  border: none;
39
42
  border-radius: var(--md-sys-shape-corner-extra-small);
40
43
  background-color: var(--md-sys-color-surface-container);
41
44
  box-shadow: var(--md-sys-elevation-level2);
42
45
  opacity: 0;
46
+ overflow: hidden;
43
47
  transform: scaleY(0);
44
48
  transform-origin: top left;
45
49
  transition:
46
- opacity var(--md-sys-motion-duration-medium1),
47
- transform var(--md-sys-motion-duration-medium1),
48
- overlay var(--md-sys-motion-duration-medium1) allow-discrete,
49
- display var(--md-sys-motion-duration-medium1) allow-discrete;
50
+ opacity var(--md-sys-menu-motion-duration-reverse) linear,
51
+ transform var(--md-sys-menu-motion-duration-reverse) var(--md-sys-menu-motion-spatial),
52
+ overlay var(--md-sys-menu-motion-duration-reverse) linear allow-discrete,
53
+ display var(--md-sys-menu-motion-duration-reverse) linear allow-discrete;
50
54
 
51
55
  &:popover-open {
52
56
  opacity: 1;
53
57
  transform: scaleY(1);
54
58
  transition:
55
- opacity var(--md-sys-motion-duration-long2) motion.$md-sys-motion-easing-emphasized-decelerate,
56
- transform var(--md-sys-motion-duration-long2) linear(motion.$md-sys-motion-spring-default-spatial),
57
- overlay var(--md-sys-motion-duration-long2) linear allow-discrete,
58
- display var(--md-sys-motion-duration-long2) linear allow-discrete;
59
+ opacity var(--md-sys-menu-motion-duration) motion.$md-sys-motion-easing-emphasized-decelerate,
60
+ transform var(--md-sys-menu-motion-duration) var(--md-sys-menu-motion-spatial),
61
+ overlay var(--md-sys-menu-motion-duration) linear allow-discrete,
62
+ display var(--md-sys-menu-motion-duration) linear allow-discrete;
59
63
 
60
64
  @position-try-on {
61
65
  transform-origin: bottom left;
@@ -80,9 +84,9 @@
80
84
  &::backdrop {
81
85
  background-color: rgba(0, 0, 0, 0);
82
86
  transition:
83
- background-color var(--md-sys-motion-duration-long2),
84
- overlay var(--md-sys-motion-duration-long2) linear allow-discrete,
85
- display var(--md-sys-motion-duration-long2) linear allow-discrete;
87
+ background-color var(--md-sys-menu-motion-duration) linear,
88
+ overlay var(--md-sys-menu-motion-duration) linear allow-discrete,
89
+ display var(--md-sys-menu-motion-duration) linear allow-discrete;
86
90
  }
87
91
 
88
92
  .micl-list {
@@ -90,7 +94,7 @@
90
94
  --md-sys-list-item-one-padding: 0;
91
95
  --md-sys-list-item-two-padding: 0;
92
96
  --md-sys-list-item-space: 12px;
93
- --md-sys-list-item-background-color: var(--md-sys-color-surface-container);
97
+ --md-sys-list-item-container-color: var(--md-sys-color-surface-container);
94
98
 
95
99
  .micl-list-item-one,
96
100
  .micl-list-item-two,
@@ -31,6 +31,9 @@
31
31
  }
32
32
 
33
33
  input[type=radio].micl-radio {
34
+ --md-sys-radio-motion-effects: #{motion.$md-sys-motion-expressive-slow-effects};
35
+ --md-sys-radio-motion-duration: #{motion.$md-sys-motion-expressive-slow-effects-duration};
36
+ --md-sys-radio-motion-duration-reverse: #{motion.$md-sys-motion-expressive-default-effects-duration};
34
37
  --md-sys-ripple-background-color: var(--md-sys-color-primary);
35
38
 
36
39
  appearance: none;
@@ -44,7 +47,7 @@ input[type=radio].micl-radio {
44
47
  background-color: transparent;
45
48
  border-radius: var(--md-sys-shape-corner-full);
46
49
  outline-offset: -7px;
47
- transition: background-color var(--md-sys-motion-duration-long2);
50
+ transition: background-color var(--md-sys-radio-motion-duration) linear;
48
51
 
49
52
  &::after {
50
53
  content: "";
@@ -60,15 +63,15 @@ input[type=radio].micl-radio {
60
63
  background-clip: content-box;
61
64
  border-radius: var(--md-sys-shape-corner-full);
62
65
  transition:
63
- padding var(--md-sys-motion-duration-medium2) motion.$md-sys-motion-easing-emphasized,
64
- border-color var(--md-sys-motion-duration-medium2) motion.$md-sys-motion-easing-emphasized;
66
+ padding var(--md-sys-radio-motion-duration-reverse) var(--md-sys-radio-motion-effects),
67
+ border-color var(--md-sys-radio-motion-duration-reverse) motion.$md-sys-motion-easing-emphasized;
65
68
  }
66
69
  &:checked::after {
67
70
  border-color: var(--md-sys-color-primary);
68
71
  padding: 3px;
69
72
  transition:
70
- padding var(--md-sys-motion-duration-long4) linear(motion.$md-sys-motion-spring-slow-spatial),
71
- border-color var(--md-sys-motion-duration-long4) motion.$md-sys-motion-easing-emphasized;
73
+ padding var(--md-sys-radio-motion-duration) var(--md-sys-radio-motion-effects),
74
+ border-color var(--md-sys-radio-motion-duration) motion.$md-sys-motion-easing-emphasized;
72
75
  }
73
76
  &:not(:disabled) {
74
77
  --miclripple: 1;
@@ -20,7 +20,6 @@
20
20
  // SOFTWARE.
21
21
 
22
22
  @use '../../styles/elevation';
23
- @use '../../styles/motion';
24
23
  @use '../../styles/ripple';
25
24
  @use '../../styles/shapes';
26
25
  @use '../../styles/statelayer';
@@ -63,8 +62,7 @@
63
62
  --md-sys-list-item-two-padding: 0;
64
63
  --md-sys-list-item-space: 12px;
65
64
  --md-sys-list-item-padding-inline: 16px;
66
- --md-sys-list-item-background-color: var(--md-sys-color-surface-container);
67
- --md-sys-motion-duration-long2: 500ms;
65
+ --md-sys-list-item-container-color: var(--md-sys-color-surface-container);
68
66
  --md-sys-state-hover-state-layer-opacity: #{statelayer.$md-sys-state-hover-state-layer-opacity};
69
67
  --md-sys-state-focus-state-layer-opacity: #{statelayer.$md-sys-state-focus-state-layer-opacity};
70
68
  --md-sys-state-pressed-state-layer-opacity: #{statelayer.$md-sys-state-pressed-state-layer-opacity};
@@ -30,6 +30,9 @@ dialog.micl-sidesheet {
30
30
  --md-sys-sidesheet-spring-buffer: 200px;
31
31
  --md-sys-sidesheet-padding-standard: 24px;
32
32
  --md-sys-sidesheet-padding-modal: 16px;
33
+ --md-sys-sidesheet-motion-spatial: #{motion.$md-sys-motion-expressive-slow-spatial};
34
+ --md-sys-sidesheet-motion-duration: #{motion.$md-sys-motion-expressive-slow-spatial-duration};
35
+ --md-sys-sidesheet-motion-duration-reverse: #{motion.$md-sys-motion-expressive-default-spatial-duration};
33
36
 
34
37
  box-sizing: border-box;
35
38
  display: none;
@@ -53,10 +56,10 @@ dialog.micl-sidesheet {
53
56
  opacity: 0;
54
57
  overflow: hidden;
55
58
  transition:
56
- display var(--md-sys-motion-duration-medium1) allow-discrete,
57
- overlay var(--md-sys-motion-duration-medium1) allow-discrete,
58
- opacity var(--md-sys-motion-duration-medium1),
59
- margin-inline-end var(--md-sys-motion-duration-medium1);
59
+ opacity var(--md-sys-sidesheet-motion-duration-reverse) linear,
60
+ margin-inline-end var(--md-sys-sidesheet-motion-duration-reverse) var(--md-sys-sidesheet-motion-spatial),
61
+ overlay var(--md-sys-sidesheet-motion-duration-reverse) linear allow-discrete,
62
+ display var(--md-sys-sidesheet-motion-duration-reverse) linear allow-discrete;
60
63
 
61
64
  .micl-sidesheet__headline {
62
65
  display: flex;
@@ -109,9 +112,9 @@ dialog.micl-sidesheet {
109
112
  &::backdrop {
110
113
  background-color: rgba(0, 0, 0, 0);
111
114
  transition:
112
- display var(--md-sys-motion-duration-long2) linear allow-discrete,
113
- overlay var(--md-sys-motion-duration-long2) linear allow-discrete,
114
- background-color var(--md-sys-motion-duration-long2);
115
+ background-color var(--md-sys-sidesheet-motion-duration) linear,
116
+ overlay var(--md-sys-sidesheet-motion-duration) linear allow-discrete,
117
+ display var(--md-sys-sidesheet-motion-duration) linear allow-discrete;
115
118
  }
116
119
  &[open] {
117
120
  background-color: var(--md-sys-color-surface-container-low);
@@ -132,23 +135,22 @@ dialog.micl-sidesheet {
132
135
  margin-inline-end: calc(-1 * var(--md-sys-sidesheet-spring-buffer));
133
136
  opacity: 1;
134
137
  transition:
135
- display var(--md-sys-motion-duration-long2) linear allow-discrete,
136
- overlay var(--md-sys-motion-duration-long2) linear allow-discrete,
137
- opacity var(--md-sys-motion-duration-long2) motion.$md-sys-motion-easing-emphasized-decelerate,
138
- margin-inline-end var(--md-sys-motion-duration-long2) linear(motion.$md-sys-motion-spring-default-spatial);
138
+ opacity var(--md-sys-sidesheet-motion-duration) linear,
139
+ margin-inline-end var(--md-sys-sidesheet-motion-duration) var(--md-sys-sidesheet-motion-spatial),
140
+ overlay var(--md-sys-sidesheet-motion-duration) linear allow-discrete,
141
+ display var(--md-sys-sidesheet-motion-duration) linear allow-discrete;
139
142
 
140
143
  @starting-style {
141
- opacity: 0;
142
144
  margin-inline-end: calc(-1 * (var(--md-sys-sidesheet-maxwidth) + var(--md-sys-sidesheet-spring-buffer)));
143
- }
144
- &::backdrop {
145
- @starting-style {
146
- background-color: rgba(0, 0, 0, 0);
147
- }
145
+ opacity: 0;
148
146
  }
149
147
  }
150
148
  &[open]::backdrop {
151
149
  background-color: rgba(0, 0, 0, 0.2);
150
+
151
+ @starting-style {
152
+ background-color: rgba(0, 0, 0, 0);
153
+ }
152
154
  }
153
155
  }
154
156
 
@@ -156,9 +158,9 @@ body:has(dialog.micl-sidesheet[popover]) {
156
158
  box-sizing: border-box;
157
159
  max-width: 100%;
158
160
  margin: 0;
159
- transition: max-width var(--md-sys-motion-duration-medium1);
161
+ transition: max-width var(--md-sys-sidesheet-motion-duration-reverse);
160
162
  }
161
163
  body:has(dialog.micl-sidesheet:popover-open) {
162
164
  max-width: calc(100vw - 400px);
163
- transition: max-width var(--md-sys-motion-duration-long2) linear(motion.$md-sys-motion-spring-default-spatial);
165
+ transition: max-width var(--md-sys-sidesheet-motion-duration) var(--md-sys-sidesheet-motion-spatial);
164
166
  }
@@ -65,3 +65,11 @@ The Slider component is aware of the `dir` global attribute that indicates the d
65
65
 
66
66
  ## Compatibility
67
67
  This component uses the `color-mix` CSS functional notation, which might not be supported in your browser. Please check [Browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix#browser_compatibility) for details.
68
+
69
+ > [!NOTE]
70
+ > **Gecko browsers** The Slider component uses the `::after` pseudo-element to display the value indicator. For this to work on **Gecko** browsers, like Mozilla Firefox, wrap the Slider component inside a slider container:
71
+ ```HTML
72
+ <div class="micl-slider__container">
73
+ <input type="range" class="micl-slider-l" value="0">
74
+ </div>
75
+ ```