material-inspired-component-library 8.1.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/README.md +106 -18
  2. package/components/README.md +1 -1
  3. package/components/accordion/README.md +6 -6
  4. package/components/alert/README.md +10 -10
  5. package/components/alert/index.scss +27 -52
  6. package/components/appbar/README.md +19 -6
  7. package/components/appbar/index.scss +40 -44
  8. package/components/badge/README.md +12 -10
  9. package/components/badge/index.scss +21 -25
  10. package/components/bottomsheet/README.md +26 -1
  11. package/components/bottomsheet/index.scss +58 -44
  12. package/components/button/README.md +70 -10
  13. package/components/button/_shared.scss +210 -0
  14. package/components/button/index.scss +75 -389
  15. package/components/card/README.md +97 -85
  16. package/components/card/index.scss +46 -65
  17. package/components/checkbox/README.md +25 -14
  18. package/{tools/shapes/check.mjs → components/checkbox/_label.scss} +37 -42
  19. package/components/checkbox/index.scss +66 -66
  20. package/components/chip/README.md +186 -0
  21. package/components/chip/index.scss +285 -0
  22. package/components/datepicker/README.md +79 -0
  23. package/components/datepicker/index.scss +346 -315
  24. package/components/dialog/README.md +20 -10
  25. package/components/dialog/index.scss +55 -66
  26. package/components/divider/README.md +16 -15
  27. package/components/divider/index.scss +9 -25
  28. package/components/iconbutton/README.md +63 -12
  29. package/components/iconbutton/index.scss +142 -303
  30. package/components/list/README.md +89 -156
  31. package/components/list/index.scss +34 -36
  32. package/components/menu/README.md +81 -155
  33. package/components/menu/index.scss +52 -58
  34. package/components/navigationbar/README.md +108 -0
  35. package/components/navigationbar/index.scss +185 -0
  36. package/components/navigationrail/README.md +62 -37
  37. package/components/navigationrail/_navitem.scss +96 -0
  38. package/components/navigationrail/index.scss +78 -132
  39. package/components/progressindicator/README.md +83 -47
  40. package/components/progressindicator/index.scss +622 -172
  41. package/components/radio/README.md +11 -9
  42. package/components/radio/index.scss +36 -33
  43. package/components/select/README.md +12 -7
  44. package/components/select/index.scss +26 -34
  45. package/components/shapes/README.md +3 -3
  46. package/components/shapes/index.scss +0 -1
  47. package/components/sidesheet/README.md +21 -9
  48. package/components/sidesheet/index.scss +38 -46
  49. package/components/slider/README.md +21 -0
  50. package/components/slider/index.scss +108 -139
  51. package/components/snackbar/README.md +32 -35
  52. package/components/snackbar/index.scss +10 -22
  53. package/components/stepper/README.md +14 -7
  54. package/components/stepper/index.scss +58 -39
  55. package/components/switch/README.md +22 -15
  56. package/components/switch/index.scss +68 -60
  57. package/components/textfield/README.md +48 -5
  58. package/components/textfield/index.scss +192 -248
  59. package/components/timepicker/README.md +53 -23
  60. package/components/timepicker/index.scss +110 -128
  61. package/dist/alert.css +1 -1
  62. package/dist/alert.js +1 -1
  63. package/dist/appbar.css +1 -1
  64. package/dist/appbar.js +1 -1
  65. package/dist/badge.css +1 -1
  66. package/dist/badge.js +1 -1
  67. package/dist/base.css +1 -0
  68. package/dist/base.js +1 -0
  69. package/dist/bottomsheet.css +1 -1
  70. package/dist/bottomsheet.js +1 -1
  71. package/dist/button.css +1 -1
  72. package/dist/button.js +1 -1
  73. package/dist/card.css +1 -1
  74. package/dist/card.js +1 -1
  75. package/dist/checkbox.css +1 -1
  76. package/dist/checkbox.js +1 -1
  77. package/dist/chip.css +1 -0
  78. package/dist/chip.js +1 -0
  79. package/dist/components/button/index.d.ts +1 -1
  80. package/dist/components/iconbutton/index.d.ts +2 -7
  81. package/dist/components/slider/index.d.ts +1 -1
  82. package/dist/components/textfield/index.d.ts +2 -2
  83. package/dist/datepicker.css +1 -1
  84. package/dist/datepicker.js +1 -1
  85. package/dist/dialog.css +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/divider.css +1 -1
  88. package/dist/divider.js +1 -1
  89. package/dist/field.css +1 -0
  90. package/dist/field.js +1 -0
  91. package/dist/foundations/form/index.js +1 -1
  92. package/dist/foundations/runtime.d.ts +15 -0
  93. package/dist/foundations/runtime.js +1 -0
  94. package/dist/iconbutton.css +1 -1
  95. package/dist/iconbutton.js +1 -1
  96. package/dist/layout.css +1 -1
  97. package/dist/layout.js +1 -1
  98. package/dist/list.css +1 -1
  99. package/dist/list.js +1 -1
  100. package/dist/menu.css +1 -1
  101. package/dist/menu.js +1 -1
  102. package/dist/micl.css +1 -1
  103. package/dist/micl.d.ts +14 -5
  104. package/dist/micl.js +1 -1
  105. package/dist/navigationbar.css +1 -0
  106. package/dist/navigationbar.js +1 -0
  107. package/dist/navigationrail.css +1 -1
  108. package/dist/navigationrail.js +1 -1
  109. package/dist/progressindicator.css +1 -1
  110. package/dist/progressindicator.js +1 -1
  111. package/dist/radio.css +1 -1
  112. package/dist/radio.js +1 -1
  113. package/dist/scrollbar.js +1 -1
  114. package/dist/select.css +1 -1
  115. package/dist/select.js +1 -1
  116. package/dist/shapes.css +1 -1
  117. package/dist/shapes.js +1 -1
  118. package/dist/sidesheet.css +1 -1
  119. package/dist/sidesheet.js +1 -1
  120. package/dist/slider.css +1 -1
  121. package/dist/slider.js +1 -1
  122. package/dist/snackbar.css +1 -1
  123. package/dist/snackbar.js +1 -1
  124. package/dist/stepper.css +1 -1
  125. package/dist/stepper.js +1 -1
  126. package/dist/switch.css +1 -1
  127. package/dist/switch.js +1 -1
  128. package/dist/textfield.css +1 -1
  129. package/dist/textfield.js +1 -1
  130. package/dist/timepicker.css +1 -1
  131. package/dist/timepicker.js +1 -1
  132. package/foundations/_index.scss +35 -0
  133. package/foundations/{index.scss → base/index.scss} +21 -56
  134. package/foundations/field/index.scss +37 -0
  135. package/foundations/layout/index.scss +64 -65
  136. package/package.json +23 -9
  137. package/styles/statelayer.scss +20 -5
  138. package/styles.scss +5 -2
  139. package/.claude/settings.local.json +0 -14
  140. package/.editorconfig +0 -12
  141. package/.gitattributes +0 -9
  142. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
  143. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  144. package/CLAUDE.md +0 -53
  145. package/CODE_OF_CONDUCT.md +0 -128
  146. package/components/bottomsheet/index.ts +0 -153
  147. package/components/button/index.ts +0 -79
  148. package/components/checkbox/index.ts +0 -148
  149. package/components/datepicker/index.ts +0 -693
  150. package/components/iconbutton/index.ts +0 -77
  151. package/components/list/index.ts +0 -138
  152. package/components/menu/index.ts +0 -145
  153. package/components/navigationrail/index.ts +0 -87
  154. package/components/progressindicator/index.ts +0 -77
  155. package/components/slider/index.ts +0 -149
  156. package/components/snackbar/index.ts +0 -118
  157. package/components/stepper/index.ts +0 -248
  158. package/components/textfield/index.ts +0 -188
  159. package/components/timepicker/index.ts +0 -413
  160. package/dist/components/progressindicator/index.d.ts +0 -6
  161. package/dist/foundations.css +0 -1
  162. package/dist/foundations.js +0 -1
  163. package/docs/accordion.html +0 -344
  164. package/docs/alert.html +0 -177
  165. package/docs/bottomsheet.html +0 -240
  166. package/docs/button.html +0 -290
  167. package/docs/card-awards.webp +0 -0
  168. package/docs/card-cabinet.webp +0 -0
  169. package/docs/card-city.webp +0 -0
  170. package/docs/card-fingerprint.webp +0 -0
  171. package/docs/card-holiday.webp +0 -0
  172. package/docs/card-names.webp +0 -0
  173. package/docs/card.html +0 -159
  174. package/docs/checkbox.html +0 -147
  175. package/docs/datepicker.html +0 -274
  176. package/docs/dialog.html +0 -195
  177. package/docs/divider.html +0 -139
  178. package/docs/docs.css +0 -26
  179. package/docs/docs.js +0 -139
  180. package/docs/iconbutton.html +0 -329
  181. package/docs/index.html +0 -431
  182. package/docs/list.html +0 -310
  183. package/docs/menu.html +0 -574
  184. package/docs/micl.css +0 -1
  185. package/docs/micl.js +0 -1
  186. package/docs/navigationrail.html +0 -138
  187. package/docs/progressindicator.html +0 -288
  188. package/docs/radio.html +0 -123
  189. package/docs/select.html +0 -337
  190. package/docs/shapes.css +0 -1
  191. package/docs/shapes.html +0 -159
  192. package/docs/shapes.js +0 -1
  193. package/docs/sidesheet.html +0 -149
  194. package/docs/slider.html +0 -141
  195. package/docs/snackbar.html +0 -102
  196. package/docs/stepper.html +0 -319
  197. package/docs/switch.html +0 -196
  198. package/docs/textfield.html +0 -208
  199. package/docs/themes/airblue/dark-hc.css +0 -51
  200. package/docs/themes/airblue/dark-mc.css +0 -51
  201. package/docs/themes/airblue/dark.css +0 -51
  202. package/docs/themes/airblue/light-hc.css +0 -51
  203. package/docs/themes/airblue/light-mc.css +0 -51
  204. package/docs/themes/airblue/light.css +0 -51
  205. package/docs/themes/airblue/theme.css +0 -306
  206. package/docs/themes/barnred/dark-hc.css +0 -51
  207. package/docs/themes/barnred/dark-mc.css +0 -51
  208. package/docs/themes/barnred/dark.css +0 -51
  209. package/docs/themes/barnred/light-hc.css +0 -51
  210. package/docs/themes/barnred/light-mc.css +0 -51
  211. package/docs/themes/barnred/light.css +0 -51
  212. package/docs/themes/barnred/theme.css +0 -306
  213. package/docs/themes/citrine/dark-hc.css +0 -51
  214. package/docs/themes/citrine/dark-mc.css +0 -51
  215. package/docs/themes/citrine/dark.css +0 -51
  216. package/docs/themes/citrine/light-hc.css +0 -51
  217. package/docs/themes/citrine/light-mc.css +0 -51
  218. package/docs/themes/citrine/light.css +0 -51
  219. package/docs/themes/citrine/theme.css +0 -306
  220. package/docs/themes/gray/dark-hc.css +0 -51
  221. package/docs/themes/gray/dark-mc.css +0 -51
  222. package/docs/themes/gray/dark.css +0 -51
  223. package/docs/themes/gray/light-hc.css +0 -51
  224. package/docs/themes/gray/light-mc.css +0 -51
  225. package/docs/themes/gray/light.css +0 -51
  226. package/docs/themes/gray/theme.css +0 -306
  227. package/docs/themes/greenery/dark-hc.css +0 -51
  228. package/docs/themes/greenery/dark-mc.css +0 -51
  229. package/docs/themes/greenery/dark.css +0 -51
  230. package/docs/themes/greenery/light-hc.css +0 -51
  231. package/docs/themes/greenery/light-mc.css +0 -51
  232. package/docs/themes/greenery/light.css +0 -51
  233. package/docs/themes/greenery/theme.css +0 -306
  234. package/docs/themes/hermana/dark-hc.css +0 -51
  235. package/docs/themes/hermana/dark-mc.css +0 -51
  236. package/docs/themes/hermana/dark.css +0 -51
  237. package/docs/themes/hermana/light-hc.css +0 -51
  238. package/docs/themes/hermana/light-mc.css +0 -51
  239. package/docs/themes/hermana/light.css +0 -51
  240. package/docs/themes/hermana/theme.css +0 -306
  241. package/docs/themes/illuminating/dark-hc.css +0 -51
  242. package/docs/themes/illuminating/dark-mc.css +0 -51
  243. package/docs/themes/illuminating/dark.css +0 -51
  244. package/docs/themes/illuminating/light-hc.css +0 -51
  245. package/docs/themes/illuminating/light-mc.css +0 -51
  246. package/docs/themes/illuminating/light.css +0 -51
  247. package/docs/themes/illuminating/theme.css +0 -306
  248. package/docs/themes/magenta/dark-hc.css +0 -51
  249. package/docs/themes/magenta/dark-mc.css +0 -51
  250. package/docs/themes/magenta/dark.css +0 -51
  251. package/docs/themes/magenta/light-hc.css +0 -51
  252. package/docs/themes/magenta/light-mc.css +0 -51
  253. package/docs/themes/magenta/light.css +0 -51
  254. package/docs/themes/magenta/theme.css +0 -306
  255. package/docs/themes/mocha/dark-hc.css +0 -51
  256. package/docs/themes/mocha/dark-mc.css +0 -51
  257. package/docs/themes/mocha/dark.css +0 -51
  258. package/docs/themes/mocha/light-hc.css +0 -51
  259. package/docs/themes/mocha/light-mc.css +0 -51
  260. package/docs/themes/mocha/light.css +0 -51
  261. package/docs/themes/mocha/theme.css +0 -306
  262. package/docs/themes/olivegreen/dark-hc.css +0 -51
  263. package/docs/themes/olivegreen/dark-mc.css +0 -51
  264. package/docs/themes/olivegreen/dark.css +0 -51
  265. package/docs/themes/olivegreen/light-hc.css +0 -51
  266. package/docs/themes/olivegreen/light-mc.css +0 -51
  267. package/docs/themes/olivegreen/light.css +0 -51
  268. package/docs/themes/olivegreen/theme.css +0 -306
  269. package/docs/themes/peri/dark-hc.css +0 -51
  270. package/docs/themes/peri/dark-mc.css +0 -51
  271. package/docs/themes/peri/dark.css +0 -51
  272. package/docs/themes/peri/light-hc.css +0 -51
  273. package/docs/themes/peri/light-mc.css +0 -51
  274. package/docs/themes/peri/light.css +0 -51
  275. package/docs/themes/peri/theme.css +0 -306
  276. package/docs/timepicker.html +0 -160
  277. package/foundations/form/index.ts +0 -174
  278. package/foundations/layout/README.md +0 -127
  279. package/intl.d.ts +0 -9
  280. package/micl.ts +0 -221
  281. package/styles/README.md +0 -196
  282. package/tools/shapes/generate.mjs +0 -828
  283. package/tsconfig.json +0 -116
  284. package/webpack.config.js +0 -104
