@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.
- package/CHANGELOG.md +1502 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19247 -11923
- 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-KVJAVDBC.mjs → chunk-4QUCNFSD.mjs} +64 -113
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UETTGDLI.mjs → chunk-4TRZ2AER.mjs} +35 -41
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
- package/dist/js/chunks/{chunk-C6CHEWYP.mjs → chunk-5KIHWJI2.mjs} +40 -26
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-L27Q6ZMI.mjs → chunk-67ZPPKXS.mjs} +20 -33
- package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-XAEAEHIX.mjs → chunk-6FSEUFVW.mjs} +39 -26
- 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-CK2XCICY.mjs → chunk-75E5EDJF.mjs} +3 -11
- package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHXZ2A4K.mjs → chunk-7NLUI3RR.mjs} +139 -66
- 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-LQWUDNHZ.mjs → chunk-ANKFWNWT.mjs} +21 -45
- package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5CEAOLUA.mjs → chunk-B7DQFHA5.mjs} +30 -47
- 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-VGNYF6FB.mjs → chunk-BPF3I2MN.mjs} +109 -24
- 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-NUHMOAOY.mjs → chunk-CSYWKEK3.mjs} +310 -196
- 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-74MXKKLN.mjs → chunk-EC26RU2D.mjs} +11 -29
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WDK4T63U.mjs → chunk-EVCVFEV3.mjs} +235 -146
- 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-PDG64UHF.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-BGZLF6JZ.mjs → chunk-KZPSAXIU.mjs} +142 -32
- 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-DXGRXYYL.mjs → chunk-OP43LLIC.mjs} +28 -45
- 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-TSZYSW7F.mjs → chunk-OYNUDOHR.mjs} +19 -47
- package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UAZSDUVP.mjs → chunk-P6DRQ6KS.mjs} +36 -30
- 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-GJL6GCIU.mjs → chunk-QXKWVHBD.mjs} +265 -161
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-X4ISMKE2.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-SMY7GJSS.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-ZX6M7SWO.mjs → chunk-VGY4M57S.mjs} +266 -120
- 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-SFI2U4YW.mjs → chunk-VMY55K2X.mjs} +76 -109
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KUFHW3DS.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-FM5CZOUB.mjs → chunk-ZJNLAGY5.mjs} +19 -30
- 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 +10613 -4327
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10613 -4327
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +23 -22
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +182 -71
- 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 +131 -66
- 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 +3 -3
- package/dist/js/internal/components/lightbox.mjs +3 -3
- package/dist/js/internal/components/lineChart.mjs +25 -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 -41
- 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 +173 -71
- 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 +91 -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 +56 -32
- package/dist/types/components/expandingCard.d.ts +4 -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 +16 -1
- package/dist/types/components/inputMask.d.ts +30 -0
- package/dist/types/components/keypad.d.ts +38 -6
- package/dist/types/components/lightbox.d.ts +14 -20
- package/dist/types/components/lineChart.d.ts +172 -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 +60 -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 -7
- package/dist/types/components/registry.d.ts +73 -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 +3 -15
- package/dist/types/components/snackbar.d.ts +61 -0
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +89 -27
- package/dist/types/components/timepicker.d.ts +113 -21
- 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 -8
- 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/_elevation.scss +13 -7
- package/src/sass/abstracts/_index.scss +1 -0
- package/src/sass/abstracts/_mixins.scss +422 -36
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +39 -21
- package/src/sass/base/_fonts.scss +61 -48
- package/src/sass/base/_global.scss +104 -24
- package/src/sass/base/_index.scss +2 -0
- 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 +6 -5
- 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 +15 -25
- package/src/sass/components/_buttons.scss +156 -63
- package/src/sass/components/_calendar.scss +246 -0
- package/src/sass/components/_cards.scss +36 -44
- package/src/sass/components/_carousel.scss +27 -103
- package/src/sass/components/_cascader.scss +142 -0
- package/src/sass/components/_chips.scss +36 -46
- 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 -25
- package/src/sass/components/_datepicker.scss +54 -40
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +42 -41
- 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 +111 -22
- package/src/sass/components/_icon-buttons.scss +7 -7
- 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 +20 -0
- package/src/sass/components/_keypad.scss +39 -19
- package/src/sass/components/_kpi.scss +6 -11
- package/src/sass/components/_lightbox.scss +24 -13
- 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 +33 -11
- package/src/sass/components/_marquee.scss +3 -2
- package/src/sass/components/_mega-menu.scss +137 -0
- package/src/sass/components/_menu.scss +143 -123
- 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 +34 -20
- package/src/sass/components/_navigation-bar.scss +15 -77
- package/src/sass/components/_navigation-rail.scss +151 -92
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +1 -1
- package/src/sass/components/_pagination.scss +6 -13
- package/src/sass/components/_panes.scss +32 -26
- 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 +152 -31
- 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 -37
- 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 -1
- 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 +109 -78
- package/src/sass/components/_toolbar.scss +35 -43
- 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 +106 -24
- 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 +7 -7
- package/src/sass/components/forms/_file-input.scss +6 -8
- 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 +33 -94
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +199 -20
- package/src/sass/components/forms/_slider.scss +91 -94
- 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 +0 -2
- package/src/sass/tokens/_theme.scss +10 -1
- package/src/sass/tokens/_vibrant.scss +2 -5
- package/src/sass/utilities/_defer-render.scss +17 -0
- package/src/sass/utilities/_helpers.scss +183 -26
- package/src/sass/utilities/_index.scss +1 -0
- 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-33QVDDGR.mjs +0 -270
- package/dist/js/chunks/chunk-33QVDDGR.mjs.map +0 -7
- package/dist/js/chunks/chunk-45FER6RI.mjs +0 -59
- package/dist/js/chunks/chunk-45FER6RI.mjs.map +0 -7
- package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +0 -7
- package/dist/js/chunks/chunk-6VATUZC6.mjs +0 -295
- package/dist/js/chunks/chunk-6VATUZC6.mjs.map +0 -7
- package/dist/js/chunks/chunk-74MXKKLN.mjs.map +0 -7
- package/dist/js/chunks/chunk-AIURVCG6.mjs +0 -55
- package/dist/js/chunks/chunk-AIURVCG6.mjs.map +0 -7
- package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +0 -7
- package/dist/js/chunks/chunk-CK2XCICY.mjs.map +0 -7
- package/dist/js/chunks/chunk-CXXM2L4F.mjs +0 -344
- package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +0 -7
- package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +0 -7
- package/dist/js/chunks/chunk-FM5CZOUB.mjs.map +0 -7
- package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-K3HZMFMD.mjs +0 -135
- package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +0 -7
- package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +0 -7
- package/dist/js/chunks/chunk-KQACNQ22.mjs +0 -7
- package/dist/js/chunks/chunk-KQACNQ22.mjs.map +0 -7
- package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +0 -7
- package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +0 -7
- package/dist/js/chunks/chunk-L27Q6ZMI.mjs.map +0 -7
- package/dist/js/chunks/chunk-LQWUDNHZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-M372EDXD.mjs +0 -322
- package/dist/js/chunks/chunk-M372EDXD.mjs.map +0 -7
- package/dist/js/chunks/chunk-M3MURWMB.mjs +0 -82
- package/dist/js/chunks/chunk-M3MURWMB.mjs.map +0 -7
- package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +0 -7
- package/dist/js/chunks/chunk-OWG3LMUL.mjs +0 -169
- package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +0 -7
- package/dist/js/chunks/chunk-PD6HYHAE.mjs +0 -48
- package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +0 -7
- package/dist/js/chunks/chunk-PDG64UHF.mjs.map +0 -7
- package/dist/js/chunks/chunk-PO3AXVR3.mjs +0 -546
- package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +0 -7
- package/dist/js/chunks/chunk-QYGK36OG.mjs +0 -181
- package/dist/js/chunks/chunk-QYGK36OG.mjs.map +0 -7
- package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +0 -7
- package/dist/js/chunks/chunk-SMY7GJSS.mjs.map +0 -7
- package/dist/js/chunks/chunk-TCCA2HDG.mjs +0 -414
- package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +0 -7
- package/dist/js/chunks/chunk-TSZYSW7F.mjs.map +0 -7
- package/dist/js/chunks/chunk-UAZSDUVP.mjs.map +0 -7
- package/dist/js/chunks/chunk-UBRZZWRA.mjs +0 -127
- package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +0 -7
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs +0 -287
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +0 -7
- package/dist/js/chunks/chunk-UETTGDLI.mjs.map +0 -7
- package/dist/js/chunks/chunk-UNCRDLP6.mjs +0 -136
- package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGPGBNGL.mjs +0 -68
- package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +0 -7
- package/dist/js/chunks/chunk-VKAUVTQY.mjs +0 -1
- package/dist/js/chunks/chunk-VM4FTS7L.mjs +0 -48
- package/dist/js/chunks/chunk-VM4FTS7L.mjs.map +0 -7
- package/dist/js/chunks/chunk-WDK4T63U.mjs.map +0 -7
- package/dist/js/chunks/chunk-WOCCTVUF.mjs +0 -185
- package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +0 -7
- package/dist/js/chunks/chunk-WQYN5L4E.mjs +0 -107
- package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +0 -7
- package/dist/js/chunks/chunk-X4ISMKE2.mjs.map +0 -7
- package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-VKAUVTQY.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
|
@@ -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
|
+
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use "sass:map";
|
|
2
|
+
@use "../abstracts" as *;
|
|
2
3
|
|
|
3
4
|
// Material Design 3 reference palette.
|
|
4
5
|
//
|
|
@@ -21,12 +22,9 @@
|
|
|
21
22
|
// tests/color-drift.test.js recomputes every generated value and fails if it
|
|
22
23
|
// moves more than DRIFT_BUDGET from the checked-in Material Theme Builder
|
|
23
24
|
// reference, so this cannot regress silently. That test validates the formula
|
|
24
|
-
// against #006495, the one source there is ground truth for - $md-source
|
|
25
|
-
// is a branding choice and is free to change without
|
|
26
|
-
|
|
27
|
-
// Mist Iris is the default seed for the generated ramps. Primary, secondary,
|
|
28
|
-
// tertiary and neutral colors derive from it; the error ramp stays fixed.
|
|
29
|
-
$md-source: #c6a0f6 !default;
|
|
25
|
+
// against #006495, the one source there is ground truth for - $md-source (in
|
|
26
|
+
// abstracts/_variables) is a branding choice and is free to change without
|
|
27
|
+
// failing it.
|
|
30
28
|
|
|
31
29
|
// tone -> OKLCH lightness. Fitted against the reference ramps; see the test.
|
|
32
30
|
$tones: (
|
|
@@ -35,7 +33,7 @@ $tones: (
|
|
|
35
33
|
40: 48.14%, 50: 56.83%, 60: 65.42%, 70: 74.04%, 80: 82.63%, 87: 88.72%,
|
|
36
34
|
90: 91.33%, 92: 93.05%, 94: 94.76%, 95: 95.62%, 96: 96.50%, 98: 98.25%,
|
|
37
35
|
99: 99.19%, 100: 100%
|
|
38
|
-
)
|
|
36
|
+
);
|
|
39
37
|
|
|
40
38
|
// Per-ramp hue offset from the source hue, and target chroma. Chroma is a
|
|
41
39
|
// fixed per-role value, not taken from the source - that is M3's model, and it
|
|
@@ -56,7 +54,7 @@ $ramps: (
|
|
|
56
54
|
"tertiary": ("hue": 62, "chroma": 0.058),
|
|
57
55
|
"neutral": ("hue": 17, "chroma": 0.004),
|
|
58
56
|
"neutral-variant": ("hue": 9, "chroma": 0.013)
|
|
59
|
-
)
|
|
57
|
+
);
|
|
60
58
|
|
|
61
59
|
// Which ramp entry each system color resolves to, per scheme.
|
|
62
60
|
$sys-light: (
|
|
@@ -83,10 +81,8 @@ $sys-light: (
|
|
|
83
81
|
"outline": "neutral-variant50", "outline-variant": "neutral-variant80",
|
|
84
82
|
"inverse-surface": "neutral20", "inverse-on-surface": "neutral95",
|
|
85
83
|
"inverse-primary": "primary80",
|
|
86
|
-
"scrim": "neutral0", "shadow": "neutral0"
|
|
87
|
-
|
|
88
|
-
"surface-variant": "neutral-variant90", "surface-tint": "primary40"
|
|
89
|
-
) !default;
|
|
84
|
+
"scrim": "neutral0", "shadow": "neutral0"
|
|
85
|
+
);
|
|
90
86
|
|
|
91
87
|
$sys-dark: (
|
|
92
88
|
"primary": "primary80", "on-primary": "primary20",
|
|
@@ -112,15 +108,43 @@ $sys-dark: (
|
|
|
112
108
|
"outline": "neutral-variant60", "outline-variant": "neutral-variant30",
|
|
113
109
|
"inverse-surface": "neutral90", "inverse-on-surface": "neutral10",
|
|
114
110
|
"inverse-primary": "primary40",
|
|
115
|
-
"scrim": "neutral0", "shadow": "neutral0"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
)
|
|
111
|
+
"scrim": "neutral0", "shadow": "neutral0"
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
// M3 type roles: typeface (brand or plain), weight, size, line height, tracking.
|
|
115
|
+
$_typescale: (
|
|
116
|
+
("display-large", brand, 400, 3.5625rem, 4rem, -0.015625rem),
|
|
117
|
+
("display-medium", brand, 400, 2.8125rem, 3.25rem, 0rem),
|
|
118
|
+
("display-small", brand, 400, 2.25rem, 2.75rem, 0rem),
|
|
119
|
+
("headline-large", brand, 400, 2rem, 2.5rem, 0rem),
|
|
120
|
+
("headline-medium", brand, 400, 1.75rem, 2.25rem, 0rem),
|
|
121
|
+
("headline-small", brand, 400, 1.5rem, 2rem, 0rem),
|
|
122
|
+
("body-large", plain, 400, 1rem, 1.5rem, 0.03125rem),
|
|
123
|
+
("body-medium", plain, 400, 0.875rem, 1.25rem, 0.015625rem),
|
|
124
|
+
("body-small", plain, 400, 0.75rem, 1rem, 0.025rem),
|
|
125
|
+
("label-large", plain, 500, 0.875rem, 1.25rem, 0.00625rem),
|
|
126
|
+
("label-medium", plain, 500, 0.75rem, 1rem, 0.03125rem),
|
|
127
|
+
("label-small", plain, 500, 0.6875rem, 1rem, 0.03125rem),
|
|
128
|
+
("title-large", brand, 400, 1.375rem, 1.75rem, 0rem),
|
|
129
|
+
("title-medium", plain, 500, 1rem, 1.5rem, 0.009375rem),
|
|
130
|
+
("title-small", plain, 500, 0.875rem, 1.25rem, 0.00625rem),
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
// Emphasized weights, from Google's typography guidance: medium for display,
|
|
134
|
+
// headline, title-large and body, bold for title-medium, title-small and
|
|
135
|
+
// label. base/_fonts.scss bundles the 500 and 700 faces.
|
|
136
|
+
$_emphasized-weights: (
|
|
137
|
+
"display-large": 500, "display-medium": 500, "display-small": 500,
|
|
138
|
+
"headline-large": 500, "headline-medium": 500, "headline-small": 500,
|
|
139
|
+
"title-large": 500, "title-medium": 700, "title-small": 700,
|
|
140
|
+
"body-large": 500, "body-medium": 500, "body-small": 500,
|
|
141
|
+
"label-large": 700, "label-medium": 700, "label-small": 700,
|
|
142
|
+
);
|
|
119
143
|
|
|
120
144
|
:root, :host {
|
|
121
145
|
--md-source: #{$md-source};
|
|
122
146
|
|
|
123
|
-
|
|
147
|
+
// primary, secondary, tertiary, neutral, neutral-variant - all generated
|
|
124
148
|
@each $name, $cfg in $ramps {
|
|
125
149
|
$off: map.get($cfg, "hue");
|
|
126
150
|
@each $tone, $l in $tones {
|
|
@@ -128,20 +152,16 @@ $sys-dark: (
|
|
|
128
152
|
$c: map.get($cfg, "chroma");
|
|
129
153
|
@if $tone == 0 or $tone == 100 { $c: 0; }
|
|
130
154
|
|
|
131
|
-
|
|
132
|
-
--md-ref-palette-#{$name}#{$tone}: oklch(from var(--md-source) #{$l} #{$c} h);
|
|
133
|
-
} @else {
|
|
134
|
-
--md-ref-palette-#{$name}#{$tone}: oklch(from var(--md-source) #{$l} #{$c} calc(h + #{$off}));
|
|
135
|
-
}
|
|
155
|
+
--md-ref-palette-#{$name}#{$tone}: oklch(from var(--md-source) #{$l} #{$c} calc(h + #{$off}));
|
|
136
156
|
}
|
|
137
157
|
}
|
|
138
158
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
159
|
+
// error - deliberately NOT generated.
|
|
160
|
+
// M3 fixes the error hue rather than deriving it: "this went wrong" should
|
|
161
|
+
// not rebrand when someone changes their brand color. It is also the ramp
|
|
162
|
+
// where OKLab and CIELAB lightness diverge most (it carries the highest
|
|
163
|
+
// chroma), so generating it was the only one to exceed the JND - 0.027
|
|
164
|
+
// against 0.008 for everything else. Both reasons point the same way.
|
|
145
165
|
--md-ref-palette-error0: #000000;
|
|
146
166
|
--md-ref-palette-error10: #410002;
|
|
147
167
|
--md-ref-palette-error20: #690005;
|
|
@@ -159,128 +179,39 @@ $sys-dark: (
|
|
|
159
179
|
--md-ref-palette-error99: #fffbff;
|
|
160
180
|
--md-ref-palette-error100: #ffffff;
|
|
161
181
|
|
|
162
|
-
|
|
182
|
+
// light scheme
|
|
163
183
|
@each $role, $ref in $sys-light {
|
|
164
184
|
--md-sys-color-#{$role}-light: var(--md-ref-palette-#{$ref});
|
|
165
185
|
}
|
|
166
186
|
|
|
167
|
-
|
|
187
|
+
// dark scheme
|
|
168
188
|
@each $role, $ref in $sys-dark {
|
|
169
189
|
--md-sys-color-#{$role}-dark: var(--md-ref-palette-#{$ref});
|
|
170
190
|
}
|
|
171
191
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
192
|
+
// typefaces
|
|
193
|
+
// M3 separates expressive large type (brand) from readable small type
|
|
194
|
+
// (plain). Roboto is the default for both. Noto Sans follows it as the
|
|
195
|
+
// language fallback recommended by Material. Override either brand/plain
|
|
196
|
+
// token to customize the scale without rewriting every role.
|
|
177
197
|
--md-ref-typeface-brand: "Roboto";
|
|
178
198
|
--md-ref-typeface-plain: "Roboto";
|
|
179
|
-
--md-ref-typeface-fallback: "Noto Sans", sans-serif;
|
|
199
|
+
--md-ref-typeface-fallback: "Noto Sans", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans Thai", sans-serif;
|
|
180
200
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
--md-sys-typescale-display-small-font-family-style: Regular;
|
|
198
|
-
--md-sys-typescale-display-small-font-weight: 400;
|
|
199
|
-
--md-sys-typescale-display-small-font-size: 2.25rem;
|
|
200
|
-
--md-sys-typescale-display-small-line-height: 2.75rem;
|
|
201
|
-
--md-sys-typescale-display-small-letter-spacing: 0rem;
|
|
202
|
-
/* headline - large */
|
|
203
|
-
--md-sys-typescale-headline-large-font-family-name: var(--md-ref-typeface-brand), var(--md-ref-typeface-fallback);
|
|
204
|
-
--md-sys-typescale-headline-large-font-family-style: Regular;
|
|
205
|
-
--md-sys-typescale-headline-large-font-weight: 400;
|
|
206
|
-
--md-sys-typescale-headline-large-font-size: 2rem;
|
|
207
|
-
--md-sys-typescale-headline-large-line-height: 2.5rem;
|
|
208
|
-
--md-sys-typescale-headline-large-letter-spacing: 0rem;
|
|
209
|
-
/* headline - medium */
|
|
210
|
-
--md-sys-typescale-headline-medium-font-family-name: var(--md-ref-typeface-brand), var(--md-ref-typeface-fallback);
|
|
211
|
-
--md-sys-typescale-headline-medium-font-family-style: Regular;
|
|
212
|
-
--md-sys-typescale-headline-medium-font-weight: 400;
|
|
213
|
-
--md-sys-typescale-headline-medium-font-size: 1.75rem;
|
|
214
|
-
--md-sys-typescale-headline-medium-line-height: 2.25rem;
|
|
215
|
-
--md-sys-typescale-headline-medium-letter-spacing: 0rem;
|
|
216
|
-
/* headline - small */
|
|
217
|
-
--md-sys-typescale-headline-small-font-family-name: var(--md-ref-typeface-brand), var(--md-ref-typeface-fallback);
|
|
218
|
-
--md-sys-typescale-headline-small-font-family-style: Regular;
|
|
219
|
-
--md-sys-typescale-headline-small-font-weight: 400;
|
|
220
|
-
--md-sys-typescale-headline-small-font-size: 1.5rem;
|
|
221
|
-
--md-sys-typescale-headline-small-line-height: 2rem;
|
|
222
|
-
--md-sys-typescale-headline-small-letter-spacing: 0rem;
|
|
223
|
-
/* body - large */
|
|
224
|
-
--md-sys-typescale-body-large-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
225
|
-
--md-sys-typescale-body-large-font-family-style: Regular;
|
|
226
|
-
--md-sys-typescale-body-large-font-weight: 400;
|
|
227
|
-
--md-sys-typescale-body-large-font-size: 1rem;
|
|
228
|
-
--md-sys-typescale-body-large-line-height: 1.5rem;
|
|
229
|
-
--md-sys-typescale-body-large-letter-spacing: 0.03125rem;
|
|
230
|
-
/* body - medium */
|
|
231
|
-
--md-sys-typescale-body-medium-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
232
|
-
--md-sys-typescale-body-medium-font-family-style: Regular;
|
|
233
|
-
--md-sys-typescale-body-medium-font-weight: 400;
|
|
234
|
-
--md-sys-typescale-body-medium-font-size: 0.875rem;
|
|
235
|
-
--md-sys-typescale-body-medium-line-height: 1.25rem;
|
|
236
|
-
--md-sys-typescale-body-medium-letter-spacing: 0.015625rem;
|
|
237
|
-
/* body - small */
|
|
238
|
-
--md-sys-typescale-body-small-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
239
|
-
--md-sys-typescale-body-small-font-family-style: Regular;
|
|
240
|
-
--md-sys-typescale-body-small-font-weight: 400;
|
|
241
|
-
--md-sys-typescale-body-small-font-size: 0.75rem;
|
|
242
|
-
--md-sys-typescale-body-small-line-height: 1rem;
|
|
243
|
-
--md-sys-typescale-body-small-letter-spacing: 0.025rem;
|
|
244
|
-
/* label - large */
|
|
245
|
-
--md-sys-typescale-label-large-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
246
|
-
--md-sys-typescale-label-large-font-family-style: Medium;
|
|
247
|
-
--md-sys-typescale-label-large-font-weight: 500;
|
|
248
|
-
--md-sys-typescale-label-large-font-size: 0.875rem;
|
|
249
|
-
--md-sys-typescale-label-large-line-height: 1.25rem;
|
|
250
|
-
--md-sys-typescale-label-large-letter-spacing: 0.00625rem;
|
|
251
|
-
/* label - medium */
|
|
252
|
-
--md-sys-typescale-label-medium-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
253
|
-
--md-sys-typescale-label-medium-font-family-style: Medium;
|
|
254
|
-
--md-sys-typescale-label-medium-font-weight: 500;
|
|
255
|
-
--md-sys-typescale-label-medium-font-size: 0.75rem;
|
|
256
|
-
--md-sys-typescale-label-medium-line-height: 1rem;
|
|
257
|
-
--md-sys-typescale-label-medium-letter-spacing: 0.03125rem;
|
|
258
|
-
/* label - small */
|
|
259
|
-
--md-sys-typescale-label-small-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
260
|
-
--md-sys-typescale-label-small-font-family-style: Medium;
|
|
261
|
-
--md-sys-typescale-label-small-font-weight: 500;
|
|
262
|
-
--md-sys-typescale-label-small-font-size: 0.6875rem;
|
|
263
|
-
--md-sys-typescale-label-small-line-height: 1rem;
|
|
264
|
-
--md-sys-typescale-label-small-letter-spacing: 0.03125rem;
|
|
265
|
-
/* title - large */
|
|
266
|
-
--md-sys-typescale-title-large-font-family-name: var(--md-ref-typeface-brand), var(--md-ref-typeface-fallback);
|
|
267
|
-
--md-sys-typescale-title-large-font-family-style: Regular;
|
|
268
|
-
--md-sys-typescale-title-large-font-weight: 400;
|
|
269
|
-
--md-sys-typescale-title-large-font-size: 1.375rem;
|
|
270
|
-
--md-sys-typescale-title-large-line-height: 1.75rem;
|
|
271
|
-
--md-sys-typescale-title-large-letter-spacing: 0rem;
|
|
272
|
-
/* title - medium */
|
|
273
|
-
--md-sys-typescale-title-medium-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
274
|
-
--md-sys-typescale-title-medium-font-family-style: Medium;
|
|
275
|
-
--md-sys-typescale-title-medium-font-weight: 500;
|
|
276
|
-
--md-sys-typescale-title-medium-font-size: 1rem;
|
|
277
|
-
--md-sys-typescale-title-medium-line-height: 1.5rem;
|
|
278
|
-
--md-sys-typescale-title-medium-letter-spacing: 0.009375rem;
|
|
279
|
-
/* title - small */
|
|
280
|
-
--md-sys-typescale-title-small-font-family-name: var(--md-ref-typeface-plain), var(--md-ref-typeface-fallback);
|
|
281
|
-
--md-sys-typescale-title-small-font-family-style: Medium;
|
|
282
|
-
--md-sys-typescale-title-small-font-weight: 500;
|
|
283
|
-
--md-sys-typescale-title-small-font-size: 0.875rem;
|
|
284
|
-
--md-sys-typescale-title-small-line-height: 1.25rem;
|
|
285
|
-
--md-sys-typescale-title-small-letter-spacing: 0.00625rem;
|
|
201
|
+
// Type roles.
|
|
202
|
+
@each $role, $face, $weight, $size, $line-height, $tracking in $_typescale {
|
|
203
|
+
--md-sys-typescale-#{$role}-font-family-name: var(--md-ref-typeface-#{$face}), var(--md-ref-typeface-fallback);
|
|
204
|
+
--md-sys-typescale-#{$role}-font-family-style: #{map.get((400: Regular, 500: Medium), $weight)};
|
|
205
|
+
--md-sys-typescale-#{$role}-font-weight: #{$weight};
|
|
206
|
+
--md-sys-typescale-#{$role}-font-size: #{$size};
|
|
207
|
+
--md-sys-typescale-#{$role}-line-height: #{$line-height};
|
|
208
|
+
--md-sys-typescale-#{$role}-letter-spacing: #{$tracking};
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// emphasized - M3 Expressive's heavier counterpart of each role. Only the
|
|
212
|
+
// weight changes; the family, size, line height and tracking are the
|
|
213
|
+
// baseline role's.
|
|
214
|
+
@each $role, $weight in $_emphasized-weights {
|
|
215
|
+
--md-sys-typescale-emphasized-#{$role}-font-weight: #{$weight};
|
|
216
|
+
}
|
|
286
217
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Material Design 3 corner tokens: md.sys.shape.corner.*, including the
|
|
2
|
+
// Expressive steps (large-increased, extra-large-increased,
|
|
3
|
+
// extra-extra-large).
|
|
4
|
+
//
|
|
5
|
+
// Component shape tokens point at these, the way material-web's do, so a
|
|
6
|
+
// brand that wants squarer or rounder corners overrides the scale once:
|
|
7
|
+
//
|
|
8
|
+
// :root { --md-sys-shape-corner-medium: 8px; }
|
|
9
|
+
//
|
|
10
|
+
// A component token still wins for one component. `full` is a pill at any
|
|
11
|
+
// height the framework draws; a true circle on a square box is `.circle`.
|
|
12
|
+
|
|
13
|
+
:root,
|
|
14
|
+
:host {
|
|
15
|
+
--md-sys-shape-corner-none: 0px;
|
|
16
|
+
--md-sys-shape-corner-extra-small: 4px;
|
|
17
|
+
--md-sys-shape-corner-small: 8px;
|
|
18
|
+
--md-sys-shape-corner-medium: 12px;
|
|
19
|
+
--md-sys-shape-corner-large: 16px;
|
|
20
|
+
--md-sys-shape-corner-large-increased: 20px;
|
|
21
|
+
--md-sys-shape-corner-extra-large: 28px;
|
|
22
|
+
--md-sys-shape-corner-extra-large-increased: 32px;
|
|
23
|
+
--md-sys-shape-corner-extra-extra-large: 48px;
|
|
24
|
+
--md-sys-shape-corner-full: 9999px;
|
|
25
|
+
|
|
26
|
+
// The corner family: `round`, or `bevel` for M3's cut corners. Read by
|
|
27
|
+
// the container surfaces listed in utilities/_helpers.scss.
|
|
28
|
+
--md-sys-shape-corner-family: round;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// corners="cut" on the root or a subtree cuts its surfaces' corners;
|
|
32
|
+
// corners="round" puts them back. Browsers without `corner-shape` keep
|
|
33
|
+
// rounded corners.
|
|
34
|
+
[corners='cut'],
|
|
35
|
+
:host([corners='cut']) { --md-sys-shape-corner-family: bevel; }
|
|
36
|
+
|
|
37
|
+
[corners='round'],
|
|
38
|
+
:host([corners='round']) { --md-sys-shape-corner-family: round; }
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Stacking order for everything that floats above the page. Material has no
|
|
2
|
+
// z-index tokens, so these are ours.
|
|
3
|
+
//
|
|
4
|
+
// Lowest to highest: fixed toolbars, top app bars and fixed navigation bars,
|
|
5
|
+
// the modal navigation rail, non-modal sheets, tooltips, docked pickers,
|
|
6
|
+
// snackbars, then the confetti overlay where it cannot use the top layer.
|
|
7
|
+
// Dialogs, modal sheets, open menus, an open lightbox and open popovers sit
|
|
8
|
+
// in the top layer, above all of these, whatever their z-index.
|
|
9
|
+
// --expressive-z-lightbox is kept for pages that read it; the lightbox no
|
|
10
|
+
// longer uses it.
|
|
11
|
+
//
|
|
12
|
+
// Override one to slot an application layer between two of them:
|
|
13
|
+
//
|
|
14
|
+
// :root { --expressive-z-tooltip: 1500; }
|
|
15
|
+
|
|
16
|
+
:root,
|
|
17
|
+
:host {
|
|
18
|
+
--expressive-z-toolbar: 996;
|
|
19
|
+
--expressive-z-app-bar: 997;
|
|
20
|
+
--expressive-z-modal-rail: 998;
|
|
21
|
+
--expressive-z-sheet: 1100;
|
|
22
|
+
--expressive-z-lightbox: 1200;
|
|
23
|
+
--expressive-z-tooltip: 2000;
|
|
24
|
+
--expressive-z-menu: 9999;
|
|
25
|
+
--expressive-z-snackbar: 10000;
|
|
26
|
+
--expressive-z-confetti: 10001;
|
|
27
|
+
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
// ===================================================================== Themes
|
|
36
36
|
|
|
37
37
|
// Opting out of the OS preference. Every token above re-resolves from these.
|
|
38
38
|
// `auto` is the explicit follow-OS value — same as omitting the attribute.
|
|
@@ -42,3 +42,12 @@
|
|
|
42
42
|
:host([theme='dark']) { color-scheme: dark; }
|
|
43
43
|
:root[theme='auto'],
|
|
44
44
|
:host([theme='auto']) { color-scheme: light dark; }
|
|
45
|
+
|
|
46
|
+
// More contrast is tokens/_contrast.scss: the contrast attribute and
|
|
47
|
+
// prefers-contrast: more.
|
|
48
|
+
|
|
49
|
+
// Paper is white, and browsers drop backgrounds when printing by default, so
|
|
50
|
+
// a dark scheme prints light text on nothing. Print is always light.
|
|
51
|
+
@media print {
|
|
52
|
+
:root, :root[theme], :host, :host([theme]) { color-scheme: light; }
|
|
53
|
+
}
|
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
// outline roles neutral-variant in M3, not an opacity of the text color.
|
|
35
35
|
// Deriving them from on-*-container turns every checkbox,
|
|
36
36
|
// radio and switch border inside the subtree translucent.
|
|
37
|
-
// surface-tint an accent despite the name - it is the elevation tint.
|
|
38
37
|
// inverse-*, scrim they exist to contrast with the page, not to follow it.
|
|
39
38
|
//
|
|
40
39
|
// The elevation ladder does collapse: every surface-container rung resolves to
|
|
@@ -52,11 +51,10 @@
|
|
|
52
51
|
// Every surface role, derived rather than restated: a rung added to
|
|
53
52
|
// $sys-color-roles and forgotten here would keep its neutral value and sit as a
|
|
54
53
|
// grey patch on an accent one. `on-` and `inverse-surface` are excluded by the
|
|
55
|
-
// prefix test
|
|
54
|
+
// prefix test.
|
|
56
55
|
$_vibrant-surfaces: ();
|
|
57
56
|
@each $role in $sys-color-roles {
|
|
58
|
-
@if $role
|
|
59
|
-
(string.index($role, "surface") == 1 and $role != "surface-tint") {
|
|
57
|
+
@if string.index($role, "surface") == 1 {
|
|
60
58
|
$_vibrant-surfaces: list.append($_vibrant-surfaces, $role);
|
|
61
59
|
}
|
|
62
60
|
}
|
|
@@ -72,5 +70,4 @@ $_vibrant-surfaces: ();
|
|
|
72
70
|
|
|
73
71
|
--md-sys-color-on-surface: var(--md-sys-color-on-tertiary-container);
|
|
74
72
|
--md-sys-color-on-surface-variant: var(--md-sys-color-on-tertiary-container);
|
|
75
|
-
--md-sys-color-on-background: var(--md-sys-color-on-tertiary-container);
|
|
76
73
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@use "../abstracts" as *;
|
|
2
|
+
|
|
3
|
+
// The browser skips layout and paint for each child while it is off screen.
|
|
4
|
+
// A skipped child reserves --defer-render-row-size, or the list item height
|
|
5
|
+
// inside .list, and keeps its last rendered size after it has been on screen.
|
|
6
|
+
// Paint containment clips what a child draws outside its box, so focus rings
|
|
7
|
+
// inside a child are drawn inset, and rows with swipe actions, which wait past
|
|
8
|
+
// the row's end, are left alone. Table rows ignore containment.
|
|
9
|
+
.defer-render > :not(:has(> .swipe-actions)) {
|
|
10
|
+
content-visibility: auto;
|
|
11
|
+
contain-intrinsic-block-size: auto var(--defer-render-row-size, var(--md-comp-list-item-height, #{rem(56px)}));
|
|
12
|
+
|
|
13
|
+
// -3px is the focus-ring mixin's outline width.
|
|
14
|
+
:focus-visible {
|
|
15
|
+
outline-offset: -3px;
|
|
16
|
+
}
|
|
17
|
+
}
|