@expressivecss/expressive 0.14.1 → 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.
- package/CHANGELOG.md +1589 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19304 -12021
- package/dist/css/expressive.css.map +1 -1
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -1
- package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
- package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
- package/dist/fonts/LICENSE-noto-sans-thai +93 -0
- package/dist/fonts/material-symbols-outlined.woff2 +0 -0
- package/dist/fonts/material-symbols-rounded.woff2 +0 -0
- package/dist/fonts/material-symbols-sharp.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-4QUCNFSD.mjs} +68 -125
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-4TRZ2AER.mjs} +35 -41
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
- package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-5KIHWJI2.mjs} +40 -26
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-67ZPPKXS.mjs} +20 -33
- package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-6FSEUFVW.mjs} +40 -29
- package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-75E5EDJF.mjs} +3 -11
- package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-7NLUI3RR.mjs} +148 -78
- package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-ANKFWNWT.mjs} +21 -45
- package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-B7DQFHA5.mjs} +37 -53
- package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-BPF3I2MN.mjs} +109 -27
- package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-CSYWKEK3.mjs} +322 -223
- package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-EC26RU2D.mjs} +11 -29
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-EVCVFEV3.mjs} +238 -152
- package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
- package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-ILDRRG7T.mjs} +21 -23
- package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-KZPSAXIU.mjs} +156 -46
- package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-OP43LLIC.mjs} +44 -73
- package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
- package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-OYNUDOHR.mjs} +20 -48
- package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-P6DRQ6KS.mjs} +36 -31
- package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-QXKWVHBD.mjs} +286 -203
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-ROH2HDB4.mjs} +7 -6
- package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SPPHF7YZ.mjs} +36 -29
- package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-VGY4M57S.mjs} +281 -135
- package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-VMY55K2X.mjs} +92 -141
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-VR3L2WN5.mjs} +11 -17
- package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
- package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-ZJNLAGY5.mjs} +19 -34
- package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
- package/dist/js/expressive.cjs +10333 -4070
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10333 -4070
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +23 -25
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +184 -69
- package/dist/js/expressive.mjs.map +2 -2
- package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
- package/dist/js/internal/behaviors/copy.mjs +9 -0
- package/dist/js/internal/behaviors/copy.mjs.map +7 -0
- package/dist/js/internal/behaviors/dataTables.mjs +10 -0
- package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
- package/dist/js/internal/behaviors/dialogs.mjs +2 -2
- package/dist/js/internal/behaviors/forms.mjs +2 -2
- package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
- package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
- package/dist/js/internal/behaviors/lists.mjs +8 -0
- package/dist/js/internal/behaviors/lists.mjs.map +7 -0
- package/dist/js/internal/behaviors/paneResize.mjs +8 -0
- package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
- package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
- package/dist/js/internal/behaviors/sortable.mjs +8 -0
- package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
- package/dist/js/internal/behaviors/theme.mjs +8 -0
- package/dist/js/internal/behaviors/theme.mjs.map +7 -0
- package/dist/js/internal/behaviors/tour.mjs +8 -0
- package/dist/js/internal/behaviors/tour.mjs.map +7 -0
- package/dist/js/internal/behaviors/transferList.mjs +8 -0
- package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
- package/dist/js/internal/components/appBar.mjs +3 -2
- package/dist/js/internal/components/autocomplete.mjs +4 -4
- package/dist/js/internal/components/backToTop.mjs +9 -0
- package/dist/js/internal/components/backToTop.mjs.map +7 -0
- package/dist/js/internal/components/barChart.mjs +5 -4
- package/dist/js/internal/components/buttonGroup.mjs +3 -2
- package/dist/js/internal/components/buttons.mjs +3 -3
- package/dist/js/internal/components/cards.mjs +3 -3
- package/dist/js/internal/components/carousel.mjs +3 -3
- package/dist/js/internal/components/cascader.mjs +10 -0
- package/dist/js/internal/components/cascader.mjs.map +7 -0
- package/dist/js/internal/components/characterCounter.mjs +3 -2
- package/dist/js/internal/components/chips.mjs +6 -5
- package/dist/js/internal/components/colorPicker.mjs +9 -0
- package/dist/js/internal/components/colorPicker.mjs.map +7 -0
- package/dist/js/internal/components/columnChart.mjs +4 -3
- package/dist/js/internal/components/commandPalette.mjs +3 -3
- package/dist/js/internal/components/confetti.mjs +3 -2
- package/dist/js/internal/components/currencyInput.mjs +9 -0
- package/dist/js/internal/components/currencyInput.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +11 -8
- package/dist/js/internal/components/expandingCard.mjs +3 -3
- package/dist/js/internal/components/funnelChart.mjs +10 -0
- package/dist/js/internal/components/funnelChart.mjs.map +7 -0
- package/dist/js/internal/components/heatmapChart.mjs +4 -3
- package/dist/js/internal/components/hoverCard.mjs +9 -0
- package/dist/js/internal/components/hoverCard.mjs.map +7 -0
- package/dist/js/internal/components/index.mjs +133 -64
- package/dist/js/internal/components/inputMask.mjs +9 -0
- package/dist/js/internal/components/inputMask.mjs.map +7 -0
- package/dist/js/internal/components/keypad.mjs +9 -0
- package/dist/js/internal/components/keypad.mjs.map +7 -0
- package/dist/js/internal/components/lightbox.mjs +3 -3
- package/dist/js/internal/components/lineChart.mjs +29 -4
- package/dist/js/internal/components/loadingOverlay.mjs +9 -0
- package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
- package/dist/js/internal/components/mapView.mjs +3 -3
- package/dist/js/internal/components/menu.mjs +3 -3
- package/dist/js/internal/components/menubar.mjs +10 -0
- package/dist/js/internal/components/menubar.mjs.map +7 -0
- package/dist/js/internal/components/messageScroller.mjs +3 -3
- package/dist/js/internal/components/mixedChart.mjs +5 -4
- package/dist/js/internal/components/navigationRail.mjs +3 -2
- package/dist/js/internal/components/particles.mjs +3 -2
- package/dist/js/internal/components/pieChart.mjs +4 -3
- package/dist/js/internal/components/pullToRefresh.mjs +9 -0
- package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
- package/dist/js/internal/components/questionnaire.mjs +3 -3
- package/dist/js/internal/components/radarChart.mjs +4 -3
- package/dist/js/internal/components/radialChart.mjs +4 -3
- package/dist/js/internal/components/registry.mjs +59 -40
- package/dist/js/internal/components/richTextEditor.mjs +3 -3
- package/dist/js/internal/components/sankeyChart.mjs +10 -0
- package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
- package/dist/js/internal/components/scatterChart.mjs +10 -0
- package/dist/js/internal/components/scatterChart.mjs.map +7 -0
- package/dist/js/internal/components/scrollspy.mjs +3 -2
- package/dist/js/internal/components/select.mjs +4 -4
- package/dist/js/internal/components/showMore.mjs +9 -0
- package/dist/js/internal/components/showMore.mjs.map +7 -0
- package/dist/js/internal/components/slider.mjs +3 -3
- package/dist/js/internal/components/snackbar.mjs +2 -2
- package/dist/js/internal/components/swipeActions.mjs +9 -0
- package/dist/js/internal/components/swipeActions.mjs.map +7 -0
- package/dist/js/internal/components/tabs.mjs +3 -4
- package/dist/js/internal/components/timepicker.mjs +5 -4
- package/dist/js/internal/components/tooltip.mjs +3 -3
- package/dist/js/internal/components/treeSelect.mjs +13 -0
- package/dist/js/internal/components/treeSelect.mjs.map +7 -0
- package/dist/js/internal/components/treemapChart.mjs +10 -0
- package/dist/js/internal/components/treemapChart.mjs.map +7 -0
- package/dist/js/internal/core/component.mjs +2 -1
- package/dist/js/internal/core/formControl.mjs +12 -0
- package/dist/js/internal/core/formControl.mjs.map +7 -0
- package/dist/js/internal/core/spring.mjs +11 -0
- package/dist/js/internal/core/spring.mjs.map +7 -0
- package/dist/js/internal/core/utils.mjs +11 -3
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
- package/dist/js/modular.mjs +175 -69
- package/dist/types/behaviors/bottomSheets.d.ts +19 -3
- package/dist/types/behaviors/copy.d.ts +18 -0
- package/dist/types/behaviors/dataTables.d.ts +129 -0
- package/dist/types/behaviors/dialogs.d.ts +27 -1
- package/dist/types/behaviors/forms.d.ts +68 -2
- package/dist/types/behaviors/imageCompare.d.ts +12 -0
- package/dist/types/behaviors/lists.d.ts +12 -0
- package/dist/types/behaviors/paneResize.d.ts +29 -0
- package/dist/types/behaviors/sheetDrag.d.ts +18 -0
- package/dist/types/behaviors/sideSheets.d.ts +1 -1
- package/dist/types/behaviors/sortable.d.ts +28 -0
- package/dist/types/behaviors/theme.d.ts +22 -0
- package/dist/types/behaviors/tour.d.ts +36 -0
- package/dist/types/behaviors/transferList.d.ts +51 -0
- package/dist/types/components/appBar.d.ts +5 -6
- package/dist/types/components/autocomplete.d.ts +92 -17
- package/dist/types/components/backToTop.d.ts +36 -0
- package/dist/types/components/barChart.d.ts +3 -6
- package/dist/types/components/buttonGroup.d.ts +2 -4
- package/dist/types/components/buttons.d.ts +5 -5
- package/dist/types/components/cards.d.ts +3 -16
- package/dist/types/components/carousel.d.ts +9 -15
- package/dist/types/components/cascader.d.ts +130 -0
- package/dist/types/components/characterCounter.d.ts +2 -15
- package/dist/types/components/chips.d.ts +65 -19
- package/dist/types/components/colorPicker.d.ts +42 -0
- package/dist/types/components/columnChart.d.ts +23 -10
- package/dist/types/components/commandPalette.d.ts +11 -16
- package/dist/types/components/confetti.d.ts +2 -4
- package/dist/types/components/currencyInput.d.ts +59 -0
- package/dist/types/components/datepicker.d.ts +59 -36
- package/dist/types/components/expandingCard.d.ts +6 -6
- package/dist/types/components/funnelChart.d.ts +38 -0
- package/dist/types/components/heatmapChart.d.ts +39 -8
- package/dist/types/components/hoverCard.d.ts +58 -0
- package/dist/types/components/index.d.ts +17 -1
- package/dist/types/components/inputMask.d.ts +30 -0
- package/dist/types/components/keypad.d.ts +66 -0
- package/dist/types/components/lightbox.d.ts +17 -25
- package/dist/types/components/lineChart.d.ts +176 -10
- package/dist/types/components/loadingOverlay.d.ts +42 -0
- package/dist/types/components/mapView.d.ts +26 -17
- package/dist/types/components/menu.d.ts +61 -22
- package/dist/types/components/menubar.d.ts +37 -0
- package/dist/types/components/messageScroller.d.ts +2 -14
- package/dist/types/components/mixedChart.d.ts +15 -6
- package/dist/types/components/navigationRail.d.ts +16 -5
- package/dist/types/components/particles.d.ts +8 -4
- package/dist/types/components/pieChart.d.ts +32 -7
- package/dist/types/components/pullToRefresh.d.ts +80 -0
- package/dist/types/components/questionnaire.d.ts +58 -16
- package/dist/types/components/radarChart.d.ts +10 -6
- package/dist/types/components/radialChart.d.ts +58 -8
- package/dist/types/components/registry.d.ts +77 -3
- package/dist/types/components/richTextEditor.d.ts +6 -14
- package/dist/types/components/sankeyChart.d.ts +72 -0
- package/dist/types/components/scatterChart.d.ts +102 -0
- package/dist/types/components/scrollspy.d.ts +3 -5
- package/dist/types/components/select.d.ts +43 -30
- package/dist/types/components/showMore.d.ts +51 -0
- package/dist/types/components/slider.d.ts +5 -15
- package/dist/types/components/snackbar.d.ts +62 -0
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +93 -27
- package/dist/types/components/timepicker.d.ts +114 -20
- package/dist/types/components/tooltip.d.ts +56 -20
- package/dist/types/components/treeSelect.d.ts +106 -0
- package/dist/types/components/treemapChart.d.ts +56 -0
- package/dist/types/core/component.d.ts +43 -25
- package/dist/types/core/formControl.d.ts +21 -0
- package/dist/types/core/spring.d.ts +20 -0
- package/dist/types/core/utils.d.ts +85 -72
- package/dist/types/modular.d.ts +33 -1
- package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -7
- package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
- package/package.json +10 -8
- package/src/sass/README.md +27 -18
- package/src/sass/abstracts/_breakpoints.scss +0 -1
- package/src/sass/abstracts/_elevation.scss +13 -7
- package/src/sass/abstracts/_index.scss +1 -0
- package/src/sass/abstracts/_mixins.scss +438 -92
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +43 -15
- package/src/sass/base/_fonts.scss +61 -48
- package/src/sass/base/_global.scss +105 -34
- package/src/sass/base/_index.scss +3 -1
- package/src/sass/base/_normalize.scss +59 -114
- package/src/sass/base/_print.scss +21 -0
- package/src/sass/base/_prose.scss +68 -0
- package/src/sass/base/_typography.scss +9 -5
- package/src/sass/components/_accordion.scss +9 -16
- package/src/sass/components/_alert.scss +102 -0
- package/src/sass/components/_aura.scss +8 -3
- package/src/sass/components/_avatar.scss +3 -3
- package/src/sass/components/_back-to-top.scss +38 -0
- package/src/sass/components/_badges.scss +7 -13
- package/src/sass/components/_bar-chart.scss +41 -19
- package/src/sass/components/_bottom-sheet.scss +44 -16
- package/src/sass/components/_breadcrumb.scss +8 -1
- package/src/sass/components/_button-groups.scss +44 -89
- package/src/sass/components/_buttons.scss +156 -63
- package/src/sass/components/_calendar.scss +246 -0
- package/src/sass/components/_cards.scss +41 -68
- package/src/sass/components/_carousel.scss +43 -158
- package/src/sass/components/_cascader.scss +142 -0
- package/src/sass/components/_chips.scss +36 -52
- package/src/sass/components/_column-chart.scss +19 -12
- package/src/sass/components/_command-palette.scss +4 -7
- package/src/sass/components/_confetti.scss +0 -2
- package/src/sass/components/_countdown.scss +1 -1
- package/src/sass/components/_data-table.scss +162 -27
- package/src/sass/components/_datepicker.scss +57 -62
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +42 -44
- package/src/sass/components/_docked-display.scss +1 -3
- package/src/sass/components/_drag-handle.scss +16 -20
- package/src/sass/components/_expanding-card.scss +20 -9
- package/src/sass/components/_fab-menu.scss +44 -32
- package/src/sass/components/_funnel-chart.scss +124 -0
- package/src/sass/components/_heatmap-chart.scss +113 -24
- package/src/sass/components/_icon-buttons.scss +7 -8
- package/src/sass/components/_icons-material-design.scss +2 -2
- package/src/sass/components/_image-compare.scss +108 -0
- package/src/sass/components/_index.scss +21 -0
- package/src/sass/components/_keypad.scss +182 -0
- package/src/sass/components/_kpi.scss +6 -11
- package/src/sass/components/_lightbox.scss +26 -20
- package/src/sass/components/_line-chart.scss +16 -2
- package/src/sass/components/_list.scss +59 -14
- package/src/sass/components/_loading-indicator.scss +1 -0
- package/src/sass/components/_loading-overlay.scss +105 -0
- package/src/sass/components/_map.scss +35 -13
- package/src/sass/components/_marquee.scss +3 -2
- package/src/sass/components/_mega-menu.scss +137 -0
- package/src/sass/components/_menu.scss +159 -182
- package/src/sass/components/_menubar.scss +59 -0
- package/src/sass/components/_message-scroller.scss +2 -2
- package/src/sass/components/_message.scss +3 -3
- package/src/sass/components/_mixed-chart.scss +37 -9
- package/src/sass/components/_modal-display.scss +21 -0
- package/src/sass/components/_navbar.scss +43 -65
- package/src/sass/components/_navigation-bar.scss +15 -77
- package/src/sass/components/_navigation-rail.scss +171 -121
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +16 -13
- package/src/sass/components/_pagination.scss +6 -13
- package/src/sass/components/_panes.scss +33 -31
- package/src/sass/components/_particles.scss +0 -2
- package/src/sass/components/_pie-chart.scss +91 -11
- package/src/sass/components/_popover.scss +18 -5
- package/src/sass/components/_progress.scss +158 -35
- package/src/sass/components/_pull-to-refresh.scss +90 -0
- package/src/sass/components/_questionnaire.scss +74 -3
- package/src/sass/components/_radar-chart.scss +38 -10
- package/src/sass/components/_radial-chart.scss +113 -5
- package/src/sass/components/_rich-text-editor.scss +2 -2
- package/src/sass/components/_sankey-chart.scss +114 -0
- package/src/sass/components/_scatter-chart.scss +153 -0
- package/src/sass/components/_scrim.scss +0 -2
- package/src/sass/components/_scrollspy.scss +0 -2
- package/src/sass/components/_search.scss +26 -22
- package/src/sass/components/_show-more.scss +8 -0
- package/src/sass/components/_side-sheet.scss +23 -40
- package/src/sass/components/_skeleton.scss +2 -4
- package/src/sass/components/_snackbar.scss +27 -21
- package/src/sass/components/_split-button.scss +5 -5
- package/src/sass/components/_stat.scss +3 -8
- package/src/sass/components/_stepper.scss +1 -5
- package/src/sass/components/_swipe-actions.scss +71 -0
- package/src/sass/components/_tabs.scss +51 -32
- package/src/sass/components/_timeline.scss +12 -12
- package/src/sass/components/_timepicker.scss +111 -112
- package/src/sass/components/_toolbar.scss +35 -47
- package/src/sass/components/_tooltip.scss +21 -12
- package/src/sass/components/_tour.scss +89 -0
- package/src/sass/components/_transfer-list.scss +73 -0
- package/src/sass/components/_transitions.scss +4 -4
- package/src/sass/components/_tree.scss +3 -16
- package/src/sass/components/_treemap-chart.scss +122 -0
- package/src/sass/components/forms/_checkboxes.scss +140 -86
- package/src/sass/components/forms/_color-picker.scss +135 -0
- package/src/sass/components/forms/_color-swatches.scss +85 -0
- package/src/sass/components/forms/_drop-zone.scss +15 -9
- package/src/sass/components/forms/_fieldset.scss +10 -10
- package/src/sass/components/forms/_file-input.scss +6 -9
- package/src/sass/components/forms/_index.scss +3 -1
- package/src/sass/components/forms/_input-fields.scss +254 -90
- package/src/sass/components/forms/_radio-buttons.scss +40 -127
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +199 -23
- package/src/sass/components/forms/_slider.scss +140 -330
- package/src/sass/components/forms/_switches.scss +53 -164
- package/src/sass/custom.scss +10 -1
- package/src/sass/expressive.scss +3 -63
- package/src/sass/tokens/_contrast.scss +94 -0
- package/src/sass/tokens/_elevation.scss +16 -0
- package/src/sass/tokens/_index.scss +5 -0
- package/src/sass/tokens/_motion.scss +109 -0
- package/src/sass/tokens/_reference.scss +72 -141
- package/src/sass/tokens/_shape.scss +38 -0
- package/src/sass/tokens/_stacking.scss +27 -0
- package/src/sass/tokens/_state.scss +2 -4
- package/src/sass/tokens/_theme.scss +11 -2
- package/src/sass/tokens/_vibrant.scss +2 -5
- package/src/sass/utilities/_colors.scss +6 -1
- package/src/sass/utilities/_defer-render.scss +17 -0
- package/src/sass/utilities/_helpers.scss +183 -26
- package/src/sass/utilities/_index.scss +2 -1
- package/src/sass/utilities/_scroll-area.scss +0 -2
- package/src/sass/utilities/_spacing.scss +52 -34
- package/src/sass/utilities/_typescale.scss +8 -1
- package/src/sass/utilities/_visibility.scss +47 -76
- package/src/sass/utilities/_z-depth.scss +7 -4
- package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
- package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
- package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs +0 -270
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +0 -7
- package/dist/js/chunks/chunk-5BKHWHYY.mjs +0 -292
- package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
- package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
- package/dist/js/chunks/chunk-6N2XAEFK.mjs +0 -125
- package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
- package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
- package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +0 -7
- package/dist/js/chunks/chunk-CUQPB25U.mjs +0 -55
- package/dist/js/chunks/chunk-CUQPB25U.mjs.map +0 -7
- package/dist/js/chunks/chunk-DAIU5SLG.mjs.map +0 -7
- package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +0 -7
- package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +0 -7
- package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +0 -7
- package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-GZKEFWPM.mjs +0 -181
- package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
- package/dist/js/chunks/chunk-HKT2S7VM.mjs +0 -48
- package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +0 -7
- package/dist/js/chunks/chunk-ILP3PDTL.mjs +0 -187
- package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
- package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
- package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
- package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +0 -7
- package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
- package/dist/js/chunks/chunk-KY6U46SM.mjs +0 -345
- package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs +0 -291
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
- package/dist/js/chunks/chunk-LTWPGFBR.mjs +0 -59
- package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
- package/dist/js/chunks/chunk-MNPROCZF.mjs +0 -328
- package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
- package/dist/js/chunks/chunk-MZ6Z24BX.mjs.map +0 -7
- package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +0 -7
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs +0 -406
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
- package/dist/js/chunks/chunk-PM655FXL.mjs.map +0 -7
- package/dist/js/chunks/chunk-QDAL4IYN.mjs.map +0 -7
- package/dist/js/chunks/chunk-QERLECVU.mjs +0 -572
- package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
- package/dist/js/chunks/chunk-QJABDLSD.mjs +0 -112
- package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
- package/dist/js/chunks/chunk-RHRQKTTX.mjs +0 -139
- package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-SPETGK25.mjs +0 -59
- package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
- package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +0 -7
- package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-UEZUJQ66.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGZSAFTX.mjs +0 -173
- package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-X7OCHZVF.mjs +0 -76
- package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
- package/dist/js/chunks/chunk-YDCS5S3J.mjs.map +0 -7
- package/dist/js/chunks/chunk-YMSXJON6.mjs +0 -79
- package/dist/js/chunks/chunk-YMSXJON6.mjs.map +0 -7
- package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZAS25YFD.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
- /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
//
|
|
5
5
|
// Anatomy is the HTML. A <label class="switch"> wrapping
|
|
6
6
|
// <input type="checkbox"> is the control. The label text is a sibling of
|
|
7
|
-
// the input — no .lever required.
|
|
8
|
-
// work (legacy).
|
|
7
|
+
// the input — no .lever required.
|
|
9
8
|
//
|
|
10
9
|
// Tokens follow https://m3.material.io/components/switch/specs
|
|
11
10
|
// track 52×32dp, 16dp corners
|
|
12
|
-
// unselected surface-
|
|
11
|
+
// unselected surface-container-highest + 2dp outline, 16dp handle
|
|
13
12
|
// selected primary track, 24dp on-primary handle
|
|
14
13
|
// state layer 40dp, 8% hover / 10% focus
|
|
15
14
|
// touch target 48dp
|
|
@@ -18,46 +17,22 @@
|
|
|
18
17
|
|
|
19
18
|
.switch {
|
|
20
19
|
--md-comp-switch-track-width: 52px;
|
|
20
|
+
// The handle slides and grows on the fast spatial spring; colors keep
|
|
21
|
+
// their short ease.
|
|
22
|
+
--md-comp-switch-motion: var(--md-sys-motion-spring-fast-spatial);
|
|
23
|
+
--md-comp-switch-motion-duration: var(--md-sys-motion-spring-fast-spatial-duration);
|
|
21
24
|
--md-comp-switch-track-height: 32px;
|
|
22
25
|
--md-comp-switch-handle-unselected: 16px;
|
|
23
26
|
--md-comp-switch-handle-selected: 24px;
|
|
24
27
|
|
|
25
|
-
display: inline-flex;
|
|
26
|
-
align-items: center;
|
|
27
|
-
gap: 12px;
|
|
28
|
-
min-height: 48px;
|
|
29
|
-
margin: 0;
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
user-select: none;
|
|
32
28
|
-webkit-tap-highlight-color: transparent;
|
|
33
|
-
|
|
34
|
-
@include typescale("body-large");
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.switch label {
|
|
38
|
-
display: inline-flex;
|
|
39
|
-
align-items: center;
|
|
40
|
-
gap: 12px;
|
|
41
|
-
cursor: pointer;
|
|
42
|
-
user-select: none;
|
|
29
|
+
@include selection-control-label(inline-flex);
|
|
43
30
|
}
|
|
44
31
|
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
.switch [type="checkbox"]
|
|
48
|
-
position: absolute;
|
|
49
|
-
opacity: 0;
|
|
50
|
-
width: 0;
|
|
51
|
-
height: 0;
|
|
52
|
-
pointer-events: none;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Paint the switch on the checkbox when there is no lever/span.
|
|
56
|
-
.switch [type="checkbox"]:not(:has(+ .lever)):not(:has(+ span)) {
|
|
32
|
+
// Paint the switch on the checkbox. The class goes on the <label> that wraps
|
|
33
|
+
// it; a checkbox nested deeper is an ordinary checkbox.
|
|
34
|
+
.switch > [type="checkbox"] {
|
|
57
35
|
appearance: none;
|
|
58
|
-
position: static;
|
|
59
|
-
opacity: 1;
|
|
60
|
-
pointer-events: auto;
|
|
61
36
|
flex: 0 0 var(--md-comp-switch-track-width);
|
|
62
37
|
box-sizing: border-box;
|
|
63
38
|
width: var(--md-comp-switch-track-width);
|
|
@@ -65,8 +40,8 @@
|
|
|
65
40
|
margin: 0;
|
|
66
41
|
padding: 0;
|
|
67
42
|
border: 2px solid var(--md-sys-color-outline);
|
|
68
|
-
border-radius:
|
|
69
|
-
background-color: var(--md-sys-color-surface-
|
|
43
|
+
border-radius: var(--md-sys-shape-corner-large);
|
|
44
|
+
background-color: var(--md-sys-color-surface-container-highest);
|
|
70
45
|
// Size the image to the handle. A 100% gradient keeps the circle in
|
|
71
46
|
// the middle of the track, so background-position cannot put off on
|
|
72
47
|
// the start and on on the end.
|
|
@@ -83,8 +58,13 @@
|
|
|
83
58
|
// thumb on the start and it only grows.
|
|
84
59
|
background-position: 6px 50%;
|
|
85
60
|
cursor: pointer;
|
|
86
|
-
transition: background-color
|
|
87
|
-
background-
|
|
61
|
+
transition: background-color var(--md-sys-motion-duration-short4) ease,
|
|
62
|
+
background-position var(--md-comp-switch-motion-duration) var(--md-comp-switch-motion),
|
|
63
|
+
background-size var(--md-comp-switch-motion-duration) var(--md-comp-switch-motion), border-color var(--md-sys-motion-duration-short4) ease, box-shadow var(--md-sys-motion-duration-short4) ease;
|
|
64
|
+
|
|
65
|
+
@media (prefers-reduced-motion: reduce) {
|
|
66
|
+
transition: none;
|
|
67
|
+
}
|
|
88
68
|
|
|
89
69
|
&:checked {
|
|
90
70
|
border-color: var(--md-sys-color-primary);
|
|
@@ -103,16 +83,15 @@
|
|
|
103
83
|
}
|
|
104
84
|
|
|
105
85
|
&:hover {
|
|
106
|
-
box-shadow: 0 0 0 8px
|
|
86
|
+
box-shadow: 0 0 0 8px state-layer(var(--md-sys-color-on-surface), "hover");
|
|
107
87
|
}
|
|
108
88
|
|
|
109
89
|
&:checked:hover {
|
|
110
|
-
box-shadow: 0 0 0 8px
|
|
90
|
+
box-shadow: 0 0 0 8px state-layer(var(--md-sys-color-primary), "hover");
|
|
111
91
|
}
|
|
112
92
|
|
|
113
|
-
&:focus-visible
|
|
114
|
-
|
|
115
|
-
box-shadow: 0 0 0 8px color-mix(in oklab, var(--md-sys-color-primary) state-opacity("focus"), transparent);
|
|
93
|
+
&:focus-visible {
|
|
94
|
+
box-shadow: 0 0 0 8px state-layer(var(--md-sys-color-primary), "focus");
|
|
116
95
|
outline: none;
|
|
117
96
|
}
|
|
118
97
|
|
|
@@ -123,129 +102,39 @@
|
|
|
123
102
|
}
|
|
124
103
|
}
|
|
125
104
|
|
|
126
|
-
.switch:has(> [type="checkbox"]:disabled)
|
|
127
|
-
.switch:has([type="checkbox"]:disabled) label {
|
|
105
|
+
.switch:has(> [type="checkbox"]:disabled) {
|
|
128
106
|
color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
|
|
129
107
|
cursor: default;
|
|
130
108
|
}
|
|
131
109
|
|
|
132
|
-
//
|
|
133
|
-
.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
&::after {
|
|
164
|
-
background-color: var(--md-sys-color-outline);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
.switch [type="checkbox"]:checked + .lever,
|
|
169
|
-
.switch [type="checkbox"]:checked + span {
|
|
170
|
-
border-color: var(--md-sys-color-primary);
|
|
171
|
-
background-color: var(--md-sys-color-primary);
|
|
172
|
-
|
|
173
|
-
&::before,
|
|
174
|
-
&::after {
|
|
175
|
-
top: 2px;
|
|
176
|
-
left: 22px;
|
|
177
|
-
width: 24px;
|
|
178
|
-
height: 24px;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
&::after {
|
|
182
|
-
background-color: var(--md-sys-color-on-primary);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.switch [type="checkbox"]:hover + .lever,
|
|
187
|
-
.switch [type="checkbox"]:hover + span {
|
|
188
|
-
box-shadow: 0 0 0 8px color-mix(in oklab, var(--md-sys-color-on-surface) state-opacity("hover"), transparent);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
.switch [type="checkbox"]:checked:hover + .lever,
|
|
192
|
-
.switch [type="checkbox"]:checked:hover + span {
|
|
193
|
-
box-shadow: 0 0 0 8px color-mix(in oklab, var(--md-sys-color-primary) state-opacity("hover"), transparent);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
.switch [type="checkbox"]:focus-visible + .lever,
|
|
197
|
-
.switch [type="checkbox"].tabbed:focus + .lever,
|
|
198
|
-
.switch [type="checkbox"]:focus-visible + span,
|
|
199
|
-
.switch [type="checkbox"].tabbed:focus + span {
|
|
200
|
-
box-shadow: 0 0 0 8px color-mix(in oklab, var(--md-sys-color-primary) state-opacity("focus"), transparent);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.switch [type="checkbox"]:disabled + .lever,
|
|
204
|
-
.switch [type="checkbox"]:disabled + span {
|
|
205
|
-
opacity: 0.38;
|
|
206
|
-
box-shadow: none;
|
|
207
|
-
cursor: default;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// The span holds the label text as well as the track.
|
|
211
|
-
.switch [type="checkbox"] + span:not(.lever):not(:empty) {
|
|
212
|
-
width: auto;
|
|
213
|
-
min-width: var(--md-comp-switch-track-width);
|
|
214
|
-
height: auto;
|
|
215
|
-
min-height: var(--md-comp-switch-track-height);
|
|
216
|
-
padding-left: calc(var(--md-comp-switch-track-width) + 12px);
|
|
217
|
-
border: 0;
|
|
218
|
-
background-color: transparent;
|
|
219
|
-
border-radius: 0;
|
|
220
|
-
|
|
221
|
-
&::before {
|
|
222
|
-
border: 2px solid var(--md-sys-color-outline);
|
|
223
|
-
background-color: var(--md-sys-color-surface-variant);
|
|
224
|
-
box-sizing: border-box;
|
|
225
|
-
width: var(--md-comp-switch-track-width);
|
|
226
|
-
height: var(--md-comp-switch-track-height);
|
|
227
|
-
border-radius: 16px;
|
|
228
|
-
top: 0;
|
|
229
|
-
left: 0;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
&::after {
|
|
233
|
-
top: 8px;
|
|
234
|
-
left: 8px;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
.switch [type="checkbox"]:checked + span:not(.lever):not(:empty) {
|
|
239
|
-
background-color: transparent;
|
|
240
|
-
border-color: transparent;
|
|
241
|
-
|
|
242
|
-
&::before {
|
|
243
|
-
border-color: var(--md-sys-color-primary);
|
|
244
|
-
background-color: var(--md-sys-color-primary);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
&::after {
|
|
248
|
-
top: 4px;
|
|
249
|
-
left: 24px;
|
|
110
|
+
// Forced colors drop the gradient handle, so a switch shows only an empty
|
|
111
|
+
// track whatever its state. Repaint the whole control in system colors.
|
|
112
|
+
@media (forced-colors: active) {
|
|
113
|
+
.switch > [type="checkbox"] {
|
|
114
|
+
forced-color-adjust: none;
|
|
115
|
+
border-color: CanvasText;
|
|
116
|
+
background-color: Canvas;
|
|
117
|
+
background-image: radial-gradient(circle closest-side, CanvasText 100%, transparent 101%);
|
|
118
|
+
|
|
119
|
+
&:checked {
|
|
120
|
+
border-color: Highlight;
|
|
121
|
+
background-color: Highlight;
|
|
122
|
+
background-image: radial-gradient(circle closest-side, HighlightText 100%, transparent 101%);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
&:disabled {
|
|
126
|
+
border-color: GrayText;
|
|
127
|
+
background-image: radial-gradient(circle closest-side, GrayText 100%, transparent 101%);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
&:disabled:checked {
|
|
131
|
+
background-color: GrayText;
|
|
132
|
+
background-image: radial-gradient(circle closest-side, Canvas 100%, transparent 101%);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&:focus-visible {
|
|
136
|
+
outline: 2px solid CanvasText;
|
|
137
|
+
outline-offset: 2px;
|
|
138
|
+
}
|
|
250
139
|
}
|
|
251
140
|
}
|
package/src/sass/custom.scss
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
|
+
|
|
3
|
+
// The only place cascade order is decided; expressive.scss forwards this file
|
|
4
|
+
// with its defaults. See README.md for why each layer sits where it does.
|
|
5
|
+
// abstracts emits no CSS and is forwarded for the Sass API. @forward cannot
|
|
6
|
+
// appear inside @layer, so each layer is loaded with meta.load-css().
|
|
2
7
|
@use "sass:meta";
|
|
3
|
-
|
|
8
|
+
// The destination and fieldset mixins only serve the partials that share them.
|
|
9
|
+
@forward "abstracts" hide nav-destination, nav-destination-row, choice-fieldset;
|
|
4
10
|
|
|
5
11
|
$components: null !default;
|
|
6
12
|
$utilities: null !default;
|
|
7
13
|
|
|
14
|
+
// @font-face must stay unlayered. A face declared inside @layer base can
|
|
15
|
+
// lose to any unlayered consumer face, or be ignored by engines that still
|
|
16
|
+
// treat layered faces as experimental.
|
|
8
17
|
@include meta.load-css("base/fonts");
|
|
9
18
|
|
|
10
19
|
@layer tokens, base, components, utilities;
|
package/src/sass/expressive.scss
CHANGED
|
@@ -1,65 +1,5 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
|
|
3
|
-
// ExpressiveCSS entry point.
|
|
4
|
-
//
|
|
5
|
-
|
|
6
|
-
// always answerable from this file. Layers:
|
|
7
|
-
//
|
|
8
|
-
// abstracts - variables, functions, mixins. Emits nothing, so it is not a
|
|
9
|
-
// cascade layer at all; partials pull it in with
|
|
10
|
-
// `@use "../abstracts" as *;`. Forwarded below so that
|
|
11
|
-
// downstream projects consuming this file keep access to the
|
|
12
|
-
// breakpoint mixins, z-depth() and btn-*.
|
|
13
|
-
// tokens - :root custom properties (M3 reference palette + theme).
|
|
14
|
-
// base - normalize, element defaults, typography, grid.
|
|
15
|
-
// components - widgets.
|
|
16
|
-
// utilities - helper classes.
|
|
17
|
-
//
|
|
18
|
-
// Order used to be expressed purely as @forward order, with utilities emitted
|
|
19
|
-
// before components so a component rule would win at equal specificity. It is
|
|
20
|
-
// now a real @layer list, which changes three things:
|
|
21
|
-
//
|
|
22
|
-
// 1. Utilities moved after components. Layer order beats specificity
|
|
23
|
-
// outright, so a helper class now wins over a component rule without
|
|
24
|
-
// needing to out-specify it.
|
|
25
|
-
// 2. Unlayered CSS beats every layer. A consumer can override any component
|
|
26
|
-
// with a plain `.btn { ... }` - no specificity war, no load-order
|
|
27
|
-
// dependence on where the framework sits in their bundle.
|
|
28
|
-
// 3. !important is NOT dropped from utilities. Layer order reverses for
|
|
29
|
-
// important declarations, so an important rule inside `utilities` would
|
|
30
|
-
// also beat a consumer's own !important - but a *normal* rule in a layer
|
|
31
|
-
// loses to any unlayered consumer rule. Since `.hide`, `.m-3` and the
|
|
32
|
-
// palette classes exist precisely to be unconditional, they keep their
|
|
33
|
-
// flags and keep winning. Dropping them would silently make `.hide` lose
|
|
34
|
-
// to any unlayered `display` the consumer had already written.
|
|
35
|
-
//
|
|
36
|
-
// @forward cannot appear inside @layer, so each layer is pulled in with
|
|
37
|
-
// meta.load-css() instead. abstracts emits no CSS, so loading it separately
|
|
38
|
-
// below duplicates nothing.
|
|
39
|
-
|
|
40
|
-
@use "sass:meta";
|
|
41
|
-
|
|
42
|
-
@forward "abstracts";
|
|
43
|
-
|
|
44
|
-
// @font-face must stay unlayered. A face declared inside @layer base can
|
|
45
|
-
// lose to any unlayered consumer face, or be ignored by engines that still
|
|
46
|
-
// treat layered faces as experimental.
|
|
47
|
-
@include meta.load-css("base/fonts");
|
|
48
|
-
|
|
49
|
-
@layer tokens, base, components, utilities;
|
|
50
|
-
|
|
51
|
-
@layer tokens {
|
|
52
|
-
@include meta.load-css("tokens");
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@layer base {
|
|
56
|
-
@include meta.load-css("base");
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@layer components {
|
|
60
|
-
@include meta.load-css("components");
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@layer utilities {
|
|
64
|
-
@include meta.load-css("utilities");
|
|
65
|
-
}
|
|
3
|
+
// ExpressiveCSS entry point: custom.scss with every component and utility.
|
|
4
|
+
// Cascade order is decided there; see README.md for the layer rules.
|
|
5
|
+
@forward "custom" hide $components, $utilities;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
@use "sass:list";
|
|
2
|
+
@use "sass:map";
|
|
3
|
+
@use "sass:string";
|
|
4
|
+
@use "../abstracts" as *;
|
|
5
|
+
|
|
6
|
+
// Contrast levels. M3 offers standard, medium and high contrast schemes; the
|
|
7
|
+
// standard one is tokens/_theme.scss. `contrast="medium"` or
|
|
8
|
+
// `contrast="high"` on the root or on any subtree moves the accent roles,
|
|
9
|
+
// on-surface-variant and the outlines to darker tones in the light scheme
|
|
10
|
+
// and lighter tones in the dark one, from the same ramps, so a runtime
|
|
11
|
+
// --md-source change still reaches them. Surfaces stay where they are.
|
|
12
|
+
//
|
|
13
|
+
// The tones are picked to meet M3's contrast targets against the surfaces
|
|
14
|
+
// (about 4.5:1 for accents in medium and 7:1 in high, 3:1 and more for
|
|
15
|
+
// outlines). They approximate material-color-utilities' contrast curves,
|
|
16
|
+
// which solve a tone per color; they are not that solver's output.
|
|
17
|
+
//
|
|
18
|
+
// `prefers-contrast: more` applies the high scheme unless a `contrast`
|
|
19
|
+
// attribute says otherwise; `contrast="standard"` opts out.
|
|
20
|
+
//
|
|
21
|
+
// The live roles are redeclared here, not the -light/-dark pairs, because a
|
|
22
|
+
// role resolves its pair where it is declared. A page that overrides a pair
|
|
23
|
+
// to re-theme should override it inside its own [contrast] rule too.
|
|
24
|
+
|
|
25
|
+
// Role name pattern ("#" is the ramp) and [light tone, dark tone].
|
|
26
|
+
$_accent-tones: (
|
|
27
|
+
"medium": ("#": (30, 87), "on-#": (100, 10), "#-container": (50, 60), "on-#-container": (100, 0)),
|
|
28
|
+
"high": ("#": (20, 95), "on-#": (100, 0), "#-container": (30, 80), "on-#-container": (100, 0)),
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
// Role and [ramp, light tone, dark tone].
|
|
32
|
+
$_neutral-tones: (
|
|
33
|
+
"medium": (
|
|
34
|
+
"on-surface-variant": ("neutral-variant", 25, 87),
|
|
35
|
+
"outline": ("neutral-variant", 40, 70),
|
|
36
|
+
"outline-variant": ("neutral-variant", 60, 50),
|
|
37
|
+
),
|
|
38
|
+
"high": (
|
|
39
|
+
"on-surface": ("neutral", 0, 100),
|
|
40
|
+
"on-surface-variant": ("neutral-variant", 20, 90),
|
|
41
|
+
"outline": ("neutral-variant", 25, 80),
|
|
42
|
+
"outline-variant": ("neutral-variant", 40, 70),
|
|
43
|
+
),
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// The error ramp is literal hex and has no tone 87.
|
|
47
|
+
@function _palette($ramp, $tone) {
|
|
48
|
+
@if $ramp == "error" and $tone == 87 { $tone: 90; }
|
|
49
|
+
@return var(--md-ref-palette-#{$ramp}#{$tone});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@mixin _role($role, $ramp, $light, $dark) {
|
|
53
|
+
--md-sys-color-#{$role}: light-dark(#{_palette($ramp, $light)}, #{_palette($ramp, $dark)});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@mixin _scheme($level) {
|
|
57
|
+
@each $ramp in ("primary", "secondary", "tertiary", "error") {
|
|
58
|
+
@each $pattern, $tones in map.get($_accent-tones, $level) {
|
|
59
|
+
$at: string.index($pattern, "#");
|
|
60
|
+
$role: string.slice($pattern, 1, $at - 1) + $ramp + string.slice($pattern, $at + 1);
|
|
61
|
+
@include _role($role, $ramp, list.nth($tones, 1), list.nth($tones, 2));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
@each $role, $spec in map.get($_neutral-tones, $level) {
|
|
65
|
+
@include _role($role, list.nth($spec, 1), list.nth($spec, 2), list.nth($spec, 3));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Back to the standard pairs, for a subtree inside a page that asked for
|
|
70
|
+
// more contrast.
|
|
71
|
+
[contrast='standard'],
|
|
72
|
+
:host([contrast='standard']) {
|
|
73
|
+
@each $role in map.keys(map.get($_neutral-tones, "high")) {
|
|
74
|
+
--md-sys-color-#{$role}: light-dark(var(--md-sys-color-#{$role}-light), var(--md-sys-color-#{$role}-dark));
|
|
75
|
+
}
|
|
76
|
+
@each $ramp in ("primary", "secondary", "tertiary", "error") {
|
|
77
|
+
@each $pattern in map.keys(map.get($_accent-tones, "high")) {
|
|
78
|
+
$at: string.index($pattern, "#");
|
|
79
|
+
$role: string.slice($pattern, 1, $at - 1) + $ramp + string.slice($pattern, $at + 1);
|
|
80
|
+
--md-sys-color-#{$role}: light-dark(var(--md-sys-color-#{$role}-light), var(--md-sys-color-#{$role}-dark));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[contrast='medium'],
|
|
86
|
+
:host([contrast='medium']) { @include _scheme("medium"); }
|
|
87
|
+
|
|
88
|
+
[contrast='high'],
|
|
89
|
+
:host([contrast='high']) { @include _scheme("high"); }
|
|
90
|
+
|
|
91
|
+
@media (prefers-contrast: more) {
|
|
92
|
+
:root:not([contrast]),
|
|
93
|
+
:host(:not([contrast])) { @include _scheme("high"); }
|
|
94
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// Elevation tokens: one --md-sys-elevation-level<N> shadow per key of
|
|
4
|
+
// $elevations in abstracts/_elevation.scss. The z-depth() mixin and the
|
|
5
|
+
// .z-depth-* classes read these, so a theme can change a level at runtime:
|
|
6
|
+
//
|
|
7
|
+
// :root { --md-sys-elevation-level1: 0 1px 3px rgb(0 0 0 / 0.3); }
|
|
8
|
+
//
|
|
9
|
+
// Level 0 is `none`, which cancels a shadow.
|
|
10
|
+
|
|
11
|
+
:root,
|
|
12
|
+
:host {
|
|
13
|
+
@each $level, $shadow in $elevations {
|
|
14
|
+
--md-sys-elevation-level#{$level}: #{$shadow};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -4,4 +4,9 @@
|
|
|
4
4
|
@forward "reference"; // raw ramps + resolved light/dark pairs
|
|
5
5
|
@forward "theme"; // maps the pairs onto the live --md-sys-color-* names
|
|
6
6
|
@forward "vibrant"; // [vibrant] remaps the surface family onto an accent
|
|
7
|
+
@forward "contrast"; // [contrast] medium and high schemes, and prefers-contrast: more
|
|
7
8
|
@forward "state"; // md.sys.state.* state layer opacities
|
|
9
|
+
@forward "motion"; // md.sys.motion.* easing curves and durations
|
|
10
|
+
@forward "shape"; // md.sys.shape.corner.* corner scale
|
|
11
|
+
@forward "elevation"; // md.sys.elevation.level* shadows
|
|
12
|
+
@forward "stacking"; // z-index order for fixed and floating surfaces
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// Material Design 3 motion tokens: md.sys.motion.easing.* and
|
|
2
|
+
// md.sys.motion.duration.*.
|
|
3
|
+
//
|
|
4
|
+
// Values match material-web/tokens/versions/latest/sass/_md-sys-motion.scss.
|
|
5
|
+
// CSS cannot draw the emphasized curve, which M3 defines as a path, so
|
|
6
|
+
// `emphasized` uses the same cubic-bezier as `standard`, as material-web does.
|
|
7
|
+
//
|
|
8
|
+
// Components read these instead of writing their own curves and times, so
|
|
9
|
+
// one override changes the pace of everything on that step:
|
|
10
|
+
//
|
|
11
|
+
// :root { --md-sys-motion-duration-short4: 150ms; }
|
|
12
|
+
//
|
|
13
|
+
// Off-scale times (a 2.1s indeterminate loop, a 180ms tooltip) stay literal.
|
|
14
|
+
|
|
15
|
+
@use "sass:list";
|
|
16
|
+
@use "sass:map";
|
|
17
|
+
@use "../abstracts" as *;
|
|
18
|
+
|
|
19
|
+
:root,
|
|
20
|
+
:host {
|
|
21
|
+
--md-sys-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
22
|
+
--md-sys-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
|
|
23
|
+
--md-sys-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
|
|
24
|
+
--md-sys-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
|
|
25
|
+
--md-sys-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
|
|
26
|
+
--md-sys-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
|
|
27
|
+
--md-sys-motion-easing-linear: cubic-bezier(0, 0, 1, 1);
|
|
28
|
+
|
|
29
|
+
--md-sys-motion-duration-short1: 50ms;
|
|
30
|
+
--md-sys-motion-duration-short2: 100ms;
|
|
31
|
+
--md-sys-motion-duration-short3: 150ms;
|
|
32
|
+
--md-sys-motion-duration-short4: 200ms;
|
|
33
|
+
--md-sys-motion-duration-medium1: 250ms;
|
|
34
|
+
--md-sys-motion-duration-medium2: 300ms;
|
|
35
|
+
--md-sys-motion-duration-medium3: 350ms;
|
|
36
|
+
--md-sys-motion-duration-medium4: 400ms;
|
|
37
|
+
--md-sys-motion-duration-long1: 450ms;
|
|
38
|
+
--md-sys-motion-duration-long2: 500ms;
|
|
39
|
+
--md-sys-motion-duration-long3: 550ms;
|
|
40
|
+
--md-sys-motion-duration-long4: 600ms;
|
|
41
|
+
--md-sys-motion-duration-extra-long1: 700ms;
|
|
42
|
+
--md-sys-motion-duration-extra-long2: 800ms;
|
|
43
|
+
--md-sys-motion-duration-extra-long3: 900ms;
|
|
44
|
+
--md-sys-motion-duration-extra-long4: 1000ms;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// M3 Expressive springs: [damping ratio, stiffness] per speed and kind.
|
|
48
|
+
// Spatial springs move and resize things; effects springs change color and
|
|
49
|
+
// opacity and never overshoot. The expressive scheme only changes the
|
|
50
|
+
// spatial ones. Values from Material's MotionScheme (standard and
|
|
51
|
+
// expressive). Each becomes an easing token and a -duration token.
|
|
52
|
+
$_springs: (
|
|
53
|
+
"standard": (
|
|
54
|
+
"fast-spatial": (0.9, 1400), "default-spatial": (0.9, 700), "slow-spatial": (0.9, 300),
|
|
55
|
+
"fast-effects": (1, 3800), "default-effects": (1, 1600), "slow-effects": (1, 800),
|
|
56
|
+
),
|
|
57
|
+
"expressive": (
|
|
58
|
+
"fast-spatial": (0.6, 800), "default-spatial": (0.8, 380), "slow-spatial": (0.8, 200),
|
|
59
|
+
),
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
@mixin _springs($scheme) {
|
|
63
|
+
@each $name, $spring in map.get($_springs, $scheme) {
|
|
64
|
+
$damping: list.nth($spring, 1);
|
|
65
|
+
$stiffness: list.nth($spring, 2);
|
|
66
|
+
--md-sys-motion-spring-#{$name}: #{spring($damping, $stiffness)};
|
|
67
|
+
--md-sys-motion-spring-#{$name}-duration: #{spring-duration($damping, $stiffness)};
|
|
68
|
+
// The spring itself, for motion solved at run time from where it is.
|
|
69
|
+
--md-sys-motion-spring-#{$name}-damping: #{$damping};
|
|
70
|
+
--md-sys-motion-spring-#{$name}-stiffness: #{$stiffness};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Standard is the default; motion="expressive" on the root or a subtree
|
|
75
|
+
// switches the spatial springs, and motion="standard" switches them back.
|
|
76
|
+
:root,
|
|
77
|
+
:host,
|
|
78
|
+
[motion='standard'],
|
|
79
|
+
:host([motion='standard']) {
|
|
80
|
+
@include _springs("standard");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[motion='expressive'],
|
|
84
|
+
:host([motion='expressive']) {
|
|
85
|
+
@include _springs("expressive");
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Reduced motion, once for every component that reads these tokens: every
|
|
89
|
+
// duration, scale step and spring alike, becomes 0s, so the change lands
|
|
90
|
+
// without moving. No !important, so a page can still opt an element back in
|
|
91
|
+
// for motion it needs. Off-scale literal times, such as the 2.1s progress
|
|
92
|
+
// loop, are not tokens; their components cancel them in their own
|
|
93
|
+
// reduced-motion rules.
|
|
94
|
+
@media (prefers-reduced-motion: reduce) {
|
|
95
|
+
:root,
|
|
96
|
+
:host,
|
|
97
|
+
[motion],
|
|
98
|
+
:host([motion]) {
|
|
99
|
+
@each $step in ("short", "medium", "long", "extra-long") {
|
|
100
|
+
@for $i from 1 through 4 {
|
|
101
|
+
--md-sys-motion-duration-#{$step}#{$i}: 0s;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
@each $name in map.keys(map.get($_springs, "standard")) {
|
|
105
|
+
--md-sys-motion-spring-#{$name}-duration: 0s;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|