@@ -108,91 +108,103 @@ Add the `micl-card--compact` to the main `<div>` element (or, the `<summary>` el
108
108
 
109
109
  - **Dragging State**: When implementing drag-and-drop functionality for cards, apply the `micl-card--dragging` class to the card container to provide visual feedback during the drag operation.
110
110
 
111
- ## Customizations
112
- You can customize the appearance of the Card component by overriding its global CSS variables. These variables are declared on the `:root` pseudo-class and can be changed on any appropriate parent element to affect its child cards.
113
-
114
- | Variable name | Default Value | Description |
115
- | ------------- | ----- | ----------- |
116
- | --md-comp-card-margin | 8px | Sets the spacing between adjacent cards both horizontally and vertically |
117
- | --md-comp-card-padding-inline | 16px | Defines the amount of space between the left and right edges of a card and its content |
118
- | --md-comp-card-content-padding-block | 16px | The amount of vertical padding reserved for the content area |
119
- | --md-comp-card-gap | 8px | Defines the amount of vertical space between structural elements inside the card |
120
-
121
- The Card component supports the following CSS variables, as defined in the [Material Design 3 Expressive Card Specification](https://m3.material.io/components/cards/specs):
122
-
123
- ```CSS
124
- --md-comp-elevated-card-container-color
125
- --md-comp-elevated-card-container-elevation
126
- --md-comp-elevated-card-container-shape
127
- --md-comp-elevated-card-disabled-container-elevation
128
- --md-comp-elevated-card-disabled-container-color
129
- --md-comp-elevated-card-disabled-container-opacity
130
- --md-comp-elevated-card-hover-container-elevation
131
- --md-comp-elevated-card-hover-state-layer-color
132
- --md-comp-elevated-card-hover-state-layer-opacity
133
- --md-comp-elevated-card-focus-indicator-color
134
- --md-comp-elevated-card-focus-indicator-thickness
135
- --md-comp-elevated-card-focus-indicator-outline-offset
136
- --md-comp-elevated-card-focus-container-elevation
137
- --md-comp-elevated-card-focus-state-layer-color
138
- --md-comp-elevated-card-focus-state-layer-opacity
139
- --md-comp-elevated-card-pressed-container-elevation
140
- --md-comp-elevated-card-pressed-state-layer-color
141
- --md-comp-elevated-card-pressed-state-layer-opacity
142
- --md-comp-elevated-card-dragged-container-elevation
143
- --md-comp-elevated-card-dragged-state-layer-color
144
- --md-comp-elevated-card-dragged-state-layer-opacity
145
- --md-comp-filled-card-container-color
146
- --md-comp-filled-card-container-elevation
147
- --md-comp-filled-card-container-shape
148
- --md-comp-filled-card-disabled-container-elevation
149
- --md-comp-filled-card-disabled-container-color
150
- --md-comp-filled-card-disabled-container-opacity
151
- --md-comp-filled-card-hover-container-elevation
152
- --md-comp-filled-card-hover-state-layer-color
153
- --md-comp-filled-card-hover-state-layer-opacity
154
- --md-comp-filled-card-focus-indicator-color
155
- --md-comp-filled-card-focus-indicator-thickness
156
- --md-comp-filled-card-focus-indicator-outline-offset
157
- --md-comp-filled-card-focus-container-elevation
158
- --md-comp-filled-card-focus-state-layer-color
159
- --md-comp-filled-card-focus-state-layer-opacity
160
- --md-comp-filled-card-pressed-container-elevation
161
- --md-comp-filled-card-pressed-state-layer-color
162
- --md-comp-filled-card-pressed-state-layer-opacity
163
- --md-comp-filled-card-dragged-container-elevation
164
- --md-comp-filled-card-dragged-state-layer-color
165
- --md-comp-filled-card-dragged-state-layer-opacity
166
- --md-comp-outlined-card-container-color
167
- --md-comp-outlined-card-container-elevation
168
- --md-comp-outlined-card-container-shape
169
- --md-comp-outlined-card-outline-width
170
- --md-comp-outlined-card-outline-color
171
- --md-comp-outlined-card-disabled-container-color
172
- --md-comp-outlined-card-disabled-container-elevation
173
- --md-comp-outlined-card-disabled-container-opacity
174
- --md-comp-outlined-card-disabled-outline-color
175
- --md-comp-outlined-card-disabled-outline-opacity
176
- --md-comp-outlined-card-hover-container-elevation
177
- --md-comp-outlined-card-hover-outline-color
178
- --md-comp-outlined-card-hover-state-layer-color
179
- --md-comp-outlined-card-hover-state-layer-opacity
180
- --md-comp-outlined-card-focus-indicator-color
181
- --md-comp-outlined-card-focus-indicator-thickness
182
- --md-comp-outlined-card-focus-indicator-outline-offset
183
- --md-comp-outlined-card-focus-container-elevation
184
- --md-comp-outlined-card-focus-outline-color
185
- --md-comp-outlined-card-focus-state-layer-color
186
- --md-comp-outlined-card-focus-state-layer-opacity
187
- --md-comp-outlined-card-pressed-container-elevation
188
- --md-comp-outlined-card-pressed-outline-color
189
- --md-comp-outlined-card-pressed-state-layer-color
190
- --md-comp-outlined-card-pressed-state-layer-opacity
191
- --md-comp-outlined-card-dragged-container-elevation
192
- --md-comp-outlined-card-dragged-outline-color
193
- --md-comp-outlined-card-dragged-state-layer-color
194
- --md-comp-outlined-card-dragged-state-layer-opacity
195
- ```
111
+ ## Theming
112
+ Each card can be themed with CSS custom properties that follow the Material Design 3 component-token naming convention.
113
+
114
+ | Custom property | Meaning | Default |
115
+ |---|---|---|
116
+ | `--md-comp-card-margin` | Sets the spacing between adjacent cards both horizontally and vertically | `8px` |
117
+ | `--md-comp-card-padding-inline` | Defines the amount of space between the left and right edges of a card and its content | `16px` |
118
+ | `--md-comp-card-content-padding-block` | The amount of vertical padding reserved for the content area | `16px` |
119
+ | `--md-comp-card-gap` | Defines the amount of vertical space between structural elements inside the card | `8px` |
120
+
121
+ Each card style additionally supports the following CSS custom properties, as defined in the [Material Design 3 Expressive Card Specification](https://m3.material.io/components/cards/specs). The hover, focus, pressed and dragged properties only apply to actionable cards.
122
+
123
+ ### Elevated card
124
+
125
+ | Custom property | Meaning | Default |
126
+ |---|---|---|
127
+ | `--md-comp-elevated-card-container-color` | The background color of the card | `--md-sys-color-surface-container-low` |
128
+ | `--md-comp-elevated-card-container-elevation` | The shadow (elevation) of the card | `--md-sys-elevation-level1` |
129
+ | `--md-comp-elevated-card-container-shape` | The corner rounding of the card | `--md-sys-shape-corner-medium` |
130
+ | `--md-comp-elevated-card-disabled-container-elevation` | The shadow of a disabled card | `--md-sys-elevation-level1` |
131
+ | `--md-comp-elevated-card-disabled-container-color` | The background color of a disabled card | `--md-sys-color-surface` |
132
+ | `--md-comp-elevated-card-disabled-container-opacity` | The opacity of a disabled card | `--md-sys-state-disabled-state-layer-opacity` |
133
+ | `--md-comp-elevated-card-hover-container-elevation` | The shadow of the card while hovered | `--md-sys-elevation-level2` |
134
+ | `--md-comp-elevated-card-hover-state-layer-color` | The state layer color of the card while hovered | `--md-sys-color-on-surface` |
135
+ | `--md-comp-elevated-card-hover-state-layer-opacity` | The state layer opacity of the card while hovered | `--md-sys-state-hover-state-layer-opacity` |
136
+ | `--md-comp-elevated-card-focus-indicator-color` | The color of the focus indicator ring | `--md-sys-color-secondary` |
137
+ | `--md-comp-elevated-card-focus-indicator-thickness` | The thickness of the focus indicator ring | `--md-sys-state-focus-indicator-thickness` |
138
+ | `--md-comp-elevated-card-focus-indicator-outline-offset` | The distance between the card and the focus indicator ring | `--md-sys-state-focus-indicator-outer-offset` |
139
+ | `--md-comp-elevated-card-focus-container-elevation` | The shadow of the card while focused | `--md-sys-elevation-level1` |
140
+ | `--md-comp-elevated-card-focus-state-layer-color` | The state layer color of the card while focused | `--md-sys-color-on-surface` |
141
+ | `--md-comp-elevated-card-focus-state-layer-opacity` | The state layer opacity of the card while focused | `--md-sys-state-focus-state-layer-opacity` |
142
+ | `--md-comp-elevated-card-pressed-container-elevation` | The shadow of the card while pressed | `--md-sys-elevation-level1` |
143
+ | `--md-comp-elevated-card-pressed-state-layer-color` | The state layer color of the card while pressed | `--md-sys-color-on-surface` |
144
+ | `--md-comp-elevated-card-pressed-state-layer-opacity` | The state layer opacity of the card while pressed | `--md-sys-state-pressed-state-layer-opacity` |
145
+ | `--md-comp-elevated-card-dragged-container-elevation` | The shadow of the card while dragged | `--md-sys-elevation-level4` |
146
+ | `--md-comp-elevated-card-dragged-state-layer-color` | The state layer color of the card while dragged | `--md-sys-color-on-surface` |
147
+ | `--md-comp-elevated-card-dragged-state-layer-opacity` | The state layer opacity of the card while dragged | `--md-sys-state-dragged-state-layer-opacity` |
148
+
149
+ ### Filled card
150
+
151
+ | Custom property | Meaning | Default |
152
+ |---|---|---|
153
+ | `--md-comp-filled-card-container-color` | The background color of the card | `--md-sys-color-surface-container-highest` |
154
+ | `--md-comp-filled-card-container-elevation` | The shadow (elevation) of the card | `--md-sys-elevation-level0` |
155
+ | `--md-comp-filled-card-container-shape` | The corner rounding of the card | `--md-sys-shape-corner-medium` |
156
+ | `--md-comp-filled-card-disabled-container-elevation` | The shadow of a disabled card | `--md-sys-elevation-level0` |
157
+ | `--md-comp-filled-card-disabled-container-color` | The background color of a disabled card | `--md-sys-color-surface-variant` |
158
+ | `--md-comp-filled-card-disabled-container-opacity` | The opacity of a disabled card | `--md-sys-state-disabled-state-layer-opacity` |
159
+ | `--md-comp-filled-card-hover-container-elevation` | The shadow of the card while hovered | `--md-sys-elevation-level1` |
160
+ | `--md-comp-filled-card-hover-state-layer-color` | The state layer color of the card while hovered | `--md-sys-color-on-surface` |
161
+ | `--md-comp-filled-card-hover-state-layer-opacity` | The state layer opacity of the card while hovered | `--md-sys-state-hover-state-layer-opacity` |
162
+ | `--md-comp-filled-card-focus-indicator-color` | The color of the focus indicator ring | `--md-sys-color-secondary` |
163
+ | `--md-comp-filled-card-focus-indicator-thickness` | The thickness of the focus indicator ring | `--md-sys-state-focus-indicator-thickness` |
164
+ | `--md-comp-filled-card-focus-indicator-outline-offset` | The distance between the card and the focus indicator ring | `--md-sys-state-focus-indicator-outer-offset` |
165
+ | `--md-comp-filled-card-focus-container-elevation` | The shadow of the card while focused | `--md-sys-elevation-level0` |
166
+ | `--md-comp-filled-card-focus-state-layer-color` | The state layer color of the card while focused | `--md-sys-color-on-surface` |
167
+ | `--md-comp-filled-card-focus-state-layer-opacity` | The state layer opacity of the card while focused | `--md-sys-state-focus-state-layer-opacity` |
168
+ | `--md-comp-filled-card-pressed-container-elevation` | The shadow of the card while pressed | `--md-sys-elevation-level0` |
169
+ | `--md-comp-filled-card-pressed-state-layer-color` | The state layer color of the card while pressed | `--md-sys-color-on-surface` |
170
+ | `--md-comp-filled-card-pressed-state-layer-opacity` | The state layer opacity of the card while pressed | `--md-sys-state-pressed-state-layer-opacity` |
171
+ | `--md-comp-filled-card-dragged-container-elevation` | The shadow of the card while dragged | `--md-sys-elevation-level3` |
172
+ | `--md-comp-filled-card-dragged-state-layer-color` | The state layer color of the card while dragged | `--md-sys-color-on-surface` |
173
+ | `--md-comp-filled-card-dragged-state-layer-opacity` | The state layer opacity of the card while dragged | `--md-sys-state-dragged-state-layer-opacity` |
174
+
175
+ ### Outlined card
176
+
177
+ | Custom property | Meaning | Default |
178
+ |---|---|---|
179
+ | `--md-comp-outlined-card-container-color` | The background color of the card | `--md-sys-color-surface` |
180
+ | `--md-comp-outlined-card-container-elevation` | The shadow (elevation) of the card | `--md-sys-elevation-level0` |
181
+ | `--md-comp-outlined-card-container-shape` | The corner rounding of the card | `--md-sys-shape-corner-medium` |
182
+ | `--md-comp-outlined-card-outline-width` | The thickness of the card's outline | `1px` |
183
+ | `--md-comp-outlined-card-outline-color` | The color of the card's outline | `--md-sys-color-outline-variant` |
184
+ | `--md-comp-outlined-card-disabled-container-color` | The background color of a disabled card | `--md-sys-color-surface` |
185
+ | `--md-comp-outlined-card-disabled-container-elevation` | The shadow of a disabled card | `--md-sys-elevation-level0` |
186
+ | `--md-comp-outlined-card-disabled-container-opacity` | The opacity of a disabled card | `--md-sys-state-disabled-state-layer-opacity` |
187
+ | `--md-comp-outlined-card-disabled-outline-color` | The outline color of a disabled card | `--md-sys-color-outline` |
188
+ | `--md-comp-outlined-card-disabled-outline-opacity` | The outline opacity of a disabled card | `12%` |
189
+ | `--md-comp-outlined-card-hover-container-elevation` | The shadow of the card while hovered | `--md-sys-elevation-level1` |
190
+ | `--md-comp-outlined-card-hover-outline-color` | The outline color of the card while hovered | `--md-sys-color-outline-variant` |
191
+ | `--md-comp-outlined-card-hover-state-layer-color` | The state layer color of the card while hovered | `--md-sys-color-on-surface` |
192
+ | `--md-comp-outlined-card-hover-state-layer-opacity` | The state layer opacity of the card while hovered | `--md-sys-state-hover-state-layer-opacity` |
193
+ | `--md-comp-outlined-card-focus-indicator-color` | The color of the focus indicator ring | `--md-sys-color-secondary` |
194
+ | `--md-comp-outlined-card-focus-indicator-thickness` | The thickness of the focus indicator ring | `--md-sys-state-focus-indicator-thickness` |
195
+ | `--md-comp-outlined-card-focus-indicator-outline-offset` | The distance between the card and the focus indicator ring | `--md-sys-state-focus-indicator-outer-offset` |
196
+ | `--md-comp-outlined-card-focus-container-elevation` | The shadow of the card while focused | `--md-sys-elevation-level0` |
197
+ | `--md-comp-outlined-card-focus-outline-color` | The outline color of the card while focused | `--md-sys-color-on-surface` |
198
+ | `--md-comp-outlined-card-focus-state-layer-color` | The state layer color of the card while focused | `--md-sys-color-on-surface` |
199
+ | `--md-comp-outlined-card-focus-state-layer-opacity` | The state layer opacity of the card while focused | `--md-sys-state-focus-state-layer-opacity` |
200
+ | `--md-comp-outlined-card-pressed-container-elevation` | The shadow of the card while pressed | `--md-sys-elevation-level0` |
201
+ | `--md-comp-outlined-card-pressed-outline-color` | The outline color of the card while pressed | `--md-sys-color-outline-variant` |
202
+ | `--md-comp-outlined-card-pressed-state-layer-color` | The state layer color of the card while pressed | `--md-sys-color-on-surface` |
203
+ | `--md-comp-outlined-card-pressed-state-layer-opacity` | The state layer opacity of the card while pressed | `--md-sys-state-pressed-state-layer-opacity` |
204
+ | `--md-comp-outlined-card-dragged-container-elevation` | The shadow of the card while dragged | `--md-sys-elevation-level3` |
205
+ | `--md-comp-outlined-card-dragged-outline-color` | The outline color of the card while dragged | `--md-sys-color-outline-variant` |
206
+ | `--md-comp-outlined-card-dragged-state-layer-color` | The state layer color of the card while dragged | `--md-sys-color-on-surface` |
207
+ | `--md-comp-outlined-card-dragged-state-layer-opacity` | The state layer opacity of the card while dragged | `--md-sys-state-dragged-state-layer-opacity` |
196
208
 
197
209
  **Example: Changing the card margins**
198
210
 
@@ -20,7 +20,6 @@
20
20
  // SOFTWARE.
21
21
 
22
22
  @use 'sass:meta';
23
- @use '../../foundations';
24
23
  @use '../../styles/elevation';
25
24
  @use '../../styles/motion';
26
25
  @use '../../styles/shape';
@@ -102,16 +101,9 @@
102
101
  }
103
102
  }
104
103
 
105
- :root {
106
- --md-comp-card-gap: 8px;
107
- --md-comp-card-margin: 8px;
108
- --md-comp-card-padding-inline: 16px;
109
- --md-comp-card-content-padding-block: 16px;
110
- }
104
+ $cards: ':is(.micl-card-elevated, .micl-card-filled, .micl-card-outlined)';
111
105
 
112
- .micl-card-elevated,
113
- .micl-card-filled,
114
- .micl-card-outlined {
106
+ #{$cards} {
115
107
  --md-comp-card-motion-spatial: #{motion.$md-sys-motion-expressive-default-spatial};
116
108
  --md-comp-card-motion-duration: #{motion.$md-sys-motion-expressive-default-spatial-duration};
117
109
 
@@ -149,35 +141,35 @@
149
141
  ),
150
142
  linear-gradient(rgb(from var(--statelayer-color) r g b / var(--statelayer-opacity)));
151
143
  background-repeat: no-repeat;
144
+ background-position: var(--micl-x, center) var(--micl-y, center), 0 0;
152
145
  background-size: 0%, 100%;
153
146
  transition:
154
147
  background-size 0ms,
155
148
  --statelayer-opacity var(--md-comp-card-motion-duration) linear;
156
149
 
150
+ &:is(:hover, :focus-visible, :active, .micl-card--dragging) {
151
+ --_card-color: var(--md-sys-color-on-surface);
152
+ }
157
153
  &:hover {
158
154
  --statelayer-color: var(--_card-hover-state-color);
159
155
  --statelayer-opacity: var(--_card-hover-state-opacity);
160
- --_card-color: var(--md-sys-color-on-surface);
161
156
  cursor: pointer;
162
157
  }
163
158
  &:focus-visible {
164
159
  --statelayer-color: var(--_card-focus-state-color);
165
160
  --statelayer-opacity: var(--_card-focus-state-opacity);
166
- --_card-color: var(--md-sys-color-on-surface);
167
161
  }
168
162
  &:active {
169
163
  --statelayer-color: var(--_card-pressed-state-color);
170
164
  --statelayer-opacity: var(--_card-pressed-state-opacity);
171
- --_card-color: var(--md-sys-color-on-surface);
172
165
  }
173
166
  &.micl-card--dragging {
174
167
  --statelayer-color: var(--_card-dragged-state-color);
175
168
  --statelayer-opacity: var(--_card-dragged-state-opacity);
176
- --_card-color: var(--md-sys-color-on-surface);
177
169
  cursor: grabbing;
178
170
  }
179
171
  &.micl-rippling {
180
- animation: micl-ripple calc(var(--md-sys-state-ripple-duration) / 2) motion.$md-sys-motion-easing-standard;
172
+ animation: micl-ripple calc(var(--md-sys-state-ripple-duration) * 1.722);
181
173
  }
182
174
 
183
175
  .micl-card__content {
@@ -191,7 +183,6 @@
191
183
  }
192
184
  @include card-interactive('focus-visible') {
193
185
  box-shadow: var(--_card-focus-elevation);
194
- border-width: var(--_card-focus-border-width, var(--_card-border-width, 0));
195
186
  border-color: var(--_card-focus-border-color, transparent);
196
187
  outline: var(--_card-focus-outline-thickness, 0px) solid var(--_card-focus-outline-color, transparent);
197
188
  outline-offset: var(--_card-focus-outline-offset, 0px);
@@ -229,36 +220,6 @@
229
220
  }
230
221
  }
