@maicol07/material-web 2.3.0 → 2.5.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 (503) hide show
  1. package/button/internal/_shared.scss +2 -2
  2. package/button/internal/_touch-target.scss +1 -1
  3. package/labs/gb/components/appbar/_app-bar-tokens.scss +136 -0
  4. package/labs/gb/components/appbar/app-bar.scss +167 -0
  5. package/labs/gb/components/badge/_badge-tokens.scss +18 -0
  6. package/labs/gb/components/badge/badge.scss +49 -0
  7. package/labs/gb/components/button/_button-tokens.scss +200 -0
  8. package/labs/gb/components/button/button.scss +130 -0
  9. package/labs/gb/components/card/_card-tokens.scss +56 -0
  10. package/labs/gb/components/card/card.scss +74 -0
  11. package/labs/gb/components/checkbox/_checkbox-tokens.scss +66 -0
  12. package/labs/gb/components/checkbox/checkbox.scss +105 -0
  13. package/labs/gb/components/chip/_chip-tokens.scss +167 -0
  14. package/labs/gb/components/chip/chip.scss +99 -0
  15. package/labs/gb/components/divider/_divider-tokens.scss +11 -0
  16. package/labs/gb/components/divider/divider.scss +31 -0
  17. package/labs/gb/components/fab/_fab-tokens.scss +89 -0
  18. package/labs/gb/components/fab/fab.scss +78 -0
  19. package/labs/gb/components/focus/focus-ring.scss +91 -0
  20. package/labs/gb/components/iconbutton/_icon-button-tokens.scss +213 -0
  21. package/labs/gb/components/iconbutton/icon-button.scss +160 -0
  22. package/labs/gb/components/list/_list-tokens.scss +103 -0
  23. package/labs/gb/components/list/list.scss +217 -0
  24. package/labs/gb/components/menu/_menu-tokens.scss +161 -0
  25. package/labs/gb/components/menu/menu.scss +174 -0
  26. package/labs/gb/components/radio/_radio-tokens.scss +39 -0
  27. package/labs/gb/components/radio/radio.scss +74 -0
  28. package/labs/gb/components/ripple/ripple.scss +103 -0
  29. package/labs/gb/components/splitbutton/_split-button-tokens.scss +139 -0
  30. package/labs/gb/components/splitbutton/split-button.scss +164 -0
  31. package/labs/gb/components/switch/_switch-tokens.scss +58 -0
  32. package/labs/gb/components/switch/switch.scss +109 -0
  33. package/labs/gb/styles/color/internal/_color-tokens.scss +95 -0
  34. package/labs/gb/styles/color/md-color-tokens-full.scss +17 -0
  35. package/labs/gb/styles/color/md-color-tokens.scss +15 -0
  36. package/labs/gb/styles/elevation/md-elevation-tokens.scss +25 -0
  37. package/labs/gb/styles/icon/md-icon.scss +63 -0
  38. package/labs/gb/styles/m3.scss +14 -0
  39. package/labs/gb/styles/motion/md-motion-tokens-easing.scss +35 -0
  40. package/labs/gb/styles/shape/md-shape-tokens.scss +23 -0
  41. package/labs/gb/styles/space/md-space-tokens.scss +28 -0
  42. package/labs/gb/styles/tailwind.scss +349 -0
  43. package/labs/gb/styles/typography/internal/_typography-tokens.scss +149 -0
  44. package/labs/gb/styles/typography/md-typography-tokens.scss +14 -0
  45. package/list/internal/listitem/_list-item.scss +3 -0
  46. package/menu/internal/menuitem/_menu-item.scss +4 -1
  47. package/package.json +102 -21
  48. package/sass/ext/_assert.scss +82 -0
  49. package/sass/ext/_list_ext.scss +114 -0
  50. package/sass/ext/_map_ext.scss +222 -0
  51. package/sass/ext/_string_ext.scss +153 -0
  52. package/sass/ext/_throw.scss +83 -0
  53. package/sass/ext/_type.scss +66 -0
  54. package/{internal/sass → sass/ext}/_var.scss +86 -96
  55. package/sass/ext/tests.scss +18 -0
  56. package/slider/internal/_slider.scss +1 -0
  57. package/switch/internal/_switch.scss +1 -0
  58. package/tabs/internal/_tab.scss +0 -1
  59. package/tokens/_index.scss +57 -57
  60. package/tokens/_md-comp-assist-chip.scss +8 -8
  61. package/tokens/_md-comp-badge.scss +4 -4
  62. package/tokens/_md-comp-checkbox.scss +6 -6
  63. package/tokens/_md-comp-circular-progress.scss +4 -4
  64. package/tokens/_md-comp-dialog.scss +8 -8
  65. package/tokens/_md-comp-divider.scss +3 -3
  66. package/tokens/_md-comp-elevated-button.scss +8 -8
  67. package/tokens/_md-comp-elevated-card.scss +6 -6
  68. package/tokens/_md-comp-elevation.scss +3 -3
  69. package/tokens/_md-comp-fab-branded.scss +10 -10
  70. package/tokens/_md-comp-fab.scss +17 -17
  71. package/tokens/_md-comp-filled-button.scss +8 -8
  72. package/tokens/_md-comp-filled-card.scss +6 -6
  73. package/tokens/_md-comp-filled-field.scss +7 -7
  74. package/tokens/_md-comp-filled-icon-button.scss +6 -6
  75. package/tokens/_md-comp-filled-select.scss +8 -8
  76. package/tokens/_md-comp-filled-text-field.scss +7 -7
  77. package/tokens/_md-comp-filled-tonal-button.scss +8 -8
  78. package/tokens/_md-comp-filled-tonal-icon-button.scss +6 -6
  79. package/tokens/_md-comp-filter-chip.scss +8 -8
  80. package/tokens/_md-comp-focus-ring.scss +5 -5
  81. package/tokens/_md-comp-full-screen-dialog.scss +6 -6
  82. package/tokens/_md-comp-icon-button.scss +5 -5
  83. package/tokens/_md-comp-icon.scss +1 -1
  84. package/tokens/_md-comp-input-chip.scss +8 -8
  85. package/tokens/_md-comp-item.scss +4 -4
  86. package/tokens/_md-comp-linear-progress.scss +4 -4
  87. package/tokens/_md-comp-list-item.scss +5 -5
  88. package/tokens/_md-comp-list.scss +3 -3
  89. package/tokens/_md-comp-menu-item.scss +8 -8
  90. package/tokens/_md-comp-menu.scss +5 -5
  91. package/tokens/_md-comp-navigation-bar.scss +6 -6
  92. package/tokens/_md-comp-navigation-drawer.scss +6 -6
  93. package/tokens/_md-comp-outlined-button.scss +7 -7
  94. package/tokens/_md-comp-outlined-card.scss +6 -6
  95. package/tokens/_md-comp-outlined-field.scss +7 -7
  96. package/tokens/_md-comp-outlined-icon-button.scss +6 -6
  97. package/tokens/_md-comp-outlined-segmented-button.scss +7 -7
  98. package/tokens/_md-comp-outlined-select.scss +8 -8
  99. package/tokens/_md-comp-outlined-text-field.scss +6 -6
  100. package/tokens/_md-comp-primary-tab.scss +8 -8
  101. package/tokens/_md-comp-radio.scss +4 -4
  102. package/tokens/_md-comp-ripple.scss +4 -4
  103. package/tokens/_md-comp-secondary-tab.scss +8 -8
  104. package/tokens/_md-comp-slider.scss +7 -7
  105. package/tokens/_md-comp-suggestion-chip.scss +8 -8
  106. package/tokens/_md-comp-switch.scss +6 -6
  107. package/tokens/_md-comp-test-table.scss +2 -2
  108. package/tokens/_md-comp-text-button.scss +7 -7
  109. package/tokens/_md-ref-palette.scss +2 -2
  110. package/tokens/_md-ref-typeface.scss +2 -2
  111. package/tokens/_md-sys-color.scss +3 -3
  112. package/tokens/_md-sys-elevation.scss +1 -1
  113. package/tokens/_md-sys-motion.scss +1 -1
  114. package/tokens/_md-sys-shape.scss +2 -2
  115. package/tokens/_md-sys-state.scss +1 -1
  116. package/tokens/_md-sys-typescale.scss +3 -3
  117. package/tokens/v0_192/_index.scss +3 -102
  118. package/tokens/v0_192/_md-comp-assist-chip.scss +1 -106
  119. package/tokens/v0_192/_md-comp-badge.scss +1 -56
  120. package/tokens/v0_192/_md-comp-banner.scss +1 -71
  121. package/tokens/v0_192/_md-comp-bottom-app-bar.scss +1 -31
  122. package/tokens/v0_192/_md-comp-carousel-item.scss +1 -61
  123. package/tokens/v0_192/_md-comp-checkbox.scss +1 -124
  124. package/tokens/v0_192/_md-comp-circular-progress-indicator.scss +1 -36
  125. package/tokens/v0_192/_md-comp-data-table.scss +1 -94
  126. package/tokens/v0_192/_md-comp-date-input-modal.scss +1 -85
  127. package/tokens/v0_192/_md-comp-date-picker-docked.scss +1 -242
  128. package/tokens/v0_192/_md-comp-date-picker-modal.scss +1 -301
  129. package/tokens/v0_192/_md-comp-dialog.scss +1 -119
  130. package/tokens/v0_192/_md-comp-divider.scss +1 -23
  131. package/tokens/v0_192/_md-comp-elevated-button.scss +1 -87
  132. package/tokens/v0_192/_md-comp-elevated-card.scss +1 -55
  133. package/tokens/v0_192/_md-comp-extended-fab-branded.scss +1 -84
  134. package/tokens/v0_192/_md-comp-extended-fab-primary.scss +1 -92
  135. package/tokens/v0_192/_md-comp-extended-fab-secondary.scss +1 -93
  136. package/tokens/v0_192/_md-comp-extended-fab-surface.scss +1 -88
  137. package/tokens/v0_192/_md-comp-extended-fab-tertiary.scss +1 -93
  138. package/tokens/v0_192/_md-comp-fab-branded-large.scss +1 -58
  139. package/tokens/v0_192/_md-comp-fab-branded.scss +1 -58
  140. package/tokens/v0_192/_md-comp-fab-primary-large.scss +1 -63
  141. package/tokens/v0_192/_md-comp-fab-primary-small.scss +1 -63
  142. package/tokens/v0_192/_md-comp-fab-primary.scss +1 -63
  143. package/tokens/v0_192/_md-comp-fab-secondary-large.scss +1 -64
  144. package/tokens/v0_192/_md-comp-fab-secondary-small.scss +1 -64
  145. package/tokens/v0_192/_md-comp-fab-secondary.scss +1 -64
  146. package/tokens/v0_192/_md-comp-fab-surface-large.scss +1 -62
  147. package/tokens/v0_192/_md-comp-fab-surface-small.scss +1 -62
  148. package/tokens/v0_192/_md-comp-fab-surface.scss +1 -62
  149. package/tokens/v0_192/_md-comp-fab-tertiary-large.scss +1 -64
  150. package/tokens/v0_192/_md-comp-fab-tertiary-small.scss +1 -64
  151. package/tokens/v0_192/_md-comp-fab-tertiary.scss +1 -64
  152. package/tokens/v0_192/_md-comp-filled-autocomplete.scss +1 -234
  153. package/tokens/v0_192/_md-comp-filled-button.scss +1 -87
  154. package/tokens/v0_192/_md-comp-filled-card.scss +1 -57
  155. package/tokens/v0_192/_md-comp-filled-icon-button.scss +1 -78
  156. package/tokens/v0_192/_md-comp-filled-menu-button.scss +1 -96
  157. package/tokens/v0_192/_md-comp-filled-select.scss +1 -268
  158. package/tokens/v0_192/_md-comp-filled-text-field.scss +1 -188
  159. package/tokens/v0_192/_md-comp-filled-tonal-button.scss +1 -97
  160. package/tokens/v0_192/_md-comp-filled-tonal-icon-button.scss +1 -85
  161. package/tokens/v0_192/_md-comp-filter-chip.scss +1 -205
  162. package/tokens/v0_192/_md-comp-full-screen-dialog.scss +1 -109
  163. package/tokens/v0_192/_md-comp-icon-button.scss +1 -69
  164. package/tokens/v0_192/_md-comp-input-chip.scss +1 -182
  165. package/tokens/v0_192/_md-comp-linear-progress-indicator.scss +1 -38
  166. package/tokens/v0_192/_md-comp-list.scss +1 -250
  167. package/tokens/v0_192/_md-comp-menu.scss +1 -39
  168. package/tokens/v0_192/_md-comp-navigation-bar.scss +1 -110
  169. package/tokens/v0_192/_md-comp-navigation-drawer.scss +1 -160
  170. package/tokens/v0_192/_md-comp-navigation-rail.scss +1 -114
  171. package/tokens/v0_192/_md-comp-outlined-autocomplete.scss +1 -224
  172. package/tokens/v0_192/_md-comp-outlined-button.scss +1 -82
  173. package/tokens/v0_192/_md-comp-outlined-card.scss +1 -61
  174. package/tokens/v0_192/_md-comp-outlined-icon-button.scss +1 -78
  175. package/tokens/v0_192/_md-comp-outlined-menu-button.scss +1 -92
  176. package/tokens/v0_192/_md-comp-outlined-segmented-button.scss +1 -110
  177. package/tokens/v0_192/_md-comp-outlined-select.scss +1 -258
  178. package/tokens/v0_192/_md-comp-outlined-text-field.scss +1 -169
  179. package/tokens/v0_192/_md-comp-plain-tooltip.scss +1 -53
  180. package/tokens/v0_192/_md-comp-primary-navigation-tab.scss +1 -119
  181. package/tokens/v0_192/_md-comp-radio-button.scss +1 -66
  182. package/tokens/v0_192/_md-comp-rich-tooltip.scss +1 -117
  183. package/tokens/v0_192/_md-comp-scrim.scss +1 -23
  184. package/tokens/v0_192/_md-comp-search-bar.scss +1 -95
  185. package/tokens/v0_192/_md-comp-search-view.scss +1 -89
  186. package/tokens/v0_192/_md-comp-secondary-navigation-tab.scss +1 -82
  187. package/tokens/v0_192/_md-comp-sheet-bottom.scss +1 -41
  188. package/tokens/v0_192/_md-comp-sheet-floating.scss +1 -30
  189. package/tokens/v0_192/_md-comp-sheet-side.scss +1 -89
  190. package/tokens/v0_192/_md-comp-slider.scss +1 -113
  191. package/tokens/v0_192/_md-comp-snackbar.scss +1 -125
  192. package/tokens/v0_192/_md-comp-standard-menu-button.scss +1 -96
  193. package/tokens/v0_192/_md-comp-suggestion-chip.scss +1 -122
  194. package/tokens/v0_192/_md-comp-switch.scss +1 -136
  195. package/tokens/v0_192/_md-comp-text-button.scss +1 -75
  196. package/tokens/v0_192/_md-comp-time-input.scss +1 -215
  197. package/tokens/v0_192/_md-comp-time-picker.scss +1 -262
  198. package/tokens/v0_192/_md-comp-top-app-bar-large.scss +1 -59
  199. package/tokens/v0_192/_md-comp-top-app-bar-medium.scss +1 -59
  200. package/tokens/v0_192/_md-comp-top-app-bar-small-centered.scss +1 -66
  201. package/tokens/v0_192/_md-comp-top-app-bar-small.scss +1 -62
  202. package/tokens/v0_192/_md-ref-palette.scss +1 -104
  203. package/tokens/v0_192/_md-ref-typeface.scss +1 -18
  204. package/tokens/v0_192/_md-sys-color.scss +1 -130
  205. package/tokens/v0_192/_md-sys-elevation.scss +1 -19
  206. package/tokens/v0_192/_md-sys-motion.scss +1 -50
  207. package/tokens/v0_192/_md-sys-shape.scss +1 -28
  208. package/tokens/v0_192/_md-sys-state.scss +1 -17
  209. package/tokens/v0_192/_md-sys-typescale.scss +1 -281
  210. package/tokens/versions/latest/sass/_index.scss +241 -0
  211. package/tokens/versions/latest/sass/_md-comp-app-bar-large-flexible.scss +31 -0
  212. package/tokens/versions/latest/sass/_md-comp-app-bar-large.scss +35 -0
  213. package/tokens/versions/latest/sass/_md-comp-app-bar-medium-flexible.scss +31 -0
  214. package/tokens/versions/latest/sass/_md-comp-app-bar-medium.scss +35 -0
  215. package/tokens/versions/latest/sass/_md-comp-app-bar-small.scss +42 -0
  216. package/tokens/versions/latest/sass/_md-comp-app-bar.scss +59 -0
  217. package/tokens/versions/latest/sass/_md-comp-assist-chip.scss +134 -0
  218. package/tokens/versions/latest/sass/_md-comp-badge.scss +53 -0
  219. package/tokens/versions/latest/sass/_md-comp-banner.scss +147 -0
  220. package/tokens/versions/latest/sass/_md-comp-banners-basic.scss +86 -0
  221. package/tokens/versions/latest/sass/_md-comp-banners-rich.scss +89 -0
  222. package/tokens/versions/latest/sass/_md-comp-banners.scss +43 -0
  223. package/tokens/versions/latest/sass/_md-comp-bottom-app-bar.scss +37 -0
  224. package/tokens/versions/latest/sass/_md-comp-button-elevated.scss +125 -0
  225. package/tokens/versions/latest/sass/_md-comp-button-filled.scss +125 -0
  226. package/tokens/versions/latest/sass/_md-comp-button-group-connected-large.scss +31 -0
  227. package/tokens/versions/latest/sass/_md-comp-button-group-connected-medium.scss +31 -0
  228. package/tokens/versions/latest/sass/_md-comp-button-group-connected-small.scss +31 -0
  229. package/tokens/versions/latest/sass/_md-comp-button-group-connected-xlarge.scss +31 -0
  230. package/tokens/versions/latest/sass/_md-comp-button-group-connected-xsmall.scss +31 -0
  231. package/tokens/versions/latest/sass/_md-comp-button-group-standard-large.scss +29 -0
  232. package/tokens/versions/latest/sass/_md-comp-button-group-standard-medium.scss +29 -0
  233. package/tokens/versions/latest/sass/_md-comp-button-group-standard-small.scss +29 -0
  234. package/tokens/versions/latest/sass/_md-comp-button-group-standard-xlarge.scss +29 -0
  235. package/tokens/versions/latest/sass/_md-comp-button-group-standard-xsmall.scss +29 -0
  236. package/tokens/versions/latest/sass/_md-comp-button-large.scss +51 -0
  237. package/tokens/versions/latest/sass/_md-comp-button-medium.scss +51 -0
  238. package/tokens/versions/latest/sass/_md-comp-button-outlined.scss +124 -0
  239. package/tokens/versions/latest/sass/_md-comp-button-small.scss +51 -0
  240. package/tokens/versions/latest/sass/_md-comp-button-text.scss +60 -0
  241. package/tokens/versions/latest/sass/_md-comp-button-tonal.scss +125 -0
  242. package/tokens/versions/latest/sass/_md-comp-button-xlarge.scss +51 -0
  243. package/tokens/versions/latest/sass/_md-comp-button-xsmall.scss +51 -0
  244. package/tokens/versions/latest/sass/_md-comp-button.scss +163 -0
  245. package/tokens/versions/latest/sass/_md-comp-carousel-item.scss +79 -0
  246. package/tokens/versions/latest/sass/_md-comp-checkbox.scss +216 -0
  247. package/tokens/versions/latest/sass/_md-comp-circular-progress-indicator.scss +52 -0
  248. package/tokens/versions/latest/sass/_md-comp-data-table.scss +110 -0
  249. package/tokens/versions/latest/sass/_md-comp-date-input-modal.scss +80 -0
  250. package/tokens/versions/latest/sass/_md-comp-date-picker-docked.scss +241 -0
  251. package/tokens/versions/latest/sass/_md-comp-date-picker-modal.scss +295 -0
  252. package/tokens/versions/latest/sass/_md-comp-dialog.scss +157 -0
  253. package/tokens/versions/latest/sass/_md-comp-divider.scss +23 -0
  254. package/tokens/versions/latest/sass/_md-comp-drag-handle.scss +54 -0
  255. package/tokens/versions/latest/sass/_md-comp-elevated-button.scss +190 -0
  256. package/tokens/versions/latest/sass/_md-comp-elevated-card.scss +75 -0
  257. package/tokens/versions/latest/sass/_md-comp-extended-fab-branded.scss +100 -0
  258. package/tokens/versions/latest/sass/_md-comp-extended-fab-large.scss +36 -0
  259. package/tokens/versions/latest/sass/_md-comp-extended-fab-medium.scss +36 -0
  260. package/tokens/versions/latest/sass/_md-comp-extended-fab-primary-container.scss +61 -0
  261. package/tokens/versions/latest/sass/_md-comp-extended-fab-primary.scss +174 -0
  262. package/tokens/versions/latest/sass/_md-comp-extended-fab-secondary-container.scss +61 -0
  263. package/tokens/versions/latest/sass/_md-comp-extended-fab-secondary.scss +174 -0
  264. package/tokens/versions/latest/sass/_md-comp-extended-fab-small.scss +36 -0
  265. package/tokens/versions/latest/sass/_md-comp-extended-fab-surface.scss +108 -0
  266. package/tokens/versions/latest/sass/_md-comp-extended-fab-tertiary-container.scss +61 -0
  267. package/tokens/versions/latest/sass/_md-comp-extended-fab-tertiary.scss +174 -0
  268. package/tokens/versions/latest/sass/_md-comp-extended-fab.scss +36 -0
  269. package/tokens/versions/latest/sass/_md-comp-fab-branded-large.scss +127 -0
  270. package/tokens/versions/latest/sass/_md-comp-fab-branded.scss +75 -0
  271. package/tokens/versions/latest/sass/_md-comp-fab-large.scss +27 -0
  272. package/tokens/versions/latest/sass/_md-comp-fab-medium.scss +27 -0
  273. package/tokens/versions/latest/sass/_md-comp-fab-menu-primary-close-button.scss +51 -0
  274. package/tokens/versions/latest/sass/_md-comp-fab-menu-primary-container.scss +59 -0
  275. package/tokens/versions/latest/sass/_md-comp-fab-menu-secondary-close-button.scss +51 -0
  276. package/tokens/versions/latest/sass/_md-comp-fab-menu-secondary-container.scss +59 -0
  277. package/tokens/versions/latest/sass/_md-comp-fab-menu-tertiary-close-button.scss +51 -0
  278. package/tokens/versions/latest/sass/_md-comp-fab-menu-tertiary-container.scss +59 -0
  279. package/tokens/versions/latest/sass/_md-comp-fab-menu.scss +53 -0
  280. package/tokens/versions/latest/sass/_md-comp-fab-primary-container.scss +53 -0
  281. package/tokens/versions/latest/sass/_md-comp-fab-primary-large.scss +131 -0
  282. package/tokens/versions/latest/sass/_md-comp-fab-primary-small.scss +131 -0
  283. package/tokens/versions/latest/sass/_md-comp-fab-primary.scss +131 -0
  284. package/tokens/versions/latest/sass/_md-comp-fab-secondary-container.scss +53 -0
  285. package/tokens/versions/latest/sass/_md-comp-fab-secondary-large.scss +131 -0
  286. package/tokens/versions/latest/sass/_md-comp-fab-secondary-small.scss +131 -0
  287. package/tokens/versions/latest/sass/_md-comp-fab-secondary.scss +131 -0
  288. package/tokens/versions/latest/sass/_md-comp-fab-small.scss +27 -0
  289. package/tokens/versions/latest/sass/_md-comp-fab-surface-large.scss +139 -0
  290. package/tokens/versions/latest/sass/_md-comp-fab-surface.scss +83 -0
  291. package/tokens/versions/latest/sass/_md-comp-fab-tertiary-container.scss +53 -0
  292. package/tokens/versions/latest/sass/_md-comp-fab-tertiary-large.scss +131 -0
  293. package/tokens/versions/latest/sass/_md-comp-fab-tertiary-small.scss +131 -0
  294. package/tokens/versions/latest/sass/_md-comp-fab-tertiary.scss +131 -0
  295. package/tokens/versions/latest/sass/_md-comp-fab.scss +27 -0
  296. package/tokens/versions/latest/sass/_md-comp-filled-autocomplete.scss +279 -0
  297. package/tokens/versions/latest/sass/_md-comp-filled-button.scss +206 -0
  298. package/tokens/versions/latest/sass/_md-comp-filled-card.scss +75 -0
  299. package/tokens/versions/latest/sass/_md-comp-filled-icon-button.scss +178 -0
  300. package/tokens/versions/latest/sass/_md-comp-filled-menu-button.scss +118 -0
  301. package/tokens/versions/latest/sass/_md-comp-filled-select.scss +269 -0
  302. package/tokens/versions/latest/sass/_md-comp-filled-text-field.scss +221 -0
  303. package/tokens/versions/latest/sass/_md-comp-filled-tonal-button.scss +186 -0
  304. package/tokens/versions/latest/sass/_md-comp-filled-tonal-icon-button.scss +178 -0
  305. package/tokens/versions/latest/sass/_md-comp-filter-chip.scss +276 -0
  306. package/tokens/versions/latest/sass/_md-comp-full-screen-dialog.scss +199 -0
  307. package/tokens/versions/latest/sass/_md-comp-icon-button-filled.scss +82 -0
  308. package/tokens/versions/latest/sass/_md-comp-icon-button-large.scss +52 -0
  309. package/tokens/versions/latest/sass/_md-comp-icon-button-medium.scss +52 -0
  310. package/tokens/versions/latest/sass/_md-comp-icon-button-outlined.scss +86 -0
  311. package/tokens/versions/latest/sass/_md-comp-icon-button-small.scss +52 -0
  312. package/tokens/versions/latest/sass/_md-comp-icon-button-standard.scss +72 -0
  313. package/tokens/versions/latest/sass/_md-comp-icon-button-tonal.scss +82 -0
  314. package/tokens/versions/latest/sass/_md-comp-icon-button-xlarge.scss +52 -0
  315. package/tokens/versions/latest/sass/_md-comp-icon-button-xsmall.scss +52 -0
  316. package/tokens/versions/latest/sass/_md-comp-icon-button.scss +193 -0
  317. package/tokens/versions/latest/sass/_md-comp-input-chip.scss +300 -0
  318. package/tokens/versions/latest/sass/_md-comp-linear-progress-indicator.scss +60 -0
  319. package/tokens/versions/latest/sass/_md-comp-list-expand.scss +36 -0
  320. package/tokens/versions/latest/sass/_md-comp-list-reorder.scss +45 -0
  321. package/tokens/versions/latest/sass/_md-comp-list-reveal.scss +50 -0
  322. package/tokens/versions/latest/sass/_md-comp-list.scss +408 -0
  323. package/tokens/versions/latest/sass/_md-comp-loading-indicator.scss +38 -0
  324. package/tokens/versions/latest/sass/_md-comp-menu.scss +218 -0
  325. package/tokens/versions/latest/sass/_md-comp-menus-standard.scss +188 -0
  326. package/tokens/versions/latest/sass/_md-comp-menus-vibrant.scss +160 -0
  327. package/tokens/versions/latest/sass/_md-comp-menus.scss +141 -0
  328. package/tokens/versions/latest/sass/_md-comp-nav-bar-item-horizontal.scss +31 -0
  329. package/tokens/versions/latest/sass/_md-comp-nav-bar-item-vertical.scss +31 -0
  330. package/tokens/versions/latest/sass/_md-comp-nav-bar.scss +68 -0
  331. package/tokens/versions/latest/sass/_md-comp-nav-rail-collapsed.scss +35 -0
  332. package/tokens/versions/latest/sass/_md-comp-nav-rail-expanded.scss +47 -0
  333. package/tokens/versions/latest/sass/_md-comp-nav-rail-item-horizontal.scss +31 -0
  334. package/tokens/versions/latest/sass/_md-comp-nav-rail-item-vertical.scss +33 -0
  335. package/tokens/versions/latest/sass/_md-comp-nav-rail-item.scss +39 -0
  336. package/tokens/versions/latest/sass/_md-comp-nav-rail.scss +48 -0
  337. package/tokens/versions/latest/sass/_md-comp-navigation-bar.scss +150 -0
  338. package/tokens/versions/latest/sass/_md-comp-navigation-drawer.scss +187 -0
  339. package/tokens/versions/latest/sass/_md-comp-navigation-rail.scss +233 -0
  340. package/tokens/versions/latest/sass/_md-comp-outlined-autocomplete.scss +275 -0
  341. package/tokens/versions/latest/sass/_md-comp-outlined-button.scss +182 -0
  342. package/tokens/versions/latest/sass/_md-comp-outlined-card.scss +87 -0
  343. package/tokens/versions/latest/sass/_md-comp-outlined-menu-button.scss +117 -0
  344. package/tokens/versions/latest/sass/_md-comp-outlined-segmented-button.scss +121 -0
  345. package/tokens/versions/latest/sass/_md-comp-outlined-select.scss +266 -0
  346. package/tokens/versions/latest/sass/_md-comp-outlined-text-field.scss +216 -0
  347. package/tokens/versions/latest/sass/_md-comp-plain-tooltip.scss +45 -0
  348. package/tokens/versions/latest/sass/_md-comp-primary-navigation-tab.scss +130 -0
  349. package/tokens/versions/latest/sass/_md-comp-progress-indicator-circular.scss +47 -0
  350. package/tokens/versions/latest/sass/_md-comp-progress-indicator-linear.scss +65 -0
  351. package/tokens/versions/latest/sass/_md-comp-progress-indicator.scss +48 -0
  352. package/tokens/versions/latest/sass/_md-comp-radio-button.scss +72 -0
  353. package/tokens/versions/latest/sass/_md-comp-rich-tooltip.scss +113 -0
  354. package/tokens/versions/latest/sass/_md-comp-scrim.scss +23 -0
  355. package/tokens/versions/latest/sass/_md-comp-search-bar.scss +137 -0
  356. package/tokens/versions/latest/sass/_md-comp-search-view.scss +108 -0
  357. package/tokens/versions/latest/sass/_md-comp-secondary-navigation-tab.scss +104 -0
  358. package/tokens/versions/latest/sass/_md-comp-sheet-bottom.scss +52 -0
  359. package/tokens/versions/latest/sass/_md-comp-sheet-floating.scss +31 -0
  360. package/tokens/versions/latest/sass/_md-comp-sheet-side.scss +96 -0
  361. package/tokens/versions/latest/sass/_md-comp-slider-large.scss +31 -0
  362. package/tokens/versions/latest/sass/_md-comp-slider-medium.scss +31 -0
  363. package/tokens/versions/latest/sass/_md-comp-slider-small.scss +27 -0
  364. package/tokens/versions/latest/sass/_md-comp-slider-xlarge.scss +31 -0
  365. package/tokens/versions/latest/sass/_md-comp-slider-xsmall.scss +27 -0
  366. package/tokens/versions/latest/sass/_md-comp-slider.scss +307 -0
  367. package/tokens/versions/latest/sass/_md-comp-snackbar.scss +115 -0
  368. package/tokens/versions/latest/sass/_md-comp-split-button-large.scss +43 -0
  369. package/tokens/versions/latest/sass/_md-comp-split-button-medium.scss +43 -0
  370. package/tokens/versions/latest/sass/_md-comp-split-button-small.scss +43 -0
  371. package/tokens/versions/latest/sass/_md-comp-split-button-xlarge.scss +43 -0
  372. package/tokens/versions/latest/sass/_md-comp-split-button-xsmall.scss +45 -0
  373. package/tokens/versions/latest/sass/_md-comp-standard-menu-button.scss +103 -0
  374. package/tokens/versions/latest/sass/_md-comp-suggestion-chip.scss +134 -0
  375. package/tokens/versions/latest/sass/_md-comp-switch.scss +191 -0
  376. package/tokens/versions/latest/sass/_md-comp-text-button.scss +154 -0
  377. package/tokens/versions/latest/sass/_md-comp-time-input.scss +206 -0
  378. package/tokens/versions/latest/sass/_md-comp-time-picker.scss +257 -0
  379. package/tokens/versions/latest/sass/_md-comp-toolbar-docked.scss +36 -0
  380. package/tokens/versions/latest/sass/_md-comp-toolbar-floating-fab.scss +51 -0
  381. package/tokens/versions/latest/sass/_md-comp-toolbar-floating.scss +75 -0
  382. package/tokens/versions/latest/sass/_md-comp-toolbar-standard.scss +87 -0
  383. package/tokens/versions/latest/sass/_md-comp-toolbar-vibrant.scss +87 -0
  384. package/tokens/versions/latest/sass/_md-comp-top-app-bar-large.scss +92 -0
  385. package/tokens/versions/latest/sass/_md-comp-top-app-bar-medium.scss +92 -0
  386. package/tokens/versions/latest/sass/_md-comp-top-app-bar-small-centered.scss +112 -0
  387. package/tokens/versions/latest/sass/_md-comp-top-app-bar-small.scss +104 -0
  388. package/tokens/versions/latest/sass/_md-fab-surface-small.scss +139 -0
  389. package/tokens/versions/latest/sass/_md-outlined-icon-button.scss +166 -0
  390. package/tokens/versions/latest/sass/_md-ref-palette.scss +495 -0
  391. package/tokens/versions/latest/sass/_md-ref-typeface.scss +27 -0
  392. package/tokens/versions/latest/sass/_md-sys-color.scss +209 -0
  393. package/tokens/versions/latest/sass/_md-sys-color__dark.scss +209 -0
  394. package/tokens/versions/latest/sass/_md-sys-color__dark__high-contrast.scss +209 -0
  395. package/tokens/versions/latest/sass/_md-sys-color__dark__medium-contrast.scss +209 -0
  396. package/tokens/versions/latest/sass/_md-sys-color__high-contrast.scss +209 -0
  397. package/tokens/versions/latest/sass/_md-sys-color__medium-contrast.scss +209 -0
  398. package/tokens/versions/latest/sass/_md-sys-elevation.scss +35 -0
  399. package/tokens/versions/latest/sass/_md-sys-motion.scss +107 -0
  400. package/tokens/versions/latest/sass/_md-sys-shape.scss +67 -0
  401. package/tokens/versions/latest/sass/_md-sys-state-focus-indicator.scss +23 -0
  402. package/tokens/versions/latest/sass/_md-sys-state.scss +27 -0
  403. package/tokens/versions/latest/sass/_md-sys-typescale-emphasized.scss +559 -0
  404. package/tokens/versions/latest/sass/_md-sys-typescale.scss +571 -0
  405. package/tokens/versions/v0_192/_index.scss +107 -0
  406. package/tokens/versions/v0_192/_md-comp-assist-chip.scss +111 -0
  407. package/tokens/versions/v0_192/_md-comp-badge.scss +61 -0
  408. package/tokens/versions/v0_192/_md-comp-banner.scss +76 -0
  409. package/tokens/versions/v0_192/_md-comp-bottom-app-bar.scss +36 -0
  410. package/tokens/versions/v0_192/_md-comp-carousel-item.scss +66 -0
  411. package/tokens/versions/v0_192/_md-comp-checkbox.scss +129 -0
  412. package/tokens/versions/v0_192/_md-comp-circular-progress-indicator.scss +41 -0
  413. package/tokens/versions/v0_192/_md-comp-data-table.scss +99 -0
  414. package/tokens/versions/v0_192/_md-comp-date-input-modal.scss +90 -0
  415. package/tokens/versions/v0_192/_md-comp-date-picker-docked.scss +247 -0
  416. package/tokens/versions/v0_192/_md-comp-date-picker-modal.scss +306 -0
  417. package/tokens/versions/v0_192/_md-comp-dialog.scss +124 -0
  418. package/tokens/versions/v0_192/_md-comp-divider.scss +28 -0
  419. package/tokens/versions/v0_192/_md-comp-elevated-button.scss +92 -0
  420. package/tokens/versions/v0_192/_md-comp-elevated-card.scss +60 -0
  421. package/tokens/versions/v0_192/_md-comp-extended-fab-branded.scss +89 -0
  422. package/tokens/versions/v0_192/_md-comp-extended-fab-primary.scss +97 -0
  423. package/tokens/versions/v0_192/_md-comp-extended-fab-secondary.scss +98 -0
  424. package/tokens/versions/v0_192/_md-comp-extended-fab-surface.scss +93 -0
  425. package/tokens/versions/v0_192/_md-comp-extended-fab-tertiary.scss +98 -0
  426. package/tokens/versions/v0_192/_md-comp-fab-branded-large.scss +63 -0
  427. package/tokens/versions/v0_192/_md-comp-fab-branded.scss +63 -0
  428. package/tokens/versions/v0_192/_md-comp-fab-primary-large.scss +68 -0
  429. package/tokens/versions/v0_192/_md-comp-fab-primary-small.scss +68 -0
  430. package/tokens/versions/v0_192/_md-comp-fab-primary.scss +68 -0
  431. package/tokens/versions/v0_192/_md-comp-fab-secondary-large.scss +69 -0
  432. package/tokens/versions/v0_192/_md-comp-fab-secondary-small.scss +69 -0
  433. package/tokens/versions/v0_192/_md-comp-fab-secondary.scss +69 -0
  434. package/tokens/versions/v0_192/_md-comp-fab-surface-large.scss +67 -0
  435. package/tokens/versions/v0_192/_md-comp-fab-surface-small.scss +67 -0
  436. package/tokens/versions/v0_192/_md-comp-fab-surface.scss +67 -0
  437. package/tokens/versions/v0_192/_md-comp-fab-tertiary-large.scss +69 -0
  438. package/tokens/versions/v0_192/_md-comp-fab-tertiary-small.scss +69 -0
  439. package/tokens/versions/v0_192/_md-comp-fab-tertiary.scss +69 -0
  440. package/tokens/versions/v0_192/_md-comp-filled-autocomplete.scss +239 -0
  441. package/tokens/versions/v0_192/_md-comp-filled-button.scss +92 -0
  442. package/tokens/versions/v0_192/_md-comp-filled-card.scss +62 -0
  443. package/tokens/versions/v0_192/_md-comp-filled-icon-button.scss +83 -0
  444. package/tokens/versions/v0_192/_md-comp-filled-menu-button.scss +101 -0
  445. package/tokens/versions/v0_192/_md-comp-filled-select.scss +273 -0
  446. package/tokens/versions/v0_192/_md-comp-filled-text-field.scss +193 -0
  447. package/tokens/versions/v0_192/_md-comp-filled-tonal-button.scss +102 -0
  448. package/tokens/versions/v0_192/_md-comp-filled-tonal-icon-button.scss +90 -0
  449. package/tokens/versions/v0_192/_md-comp-filter-chip.scss +210 -0
  450. package/tokens/versions/v0_192/_md-comp-full-screen-dialog.scss +114 -0
  451. package/tokens/versions/v0_192/_md-comp-icon-button.scss +74 -0
  452. package/tokens/versions/v0_192/_md-comp-input-chip.scss +187 -0
  453. package/tokens/versions/v0_192/_md-comp-linear-progress-indicator.scss +43 -0
  454. package/tokens/versions/v0_192/_md-comp-list.scss +255 -0
  455. package/tokens/versions/v0_192/_md-comp-menu.scss +44 -0
  456. package/tokens/versions/v0_192/_md-comp-navigation-bar.scss +115 -0
  457. package/tokens/versions/v0_192/_md-comp-navigation-drawer.scss +165 -0
  458. package/tokens/versions/v0_192/_md-comp-navigation-rail.scss +119 -0
  459. package/tokens/versions/v0_192/_md-comp-outlined-autocomplete.scss +229 -0
  460. package/tokens/versions/v0_192/_md-comp-outlined-button.scss +87 -0
  461. package/tokens/versions/v0_192/_md-comp-outlined-card.scss +66 -0
  462. package/tokens/versions/v0_192/_md-comp-outlined-icon-button.scss +83 -0
  463. package/tokens/versions/v0_192/_md-comp-outlined-menu-button.scss +97 -0
  464. package/tokens/versions/v0_192/_md-comp-outlined-segmented-button.scss +115 -0
  465. package/tokens/versions/v0_192/_md-comp-outlined-select.scss +263 -0
  466. package/tokens/versions/v0_192/_md-comp-outlined-text-field.scss +174 -0
  467. package/tokens/versions/v0_192/_md-comp-plain-tooltip.scss +58 -0
  468. package/tokens/versions/v0_192/_md-comp-primary-navigation-tab.scss +124 -0
  469. package/tokens/versions/v0_192/_md-comp-radio-button.scss +71 -0
  470. package/tokens/versions/v0_192/_md-comp-rich-tooltip.scss +122 -0
  471. package/tokens/versions/v0_192/_md-comp-scrim.scss +28 -0
  472. package/tokens/versions/v0_192/_md-comp-search-bar.scss +100 -0
  473. package/tokens/versions/v0_192/_md-comp-search-view.scss +94 -0
  474. package/tokens/versions/v0_192/_md-comp-secondary-navigation-tab.scss +87 -0
  475. package/tokens/versions/v0_192/_md-comp-sheet-bottom.scss +46 -0
  476. package/tokens/versions/v0_192/_md-comp-sheet-floating.scss +35 -0
  477. package/tokens/versions/v0_192/_md-comp-sheet-side.scss +94 -0
  478. package/tokens/versions/v0_192/_md-comp-slider.scss +118 -0
  479. package/tokens/versions/v0_192/_md-comp-snackbar.scss +130 -0
  480. package/tokens/versions/v0_192/_md-comp-standard-menu-button.scss +101 -0
  481. package/tokens/versions/v0_192/_md-comp-suggestion-chip.scss +127 -0
  482. package/tokens/versions/v0_192/_md-comp-switch.scss +141 -0
  483. package/tokens/versions/v0_192/_md-comp-text-button.scss +80 -0
  484. package/tokens/versions/v0_192/_md-comp-time-input.scss +220 -0
  485. package/tokens/versions/v0_192/_md-comp-time-picker.scss +267 -0
  486. package/tokens/versions/v0_192/_md-comp-top-app-bar-large.scss +64 -0
  487. package/tokens/versions/v0_192/_md-comp-top-app-bar-medium.scss +64 -0
  488. package/tokens/versions/v0_192/_md-comp-top-app-bar-small-centered.scss +71 -0
  489. package/tokens/versions/v0_192/_md-comp-top-app-bar-small.scss +67 -0
  490. package/tokens/versions/v0_192/_md-ref-palette.scss +109 -0
  491. package/tokens/versions/v0_192/_md-ref-typeface.scss +23 -0
  492. package/tokens/versions/v0_192/_md-sys-color.scss +135 -0
  493. package/tokens/versions/v0_192/_md-sys-elevation.scss +24 -0
  494. package/tokens/versions/v0_192/_md-sys-motion.scss +55 -0
  495. package/tokens/versions/v0_192/_md-sys-shape.scss +33 -0
  496. package/tokens/versions/v0_192/_md-sys-state.scss +22 -0
  497. package/tokens/versions/v0_192/_md-sys-typescale.scss +286 -0
  498. package/tokens/versions/v0_192/index.test.scss +584 -0
  499. package/tokens/versions/v0_192/lib.test.scss +663 -0
  500. package/types/command-event.d.ts +22 -0
  501. package/types/css-imports.d.ts +12 -0
  502. package/types/popover.d.ts +22 -0
  503. package/internal/sass/_string-ext.scss +0 -195
