@expressivecss/expressive 0.15.0 → 0.16.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 (602) hide show
  1. package/CHANGELOG.md +1502 -1
  2. package/README.md +9 -8
  3. package/dist/css/expressive.css +19247 -11923
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
  8. package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
  9. package/dist/fonts/LICENSE-noto-sans-thai +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
  15. package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
  16. package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
  17. package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
  18. package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
  19. package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
  20. package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
  21. package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
  22. package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
  23. package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
  24. package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
  25. package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
  26. package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
  27. package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
  28. package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
  29. package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
  30. package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
  31. package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
  32. package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
  33. package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
  34. package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
  35. package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
  36. package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
  37. package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
  38. package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
  39. package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
  40. package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
  41. package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
  42. package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
  43. package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
  44. package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
  45. package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
  46. package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
  47. package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
  48. package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
  49. package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
  50. package/dist/fonts/roboto-greek-400.woff2 +0 -0
  51. package/dist/fonts/roboto-greek-500.woff2 +0 -0
  52. package/dist/fonts/roboto-greek-700.woff2 +0 -0
  53. package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
  54. package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
  55. package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
  56. package/dist/fonts/roboto-latin-700.woff2 +0 -0
  57. package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
  58. package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
  59. package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
  60. package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
  61. package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
  62. package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
  63. package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
  64. package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
  65. package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
  66. package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
  67. package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
  68. package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
  69. package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
  70. package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
  71. package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
  72. package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
  73. package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
  74. package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
  75. package/dist/js/chunks/{chunk-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
  76. package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
  77. package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
  78. package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
  79. package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
  80. package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
  81. package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
  82. package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
  83. package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
  84. package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
  85. package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
  86. package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
  87. package/dist/js/chunks/{chunk-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
  88. package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
  89. package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
  90. package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
  91. package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
  92. package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
  93. package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
  94. package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
  95. package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
  96. package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
  97. package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
  98. package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
  99. package/dist/js/chunks/{chunk-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
  100. package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
  101. package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
  102. package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
  103. package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
  104. package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
  105. package/dist/js/chunks/{chunk-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
  106. package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
  107. package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
  108. package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
  109. package/dist/js/chunks/{chunk-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
  110. package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
  111. package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
  112. package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
  113. package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
  114. package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
  115. package/dist/js/chunks/{chunk-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
  116. package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
  117. package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
  118. package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
  119. package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
  120. package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
  121. package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
  122. package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
  123. package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
  124. package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
  125. package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
  126. package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
  127. package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
  128. package/dist/js/chunks/{chunk-PDG64UHF.mjs → chunk-ILDRRG7T.mjs} +21 -23
  129. package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
  130. package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
  131. package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
  132. package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
  133. package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
  134. package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
  135. package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
  136. package/dist/js/chunks/{chunk-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
  137. package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
  138. package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
  139. package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
  140. package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
  141. package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
  142. package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
  143. package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
  144. package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
  145. package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
  146. package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
  147. package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
  148. package/dist/js/chunks/{chunk-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
  149. package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
  150. package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
  151. package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
  152. package/dist/js/chunks/{chunk-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
  153. package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
  154. package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
  155. package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
  156. package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
  157. package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
  158. package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
  159. package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
  160. package/dist/js/chunks/{chunk-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
  161. package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
  162. package/dist/js/chunks/{chunk-X4ISMKE2.mjs → chunk-ROH2HDB4.mjs} +7 -6
  163. package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
  164. package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
  165. package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
  166. package/dist/js/chunks/{chunk-SMY7GJSS.mjs → chunk-SPPHF7YZ.mjs} +36 -29
  167. package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
  168. package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
  169. package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
  170. package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
  171. package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
  172. package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
  173. package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
  174. package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
  175. package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
  176. package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
  177. package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
  178. package/dist/js/chunks/{chunk-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
  179. package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
  180. package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
  181. package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
  182. package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
  183. package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
  184. package/dist/js/chunks/{chunk-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
  185. package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
  186. package/dist/js/chunks/{chunk-KUFHW3DS.mjs → chunk-VR3L2WN5.mjs} +11 -17
  187. package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
  188. package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
  189. package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
  190. package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
  191. package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
  192. package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
  193. package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
  194. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
  195. package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
  196. package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
  197. package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
  198. package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
  199. package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
  200. package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
  201. package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
  202. package/dist/js/chunks/{chunk-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
  203. package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
  204. package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
  205. package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
  206. package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
  207. package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
  208. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
  209. package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
  210. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
  211. package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
  212. package/dist/js/expressive.cjs +10613 -4327
  213. package/dist/js/expressive.cjs.map +4 -4
  214. package/dist/js/expressive.js +10613 -4327
  215. package/dist/js/expressive.js.map +4 -4
  216. package/dist/js/expressive.min.js +23 -22
  217. package/dist/js/expressive.min.js.map +4 -4
  218. package/dist/js/expressive.mjs +182 -71
  219. package/dist/js/expressive.mjs.map +2 -2
  220. package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
  221. package/dist/js/internal/behaviors/copy.mjs +9 -0
  222. package/dist/js/internal/behaviors/copy.mjs.map +7 -0
  223. package/dist/js/internal/behaviors/dataTables.mjs +10 -0
  224. package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
  225. package/dist/js/internal/behaviors/dialogs.mjs +2 -2
  226. package/dist/js/internal/behaviors/forms.mjs +2 -2
  227. package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
  228. package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
  229. package/dist/js/internal/behaviors/lists.mjs +8 -0
  230. package/dist/js/internal/behaviors/lists.mjs.map +7 -0
  231. package/dist/js/internal/behaviors/paneResize.mjs +8 -0
  232. package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
  233. package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
  234. package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
  235. package/dist/js/internal/behaviors/sortable.mjs +8 -0
  236. package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
  237. package/dist/js/internal/behaviors/theme.mjs +8 -0
  238. package/dist/js/internal/behaviors/theme.mjs.map +7 -0
  239. package/dist/js/internal/behaviors/tour.mjs +8 -0
  240. package/dist/js/internal/behaviors/tour.mjs.map +7 -0
  241. package/dist/js/internal/behaviors/transferList.mjs +8 -0
  242. package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
  243. package/dist/js/internal/components/appBar.mjs +3 -2
  244. package/dist/js/internal/components/autocomplete.mjs +4 -4
  245. package/dist/js/internal/components/backToTop.mjs +9 -0
  246. package/dist/js/internal/components/backToTop.mjs.map +7 -0
  247. package/dist/js/internal/components/barChart.mjs +5 -4
  248. package/dist/js/internal/components/buttonGroup.mjs +3 -2
  249. package/dist/js/internal/components/buttons.mjs +3 -3
  250. package/dist/js/internal/components/cards.mjs +3 -3
  251. package/dist/js/internal/components/carousel.mjs +3 -3
  252. package/dist/js/internal/components/cascader.mjs +10 -0
  253. package/dist/js/internal/components/cascader.mjs.map +7 -0
  254. package/dist/js/internal/components/characterCounter.mjs +3 -2
  255. package/dist/js/internal/components/chips.mjs +6 -5
  256. package/dist/js/internal/components/colorPicker.mjs +9 -0
  257. package/dist/js/internal/components/colorPicker.mjs.map +7 -0
  258. package/dist/js/internal/components/columnChart.mjs +4 -3
  259. package/dist/js/internal/components/commandPalette.mjs +3 -3
  260. package/dist/js/internal/components/confetti.mjs +3 -2
  261. package/dist/js/internal/components/currencyInput.mjs +9 -0
  262. package/dist/js/internal/components/currencyInput.mjs.map +7 -0
  263. package/dist/js/internal/components/datepicker.mjs +11 -8
  264. package/dist/js/internal/components/expandingCard.mjs +3 -3
  265. package/dist/js/internal/components/funnelChart.mjs +10 -0
  266. package/dist/js/internal/components/funnelChart.mjs.map +7 -0
  267. package/dist/js/internal/components/heatmapChart.mjs +4 -3
  268. package/dist/js/internal/components/hoverCard.mjs +9 -0
  269. package/dist/js/internal/components/hoverCard.mjs.map +7 -0
  270. package/dist/js/internal/components/index.mjs +131 -66
  271. package/dist/js/internal/components/inputMask.mjs +9 -0
  272. package/dist/js/internal/components/inputMask.mjs.map +7 -0
  273. package/dist/js/internal/components/keypad.mjs +3 -3
  274. package/dist/js/internal/components/lightbox.mjs +3 -3
  275. package/dist/js/internal/components/lineChart.mjs +25 -4
  276. package/dist/js/internal/components/loadingOverlay.mjs +9 -0
  277. package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
  278. package/dist/js/internal/components/mapView.mjs +3 -3
  279. package/dist/js/internal/components/menu.mjs +3 -3
  280. package/dist/js/internal/components/menubar.mjs +10 -0
  281. package/dist/js/internal/components/menubar.mjs.map +7 -0
  282. package/dist/js/internal/components/messageScroller.mjs +3 -3
  283. package/dist/js/internal/components/mixedChart.mjs +5 -4
  284. package/dist/js/internal/components/navigationRail.mjs +3 -2
  285. package/dist/js/internal/components/particles.mjs +3 -2
  286. package/dist/js/internal/components/pieChart.mjs +4 -3
  287. package/dist/js/internal/components/pullToRefresh.mjs +9 -0
  288. package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
  289. package/dist/js/internal/components/questionnaire.mjs +3 -3
  290. package/dist/js/internal/components/radarChart.mjs +4 -3
  291. package/dist/js/internal/components/radialChart.mjs +4 -3
  292. package/dist/js/internal/components/registry.mjs +59 -41
  293. package/dist/js/internal/components/richTextEditor.mjs +3 -3
  294. package/dist/js/internal/components/sankeyChart.mjs +10 -0
  295. package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
  296. package/dist/js/internal/components/scatterChart.mjs +10 -0
  297. package/dist/js/internal/components/scatterChart.mjs.map +7 -0
  298. package/dist/js/internal/components/scrollspy.mjs +3 -2
  299. package/dist/js/internal/components/select.mjs +4 -4
  300. package/dist/js/internal/components/showMore.mjs +9 -0
  301. package/dist/js/internal/components/showMore.mjs.map +7 -0
  302. package/dist/js/internal/components/slider.mjs +3 -3
  303. package/dist/js/internal/components/snackbar.mjs +2 -2
  304. package/dist/js/internal/components/swipeActions.mjs +9 -0
  305. package/dist/js/internal/components/swipeActions.mjs.map +7 -0
  306. package/dist/js/internal/components/tabs.mjs +3 -4
  307. package/dist/js/internal/components/timepicker.mjs +5 -4
  308. package/dist/js/internal/components/tooltip.mjs +3 -3
  309. package/dist/js/internal/components/treeSelect.mjs +13 -0
  310. package/dist/js/internal/components/treeSelect.mjs.map +7 -0
  311. package/dist/js/internal/components/treemapChart.mjs +10 -0
  312. package/dist/js/internal/components/treemapChart.mjs.map +7 -0
  313. package/dist/js/internal/core/component.mjs +2 -1
  314. package/dist/js/internal/core/formControl.mjs +12 -0
  315. package/dist/js/internal/core/formControl.mjs.map +7 -0
  316. package/dist/js/internal/core/spring.mjs +11 -0
  317. package/dist/js/internal/core/spring.mjs.map +7 -0
  318. package/dist/js/internal/core/utils.mjs +11 -3
  319. package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
  320. package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
  321. package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
  322. package/dist/js/modular.mjs +173 -71
  323. package/dist/types/behaviors/bottomSheets.d.ts +19 -3
  324. package/dist/types/behaviors/copy.d.ts +18 -0
  325. package/dist/types/behaviors/dataTables.d.ts +129 -0
  326. package/dist/types/behaviors/dialogs.d.ts +27 -1
  327. package/dist/types/behaviors/forms.d.ts +68 -2
  328. package/dist/types/behaviors/imageCompare.d.ts +12 -0
  329. package/dist/types/behaviors/lists.d.ts +12 -0
  330. package/dist/types/behaviors/paneResize.d.ts +29 -0
  331. package/dist/types/behaviors/sheetDrag.d.ts +18 -0
  332. package/dist/types/behaviors/sideSheets.d.ts +1 -1
  333. package/dist/types/behaviors/sortable.d.ts +28 -0
  334. package/dist/types/behaviors/theme.d.ts +22 -0
  335. package/dist/types/behaviors/tour.d.ts +36 -0
  336. package/dist/types/behaviors/transferList.d.ts +51 -0
  337. package/dist/types/components/appBar.d.ts +5 -6
  338. package/dist/types/components/autocomplete.d.ts +91 -17
  339. package/dist/types/components/backToTop.d.ts +36 -0
  340. package/dist/types/components/barChart.d.ts +3 -6
  341. package/dist/types/components/buttonGroup.d.ts +2 -4
  342. package/dist/types/components/buttons.d.ts +5 -5
  343. package/dist/types/components/cards.d.ts +3 -16
  344. package/dist/types/components/carousel.d.ts +9 -15
  345. package/dist/types/components/cascader.d.ts +130 -0
  346. package/dist/types/components/characterCounter.d.ts +2 -15
  347. package/dist/types/components/chips.d.ts +65 -19
  348. package/dist/types/components/colorPicker.d.ts +42 -0
  349. package/dist/types/components/columnChart.d.ts +23 -10
  350. package/dist/types/components/commandPalette.d.ts +11 -16
  351. package/dist/types/components/confetti.d.ts +2 -4
  352. package/dist/types/components/currencyInput.d.ts +59 -0
  353. package/dist/types/components/datepicker.d.ts +56 -32
  354. package/dist/types/components/expandingCard.d.ts +4 -6
  355. package/dist/types/components/funnelChart.d.ts +38 -0
  356. package/dist/types/components/heatmapChart.d.ts +39 -8
  357. package/dist/types/components/hoverCard.d.ts +58 -0
  358. package/dist/types/components/index.d.ts +16 -1
  359. package/dist/types/components/inputMask.d.ts +30 -0
  360. package/dist/types/components/keypad.d.ts +38 -6
  361. package/dist/types/components/lightbox.d.ts +14 -20
  362. package/dist/types/components/lineChart.d.ts +172 -10
  363. package/dist/types/components/loadingOverlay.d.ts +42 -0
  364. package/dist/types/components/mapView.d.ts +26 -17
  365. package/dist/types/components/menu.d.ts +60 -22
  366. package/dist/types/components/menubar.d.ts +37 -0
  367. package/dist/types/components/messageScroller.d.ts +2 -14
  368. package/dist/types/components/mixedChart.d.ts +15 -6
  369. package/dist/types/components/navigationRail.d.ts +16 -5
  370. package/dist/types/components/particles.d.ts +8 -4
  371. package/dist/types/components/pieChart.d.ts +32 -7
  372. package/dist/types/components/pullToRefresh.d.ts +80 -0
  373. package/dist/types/components/questionnaire.d.ts +58 -16
  374. package/dist/types/components/radarChart.d.ts +10 -6
  375. package/dist/types/components/radialChart.d.ts +58 -7
  376. package/dist/types/components/registry.d.ts +73 -3
  377. package/dist/types/components/richTextEditor.d.ts +6 -14
  378. package/dist/types/components/sankeyChart.d.ts +72 -0
  379. package/dist/types/components/scatterChart.d.ts +102 -0
  380. package/dist/types/components/scrollspy.d.ts +3 -5
  381. package/dist/types/components/select.d.ts +43 -30
  382. package/dist/types/components/showMore.d.ts +51 -0
  383. package/dist/types/components/slider.d.ts +3 -15
  384. package/dist/types/components/snackbar.d.ts +61 -0
  385. package/dist/types/components/swipeActions.d.ts +81 -0
  386. package/dist/types/components/tabs.d.ts +89 -27
  387. package/dist/types/components/timepicker.d.ts +113 -21
  388. package/dist/types/components/tooltip.d.ts +56 -20
  389. package/dist/types/components/treeSelect.d.ts +106 -0
  390. package/dist/types/components/treemapChart.d.ts +56 -0
  391. package/dist/types/core/component.d.ts +43 -25
  392. package/dist/types/core/formControl.d.ts +21 -0
  393. package/dist/types/core/spring.d.ts +20 -0
  394. package/dist/types/core/utils.d.ts +85 -72
  395. package/dist/types/modular.d.ts +33 -1
  396. package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -8
  397. package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
  398. package/package.json +10 -8
  399. package/src/sass/README.md +27 -18
  400. package/src/sass/abstracts/_elevation.scss +13 -7
  401. package/src/sass/abstracts/_index.scss +1 -0
  402. package/src/sass/abstracts/_mixins.scss +422 -36
  403. package/src/sass/abstracts/_spring.scss +63 -0
  404. package/src/sass/abstracts/_variables.scss +39 -21
  405. package/src/sass/base/_fonts.scss +61 -48
  406. package/src/sass/base/_global.scss +104 -24
  407. package/src/sass/base/_index.scss +2 -0
  408. package/src/sass/base/_normalize.scss +59 -114
  409. package/src/sass/base/_print.scss +21 -0
  410. package/src/sass/base/_prose.scss +68 -0
  411. package/src/sass/base/_typography.scss +9 -5
  412. package/src/sass/components/_accordion.scss +9 -16
  413. package/src/sass/components/_alert.scss +102 -0
  414. package/src/sass/components/_aura.scss +8 -3
  415. package/src/sass/components/_avatar.scss +3 -3
  416. package/src/sass/components/_back-to-top.scss +38 -0
  417. package/src/sass/components/_badges.scss +6 -5
  418. package/src/sass/components/_bar-chart.scss +41 -19
  419. package/src/sass/components/_bottom-sheet.scss +44 -16
  420. package/src/sass/components/_breadcrumb.scss +8 -1
  421. package/src/sass/components/_button-groups.scss +15 -25
  422. package/src/sass/components/_buttons.scss +156 -63
  423. package/src/sass/components/_calendar.scss +246 -0
  424. package/src/sass/components/_cards.scss +36 -44
  425. package/src/sass/components/_carousel.scss +27 -103
  426. package/src/sass/components/_cascader.scss +142 -0
  427. package/src/sass/components/_chips.scss +36 -46
  428. package/src/sass/components/_column-chart.scss +19 -12
  429. package/src/sass/components/_command-palette.scss +4 -7
  430. package/src/sass/components/_confetti.scss +0 -2
  431. package/src/sass/components/_countdown.scss +1 -1
  432. package/src/sass/components/_data-table.scss +162 -25
  433. package/src/sass/components/_datepicker.scss +54 -40
  434. package/src/sass/components/_description-list.scss +85 -0
  435. package/src/sass/components/_dialog.scss +42 -41
  436. package/src/sass/components/_docked-display.scss +1 -3
  437. package/src/sass/components/_drag-handle.scss +16 -20
  438. package/src/sass/components/_expanding-card.scss +20 -9
  439. package/src/sass/components/_fab-menu.scss +44 -32
  440. package/src/sass/components/_funnel-chart.scss +124 -0
  441. package/src/sass/components/_heatmap-chart.scss +111 -22
  442. package/src/sass/components/_icon-buttons.scss +7 -7
  443. package/src/sass/components/_icons-material-design.scss +2 -2
  444. package/src/sass/components/_image-compare.scss +108 -0
  445. package/src/sass/components/_index.scss +20 -0
  446. package/src/sass/components/_keypad.scss +39 -19
  447. package/src/sass/components/_kpi.scss +6 -11
  448. package/src/sass/components/_lightbox.scss +24 -13
  449. package/src/sass/components/_line-chart.scss +16 -2
  450. package/src/sass/components/_list.scss +59 -14
  451. package/src/sass/components/_loading-indicator.scss +1 -0
  452. package/src/sass/components/_loading-overlay.scss +105 -0
  453. package/src/sass/components/_map.scss +33 -11
  454. package/src/sass/components/_marquee.scss +3 -2
  455. package/src/sass/components/_mega-menu.scss +137 -0
  456. package/src/sass/components/_menu.scss +143 -123
  457. package/src/sass/components/_menubar.scss +59 -0
  458. package/src/sass/components/_message-scroller.scss +2 -2
  459. package/src/sass/components/_message.scss +3 -3
  460. package/src/sass/components/_mixed-chart.scss +37 -9
  461. package/src/sass/components/_modal-display.scss +21 -0
  462. package/src/sass/components/_navbar.scss +34 -20
  463. package/src/sass/components/_navigation-bar.scss +15 -77
  464. package/src/sass/components/_navigation-rail.scss +151 -92
  465. package/src/sass/components/_org-chart.scss +192 -0
  466. package/src/sass/components/_page-footer.scss +1 -1
  467. package/src/sass/components/_pagination.scss +6 -13
  468. package/src/sass/components/_panes.scss +32 -26
  469. package/src/sass/components/_particles.scss +0 -2
  470. package/src/sass/components/_pie-chart.scss +91 -11
  471. package/src/sass/components/_popover.scss +18 -5
  472. package/src/sass/components/_progress.scss +152 -31
  473. package/src/sass/components/_pull-to-refresh.scss +90 -0
  474. package/src/sass/components/_questionnaire.scss +74 -3
  475. package/src/sass/components/_radar-chart.scss +38 -10
  476. package/src/sass/components/_radial-chart.scss +113 -5
  477. package/src/sass/components/_rich-text-editor.scss +2 -2
  478. package/src/sass/components/_sankey-chart.scss +114 -0
  479. package/src/sass/components/_scatter-chart.scss +153 -0
  480. package/src/sass/components/_scrim.scss +0 -2
  481. package/src/sass/components/_scrollspy.scss +0 -2
  482. package/src/sass/components/_search.scss +26 -22
  483. package/src/sass/components/_show-more.scss +8 -0
  484. package/src/sass/components/_side-sheet.scss +23 -37
  485. package/src/sass/components/_skeleton.scss +2 -4
  486. package/src/sass/components/_snackbar.scss +27 -21
  487. package/src/sass/components/_split-button.scss +5 -5
  488. package/src/sass/components/_stat.scss +3 -8
  489. package/src/sass/components/_stepper.scss +1 -1
  490. package/src/sass/components/_swipe-actions.scss +71 -0
  491. package/src/sass/components/_tabs.scss +51 -32
  492. package/src/sass/components/_timeline.scss +12 -12
  493. package/src/sass/components/_timepicker.scss +109 -78
  494. package/src/sass/components/_toolbar.scss +35 -43
  495. package/src/sass/components/_tooltip.scss +21 -12
  496. package/src/sass/components/_tour.scss +89 -0
  497. package/src/sass/components/_transfer-list.scss +73 -0
  498. package/src/sass/components/_transitions.scss +4 -4
  499. package/src/sass/components/_tree.scss +3 -16
  500. package/src/sass/components/_treemap-chart.scss +122 -0
  501. package/src/sass/components/forms/_checkboxes.scss +106 -24
  502. package/src/sass/components/forms/_color-picker.scss +135 -0
  503. package/src/sass/components/forms/_color-swatches.scss +85 -0
  504. package/src/sass/components/forms/_drop-zone.scss +15 -9
  505. package/src/sass/components/forms/_fieldset.scss +7 -7
  506. package/src/sass/components/forms/_file-input.scss +6 -8
  507. package/src/sass/components/forms/_index.scss +3 -1
  508. package/src/sass/components/forms/_input-fields.scss +254 -90
  509. package/src/sass/components/forms/_radio-buttons.scss +33 -94
  510. package/src/sass/components/forms/_rating.scss +2 -32
  511. package/src/sass/components/forms/_select.scss +199 -20
  512. package/src/sass/components/forms/_slider.scss +91 -94
  513. package/src/sass/components/forms/_switches.scss +53 -164
  514. package/src/sass/custom.scss +10 -1
  515. package/src/sass/expressive.scss +3 -63
  516. package/src/sass/tokens/_contrast.scss +94 -0
  517. package/src/sass/tokens/_elevation.scss +16 -0
  518. package/src/sass/tokens/_index.scss +5 -0
  519. package/src/sass/tokens/_motion.scss +109 -0
  520. package/src/sass/tokens/_reference.scss +72 -141
  521. package/src/sass/tokens/_shape.scss +38 -0
  522. package/src/sass/tokens/_stacking.scss +27 -0
  523. package/src/sass/tokens/_state.scss +0 -2
  524. package/src/sass/tokens/_theme.scss +10 -1
  525. package/src/sass/tokens/_vibrant.scss +2 -5
  526. package/src/sass/utilities/_defer-render.scss +17 -0
  527. package/src/sass/utilities/_helpers.scss +183 -26
  528. package/src/sass/utilities/_index.scss +1 -0
  529. package/src/sass/utilities/_scroll-area.scss +0 -2
  530. package/src/sass/utilities/_spacing.scss +52 -34
  531. package/src/sass/utilities/_typescale.scss +8 -1
  532. package/src/sass/utilities/_visibility.scss +47 -76
  533. package/src/sass/utilities/_z-depth.scss +7 -4
  534. package/dist/js/chunks/chunk-33QVDDGR.mjs +0 -270
  535. package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
  536. package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
  537. package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
  538. package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
  539. package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
  540. package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
  541. package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
  542. package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
  543. package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
  544. package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
  545. package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
  546. package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
  547. package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
  548. package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
  549. package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
  550. package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
  551. package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
  552. package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
  553. package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
  554. package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
  555. package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
  556. package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
  557. package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
  558. package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
  559. package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
  560. package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
  561. package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
  562. package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
  563. package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
  564. package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
  565. package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
  566. package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
  567. package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
  568. package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
  569. package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
  570. package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
  571. package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
  572. package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
  573. package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
  574. package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
  575. package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
  576. package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
  577. package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
  578. package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
  579. package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
  580. package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
  581. package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
  582. package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
  583. package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
  584. package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
  585. package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
  586. package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
  587. package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
  588. package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
  589. package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
  590. package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
  591. package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
  592. package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
  593. package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
  594. package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
  595. package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
  596. package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
  597. package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
  598. package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
  599. package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
  600. package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
  601. package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
  602. /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
@@ -51,7 +51,7 @@
51
51
  $_bar: ":is(nav:not(.tabs, .navigation-bar, .navigation-rail), .bar)";
52
52
  $_heading: ":is(h1, h2, h3, h4, h5, h6)";
53
53
  $_title: ":is(#{$_heading}, hgroup)";
54
- $_search: ":is(.search-bar, .searchbar)";
54
+ $_search: ".search-bar";
55
55
 
56
56
  header:has(> #{$_bar}) {
57
57
  --md-comp-top-app-bar-container-color: var(--md-sys-color-surface);
@@ -63,8 +63,8 @@ header:has(> #{$_bar}) {
63
63
  // the headline; trailing is everything after it.
64
64
  --md-comp-top-app-bar-leading-icon-color: inherit;
65
65
  --md-comp-top-app-bar-trailing-icon-color: inherit;
66
- --md-comp-top-app-bar-container-height: 64px;
67
- --md-comp-top-app-bar-leading-icon-size: 24px;
66
+ --md-comp-top-app-bar-container-height: #{rem(64px)};
67
+ --md-comp-top-app-bar-leading-icon-size: #{rem(24px)};
68
68
  --md-comp-top-app-bar-container-shape: 0;
69
69
 
70
70
  background-color: color-mix(
@@ -87,6 +87,22 @@ header:has(> #{$_bar}) {
87
87
  margin: 0;
88
88
  }
89
89
 
90
+ // Destinations that do not fit beside the title move to a row of their
91
+ // own, rather than squeezing the title down to its first letter. On one
92
+ // row both stretch to the bar and the title stays centred, so the sizes
93
+ // below only show once the row wraps.
94
+ > #{$_bar}:has(> :is(menu, ul)) {
95
+ flex-wrap: wrap;
96
+
97
+ > #{$_title} {
98
+ padding-block: 8px;
99
+ }
100
+
101
+ > :is(menu, ul) {
102
+ min-height: rem(48px);
103
+ }
104
+ }
105
+
90
106
  > #{$_bar} > #{$_title} {
91
107
  flex: 1 1 auto;
92
108
  min-width: 0;
@@ -135,8 +151,8 @@ header:has(> #{$_bar}) {
135
151
  flex: 0 0 auto;
136
152
  align-items: center;
137
153
  justify-content: center;
138
- width: 48px;
139
- height: 48px;
154
+ width: rem(48px);
155
+ height: rem(48px);
140
156
  padding: 0;
141
157
  // Leave margin-inline-start unset so a medium/large bar can push
142
158
  // the first trailing action to the end with margin-inline-start: auto.
@@ -161,11 +177,11 @@ header:has(> #{$_bar}) {
161
177
  }
162
178
 
163
179
  &:hover {
164
- background-color: color-mix(in oklab, currentColor 8%, transparent);
180
+ background-color: state-layer(currentColor, "hover");
165
181
  }
166
182
 
167
183
  &:active {
168
- background-color: color-mix(in oklab, currentColor 10%, transparent);
184
+ background-color: state-layer(currentColor, "pressed");
169
185
  }
170
186
  }
171
187
 
@@ -236,10 +252,7 @@ header:has(> #{$_bar}) {
236
252
  background: transparent;
237
253
  box-shadow: none;
238
254
  color: inherit;
239
- font-family: var(--md-sys-typescale-body-large-font-family-name);
240
- font-size: var(--md-sys-typescale-body-large-font-size);
241
- font-weight: var(--md-sys-typescale-body-large-font-weight);
242
- line-height: var(--md-sys-typescale-body-large-line-height);
255
+ @include typescale("body-large");
243
256
 
244
257
  &:focus,
245
258
  &:focus-visible {
@@ -277,11 +290,12 @@ header:has(> #{$_bar}) {
277
290
  @include focus-visible;
278
291
 
279
292
  &:hover:not(.active) {
280
- background-color: color-mix(in oklab, currentColor 8%, transparent);
293
+ background-color: state-layer(currentColor, "hover");
281
294
  }
282
295
 
283
296
  &.active {
284
- background-color: color-mix(in oklab, currentColor 10%, transparent);
297
+ background-color: state-layer(currentColor, "pressed");
298
+ @include forced-colors-selected;
285
299
  }
286
300
  }
287
301
 
@@ -327,7 +341,7 @@ header.large:has(> #{$_bar}) > #{$_bar} {
327
341
  &::before {
328
342
  content: "";
329
343
  flex: 0 0 0;
330
- height: 48px;
344
+ height: rem(48px);
331
345
  }
332
346
 
333
347
  > #{$_title} {
@@ -357,7 +371,7 @@ header.large:has(> #{$_bar}) > #{$_bar} {
357
371
  }
358
372
 
359
373
  header.medium:has(> #{$_bar}) > #{$_bar} {
360
- min-height: 112px;
374
+ min-height: rem(112px);
361
375
  padding-bottom: 20px;
362
376
 
363
377
  > #{$_title} {
@@ -375,11 +389,11 @@ header.medium:has(> #{$_bar}) > #{$_bar} {
375
389
  }
376
390
 
377
391
  header.medium:has(> #{$_bar} > hgroup > p) > #{$_bar} {
378
- min-height: 136px;
392
+ min-height: rem(136px);
379
393
  }
380
394
 
381
395
  header.large:has(> #{$_bar}) > #{$_bar} {
382
- min-height: 120px;
396
+ min-height: rem(120px);
383
397
  padding-bottom: 20px;
384
398
 
385
399
  > #{$_title} {
@@ -397,7 +411,7 @@ header.large:has(> #{$_bar}) > #{$_bar} {
397
411
  }
398
412
 
399
413
  header.large:has(> #{$_bar} > hgroup > p) > #{$_bar} {
400
- min-height: 152px;
414
+ min-height: rem(152px);
401
415
  padding-bottom: 28px;
402
416
  }
403
417
 
@@ -416,7 +430,7 @@ header.large.collapsed:has(> #{$_bar}) > #{$_bar} {
416
430
  flex-wrap: nowrap;
417
431
  align-content: center;
418
432
  align-items: center;
419
- min-height: 64px;
433
+ min-height: rem(64px);
420
434
  padding-top: 0;
421
435
  padding-bottom: 0;
422
436
 
@@ -464,7 +478,7 @@ header.large.collapsed:has(> #{$_bar}) > #{$_bar} {
464
478
  header:has(> #{$_bar}) {
465
479
  position: sticky;
466
480
  top: 0;
467
- z-index: 997;
481
+ z-index: var(--expressive-z-app-bar);
468
482
 
469
483
  @supports (animation-timeline: scroll()) {
470
484
  animation: top-app-bar-scroll linear both;
@@ -2,7 +2,7 @@
2
2
 
3
3
  // Navigation bar. Destinations, not the app bar (header:has(> nav)).
4
4
  // Anatomy is the HTML: a nav.navigation-bar of <a> or <button> items.
5
- // A leading <i> is the icon; the remaining text is the label.
5
+ // A leading icon is the icon; the remaining text is the label.
6
6
  // aria-current (or .active) is the selected destination.
7
7
  //
8
8
  // Two layouts (M3 Expressive):
@@ -32,7 +32,7 @@
32
32
  // 56 here, which is the rail's value copied onto the bar.
33
33
  --md-comp-nav-bar-indicator-width: 64px;
34
34
  --md-comp-nav-bar-indicator-height: 32px;
35
- --md-comp-nav-bar-indicator-shape: 16px;
35
+ --md-comp-nav-bar-indicator-shape: var(--md-sys-shape-corner-large);
36
36
  --md-comp-nav-bar-active-indicator-color: var(--md-sys-color-secondary-container);
37
37
  --md-comp-nav-bar-active-color: var(--md-sys-color-on-secondary-container);
38
38
 
@@ -70,51 +70,12 @@
70
70
  @include typescale("label-medium");
71
71
  @include focus-visible;
72
72
 
73
- > #{$icon} {
74
- display: flex;
75
- flex-shrink: 0;
76
- align-items: center;
77
- justify-content: center;
78
- box-sizing: border-box;
79
- width: var(--md-comp-nav-bar-indicator-width);
80
- height: var(--md-comp-nav-bar-indicator-height);
81
- border-radius: var(--md-comp-nav-bar-indicator-shape);
82
- font-size: var(--md-comp-nav-bar-icon-size);
83
- color: inherit;
84
- transition: background-color 0.2s ease-out;
85
- }
86
-
87
- &:hover:not(.active, [aria-current]) > #{$icon} {
88
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
89
- }
90
-
91
- &.active,
92
- &[aria-current] {
93
- color: var(--md-sys-color-on-surface);
94
-
95
- > #{$icon} {
96
- background-color: var(--md-comp-nav-bar-active-indicator-color);
97
- color: var(--md-comp-nav-bar-active-color);
98
- --md-icon-fill: 1;
99
- }
100
- }
101
-
102
- &.disabled,
103
- &[aria-disabled="true"] {
104
- pointer-events: none;
105
- color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
106
- }
107
-
108
73
  // Sibling badge. Child-of-icon is handled in _badges.scss.
109
- > .badge {
110
- position: absolute;
111
- z-index: 1;
112
- top: calc(4px + (var(--md-comp-nav-bar-indicator-height) - 24px) / 2);
113
- inset-inline-start: calc(50% + 12px);
114
- transform: translate(-50%, -50%);
115
-
116
- &:dir(rtl) {
117
- transform: translate(50%, -50%);
74
+ @include nav-destination("nav-bar", 4px, background-color var(--md-sys-motion-duration-short4) ease-out) {
75
+ &.disabled,
76
+ &[aria-disabled="true"] {
77
+ pointer-events: none;
78
+ color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
118
79
  }
119
80
  }
120
81
  }
@@ -131,40 +92,11 @@
131
92
  padding: 8px 16px;
132
93
  border-radius: var(--md-comp-nav-bar-indicator-shape);
133
94
 
134
- > #{$icon} {
135
- width: var(--md-comp-nav-bar-icon-size);
136
- height: var(--md-comp-nav-bar-icon-size);
137
- border-radius: 0;
138
- }
95
+ @include nav-destination-row("nav-bar");
139
96
 
140
97
  > .badge {
141
98
  top: calc(50% - 12px);
142
- left: auto;
143
99
  inset-inline-start: calc(16px + 24px);
144
- transform: translate(-50%, -50%);
145
-
146
- &:dir(rtl) {
147
- transform: translate(50%, -50%);
148
- }
149
- }
150
-
151
- &:hover:not(.active, [aria-current]) {
152
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
153
-
154
- > #{$icon} {
155
- background-color: transparent;
156
- }
157
- }
158
-
159
- &.active,
160
- &[aria-current] {
161
- background-color: var(--md-comp-nav-bar-active-indicator-color);
162
- color: var(--md-comp-nav-bar-active-color);
163
-
164
- > #{$icon} {
165
- background-color: transparent;
166
- color: inherit;
167
- }
168
100
  }
169
101
  }
170
102
  }
@@ -172,6 +104,12 @@
172
104
  &.fixed {
173
105
  position: sticky;
174
106
  bottom: 0;
175
- z-index: 997;
107
+ z-index: var(--expressive-z-app-bar);
176
108
  }
177
109
  }
110
+
111
+ // Navigation does nothing on paper. Important so a size or state rule that sets
112
+ // `display` cannot bring it back; see base/_print.scss for the page itself.
113
+ @media print {
114
+ .navigation-bar { display: none !important; }
115
+ }
@@ -4,11 +4,16 @@
4
4
  // navigation bar.
5
5
  //
6
6
  // Anatomy is the HTML: a nav.navigation-rail. The first
7
- // button:not(.button) is the menu toggle. A .button child is the
8
- // optional FAB. Other <a>/<button> are destinations (leading <i>,
7
+ // button:not(.button) is the menu toggle, unless it opens a side
8
+ // panel. A .button child is the optional FAB. Other <a>/<button> are destinations (leading icon,
9
9
  // remaining text is the label, optional .badge). A heading is a
10
10
  // section header (expanded only). aria-current / .active is selected.
11
11
  //
12
+ // Side panel: a destination <button popovertarget> followed by its
13
+ // .navigation-rail-panel [popover]. The panel docks beside the rail at full
14
+ // height and holds links, headings and <details> groups. The browser owns
15
+ // click, light dismiss, Escape and the expanded state; JS opens it on hover.
16
+ //
12
17
  // .expanded widens the rail (icon+label on one row, extended FAB).
13
18
  // Below `small`, .expanded is modal (scrim). .modal forces that
14
19
  // overlay at every breakpoint. JS toggles .expanded from the menu
@@ -21,6 +26,7 @@
21
26
  // --md-comp-nav-rail-indicator-width 56px
22
27
  // --md-comp-nav-rail-indicator-height 32px / 56px expanded
23
28
  // --md-comp-nav-rail-fab-size 56px
29
+ // --md-comp-nav-rail-panel-width 256px
24
30
  //
25
31
  // Nest descendants inside this block.
26
32
 
@@ -32,8 +38,9 @@
32
38
  // Expanded rail as an overlay with a scrim.
33
39
  @mixin _modal-rail {
34
40
  position: fixed;
35
- inset: 0 auto 0 0;
36
- z-index: 998;
41
+ inset-block: 0;
42
+ inset-inline: 0 auto;
43
+ z-index: var(--expressive-z-modal-rail);
37
44
  @include z-depth("1");
38
45
 
39
46
  // A blurred rail would become the containing block of the fixed scrim
@@ -54,11 +61,16 @@
54
61
  --md-comp-nav-rail-icon-size: 24px;
55
62
  --md-comp-nav-rail-indicator-width: 56px;
56
63
  --md-comp-nav-rail-indicator-height: 32px;
57
- --md-comp-nav-rail-indicator-shape: 16px;
64
+ --md-comp-nav-rail-indicator-shape: var(--md-sys-shape-corner-large);
58
65
  --md-comp-nav-rail-fab-size: 56px;
59
66
  --md-comp-nav-rail-active-indicator-color: var(--md-sys-color-secondary-container);
60
67
  --md-comp-nav-rail-active-color: var(--md-sys-color-on-secondary-container);
61
- --md-comp-nav-rail-duration: 250ms;
68
+ --md-comp-nav-rail-duration: var(--md-sys-motion-duration-medium1);
69
+ // Expanding and collapsing resize the rail, so they run on the default
70
+ // spatial spring and follow the motion="expressive" switch. The rail grows
71
+ // from its docked edge, so an overshoot only widens it for a moment.
72
+ --md-comp-nav-rail-motion: var(--md-sys-motion-spring-default-spatial);
73
+ --md-comp-nav-rail-motion-duration: var(--md-sys-motion-spring-default-spatial-duration);
62
74
 
63
75
  box-sizing: border-box;
64
76
  display: flex;
@@ -75,13 +87,13 @@
75
87
  overscroll-behavior: contain;
76
88
  background-color: var(--md-sys-color-surface-container);
77
89
  color: var(--md-sys-color-on-surface);
78
- transition: width var(--md-comp-nav-rail-duration) ease,
79
- min-width var(--md-comp-nav-rail-duration) ease,
80
- padding var(--md-comp-nav-rail-duration) ease;
90
+ transition: width var(--md-comp-nav-rail-motion-duration) var(--md-comp-nav-rail-motion),
91
+ min-width var(--md-comp-nav-rail-motion-duration) var(--md-comp-nav-rail-motion),
92
+ padding var(--md-comp-nav-rail-motion-duration) var(--md-comp-nav-rail-motion);
81
93
  @include glass(var(--md-sys-color-surface-container));
82
94
 
83
95
  // Menu toggle.
84
- > button:not(.button, .icon-button):first-child {
96
+ > button:not(.button, .icon-button, [popovertarget]):first-child {
85
97
  display: flex;
86
98
  flex: 0 0 auto;
87
99
  align-items: center;
@@ -105,12 +117,14 @@
105
117
  }
106
118
 
107
119
  &:hover {
108
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
120
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
109
121
  }
110
122
  }
111
123
 
112
124
  // Optional FAB. Collapsed: icon-only 56dp. Expanded: extended.
113
125
  > :is(a, button).button {
126
+ --md-comp-filled-button-icon-size: 24px;
127
+
114
128
  display: inline-flex;
115
129
  flex: 0 0 auto;
116
130
  align-items: center;
@@ -122,23 +136,19 @@
122
136
  margin: 4px 0 16px;
123
137
  padding: 0;
124
138
  overflow: hidden;
125
- border-radius: 16px;
139
+ border-radius: var(--md-sys-shape-corner-large);
126
140
  color: var(--md-sys-color-on-primary-container);
127
141
  background-color: var(--md-sys-color-primary-container);
128
142
  text-decoration: none;
129
143
 
130
144
  > :not(#{$icon}) {
131
- position: absolute;
132
- width: 1px;
133
- height: 1px;
134
- overflow: hidden;
135
- clip-path: inset(50%);
145
+ @include visually-hidden;
136
146
  }
137
147
  }
138
148
 
139
149
  // Destinations.
140
150
  > a:not(.button, .icon-button),
141
- > button:not(.button, .icon-button):not(:first-child) {
151
+ > button:not(.button, .icon-button):is(:not(:first-child), [popovertarget]) {
142
152
  position: relative;
143
153
  display: flex;
144
154
  flex: 0 0 auto;
@@ -148,6 +158,8 @@
148
158
  gap: 4px;
149
159
  box-sizing: border-box;
150
160
  width: 100%;
161
+ // A <button> destination would keep the default button's 40px height.
162
+ height: auto;
151
163
  margin: 0;
152
164
  padding: 6px 0;
153
165
  border: 0;
@@ -160,48 +172,9 @@
160
172
  @include typescale("label-medium");
161
173
  @include focus-visible;
162
174
 
163
- > #{$icon} {
164
- display: flex;
165
- flex-shrink: 0;
166
- align-items: center;
167
- justify-content: center;
168
- box-sizing: border-box;
169
- width: var(--md-comp-nav-rail-indicator-width);
170
- height: var(--md-comp-nav-rail-indicator-height);
171
- border-radius: var(--md-comp-nav-rail-indicator-shape);
172
- font-size: var(--md-comp-nav-rail-icon-size);
173
- color: inherit;
174
- transition: background-color var(--md-comp-nav-rail-duration) ease;
175
- }
176
-
177
- &:hover:not(.active, [aria-current]) > #{$icon} {
178
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
179
- }
180
-
181
- &.active,
182
- &[aria-current] {
183
- color: var(--md-sys-color-on-surface);
184
-
185
- > #{$icon} {
186
- background-color: var(--md-comp-nav-rail-active-indicator-color);
187
- color: var(--md-comp-nav-rail-active-color);
188
- --md-icon-fill: 1;
189
- }
190
- }
191
-
192
175
  // Sibling badge (icon + label + .badge). Child-of-icon is handled
193
- // in _badges.scss. Sit on the upper trailing corner of the 24dp glyph.
194
- > .badge {
195
- position: absolute;
196
- z-index: 1;
197
- top: calc(6px + (var(--md-comp-nav-rail-indicator-height) - 24px) / 2);
198
- inset-inline-start: calc(50% + 12px);
199
- transform: translate(-50%, -50%);
200
-
201
- &:dir(rtl) {
202
- transform: translate(50%, -50%);
203
- }
204
- }
176
+ // in _badges.scss.
177
+ @include nav-destination("nav-rail", 6px, background-color var(--md-comp-nav-rail-duration) ease);
205
178
  }
206
179
 
207
180
  > :is(h1, h2, h3, h4, h5, h6) {
@@ -216,14 +189,14 @@
216
189
 
217
190
  &.expanded {
218
191
  --md-comp-nav-rail-indicator-height: 56px;
219
- --md-comp-nav-rail-indicator-shape: 28px;
192
+ --md-comp-nav-rail-indicator-shape: var(--md-sys-shape-corner-extra-large);
220
193
 
221
194
  align-items: stretch;
222
195
  width: clamp(220px, var(--md-comp-nav-rail-expanded-width), 360px);
223
196
  min-width: 220px;
224
197
  padding-inline: 16px;
225
198
 
226
- > button:not(.button, .icon-button):first-child {
199
+ > button:not(.button, .icon-button, [popovertarget]):first-child {
227
200
  justify-content: flex-start;
228
201
  width: auto;
229
202
  padding-inline: 16px;
@@ -240,6 +213,7 @@
240
213
  position: static;
241
214
  width: auto;
242
215
  height: auto;
216
+ margin: 0;
243
217
  overflow: visible;
244
218
  clip-path: none;
245
219
  @include typescale("label-large");
@@ -247,7 +221,7 @@
247
221
  }
248
222
 
249
223
  > a:not(.button, .icon-button),
250
- > button:not(.button, .icon-button):not(:first-child) {
224
+ > button:not(.button, .icon-button):is(:not(:first-child), [popovertarget]) {
251
225
  flex-direction: row;
252
226
  justify-content: flex-start;
253
227
  gap: 12px;
@@ -256,46 +230,21 @@
256
230
  border-radius: var(--md-comp-nav-rail-indicator-shape);
257
231
  text-align: start;
258
232
 
259
- > #{$icon} {
260
- width: var(--md-comp-nav-rail-icon-size);
261
- height: var(--md-comp-nav-rail-icon-size);
262
- border-radius: 0;
263
- }
264
-
265
- &:hover:not(.active, [aria-current]) {
266
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
267
-
268
- > #{$icon} {
269
- background-color: transparent;
270
- }
271
- }
272
-
273
- &.active,
274
- &[aria-current] {
275
- background-color: var(--md-comp-nav-rail-active-indicator-color);
276
- color: var(--md-comp-nav-rail-active-color);
277
-
278
- > #{$icon} {
279
- background-color: transparent;
280
- color: inherit;
281
- }
282
- }
233
+ @include nav-destination-row("nav-rail");
283
234
 
284
235
  > .badge {
285
236
  top: calc((var(--md-comp-nav-rail-indicator-height) - 24px) / 2);
286
- left: auto;
287
237
  inset-inline-start: calc(16px + 24px);
288
- transform: translate(-50%, -50%);
289
-
290
- &:dir(rtl) {
291
- transform: translate(50%, -50%);
292
- }
293
238
  }
294
239
  }
295
240
 
296
241
  > :is(h1, h2, h3, h4, h5, h6) {
297
242
  display: block;
298
243
  }
244
+
245
+ > .navigation-rail-panel {
246
+ --_nav-rail-panel-offset: 16px;
247
+ }
299
248
  }
300
249
 
301
250
  &.expanded.modal {
@@ -309,8 +258,118 @@
309
258
  }
310
259
  }
311
260
 
261
+ // A destination whose panel is open keeps its hover state layer.
262
+ .navigation-rail:not(.expanded) > button:has(+ .navigation-rail-panel:popover-open):not(.active, [aria-current]) > #{$icon},
263
+ .navigation-rail.expanded > button:has(+ .navigation-rail-panel:popover-open):not(.active, [aria-current]) {
264
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
265
+ }
266
+
267
+ // Docks against the trigger's inline end; the offset clears the rail's
268
+ // inline padding so the panel meets the rail's edge. The position area is
269
+ // the space after the trigger, so 100% is what is left of the window.
270
+ .navigation-rail-panel {
271
+ --_nav-rail-panel-offset: 8px;
272
+
273
+ box-sizing: border-box;
274
+ inline-size: var(--md-comp-nav-rail-panel-width, 256px);
275
+ max-inline-size: calc(100% - var(--_nav-rail-panel-offset));
276
+ block-size: auto;
277
+ inset: auto;
278
+ margin: 0;
279
+ margin-inline-start: var(--_nav-rail-panel-offset);
280
+ overflow: auto;
281
+ overscroll-behavior: contain;
282
+ border: 0;
283
+ border-start-end-radius: var(--md-sys-shape-corner-large);
284
+ border-end-end-radius: var(--md-sys-shape-corner-large);
285
+ background-color: var(--md-sys-color-surface-container);
286
+ color: var(--md-sys-color-on-surface-variant);
287
+ @include z-depth("1");
288
+
289
+ position-area: span-all inline-end;
290
+ align-self: stretch;
291
+
292
+ // Here, not on the base rule, so the global [popover] reset in _menu.scss,
293
+ // which loads later, cannot clear it.
294
+ &:popover-open {
295
+ display: flex;
296
+ flex-direction: column;
297
+ padding: 12px;
298
+ }
299
+
300
+ :is(a, summary) {
301
+ display: flex;
302
+ flex: none;
303
+ align-items: center;
304
+ gap: 12px;
305
+ box-sizing: border-box;
306
+ min-block-size: 48px;
307
+ padding: 0 16px;
308
+ border-radius: 24px;
309
+ color: inherit;
310
+ text-decoration: none;
311
+ cursor: pointer;
312
+ @include typescale("label-large");
313
+ @include focus-visible;
314
+
315
+ &:hover:not([aria-current]) {
316
+ background-color: state-layer(var(--md-sys-color-on-surface), "hover");
317
+ }
318
+
319
+ &[aria-current] {
320
+ background-color: var(--md-comp-nav-rail-active-indicator-color);
321
+ color: var(--md-comp-nav-rail-active-color);
322
+ @include forced-colors-selected;
323
+ }
324
+ }
325
+
326
+ summary {
327
+ list-style: none;
328
+
329
+ &::-webkit-details-marker {
330
+ display: none;
331
+ }
332
+
333
+ &::after {
334
+ content: "";
335
+ flex: none;
336
+ inline-size: 18px;
337
+ block-size: 18px;
338
+ margin-inline-start: auto;
339
+ background-color: currentColor;
340
+ mask: $caret-down center / 18px no-repeat;
341
+ transition: transform var(--md-sys-motion-duration-short3) ease-out;
342
+ }
343
+ }
344
+
345
+ details[open] > summary::after {
346
+ transform: rotate(180deg);
347
+ }
348
+
349
+ details > a {
350
+ padding-inline-start: 28px;
351
+ }
352
+
353
+ > :is(h1, h2, h3, h4, h5, h6) {
354
+ margin: 0;
355
+ padding: 16px 16px 8px;
356
+ @include typescale("title-small");
357
+ }
358
+
359
+ @media (forced-colors: active) {
360
+ border: 1px solid CanvasText;
361
+ }
362
+ }
363
+
312
364
  @media (prefers-reduced-motion: reduce) {
365
+ .navigation-rail-panel summary::after,
313
366
  .navigation-rail {
314
367
  transition: none;
315
368
  }
316
369
  }
370
+
371
+ // Navigation does nothing on paper. Important so a size or state rule that sets
372
+ // `display` cannot bring it back; see base/_print.scss for the page itself.
373
+ @media print {
374
+ .navigation-rail { display: none !important; }
375
+ }