231
222
 
232
- &.micl-card--compact, summary.micl-card--compact {
233
- display: grid;
234
- grid-template-columns: 20% 1fr;
235
- padding-block-end: 0;
236
-
237
- .micl-card__image {
238
- grid-column: 1;
239
- grid-row: 1 / span 4;
240
- block-size: 100%;
241
- background-size: cover;
242
- }
243
- .micl-card__headline-s, .micl-card__headline-m, .micl-card__headline-l,
244
- .micl-card__subhead, .micl-card__supporting-text {
245
- grid-column: 2;
246
- min-inline-size: 0;
247
- }
248
- .micl-card__headline-s, .micl-card__headline-m, .micl-card__headline-l, .micl-card__supporting-text {
249
- margin-block-start: var(--md-comp-card-gap, 8px);
250
- }
251
- .micl-card__subhead {
252
- margin-block-start: 0;
253
- }
254
- .micl-card__content {
255
- grid-column: 1 / span 2;
256
- }
257
-
258
- &:not(:has(.micl-card__content)) > :last-child {
259
- margin-block-end: var(--md-comp-card-gap, 8px);
260
- }
261
- }
262
223
  }
263
224
 
264
225
  .micl-card-elevated {
@@ -303,17 +264,13 @@
303
264
  $inert-bg-default : var(--md-sys-color-surface),
304
265
  $inert-elev-default : var(--md-sys-elevation-level0)
305
266
  );