@@ -0,0 +1,74 @@
1
+ /*!
2
+ * Copyright 2026 Google LLC
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ // go/keep-sorted start by_regex='(.+) prefix_order=sass:
7
+ @use 'radio-tokens';
8
+ // go/keep-sorted end
9
+
10
+ @layer md.sys, md.comp.ripple, md.comp.focus-ring;
11
+ @layer md.comp.radio {
12
+ .radio {
13
+ & {
14
+ @include radio-tokens.root;
15
+
16
+ &:where(:hover, .hover) {
17
+ @include radio-tokens.hovered;
18
+ }
19
+ &:where(:focus-within, .focus) {
20
+ @include radio-tokens.focused;
21
+ }
22
+ &:where(:active, .active) {
23
+ @include radio-tokens.pressed;
24
+ }
25
+ }
26
+ &:is(:checked, .checked) {
27
+ @include radio-tokens.selected;
28
+
29
+ &:where(:active, .active) {
30
+ @include radio-tokens.selected-pressed;
31
+ }
32
+ }
33
+ &:is(:disabled, .disabled) {
34
+ @include radio-tokens.disabled;
35
+ }
36
+
37
+ & {
38
+ appearance: none;
39
+ position: relative;
40
+ display: inline-flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ width: 48px;
44
+ height: 48px;
45
+ background-image: none;
46
+ outline: none;
47
+ --icon: 'radio_button_unchecked';
48
+
49
+ &::before {
50
+ content: var(--icon);
51
+ color: var(--icon-color);
52
+ font: var(--icon-size) / 1 var(--md-icon-font);
53
+ width: var(--icon-size);
54
+ aspect-ratio: 1;
55
+ }
56
+ &:is(:checked, .checked)::before {
57
+ --icon: 'radio_button_checked';
58
+ }
59
+ &::after {
60
+ content: '';
61
+ position: absolute;
62
+ aspect-ratio: 1;
63
+ background-image: var(--ripple);
64
+ color: var(--state-layer-color);
65
+ width: var(--state-layer-size);
66
+ border-radius: var(--state-layer-shape);
67
+ outline: var(--focus-ring-outline);
68
+ outline-offset: var(--focus-ring-offset);
69
+ transition: var(--ripple-transition);
70
+ animation: var(--ripple-animation), var(--focus-ring-animation);
71
+ }
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,103 @@
1
+ /*!
2
+ * Copyright 2026 Google LLC
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ @layer md.sys;
7
+ @layer md.comp.ripple {
8
+ @property --ripple-scale {
9
+ syntax: '<percentage>';
10
+ inherits: false;
11
+ initial-value: 0%;
12
+ }
13
+ @property --ripple-hover-opacity {
14
+ syntax: '<percentage>';
15
+ inherits: false;
16
+ initial-value: 0%;
17
+ }
18
+ @property --ripple-press-opacity {
19
+ syntax: '<percentage>';
20
+ inherits: false;
21
+ initial-value: 0%;
22
+ }
23
+ @property --ripple-x {
24
+ syntax: '<percentage>';
25
+ inherits: false;
26
+ initial-value: 50%;
27
+ }
28
+ @property --ripple-y {
29
+ syntax: '<percentage>';
30
+ inherits: false;
31
+ initial-value: 50%;
32
+ }
33
+
34
+ .ripple {
35
+ --ripple-color: currentColor;
36
+ --ripple-press-transition: --ripple-press-opacity 375ms linear;
37
+ --ripple-transition: --ripple-hover-opacity 15ms linear,
38
+ var(--ripple-press-transition);
39
+ --ripple-animation: ripple-release 375ms linear;
40
+ --ripple: radial-gradient(
41
+ hsl(from var(--ripple-color) h s l / var(--ripple-hover-opacity))
42
+ ),
43
+ radial-gradient(
44
+ circle at var(--ripple-x) var(--ripple-y),
45
+ hsl(from var(--ripple-color) h s l / var(--ripple-press-opacity))
46
+ var(--ripple-scale),
47
+ transparent calc(var(--ripple-scale) * 1.35)
48
+ );
49
+
50
+ background-image: var(--ripple);
51
+ transition: var(--ripple-transition);
52
+ animation: var(--ripple-animation), var(--focus-ring-animation, none);
53
+
54
+ // Ripples support the following DOM use cases:
55
+ // 1. `.ripple` and interactive element are the same.
56
+ // 2. `.ripple` is a parent of a child interactive `.ripple-target`.
57
+ // 3. `.ripple` is a child of a parent interactive `.ripple-target`.
58
+ // 4. `.ripple.ripple-host` is a within an interactive shadow DOM host.
59
+ //
60
+ // Pseudo class emulation is only needed for the `.ripple` element, not for
61
+ // the target or host elements.
62
+
63
+ &:is(:hover, .hover),
64
+ &:has(.ripple-target:hover),
65
+ .ripple-target:hover &,
66
+ :host(:hover) &.ripple-host {
67
+ --ripple-hover-opacity: 8%;
68
+ }
69
+
70
+ &:is(:active, .active),
71
+ &:has(.ripple-target:active),
72
+ .ripple-target:active &,
73
+ :host(:active) &.ripple-host {
74
+ --ripple-press-opacity: 10%;
75
+ --ripple-press-transition: --ripple-press-opacity 100ms linear;
76
+ --ripple-animation: ripple-press forwards 450ms cubic-bezier(0.2, 0, 0, 1);
77
+ }
78
+
79
+ &:is(:disabled, .disabled) {
80
+ --ripple: none;
81
+ }
82
+ }
83
+
84
+ @keyframes ripple-press {
85
+ from {
86
+ --ripple-scale: 20%;
87
+ }
88
+ to {
89
+ --ripple-scale: 100%;
90
+ --ripple-x: 50%;
91
+ --ripple-y: 50%;
92
+ }
93
+ }
94
+
95
+ @keyframes ripple-release {
96
+ from {
97
+ --ripple-scale: 100%;
98
+ }
99
+ to {
100
+ --ripple-scale: 100%;
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,139 @@
1
+ //
2
+ // Copyright 2026 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @mixin root {
7
+ // LINT.IfChange
8
+ --between-space: 2px;
9
+ // LINT.ThenChange(md-split-button.ts) keep in sync with `@cssprop` jsdoc tags
10
+ }
11
+
12
+ @mixin button {
13
+ // LINT.IfChange
14
+ --icon-size: 0;
15
+ --inner-corner-size: 0;
16
+ --outer-corner-size: calc(var(--container-height) / 2);
17
+ --leading-space: 0;
18
+ --trailing-space: 0;
19
+ // LINT.ThenChange(md-split-button.ts) keep in sync with `@cssprop` jsdoc tags
20
+ }
21
+
22
+ @mixin button-xs {
23
+ --icon-size: 22px;
24
+ --inner-corner-size: var(--md-sys-shape-corner-xs);
25
+ }
26
+
27
+ @mixin button-xs-leading {
28
+ --leading-space: 12px;
29
+ --trailing-space: 10px;
30
+ }
31
+
32
+ @mixin button-xs-trailing {
33
+ --leading-space: 13px;
34
+ --trailing-space: 13px;
35
+ }
36
+
37
+ @mixin button-xs-hovered {
38
+ --inner-corner-size: var(--md-sys-shape-corner-sm);
39
+ }
40
+
41
+ @mixin button-xs-pressed {
42
+ --inner-corner-size: var(--md-sys-shape-corner-sm);
43
+ }
44
+
45
+ @mixin button-sm {
46
+ --icon-size: 22px;
47
+ --inner-corner-size: var(--md-sys-shape-corner-xs);
48
+ }
49
+
50
+ @mixin button-sm-leading {
51
+ --leading-space: 16px;
52
+ --trailing-space: 12px;
53
+ }
54
+
55
+ @mixin button-sm-trailing {
56
+ --leading-space: 13px;
57
+ --trailing-space: 13px;
58
+ }
59
+
60
+ @mixin button-sm-hovered {
61
+ --inner-corner-size: var(--md-sys-shape-corner-md);
62
+ }
63
+
64
+ @mixin button-sm-pressed {
65
+ --inner-corner-size: var(--md-sys-shape-corner-md);
66
+ }
67
+
68
+ @mixin button-md {
69
+ --icon-size: 26px;
70
+ --inner-corner-size: var(--md-sys-shape-corner-xs);
71
+ }
72
+
73
+ @mixin button-md-leading {
74
+ --leading-space: 24px;
75
+ --trailing-space: 24px;
76
+ }
77
+
78
+ @mixin button-md-trailing {
79
+ --leading-space: 15px;
80
+ --trailing-space: 15px;
81
+ }
82
+
83
+ @mixin button-md-hovered {
84
+ --inner-corner-size: var(--md-sys-shape-corner-md);
85
+ }
86
+
87
+ @mixin button-md-pressed {
88
+ --inner-corner-size: var(--md-sys-shape-corner-md);
89
+ }
90
+
91
+ @mixin button-lg {
92
+ --icon-size: 38px;
93
+ --inner-corner-size: var(--md-sys-shape-corner-sm);
94
+ }
95
+
96
+ @mixin button-lg-leading {
97
+ --leading-space: 48px;
98
+ --trailing-space: 48px;
99
+ }
100
+
101
+ @mixin button-lg-trailing {
102
+ --leading-space: 29px;
103
+ --trailing-space: 29px;
104
+ }
105
+
106
+ @mixin button-lg-hovered {
107
+ --inner-corner-size: var(--md-sys-shape-corner-lg-increased);
108
+ }
109
+
110
+ @mixin button-lg-pressed {
111
+ --inner-corner-size: var(--md-sys-shape-corner-lg-increased);
112
+ }
113
+
114
+ @mixin button-xl {
115
+ --icon-size: 50px;
116
+ --inner-corner-size: var(--md-sys-shape-corner-md);
117
+ }
118
+
119
+ @mixin button-xl-leading {
120
+ --leading-space: 64px;
121
+ --trailing-space: 64px;
122
+ }
123
+
124
+ @mixin button-xl-trailing {
125
+ --leading-space: 43px;
126
+ --trailing-space: 43px;
127
+ }
128
+
129
+ @mixin button-xl-hovered {
130
+ --inner-corner-size: var(--md-sys-shape-corner-lg-increased);
131
+ }
132
+
133
+ @mixin button-xl-pressed {
134
+ --inner-corner-size: var(--md-sys-shape-corner-lg-increased);
135
+ }
136
+
137
+ @mixin button-trailing-selected {
138
+ --inner-corner-size: calc(var(--container-height) / 2);
139
+ }
@@ -0,0 +1,164 @@
1
+ /*!
2
+ * Copyright 2026 Google LLC
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ // go/keep-sorted start by_regex='(.+) prefix_order=sass:
7
+ @use 'split-button-tokens';
8
+ // go/keep-sorted end
9
+
10
+ @layer md.sys, md.comp.ripple, md.comp.focus-ring, md.comp.button;
11
+ @layer md.comp.split-button {
12
+ .split-btn {
13
+ @include split-button-tokens.root;
14
+
15
+ .btn {
16
+ @include split-button-tokens.button;
17
+ }
18
+
19
+ .btn-xs {
20
+ @include split-button-tokens.button-xs;
21
+
22
+ &:where(:nth-child(1 of .btn)) {
23
+ @include split-button-tokens.button-xs-leading;
24
+ }
25
+
26
+ &:where(:nth-last-child(1 of .btn)) {
27
+ @include split-button-tokens.button-xs-trailing;
28
+ }
29
+
30
+ &:where(:hover, .hover) {
31
+ @include split-button-tokens.button-xs-hovered;
32
+ }
33
+
34
+ &:where(:active, .active) {
35
+ @include split-button-tokens.button-xs-pressed;
36
+ }
37
+ }
38
+
39
+ .btn-sm {
40
+ @include split-button-tokens.button-sm;
41
+
42
+ &:where(:nth-child(1 of .btn)) {
43
+ @include split-button-tokens.button-sm-leading;
44
+ }
45
+
46
+ &:where(:nth-last-child(1 of .btn)) {
47
+ @include split-button-tokens.button-sm-trailing;
48
+ }
49
+
50
+ &:where(:hover, .hover) {
51
+ @include split-button-tokens.button-sm-hovered;
52
+ }
53
+
54
+ &:where(:active, .active) {
55
+ @include split-button-tokens.button-sm-pressed;
56
+ }
57
+ }
58
+
59
+ .btn-md {
60
+ @include split-button-tokens.button-md;
61
+
62
+ &:where(:nth-child(1 of .btn)) {
63
+ @include split-button-tokens.button-md-leading;
64
+ }
65
+
66
+ &:where(:nth-last-child(1 of .btn)) {
67
+ @include split-button-tokens.button-md-trailing;
68
+ }
69
+
70
+ &:where(:hover, .hover) {
71
+ @include split-button-tokens.button-md-hovered;
72
+ }
73
+
74
+ &:where(:active, .active) {
75
+ @include split-button-tokens.button-md-pressed;
76
+ }
77
+ }
78
+
79
+ .btn-lg {
80
+ @include split-button-tokens.button-lg;
81
+
82
+ &:where(:nth-child(1 of .btn)) {
83
+ @include split-button-tokens.button-lg-leading;
84
+ }
85
+
86
+ &:where(:nth-last-child(1 of .btn)) {
87
+ @include split-button-tokens.button-lg-trailing;
88
+ }
89
+
90
+ &:where(:hover, .hover) {
91
+ @include split-button-tokens.button-lg-hovered;
92
+ }
93
+
94
+ &:where(:active, .active) {
95
+ @include split-button-tokens.button-lg-pressed;
96
+ }
97
+ }
98
+
99
+ .btn-xl {
100
+ @include split-button-tokens.button-xl;
101
+
102
+ &:where(:nth-child(1 of .btn)) {
103
+ @include split-button-tokens.button-xl-leading;
104
+ }
105
+
106
+ &:where(:nth-last-child(1 of .btn)) {
107
+ @include split-button-tokens.button-xl-trailing;
108
+ }
109
+
110
+ &:where(:hover, .hover) {
111
+ @include split-button-tokens.button-xl-hovered;
112
+ }
113
+
114
+ &:where(:active, .active) {
115
+ @include split-button-tokens.button-xl-pressed;
116
+ }
117
+ }
118
+
119
+ &:is(.split-btn-selected, :has(:popover-open)) {
120
+ :nth-last-child(1 of .btn) {
121
+ @include split-button-tokens.button-trailing-selected;
122
+ }
123
+ }
124
+ }
125
+
126
+ .split-btn {
127
+ & {
128
+ display: inline-flex;
129
+ align-items: center;
130
+ gap: var(--between-space);
131
+ }
132
+
133
+ :nth-child(1 of .btn) {
134
+ border-start-start-radius: var(--outer-corner-size);
135
+ border-end-start-radius: var(--outer-corner-size);
136
+ border-start-end-radius: var(--inner-corner-size);
137
+ border-end-end-radius: var(--inner-corner-size);
138
+ }
139
+
140
+ :nth-last-child(1 of .btn) {
141
+ border-start-start-radius: var(--inner-corner-size);
142
+ border-end-start-radius: var(--inner-corner-size);
143
+ border-start-end-radius: var(--outer-corner-size);
144
+ border-end-end-radius: var(--outer-corner-size);
145
+
146
+ &::before {
147
+ content: 'arrow_drop_down';
148
+ font: var(--md-icon-size) var(--md-icon-font);
149
+ display: flex;
150
+ align-items: center;
151
+ aspect-ratio: 1;
152
+ width: var(--md-icon-size);
153
+ overflow: hidden;
154
+ }
155
+ }
156
+
157
+ &:is(.split-btn-selected, :has(:popover-open))
158
+ :nth-last-child(1 of .btn)::before {
159
+ transform: rotate(180deg);
160
+ transition: transform var(--md-sys-motion-duration-short4)
161
+ var(--md-sys-motion-easing-standard);
162
+ }
163
+ }
164
+ }
@@ -0,0 +1,58 @@
1
+ //
2
+ // Copyright 2026 Google LLC
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ //
5
+
6
+ @mixin root {
7
+ // LINT.IfChange
8
+ --handle-color: var(--md-sys-color-outline);
9
+ --handle-size: 16px;
10
+ --with-icon-handle-size: 24px;
11
+ --icon-color: var(--md-sys-color-surface-container-highest);
12
+ --icon-size: 18px;
13
+ --state-layer-color: var(--md-sys-color-on-surface);
14
+ --state-layer-size: 40px;
15
+ --track-color: var(--md-sys-color-surface-container-highest);
16
+ --track-height: 32px;
17
+ --track-outline-color: var(--md-sys-color-outline);
18
+ --track-outline-width: 2px;
19
+ --track-width: 52px;
20
+ // LINT.ThenChange(md-switch.ts) keep in sync with `@cssprop` jsdoc tags
21
+ }
22
+
23
+ @mixin hovered {
24
+ --handle-color: var(--md-sys-color-on-surface-variant);
25
+ }
26
+
27
+ @mixin selected {
28
+ --track-color: var(--md-sys-color-primary);
29
+ --track-outline-color: transparent;
30
+ --handle-color: var(--md-sys-color-on-primary);
31
+ --handle-size: 24px;
32
+ --icon-color: var(--md-sys-color-on-primary-container);
33
+ --state-layer-color: var(--md-sys-color-primary);
34
+ }
35
+
36
+ @mixin selected-hovered {
37
+ --handle-color: var(--md-sys-color-primary-container);
38
+ }
39
+
40
+ @mixin pressed {
41
+ --handle-size: 28px;
42
+ }
43
+
44
+ @mixin disabled {
45
+ --handle-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);
46
+ --track-color: hsl(
47
+ from var(--md-sys-color-surface-container-highest) h s l / 12%
48
+ );
49
+ --track-outline-color: hsl(
50
+ from var(--md-sys-color-on-surface) h s l / 12%
51
+ );
52
+ }
53
+
54
+ @mixin disabled-selected {
55
+ --handle-color: var(--md-sys-color-surface);
56
+ --icon-color: hsl(from var(--md-sys-color-on-surface) h s l / 38%);
57
+ --track-color: hsl(from var(--md-sys-color-on-surface) h s l / 12%);
58
+ }
@@ -0,0 +1,109 @@
1
+ /*!
2
+ * Copyright 2026 Google LLC
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ // go/keep-sorted start by_regex='(.+) prefix_order=sass:
7
+ @use 'switch-tokens';
8
+ // go/keep-sorted end
9
+
10
+ @layer md.sys, md.comp.ripple, md.comp.focus-ring;
11
+ @layer md.comp.switch {
12
+ .switch {
13
+ & {
14
+ @include switch-tokens.root;
15
+ }
16
+ &:is(:hover, .hover) {
17
+ @include switch-tokens.hovered;
18
+ }
19
+ &:is(:checked, .checked, [aria-checked='true']) {
20
+ @include switch-tokens.selected;
21
+ &:where(:hover, .hover) {
22
+ @include switch-tokens.selected-hovered;
23
+ }
24
+ }
25
+ &:is(:active, .active):where(:not(:disabled, .disabled)) {
26
+ @include switch-tokens.pressed;
27
+ }
28
+ &:is(:disabled, .disabled) {
29
+ @include switch-tokens.disabled;
30
+ &:where(:checked, .checked, [aria-checked='true']) {
31
+ @include switch-tokens.disabled-selected;
32
+ }
33
+ }
34
+
35
+ & {
36
+ display: inline-grid;
37
+ grid-template: '. handle .' 1fr / 0fr min-content 1fr;
38
+ place-items: center;
39
+ appearance: none;
40
+ background: var(--track-color);
41
+ border: var(--track-outline-width) solid var(--track-outline-color);
42
+ border-radius: calc(var(--track-height) / 2);
43
+ width: var(--track-width);
44
+ height: var(--track-height);
45
+ margin: 0;
46
+ padding: 0;
47
+ transition: grid-template-columns 75ms cubic-bezier(0.4, 0, 0.2, 1);
48
+ isolation: isolate;
49
+ position: relative;
50
+ color: var(--icon-color);
51
+ --md-icon-size: var(--icon-size);
52
+ --icon: '';
53
+
54
+ &:is(:checked, .checked, [aria-checked='true']) {
55
+ grid-template-columns: 1fr min-content 0fr;
56
+ }
57
+
58
+ &::before {
59
+ --_handle-size: if(
60
+ style(--icon: ''): var(--handle-size);
61
+ else: max(var(--handle-size), var(--with-icon-handle-size));
62
+ );
63
+ content: var(--icon);
64
+ font: var(--md-icon-size) var(--md-icon-font);
65
+ display: grid;
66
+ place-items: center;
67
+ z-index: -1;
68
+ grid-area: handle;
69
+ aspect-ratio: 1;
70
+ height: 100%;
71
+ clip-path: circle(calc(var(--_handle-size) / 2));
72
+ transition: clip-path 75ms cubic-bezier(0.4, 0, 0.2, 1);
73
+ border-radius: 50%;
74
+ background: var(--handle-color);
75
+ }
76
+
77
+ &::after {
78
+ content: '';
79
+ z-index: -1;
80
+ position: absolute;
81
+ grid-area: handle;
82
+ background-image: var(--ripple);
83
+ aspect-ratio: 1;
84
+ width: var(--state-layer-size);
85
+ border-radius: 50%;
86
+ color: var(--state-layer-color);
87
+ transition: var(--ripple-transition);
88
+ animation: var(--ripple-animation);
89
+ }
90
+ }
91
+
92
+ &:has(.switch-icon-off:not(slot), .switch-icon-off.has-slotted) {
93
+ --icon: ' '; // Use space to clear CSS icon and update the handle size.
94
+ }
95
+
96
+ .switch-icon-off,
97
+ .switch-icon-on {
98
+ &:not(slot),
99
+ &::slotted(*) {
100
+ grid-area: handle;
101
+ }
102
+ }
103
+
104
+ &:is(:checked, .checked, [aria-checked='true']) .switch-icon-off,
105
+ &:not(:checked, .checked, [aria-checked='true']) .switch-icon-on {
106
+ display: none;
107
+ }
108
+ }
109
+ }