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
package/README.md CHANGED
@@ -78,6 +78,15 @@ Copy the main `micl.js` file to your distribution folder and include it in your
78
78
  ```
79
79
  This will initialize all MICL components, including those that will be added to the DOM later on.
80
80
 
81
+ ### 4. Add a font
82
+ MICL uses the [**Google Sans**](https://fonts.google.com/specimen/Google+Sans) as its default font. Include a reference to this font in your application.
83
+
84
+ ```HTML
85
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&display=swap">
86
+ ```
87
+
88
+ The [Styles guide](styles/README.md) describes how to change the default font.
89
+
81
90
  ## Foundations 🪟
82
91
  A separate CSS file, based on the [Material Design Layout Foundation](https://m3.material.io/foundations/layout/understanding-layout/overview), provides styles for an adaptive layout. It includes styles for the **window frame**, **body region** and **panes** that adjust to the available screen space, ensuring your layout follows Material Design's responsive guidelines.
83
92
 
@@ -93,6 +102,7 @@ The library currently consists of the following components:
93
102
  - [x] [Button](components/button/README.md)
94
103
  - [x] [Card](components/card/README.md)
95
104
  - [x] [Checkbox](components/checkbox/README.md)
105
+ - [ ] [Date picker]()
96
106
  - [x] [Dialog](components/dialog/README.md)
97
107
  - [x] [Divider](components/divider/README.md)
98
108
  - [x] [Icon button](components/iconbutton/README.md)
@@ -106,9 +116,13 @@ The library currently consists of the following components:
106
116
  - [x] [Stepper](components/stepper/README.md)
107
117
  - [x] [Switch](components/switch/README.md)
108
118
  - [x] [Text field](components/textfield/README.md)
119
+ - [x] [Time picker](components/timepicker/README.md)
109
120
 
110
121
  ## Change Log ↪️
111
122
 
123
+ ### 5.0.0 (02.12.2025)
124
+ - **Time picker**: New component.
125
+
112
126
  ### 4.0.0 (27.10.2025)
113
127
  - **BREAKING**: Moved layout.scss til sub-folder.
114
128
  - **Alert**: New component.
@@ -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/shapes';
24
24
  @use '../../styles/typography';
25
25
 
@@ -46,9 +46,9 @@
46
46
  color: var(--md-sys-alert-color);
47
47
 
48
48
  .micl-alert__icon {
49
- block-size: var(--md-sys-layout-icon-size, 24px);
50
- inline-size: var(--md-sys-layout-icon-size, 24px);
51
- font-size: var(--md-sys-layout-icon-size, 24px);
49
+ block-size: var(--md-sys-icon-size, 24px);
50
+ inline-size: var(--md-sys-icon-size, 24px);
51
+ font-size: var(--md-sys-icon-size, 24px);
52
52
  }
53
53
  .micl-alert__text {
54
54
  display: flex;
@@ -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/shapes';
@@ -66,7 +67,7 @@
66
67
  }
67
68
  .micl-appbar__leading-icon {
68
69
  grid-area: appbar-leading;
69
- margin-inline-start: calc(var(--md-sys-layout-window-margin) - (var(--micl-width, statelayer.$md-sys-target-size) / 2) + (var(--md-sys-layout-icon-size, 24px) / 2) - var(--md-sys-appbar-padding-inline));
70
+ margin-inline-start: calc(var(--md-sys-layout-window-margin) - (var(--micl-width, statelayer.$md-sys-target-size) / 2) + (var(--md-sys-icon-size, 24px) / 2) - var(--md-sys-appbar-padding-inline));
70
71
  color: var(--md-sys-color-on-surface);
71
72
  }
72
73
  .micl-appbar__headline {
@@ -103,7 +104,7 @@
103
104
  }
104
105
  .micl-appbar__trailing-icon {
105
106
  grid-area: appbar-trailing;
106
- margin-inline-end: calc(var(--md-sys-layout-window-margin) - (var(--micl-width, statelayer.$md-sys-target-size) / 2) + (var(--md-sys-layout-icon-size, 24px) / 2) - var(--md-sys-appbar-padding-inline));
107
+ margin-inline-end: calc(var(--md-sys-layout-window-margin) - (var(--micl-width, statelayer.$md-sys-target-size) / 2) + (var(--md-sys-icon-size, 24px) / 2) - var(--md-sys-appbar-padding-inline));
107
108
  color: var(--md-sys-color-on-surface-variant);
108
109
  }
109
110
  &.micl-appbar--medium {
@@ -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/typography';
24
24
 
25
25
  :root {
@@ -68,7 +68,7 @@
68
68
  margin-block: calc(12px + var(--md-sys-badge-block-offset)) auto;
69
69
 
70
70
  &.micl-badge--small {
71
- margin-inline-start: calc(var(--md-sys-layout-icon-size) - var(--md-sys-badge-small-size) - var(--md-sys-badge-inline-offset));
71
+ margin-inline-start: calc(var(--md-sys-icon-size) - var(--md-sys-badge-small-size) - var(--md-sys-badge-inline-offset));
72
72
  }
73
73
  &:not(.micl-badge--small) {
74
74
  margin-inline-start: calc(12px - var(--md-sys-badge-inline-offset));
@@ -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';
@@ -64,7 +65,7 @@ dialog.micl-bottomsheet {
64
65
  display: flex;
65
66
  align-items: center;
66
67
  inline-size: 100%;
67
- block-size: var(--md-sys-target-size);
68
+ block-size: var(--md-sys-target-size, 48px);
68
69
  justify-content: center;
69
70
  cursor: grab;
70
71
 
@@ -72,7 +73,7 @@ dialog.micl-bottomsheet {
72
73
  box-sizing: content-box;
73
74
  inline-size: var(--md-sys-bottomsheet-handle-width);
74
75
  block-size: var(--md-sys-bottomsheet-handle-height);
75
- padding: 16px calc((var(--md-sys-target-size) - var(--md-sys-bottomsheet-handle-width)) / 2);
76
+ padding: 16px calc((var(--md-sys-target-size, 48px) - var(--md-sys-bottomsheet-handle-width)) / 2);
76
77
  border: none;
77
78
  border-radius: var(--md-sys-shape-corner-small);
78
79
  background-color: var(--md-sys-color-on-surface-variant);
@@ -80,8 +81,8 @@ dialog.micl-bottomsheet {
80
81
  cursor: pointer;
81
82
 
82
83
  &:focus-visible {
83
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
84
- outline-offset: var(--md-sys-state-focus-indicator-outer-offset);
84
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
85
+ outline-offset: var(--md-sys-state-focus-indicator-outer-offset, 2px);
85
86
  }
86
87
  }
87
88
  }
@@ -119,7 +120,7 @@ dialog.micl-bottomsheet {
119
120
  }
120
121
  }
121
122
  &[open]::backdrop {
122
- background-color: rgba(0, 0, 0, 0.2);
123
+ background-color: rgba(0, 0, 0, var(--md-sys-state-backdrop-opacity, 32%));
123
124
 
124
125
  @starting-style {
125
126
  background-color: rgba(0, 0, 0, 0);
@@ -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';
@@ -62,6 +62,7 @@ button.micl-button-outlined-xl {
62
62
 
63
63
  position: relative;
64
64
  display: inline-flex;
65
+ flex-shrink: 0;
65
66
  align-items: center;
66
67
  justify-content: center;
67
68
  padding: 0;
@@ -81,13 +82,13 @@ button.micl-button-outlined-xl {
81
82
 
82
83
  &:disabled {
83
84
  background-color: rgb(from var(--md-sys-color-on-surface) r g b / 10%);
84
- color: rgb(from var(--md-sys-color-on-surface) r g b / 38%);
85
+ color: rgb(from var(--md-sys-color-on-surface) r g b / var(--md-sys-state-disabled-state-layer-opacity, 38%));
85
86
  box-shadow: var(--md-sys-elevation-level0);
86
87
  cursor: default;
87
88
  }
88
89
  &:not(:disabled) {
89
90
  &:focus-visible {
90
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
91
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
91
92
  outline-offset: 3px;
92
93
  }
93
94
  &:active {
@@ -229,8 +230,8 @@ button.micl-button-outlined-m {
229
230
  }
230
231
  }
231
232
  .micl-button__icon {
232
- font-size: var(--md-sys-layout-icon-size, 24px);
233
- inline-size: var(--md-sys-layout-icon-size, 24px);
233
+ font-size: var(--md-sys-icon-size, 24px);
234
+ inline-size: var(--md-sys-icon-size, 24px);
234
235
  }
235
236
  }
236
237
 
@@ -323,17 +324,17 @@ button.micl-button-text-xl {
323
324
 
324
325
  &:not(:disabled) {
325
326
  &:hover {
326
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
327
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
327
328
 
328
329
  .micl-button__icon {
329
330
  font-variation-settings: 'FILL' 1;
330
331
  }
331
332
  }
332
333
  &:focus-visible {
333
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
334
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
334
335
  }
335
336
  &:active {
336
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
337
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
337
338
  }
338
339
  }
339
340
  }
@@ -361,17 +362,17 @@ button.micl-button-elevated-xl {
361
362
  }
362
363
  }
363
364
  &:hover {
364
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
365
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
365
366
 
366
367
  .micl-button__icon {
367
368
  font-variation-settings: 'FILL' 1;
368
369
  }
369
370
  }
370
371
  &:focus-visible {
371
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
372
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
372
373
  }
373
374
  &:active {
374
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
375
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
375
376
  }
376
377
  }
377
378
  }
@@ -407,17 +408,17 @@ button.micl-button-filled-xl {
407
408
  color: var(--md-sys-color-on-surface-variant);
408
409
  }
409
410
  &:hover {
410
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
411
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
411
412
 
412
413
  .micl-button__icon {
413
414
  font-variation-settings: 'FILL' 1;
414
415
  }
415
416
  }
416
417
  &:focus-visible {
417
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
418
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
418
419
  }
419
420
  &:active {
420
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
421
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
421
422
  }
422
423
  }
423
424
  }
@@ -444,17 +445,17 @@ button.micl-button-tonal-xl {
444
445
  }
445
446
  }
446
447
  &:hover {
447
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
448
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
448
449
 
449
450
  .micl-button__icon {
450
451
  font-variation-settings: 'FILL' 1;
451
452
  }
452
453
  }
453
454
  &:focus-visible {
454
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
455
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
455
456
  }
456
457
  &:active {
457
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
458
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
458
459
  }
459
460
  }
460
461
  }
@@ -481,17 +482,17 @@ button.micl-button-outlined-xl {
481
482
  }
482
483
  }
483
484
  &:hover {
484
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
485
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
485
486
 
486
487
  .micl-button__icon {
487
488
  font-variation-settings: 'FILL' 1;
488
489
  }
489
490
  }
490
491
  &:focus-visible {
491
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
492
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
492
493
  }
493
494
  &:active {
494
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
495
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
495
496
  }
496
497
  }
497
498
  }
@@ -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';
@@ -61,25 +62,25 @@
61
62
  --statelayer-opacity var(--md-sys-card-motion-duration) linear;
62
63
 
63
64
  &:hover {
64
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
65
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
65
66
 
66
67
  box-shadow: var(--md-sys-elevation-level1);
67
68
  cursor: pointer;
68
69
  }
69
70
  &:focus-visible {
70
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
71
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
71
72
 
72
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
73
- outline-offset: var(--md-sys-state-focus-indicator-outer-offset);
73
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
74
+ outline-offset: var(--md-sys-state-focus-indicator-outer-offset, 2px);
74
75
  }
75
76
  &:active {
76
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
77
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
77
78
 
78
79
  background-size: 0%, 100%;
79
80
  transition: background-size 0ms;
80
81
  }
81
82
  &.micl-card--dragging {
82
- --statelayer-opacity: var(--md-sys-state-dragged-state-layer-opacity);
83
+ --statelayer-opacity: var(--md-sys-state-dragged-state-layer-opacity, 16%);
83
84
 
84
85
  box-shadow: var(--md-sys-elevation-level3);
85
86
  cursor: grabbing;
@@ -89,8 +90,8 @@
89
90
  }
90
91
  }
91
92
  &:not([tabindex='0']):not(.micl-card--disabled):has(> summary:focus-visible) {
92
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
93
- outline-offset: var(--md-sys-state-focus-indicator-outer-offset);
93
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
94
+ outline-offset: var(--md-sys-state-focus-indicator-outer-offset, 2px);
94
95
  }
95
96
  &::details-content {
96
97
  block-size: 0;
@@ -145,7 +146,7 @@
145
146
  }
146
147
 
147
148
  .micl-card--disabled {
148
- opacity: 38%;
149
+ opacity: var(--md-sys-state-disabled-state-layer-opacity, 38%);
149
150
  pointer-events: none;
150
151
 
151
152
  &.micl-card-elevated {
@@ -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/statelayer';
24
25
  @use '../../styles/typography';
@@ -27,7 +28,6 @@
27
28
  --md-sys-checkbox-border-width: 2px;
28
29
  --md-sys-checkbox-check-thickness: 2px;
29
30
  --md-sys-checkbox-container-size: 18px;
30
- --md-sys-checkbox-state-layer-size: 40px;
31
31
  }
32
32
 
33
33
  input[type=checkbox].micl-checkbox {
@@ -40,12 +40,12 @@ input[type=checkbox].micl-checkbox {
40
40
  appearance: none;
41
41
  box-sizing: border-box;
42
42
  position: relative;
43
- inline-size: var(--md-sys-target-size);
44
- min-inline-size: var(--md-sys-target-size);
45
- block-size: var(--md-sys-target-size);
46
- min-block-size: var(--md-sys-target-size);
43
+ inline-size: var(--md-sys-target-size, 48px);
44
+ min-inline-size: var(--md-sys-target-size, 48px);
45
+ block-size: var(--md-sys-target-size, 48px);
46
+ min-block-size: var(--md-sys-target-size, 48px);
47
47
  margin: 0;
48
- border: calc((var(--md-sys-target-size) - var(--md-sys-checkbox-state-layer-size)) / 2) solid transparent;
48
+ border: calc((var(--md-sys-target-size, 48px) - var(--md-sys-state-layer-size, 40px)) / 2) solid transparent;
49
49
  background-clip: content-box;
50
50
  background-color: transparent;
51
51
  -webkit-tap-highlight-color: transparent;
@@ -168,16 +168,16 @@ input[type=checkbox].micl-checkbox {
168
168
  --statelayer-opacity var(--md-sys-checkbox-motion-duration) linear;
169
169
 
170
170
  &:hover {
171
- --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity);
171
+ --statelayer-opacity: var(--md-sys-state-hover-state-layer-opacity, 8%);
172
172
 
173
173
  &:not(:checked):not(:indeterminate)::after {
174
174
  --md-sys-checkbox-border-color: var(--md-sys-color-on-surface);
175
175
  }
176
176
  }
177
177
  &:focus-visible {
178
- --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity);
178
+ --statelayer-opacity: var(--md-sys-state-focus-state-layer-opacity, 10%);
179
179
 
180
- outline: var(--md-sys-state-focus-indicator-thickness) solid var(--md-sys-color-secondary);
180
+ outline: var(--md-sys-state-focus-indicator-thickness, 3px) solid var(--md-sys-color-secondary);
181
181
 
182
182
  &:not(:checked):not(:indeterminate)::after {
183
183
  --md-sys-checkbox-border-color: var(--md-sys-color-on-surface);
@@ -185,7 +185,7 @@ input[type=checkbox].micl-checkbox {
185
185
  }
186
186
  &:active {
187
187
  --statelayer-color: var(--md-sys-color-on-surface);
188
- --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity);
188
+ --statelayer-opacity: var(--md-sys-state-pressed-state-layer-opacity, 10%);
189
189
 
190
190
  background-size: 0%, 100%;
191
191
  transition: background-size 0ms;
@@ -200,7 +200,7 @@ input[type=checkbox].micl-checkbox {
200
200
  }
201
201
  }
202
202
  &:disabled {
203
- opacity: 38%;
203
+ opacity: var(--md-sys-state-disabled-state-layer-opacity, 38%);
204
204
 
205
205
  &:checked,
206
206
  &:indeterminate {