267
+ @include card-focus-outline('outlined');
306
268
 
307
269
  --_card-border-width: var(--md-comp-outlined-card-outline-width, 1px);
308
270
  --_card-border: var(--_card-border-width) solid var(--_card-border-color, var(--md-comp-outlined-card-outline-color, var(--md-sys-color-outline-variant)));
309
-
310
271
  --_card-hover-border-color: var(--md-comp-outlined-card-hover-outline-color, var(--md-sys-color-outline-variant));
311
-
312
- --_card-focus-border-color: var(--md-comp-outlined-card-focus-indicator-color, var(--md-sys-color-secondary));
313
- --_card-focus-border-width: var(--md-comp-outlined-card-focus-indicator-thickness, var(--md-sys-state-focus-indicator-thickness));
314
-
272
+ --_card-focus-border-color: var(--md-comp-outlined-card-focus-outline-color, var(--md-sys-color-on-surface));
315
273
  --_card-pressed-border-color: var(--md-comp-outlined-card-pressed-outline-color, var(--md-sys-color-outline-variant));
316
-
317
274
  --_card-dragged-border-color: var(--md-comp-outlined-card-dragged-outline-color, var(--md-sys-color-outline-variant));
318
275
 
319
276
  &[inert] {
@@ -330,28 +287,20 @@
330
287
  border-radius: var(--_card-shape);
331
288
  }
332
289
 
333
- .micl-card-elevated,
334
- .micl-card-filled,
335
- .micl-card-outlined,
336
- .micl-card-elevated > summary,
337
- .micl-card-filled > summary,
338
- .micl-card-outlined > summary {
339
- &> .micl-card__headline-s:first-child,
340
- &> .micl-card__headline-m:first-child,
341
- &> .micl-card__headline-l:first-child {
290
+ #{$cards},
291
+ #{$cards} > summary {
292
+ &> [class*='micl-card__headline-']:first-child {
342
293
  padding-block-start: var(--md-comp-card-content-padding-block, 16px);
343
294
  }
344
295
  }
345
296
 
346
- .micl-card__headline-s,
347
- .micl-card__headline-m,
348
- .micl-card__headline-l {
297
+ [class*='micl-card__headline-'] {
349
298
  display: flex;
350
299
  align-items: center;
351
300
  column-gap: var(--md-comp-card-gap, 8px);
352
301
  color: var(--_card-color);
353
302
 
354
- h1, h2, h3, h4, h5, h6, .micl-heading {
303
+ :is(h1, h2, h3, h4, h5, h6, .micl-heading) {
355
304
  flex: 1 2 fit-content;
356
305
  margin: 0;
357
306
  padding-inline: var(--md-comp-card-padding-inline, 16px);
@@ -416,3 +365,35 @@
416
365
  padding-inline-end: calc(var(--md-comp-card-padding-inline, 16px) - 16px);
417
366
  }
418
367
  }
368
+
369
+ .micl-card--compact,
370
+ summary.micl-card--compact {
371
+ display: grid;
372
+ grid-template-columns: 20% 1fr;
373
+ padding-block-end: 0;
374
+
375
+ .micl-card__image {
376
+ grid-column: 1;
377
+ grid-row: 1 / span 4;
378
+ block-size: 100%;
379
+ background-size: cover;
380
+ }
381
+ [class*='micl-card__headline-'],
382
+ .micl-card__subhead, .micl-card__supporting-text {
383
+ grid-column: 2;
384
+ min-inline-size: 0;
385
+ }
386
+ [class*='micl-card__headline-'], .micl-card__supporting-text {
387
+ margin-block-start: var(--md-comp-card-gap, 8px);
388
+ }
389
+ .micl-card__subhead {
390
+ margin-block-start: 0;
391
+ }
392
+ .micl-card__content {
393
+ grid-column: 1 / span 2;
394
+ }
395
+
396
+ &:not(:has(.micl-card__content)) > :last-child {
397
+ margin-block-end: var(--md-comp-card-gap, 8px);
398
+ }
399
+ }
@@ -38,7 +38,7 @@ Adding the `micl-checkbox--error` CSS class to the `<input>` element will create
38
38
 
39
39
  A checkbox can be disabled by adding the `disabled` attribute to the `<input>` element.
40
40
 
41
- The Checkbox component respects the `dir` global attribute, automatically adjusting its layout for right-to-left (RTL) languages when `dir="rtl"` is applied to an ancestor element.
41
+ The Checkbox component respects the element's computed direction, automatically adjusting its layout for right-to-left (RTL) languages whether the `dir` attribute (including `dir="auto"`) is set on the element itself or inherited from an ancestor.
42
42
 
43
43
  The component applies `cursor: pointer` and the color role **on surface** to the `<label>` element immediately preceding or following an `<input type="checkbox">` with the `micl-checkbox` class. You are encouraged to customize these CSS settings to match your design system.
44
44
 
@@ -59,18 +59,26 @@ You can establish a parent-child relationship among checkboxes. To do this, wrap
59
59
 
60
60
  To visually improve the layout, such as by indenting child checkboxes, use wrapper elements and utility classes:
61
61
 
62
+ ```CSS
63
+ .my-utility-class {
64
+ display: flex;
65
+ flex-direction: row;
66
+ align-items: center;
67
+ }
68
+ ```
69
+
62
70
  ```HTML
63
71
  <div class="micl-checkbox-group">
64
- <div class="micl-flex--vcenter">
72
+ <div class="my-utility-class">
65
73
  <input type="checkbox" id="cb0" class="micl-checkbox micl-checkbox__parent" value="c0">
66
74
  <label for="cb0">Choices</label>
67
75
  </div>
68
76
  <div style="padding-inline-start:16px">
69
- <div class="micl-flex--vcenter">
77
+ <div class="my-utility-class">
70
78
  <input type="checkbox" id="cb1" class="micl-checkbox" value="c1">
71
79
  <label for="cb1">First Choice</label>
72
80
  </div>
73
- <div class="micl-flex--vcenter">
81
+ <div class="my-utility-class">
74
82
  <input type="checkbox" id="cb2" class="micl-checkbox" checked value="c2">
75
83
  <label for="cb2">Second Choice</label>
76
84
  </div>
@@ -81,28 +89,31 @@ To visually improve the layout, such as by indenting child checkboxes, use wrapp
81
89
 
82
90
  Note that checkbox groups support **nesting**, allowing a `micl-checkbox-group` to contain other `micl-checkbox-group` elements for multi-level hierarchies.
83
91
 
84
- ## Customizations
85
- You can customize the appearance of the Checkbox component by overriding its global CSS variables. These variables are declared on the :root pseudo-class and can be changed on any appropriate parent element to affect its child checkboxes.
92
+ ## Theming
93
+ Each checkbox can be themed with CSS custom properties that follow the Material Design 3 component-token naming convention. Set them on any appropriate parent element to affect its child checkboxes.
86
94
 
87
- | Variable name | Default Value | Description |
88
- | ------------- | ------------- | ----------- |
89
- | --md-sys-checkbox-border-width | 2px | Controls the thickness of the checkbox's border |
90
- | --md-sys-checkbox-check-thickness | 2px | The thickness of the checkmark |
91
- | --md-sys-checkbox-container-size | 18px | Defines the size of the checkbox itself |
95
+ | Custom property | Meaning | Default |
96
+ |---|---|---|
97
+ | `--md-comp-checkbox-container-size` | The size of the checkbox itself | `18px` |
98
+ | `--md-comp-checkbox-outline-width` | The thickness of the checkbox's border | `2px` |
99
+ | `--md-comp-checkbox-check-thickness` | The thickness of the check mark | `2px` |
100
+ | `--md-comp-checkbox-unselected-outline-color` | The border color of an unselected checkbox | `--md-sys-color-on-surface-variant` |
101
+ | `--md-comp-checkbox-selected-container-color` | The fill color of a selected checkbox | `--md-sys-color-primary` |
102
+ | `--md-comp-checkbox-selected-icon-color` | The color of the check mark | `--md-sys-color-on-primary` |
92
103
 
93
104
  **Example: Changing the border width of a checkbox**
94
105
 
95
106
  ```HTML
96
- <div style="--md-sys-checkbox-border-width:1px">
107
+ <div style="--md-comp-checkbox-outline-width:1px">
97
108
  <input type="checkbox" id="mycheckbox" class="micl-checkbox">
98
109
  <label for="mycheckbox">Checkbox</label>
99
110
  </div>
100
111
  ```
101
112
 
102
- To vertically align a checkbox with its label, wrap both in an element that has the `micl-flex--vcenter` class.
113
+ To vertically align a checkbox with its label, wrap both in an element that has a styling like suggested below:
103
114
 
104
115
  ```HTML
105
- <div class="micl-flex--vcenter">
116
+ <div style="display:flex;flex-direction:row;align-items:center">
106
117
  <input type="checkbox" id="mycheckbox" class="micl-checkbox">
107
118
  <label for="mycheckbox">Checkbox</label>
108
119
  </div>
@@ -1,42 +1,37 @@
1
- //
2
- // Copyright © 2025 Hermana AS
3
- //
4
- // Permission is hereby granted, free of charge, to any person obtaining a copy
5
- // of this software and associated documentation files (the "Software"), to deal
6
- // in the Software without restriction, including without limitation the rights
7
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- // copies of the Software, and to permit persons to whom the Software is
9
- // furnished to do so, subject to the following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included in all
12
- // copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- // SOFTWARE.
21
-
22
- import fs from 'node:fs';
23
- import path from 'node:path';
24
- import { generatePathsScss, TARGET_PATH } from './generate.mjs';
25
-
26
- //
27
- // CI staleness gate. Compares the on-disk components/shapes/_paths.generated.scss
28
- // against what the generator would produce now. Exits non-zero if they differ,
29
- // instructing the developer to run `npm run gen:shapes` and commit the result.
30
- //
31
-
32
- const expected = generatePathsScss();
33
- const actual = fs.existsSync(TARGET_PATH) ? fs.readFileSync(TARGET_PATH, 'utf8') : '';
34
-
35
- if (expected !== actual) {
36
- const rel = path.relative(process.cwd(), TARGET_PATH);
37
- console.error(`✗ ${rel} is out of date.`);
38
- console.error(' Run `npm run gen:shapes` and commit the regenerated file.');
39
- process.exit(1);
40
- }
41
-
42
- console.log('✓ Shape paths up to date.');
1
+ //
2
+ // Copyright © 2025 Hermana AS
3
+ //
4
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ // of this software and associated documentation files (the "Software"), to deal
6
+ // in the Software without restriction, including without limitation the rights
7
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ // copies of the Software, and to permit persons to whom the Software is
9
+ // furnished to do so, subject to the following conditions:
10
+ //
11
+ // The above copyright notice and this permission notice shall be included in all
12
+ // copies or substantial portions of the Software.
13
+ //
14
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ // SOFTWARE.
21
+
22
+ // The label rules shared by the toggle controls (checkbox, switch, radio): the label
23
+ // immediately before or after the input is clickable, uses the on-surface color, and
24
+ // dims alongside a disabled input. This partial emits nothing that is not extended.
25
+
26
+ %micl-toggle-label-pointer {
27
+ -webkit-tap-highlight-color: transparent;
28
+ cursor: pointer;
29
+ }
30
+
31
+ %micl-toggle-label {
32
+ color: var(--md-sys-color-on-surface);
33
+ }
34
+
35
+ %micl-toggle-label-disabled {
36
+ opacity: var(--md-sys-state-disabled-state-layer-opacity, 38%);
37
+ }