@expressivecss/expressive 0.13.1 → 0.15.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 +196 -1
- package/README.md +2 -1
- package/dist/css/expressive.css +432 -311
- 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/js/chunks/{chunk-DTKR54I6.mjs → chunk-33QVDDGR.mjs} +3 -3
- package/dist/js/chunks/{chunk-SPETGK25.mjs → chunk-45FER6RI.mjs} +5 -5
- package/dist/js/chunks/chunk-45FER6RI.mjs.map +7 -0
- package/dist/js/chunks/{chunk-WJXDBPXQ.mjs → chunk-5CEAOLUA.mjs} +17 -20
- package/dist/js/chunks/chunk-5CEAOLUA.mjs.map +7 -0
- package/dist/js/chunks/{chunk-CKQP6P76.mjs → chunk-6VATUZC6.mjs} +12 -7
- package/dist/js/chunks/chunk-6VATUZC6.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-74MXKKLN.mjs} +2 -2
- package/dist/js/chunks/{chunk-QDAL4IYN.mjs.map → chunk-74MXKKLN.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-DLWYKFEI.mjs → chunk-AIURVCG6.mjs} +3 -3
- package/dist/js/chunks/{chunk-NNYP33NB.mjs → chunk-BGZLF6JZ.mjs} +19 -18
- package/dist/js/chunks/chunk-BGZLF6JZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-C6CHEWYP.mjs +154 -0
- package/dist/js/chunks/chunk-C6CHEWYP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-CK2XCICY.mjs} +2 -2
- package/dist/js/chunks/{chunk-XGHORT7J.mjs → chunk-CXXM2L4F.mjs} +8 -9
- package/dist/js/chunks/chunk-CXXM2L4F.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QVVEWBOF.mjs → chunk-DXGRXYYL.mjs} +25 -37
- package/dist/js/chunks/chunk-DXGRXYYL.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QV2JAWIZ.mjs → chunk-FM5CZOUB.mjs} +5 -8
- package/dist/js/chunks/{chunk-QV2JAWIZ.mjs.map → chunk-FM5CZOUB.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-PLYXLSH3.mjs → chunk-GJL6GCIU.mjs} +46 -58
- package/dist/js/chunks/chunk-GJL6GCIU.mjs.map +7 -0
- package/dist/js/chunks/chunk-K3HZMFMD.mjs +135 -0
- package/dist/js/chunks/chunk-K3HZMFMD.mjs.map +7 -0
- package/dist/js/chunks/chunk-KHXZ2A4K.mjs +395 -0
- package/dist/js/chunks/chunk-KHXZ2A4K.mjs.map +7 -0
- package/dist/js/chunks/chunk-KQACNQ22.mjs +7 -0
- package/dist/js/chunks/{chunk-4PWAPV6F.mjs.map → chunk-KQACNQ22.mjs.map} +1 -1
- package/dist/js/chunks/chunk-KUFHW3DS.mjs +214 -0
- package/dist/js/chunks/chunk-KUFHW3DS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LWBQIX5J.mjs → chunk-KVJAVDBC.mjs} +46 -57
- package/dist/js/chunks/chunk-KVJAVDBC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-L27Q6ZMI.mjs} +2 -2
- package/dist/js/chunks/{chunk-CCWDV5CR.mjs → chunk-LQWUDNHZ.mjs} +3 -3
- package/dist/js/chunks/{chunk-6OMRGML6.mjs → chunk-M372EDXD.mjs} +7 -13
- package/dist/js/chunks/{chunk-6OMRGML6.mjs.map → chunk-M372EDXD.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-EC63CHXU.mjs → chunk-M3MURWMB.mjs} +20 -16
- package/dist/js/chunks/chunk-M3MURWMB.mjs.map +7 -0
- package/dist/js/chunks/{chunk-U2OTHOTI.mjs → chunk-NUHMOAOY.mjs} +19 -33
- package/dist/js/chunks/chunk-NUHMOAOY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-P3G3QHII.mjs → chunk-OWG3LMUL.mjs} +17 -14
- package/dist/js/chunks/chunk-OWG3LMUL.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LTWPGFBR.mjs → chunk-PD6HYHAE.mjs} +4 -15
- package/dist/js/chunks/chunk-PD6HYHAE.mjs.map +7 -0
- package/dist/js/chunks/{chunk-PIJ2TAR3.mjs → chunk-PDG64UHF.mjs} +3 -3
- package/dist/js/chunks/{chunk-IFXVDDDH.mjs → chunk-PO3AXVR3.mjs} +38 -64
- package/dist/js/chunks/chunk-PO3AXVR3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QKWPQK5N.mjs → chunk-QYGK36OG.mjs} +16 -14
- package/dist/js/chunks/chunk-QYGK36OG.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UNEMYWEW.mjs → chunk-SFI2U4YW.mjs} +28 -44
- package/dist/js/chunks/chunk-SFI2U4YW.mjs.map +7 -0
- package/dist/js/chunks/{chunk-VTLBW7QS.mjs → chunk-SMY7GJSS.mjs} +3 -3
- package/dist/js/chunks/{chunk-O5XPWXIQ.mjs → chunk-TCCA2HDG.mjs} +39 -31
- package/dist/js/chunks/chunk-TCCA2HDG.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UBLRRJ7N.mjs → chunk-TSZYSW7F.mjs} +4 -4
- package/dist/js/chunks/{chunk-UBLRRJ7N.mjs.map → chunk-TSZYSW7F.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-UAZSDUVP.mjs} +3 -4
- package/dist/js/chunks/{chunk-UEZUJQ66.mjs.map → chunk-UAZSDUVP.mjs.map} +2 -2
- package/dist/js/chunks/{chunk-6N2XAEFK.mjs → chunk-UBRZZWRA.mjs} +10 -8
- package/dist/js/chunks/chunk-UBRZZWRA.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3VOK6J7U.mjs → chunk-UCOE7ZDL.mjs} +47 -45
- package/dist/js/chunks/chunk-UCOE7ZDL.mjs.map +7 -0
- package/dist/js/chunks/{chunk-K4CJCRGE.mjs → chunk-UETTGDLI.mjs} +3 -3
- package/dist/js/chunks/{chunk-RHRQKTTX.mjs → chunk-UNCRDLP6.mjs} +6 -9
- package/dist/js/chunks/chunk-UNCRDLP6.mjs.map +7 -0
- package/dist/js/chunks/{chunk-LNCCYGPC.mjs → chunk-VGNYF6FB.mjs} +8 -10
- package/dist/js/chunks/chunk-VGNYF6FB.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UAEAQBRC.mjs → chunk-VGPGBNGL.mjs} +4 -12
- package/dist/js/chunks/chunk-VGPGBNGL.mjs.map +7 -0
- package/dist/js/chunks/chunk-VKAUVTQY.mjs +1 -0
- package/dist/js/chunks/{chunk-HKT2S7VM.mjs → chunk-VM4FTS7L.mjs} +3 -3
- package/dist/js/chunks/{chunk-55IA2XUC.mjs → chunk-WDK4T63U.mjs} +8 -11
- package/dist/js/chunks/chunk-WDK4T63U.mjs.map +7 -0
- package/dist/js/chunks/{chunk-XH6BEEMY.mjs → chunk-WOCCTVUF.mjs} +51 -39
- package/dist/js/chunks/chunk-WOCCTVUF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GZWPXXY6.mjs → chunk-WQYN5L4E.mjs} +14 -16
- package/dist/js/chunks/chunk-WQYN5L4E.mjs.map +7 -0
- package/dist/js/chunks/{chunk-6WLSDZ4O.mjs → chunk-X4ISMKE2.mjs} +2 -2
- package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-XAEAEHIX.mjs} +6 -8
- package/dist/js/chunks/chunk-XAEAEHIX.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3CLXLPYS.mjs → chunk-ZX6M7SWO.mjs} +43 -29
- package/dist/js/chunks/chunk-ZX6M7SWO.mjs.map +7 -0
- package/dist/js/expressive.cjs +1337 -572
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +1337 -572
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +10 -13
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +71 -55
- package/dist/js/expressive.mjs.map +1 -1
- package/dist/js/internal/behaviors/bottomSheets.mjs +3 -3
- package/dist/js/internal/behaviors/dialogs.mjs +2 -2
- package/dist/js/internal/behaviors/forms.mjs +2 -2
- package/dist/js/internal/behaviors/sheetDrag.mjs +2 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +3 -3
- package/dist/js/internal/components/appBar.mjs +2 -2
- package/dist/js/internal/components/autocomplete.mjs +4 -4
- package/dist/js/internal/components/barChart.mjs +4 -4
- package/dist/js/internal/components/buttonGroup.mjs +2 -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/characterCounter.mjs +2 -2
- package/dist/js/internal/components/chips.mjs +5 -5
- package/dist/js/internal/components/columnChart.mjs +3 -3
- package/dist/js/internal/components/commandPalette.mjs +3 -3
- package/dist/js/internal/components/confetti.mjs +8 -0
- package/dist/js/internal/components/confetti.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +6 -6
- package/dist/js/internal/components/expandingCard.mjs +3 -3
- package/dist/js/internal/components/heatmapChart.mjs +3 -3
- package/dist/js/internal/components/index.mjs +64 -48
- 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 +6 -2
- package/dist/js/internal/components/mapView.mjs +9 -0
- package/dist/js/internal/components/mapView.mjs.map +7 -0
- package/dist/js/internal/components/menu.mjs +3 -3
- package/dist/js/internal/components/messageScroller.mjs +3 -3
- package/dist/js/internal/components/mixedChart.mjs +4 -4
- package/dist/js/internal/components/navigationRail.mjs +2 -2
- package/dist/js/internal/components/particles.mjs +8 -0
- package/dist/js/internal/components/particles.mjs.map +7 -0
- package/dist/js/internal/components/pieChart.mjs +3 -3
- package/dist/js/internal/components/questionnaire.mjs +3 -3
- package/dist/js/internal/components/radarChart.mjs +3 -3
- package/dist/js/internal/components/radialChart.mjs +3 -3
- package/dist/js/internal/components/registry.mjs +41 -37
- package/dist/js/internal/components/richTextEditor.mjs +3 -3
- package/dist/js/internal/components/scrollspy.mjs +2 -2
- package/dist/js/internal/components/select.mjs +4 -4
- package/dist/js/internal/components/slider.mjs +3 -3
- package/dist/js/internal/components/snackbar.mjs +2 -2
- package/dist/js/internal/components/tabs.mjs +4 -4
- package/dist/js/internal/components/timepicker.mjs +4 -4
- package/dist/js/internal/components/tooltip.mjs +3 -3
- package/dist/js/internal/core/component.mjs +1 -1
- package/dist/js/internal/core/utils.mjs +1 -1
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/modular.mjs +71 -55
- package/dist/types/behaviors/forms.d.ts +5 -0
- package/dist/types/components/autocomplete.d.ts +1 -0
- package/dist/types/components/carousel.d.ts +2 -0
- package/dist/types/components/confetti.d.ts +103 -0
- package/dist/types/components/datepicker.d.ts +5 -4
- package/dist/types/components/expandingCard.d.ts +2 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/components/keypad.d.ts +34 -0
- package/dist/types/components/lightbox.d.ts +3 -5
- package/dist/types/components/lineChart.d.ts +4 -0
- package/dist/types/components/mapView.d.ts +151 -0
- package/dist/types/components/menu.d.ts +1 -0
- package/dist/types/components/particles.d.ts +72 -0
- package/dist/types/components/pieChart.d.ts +3 -0
- package/dist/types/components/radialChart.d.ts +0 -1
- package/dist/types/components/registry.d.ts +12 -0
- package/dist/types/components/slider.d.ts +3 -1
- package/dist/types/components/snackbar.d.ts +3 -0
- package/dist/types/components/tabs.d.ts +5 -1
- package/dist/types/components/timepicker.d.ts +2 -0
- package/dist/types/modular.d.ts +1 -1
- package/dist/types/plugins/dockedDisplayPlugin.d.ts +4 -3
- package/package.json +2 -1
- package/src/sass/abstracts/_breakpoints.scss +0 -1
- package/src/sass/abstracts/_elevation.scss +1 -1
- package/src/sass/abstracts/_mixins.scss +20 -60
- package/src/sass/abstracts/_variables.scss +10 -0
- package/src/sass/base/_global.scss +3 -12
- package/src/sass/base/_index.scss +1 -1
- package/src/sass/components/_badges.scss +1 -8
- package/src/sass/components/_bar-chart.scss +1 -1
- package/src/sass/components/_button-groups.scss +31 -66
- package/src/sass/components/_buttons.scss +1 -1
- package/src/sass/components/_cards.scss +6 -25
- package/src/sass/components/_carousel.scss +16 -55
- package/src/sass/components/_chips.scss +0 -6
- package/src/sass/components/_column-chart.scss +1 -1
- package/src/sass/components/_confetti.scss +14 -0
- package/src/sass/components/_data-table.scss +1 -3
- package/src/sass/components/_datepicker.scss +3 -22
- package/src/sass/components/_dialog.scss +1 -4
- package/src/sass/components/_heatmap-chart.scss +2 -2
- package/src/sass/components/_icon-buttons.scss +0 -1
- package/src/sass/components/_index.scss +4 -0
- package/src/sass/components/_keypad.scss +162 -0
- package/src/sass/components/_lightbox.scss +3 -8
- package/src/sass/components/_map.scss +188 -0
- package/src/sass/components/_menu.scss +31 -74
- package/src/sass/components/_mixed-chart.scss +1 -1
- package/src/sass/components/_navbar.scss +9 -45
- package/src/sass/components/_navigation-rail.scss +23 -32
- package/src/sass/components/_page-footer.scss +15 -12
- package/src/sass/components/_panes.scss +2 -6
- package/src/sass/components/_particles.scss +14 -0
- package/src/sass/components/_progress.scss +6 -4
- package/src/sass/components/_side-sheet.scss +1 -4
- package/src/sass/components/_stepper.scss +0 -4
- package/src/sass/components/_table_of_contents.scss +3 -1
- package/src/sass/components/_timepicker.scss +4 -36
- package/src/sass/components/_toolbar.scss +0 -4
- package/src/sass/components/forms/_checkboxes.scss +44 -67
- package/src/sass/components/forms/_fieldset.scss +3 -3
- package/src/sass/components/forms/_file-input.scss +0 -1
- package/src/sass/components/forms/_radio-buttons.scss +10 -36
- package/src/sass/components/forms/_select.scss +0 -3
- package/src/sass/components/forms/_slider.scss +72 -259
- package/src/sass/tokens/_state.scss +2 -2
- package/src/sass/tokens/_theme.scss +1 -1
- package/src/sass/utilities/_colors.scss +6 -1
- package/src/sass/utilities/_index.scss +1 -1
- package/dist/js/chunks/chunk-3CLXLPYS.mjs.map +0 -7
- package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
- package/dist/js/chunks/chunk-3VOK6J7U.mjs.map +0 -7
- package/dist/js/chunks/chunk-4PWAPV6F.mjs +0 -7
- package/dist/js/chunks/chunk-55IA2XUC.mjs.map +0 -7
- package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
- package/dist/js/chunks/chunk-CKQP6P76.mjs.map +0 -7
- package/dist/js/chunks/chunk-EC63CHXU.mjs.map +0 -7
- package/dist/js/chunks/chunk-GZWPXXY6.mjs.map +0 -7
- package/dist/js/chunks/chunk-IFXVDDDH.mjs.map +0 -7
- package/dist/js/chunks/chunk-LNCCYGPC.mjs.map +0 -7
- package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
- package/dist/js/chunks/chunk-LWBQIX5J.mjs.map +0 -7
- package/dist/js/chunks/chunk-NNYP33NB.mjs.map +0 -7
- package/dist/js/chunks/chunk-NQLC3YMW.mjs +0 -1
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
- package/dist/js/chunks/chunk-P3G3QHII.mjs.map +0 -7
- package/dist/js/chunks/chunk-PLYXLSH3.mjs.map +0 -7
- package/dist/js/chunks/chunk-QKWPQK5N.mjs.map +0 -7
- package/dist/js/chunks/chunk-QVVEWBOF.mjs.map +0 -7
- package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
- package/dist/js/chunks/chunk-U2OTHOTI.mjs.map +0 -7
- package/dist/js/chunks/chunk-UAEAQBRC.mjs.map +0 -7
- package/dist/js/chunks/chunk-UNEMYWEW.mjs.map +0 -7
- package/dist/js/chunks/chunk-WJXDBPXQ.mjs.map +0 -7
- package/dist/js/chunks/chunk-XGHORT7J.mjs.map +0 -7
- package/dist/js/chunks/chunk-XH6BEEMY.mjs.map +0 -7
- /package/dist/js/chunks/{chunk-DTKR54I6.mjs.map → chunk-33QVDDGR.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-DLWYKFEI.mjs.map → chunk-AIURVCG6.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-GVGT6MIU.mjs.map → chunk-CK2XCICY.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-YDCS5S3J.mjs.map → chunk-L27Q6ZMI.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-CCWDV5CR.mjs.map → chunk-LQWUDNHZ.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-PIJ2TAR3.mjs.map → chunk-PDG64UHF.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-VTLBW7QS.mjs.map → chunk-SMY7GJSS.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-K4CJCRGE.mjs.map → chunk-UETTGDLI.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-NQLC3YMW.mjs.map → chunk-VKAUVTQY.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-HKT2S7VM.mjs.map → chunk-VM4FTS7L.mjs.map} +0 -0
- /package/dist/js/chunks/{chunk-6WLSDZ4O.mjs.map → chunk-X4ISMKE2.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,193 @@ the format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.15.0] - 2026-10-14
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- The agent skill has a layout guide, `expressivecss-layout`. It covers
|
|
13
|
+
Material's layout principles, the five breakpoints with their grid
|
|
14
|
+
prefixes and Sass mixins, the canonical layout starting points,
|
|
15
|
+
right-to-left support, and where each Material layout term lives in
|
|
16
|
+
ExpressiveCSS. Its breakpoints reference lists the panes and components
|
|
17
|
+
for each breakpoint and walks through Material's five questions for the
|
|
18
|
+
next size: what to reveal, divide, resize, reposition or swap. Its
|
|
19
|
+
canonical layouts reference covers feed, list-detail and supporting pane
|
|
20
|
+
layouts, including list-detail behavior when the window crosses 840px and
|
|
21
|
+
a grid fallback for supporting content that must stack on narrow windows.
|
|
22
|
+
Its grids and spacing reference maps Material's 4, 8 and 12 column grids
|
|
23
|
+
onto the 12-track `.row`, rulers onto containers and pane margins, and
|
|
24
|
+
covers grouping, rhythm and opt-in density with 48px targets. The design
|
|
25
|
+
guide's scaffold reference now lists the recommended pane count for each
|
|
26
|
+
breakpoint, the 50% split-pane rule with a navigation rail, the
|
|
27
|
+
three-pane limit, drag-handle toggling and persistent resizing, and the
|
|
28
|
+
co-planar, floating and docked ways to show more than one pane.
|
|
29
|
+
- The scroll area docs show `.scroll-area` on `<html>` for a themed page
|
|
30
|
+
scrollbar. A browser test covers page scrolling and theme colors.
|
|
31
|
+
- `.keypad` and `.keyboard` are on-screen keys that type into the text
|
|
32
|
+
field named by `aria-controls`. A keypad is three columns of round keys for
|
|
33
|
+
PINs, codes and dial pads; a keyboard is rows of keys sized from a column
|
|
34
|
+
count, with an optional `.numbers` row of shorter digit keys that
|
|
35
|
+
`hidden` drops. Keys with a `value` type at the caret and fire `input`; `data-key`
|
|
36
|
+
keys handle Backspace, Enter and a one-shot Shift. Keys square their
|
|
37
|
+
corners on press, and a `wide` key spans two cells. A key inside the
|
|
38
|
+
field's `.field`, such as a trailing Backspace, works too. Browsers skip
|
|
39
|
+
`minlength` for scripted edits, so the docs give a minimum length as
|
|
40
|
+
`pattern`. `Keypad` is in `AutoInit()` and takes an `onKey` option.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- The `expressivecss` skill is version 0.11.0. It adds the
|
|
45
|
+
`expressivecss-layout` guide and component guides for keypad and keyboard.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- Reference tables on the docs site scroll sideways inside their own box on
|
|
50
|
+
narrow windows. At 375px, 22 docs pages used to scroll the whole page
|
|
51
|
+
sideways, mostly because of tables with long token names and defaults.
|
|
52
|
+
Three pages still do, because their demos (the 12-column grid, the large
|
|
53
|
+
icon and the extra-large split button) are wider than a phone.
|
|
54
|
+
|
|
55
|
+
- A snackbar dismissed by a swipe now slides off the side it was swiped
|
|
56
|
+
toward, starting from where the pointer let go. It used to jump to the
|
|
57
|
+
right at once, even after a swipe to the left, because the dismiss
|
|
58
|
+
transition replaced the transform transition before it could run.
|
|
59
|
+
- Date picker days outside `minDate`/`maxDate`, weekends under
|
|
60
|
+
`disableWeekends`, days rejected by `disableDayFn`, and the adjacent-month
|
|
61
|
+
days from `showDaysInNextAndPreviousMonths` now use the M3 disabled text
|
|
62
|
+
color and ignore the pointer. The rule looked for the state class on the
|
|
63
|
+
day button, but the picker puts it on the cell, so these days looked
|
|
64
|
+
selectable.
|
|
65
|
+
- A footer whose only child is a plain `<nav>` link column now gets the full
|
|
66
|
+
page footer styles. When the navigation bar arrived, only the first footer
|
|
67
|
+
rule was narrowed to a lone `.navigation-bar`. The grid, `.filled`, link
|
|
68
|
+
and legal bar rules still skipped any footer with a lone `<nav>`. Pane
|
|
69
|
+
footers use the same guard, so they keep their flex action row.
|
|
70
|
+
- Map markers and the column, bar and mixed chart hover layers mix
|
|
71
|
+
`in oklab` like the rest of the framework. Each mix is with `transparent`,
|
|
72
|
+
so the rendered colors do not change.
|
|
73
|
+
- The date picker's unused `.year-text` no longer sets `on-primary`, a
|
|
74
|
+
leftover from the removed primary header.
|
|
75
|
+
- A `data-tooltip-id` that names no element now logs an error and shows the
|
|
76
|
+
`data-tooltip` text. A `.tabs` bar with no links logs an error, and
|
|
77
|
+
swipeable tabs whose links reach no panel act as normal tabs. Each of these
|
|
78
|
+
used to throw, which stopped `AutoInit()` before the components after it.
|
|
79
|
+
- Reopening a date picker no longer re-reads a value it wrote itself. Without
|
|
80
|
+
a custom `parse`, `Date.parse` read a `dd/mm/yyyy` value of `05/10/2026` as
|
|
81
|
+
10 May and passed that to `onSelect`.
|
|
82
|
+
- Space and Enter reach an autocomplete's text field while the list is
|
|
83
|
+
closed. The menu's trigger keys cancelled them, so a space typed after
|
|
84
|
+
Escape was lost and Enter could not submit the form. ArrowUp and ArrowDown
|
|
85
|
+
open the list with the current matches.
|
|
86
|
+
- Autocomplete fires `change` and `onAutocomplete` only when the selection
|
|
87
|
+
changes, as documented, instead of after every search. `setMenuItems` no
|
|
88
|
+
longer replaces `options.data`, so the documented custom `onSearch` filter
|
|
89
|
+
keeps searching the full data set.
|
|
90
|
+
- A chart cell such as `e5` or `1e400` is a gap. These passed the number
|
|
91
|
+
check but read as `NaN` or `Infinity`, so one such cell turned every point
|
|
92
|
+
in the chart into `NaN` and nothing was drawn.
|
|
93
|
+
|
|
94
|
+
## [0.14.1] - 2026-10-11
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
- The capability roadmap's source links point at a commit on `master`. The
|
|
99
|
+
0.14.0 links pointed at a pull request commit that the squash merge left
|
|
100
|
+
off `master`, which stopped the 0.14.0 release before it reached npm. A
|
|
101
|
+
test now fails when the pinned commit is not an ancestor of the checkout.
|
|
102
|
+
0.14.1 contains the 0.14.0 changes below.
|
|
103
|
+
|
|
104
|
+
## [0.14.0] - 2026-10-11
|
|
105
|
+
|
|
106
|
+
### Added
|
|
107
|
+
|
|
108
|
+
- The `expressivecss-review` agent skill reviews a page, template, fragment
|
|
109
|
+
or screenshot with five specialist subagents (theme and tokens, layout,
|
|
110
|
+
component markup, lifecycle and accessibility, framework rules). It reuses
|
|
111
|
+
the `expressivecss` guides, version resolver and `expressivecss-lint`, and
|
|
112
|
+
returns one report scored out of 100 with five 20-point sections. One or two
|
|
113
|
+
critical findings cap the score at 69, and three or more at 49.
|
|
114
|
+
- `.map` is an interactive map built on MapLibre. The page installs
|
|
115
|
+
`maplibre-gl` and passes the module to `MapView.init()`; ExpressiveCSS does
|
|
116
|
+
not bundle it. `.map-marker` children sit at their `data-lng-lat`, can open
|
|
117
|
+
a `.map-popup` named by `aria-controls`, show a `.map-marker-label` and be
|
|
118
|
+
dragged with `data-draggable`. `.map-controls` buttons zoom, reset north,
|
|
119
|
+
locate the reader and go full screen. `addRoute()`, `addArcs()` and
|
|
120
|
+
`addClusters()` draw data in theme colors. The default OpenFreeMap style
|
|
121
|
+
follows the light or dark theme.
|
|
122
|
+
- `.confetti` bursts theme-colored confetti. A button with the class bursts
|
|
123
|
+
from its center over the page when clicked, a `<canvas class="confetti">`
|
|
124
|
+
bursts inside its own box, and `Expressive.Confetti.fire(options)` bursts
|
|
125
|
+
over the page from script. Options cover the count, angle, spread, speed,
|
|
126
|
+
gravity, drift, colors, shapes and size. The page canvas draws above an
|
|
127
|
+
open modal dialog and lets clicks through. Nothing is drawn when the reader
|
|
128
|
+
prefers reduced motion.
|
|
129
|
+
- `<canvas class="particles">` fills its positioned ancestor with drifting
|
|
130
|
+
dots in the theme's on-surface color that lean toward the pointer. Options
|
|
131
|
+
cover the count, size, color, drift and how far and how fast the dots
|
|
132
|
+
follow the pointer. The canvas lets clicks through, and under reduced
|
|
133
|
+
motion the dots are drawn once and stay still.
|
|
134
|
+
|
|
135
|
+
### Changed
|
|
136
|
+
|
|
137
|
+
- The docs site has a new shell. A rail holds the five catalogue groups from
|
|
138
|
+
840px, with the current group's pages beside it from 1200px. Below 1200px
|
|
139
|
+
the menu button opens the catalogue in a side sheet. Each page opens with a
|
|
140
|
+
breadcrumb, title, description and a "View as Markdown" link, and the table
|
|
141
|
+
of contents sits in a sticky column. Page content and URLs are unchanged.
|
|
142
|
+
- The `expressivecss` skill is version 0.10.0. It adds guides for map,
|
|
143
|
+
confetti and particles. Its version resolver sizes file reads to the file
|
|
144
|
+
and reports a file that grows during a read as changed.
|
|
145
|
+
|
|
146
|
+
### Fixed
|
|
147
|
+
|
|
148
|
+
- Idle components no longer listen to the whole document. Carousel attaches
|
|
149
|
+
its pointer listeners while a mouse press is down, Tooltip listens for Escape
|
|
150
|
+
while open, and the docked date picker listens for outside clicks while
|
|
151
|
+
shown.
|
|
152
|
+
- Calling `Forms.Init()`, `BottomSheets.Init()` or `SideSheets.Init()` again,
|
|
153
|
+
as a page that loads both the root and `/modular` entries can, no longer
|
|
154
|
+
adds a second set of document listeners.
|
|
155
|
+
- `Menu.destroy()` no longer throws when the menu's target element is missing,
|
|
156
|
+
which used to leave its listeners attached.
|
|
157
|
+
- `Utils.throttle` times calls with `performance.now()`, so a system clock
|
|
158
|
+
change cannot hold a call back.
|
|
159
|
+
- More hot-path fixes:
|
|
160
|
+
- ScrollSpy skips the document-wide link lookup while the same section
|
|
161
|
+
stays current.
|
|
162
|
+
- MapView finds its zoom buttons once, not on every `move` event.
|
|
163
|
+
- PieChart reuses one percent formatter per legend instead of making one
|
|
164
|
+
per row.
|
|
165
|
+
- Snackbar measures its width once per swipe, not on every pointer move.
|
|
166
|
+
- Slider updates once per drag frame. Its `pointermove` update also ran
|
|
167
|
+
before the browser moved the value.
|
|
168
|
+
- The heatmap tooltip measures its cell before writing to the page.
|
|
169
|
+
- Datepicker checks each calendar row's markup once.
|
|
170
|
+
- Less work on hot paths:
|
|
171
|
+
- Datepicker arrow keys inside the shown month move focus without
|
|
172
|
+
redrawing the grid.
|
|
173
|
+
- Autocomplete renders the result list once per keystroke while its menu is
|
|
174
|
+
open. It used to render the previous results first, and twice more with
|
|
175
|
+
`isMultiSelect`.
|
|
176
|
+
- Particles stop animating and tracking the pointer while the canvas is off
|
|
177
|
+
screen.
|
|
178
|
+
- Carousel reads all item positions before writing parallax offsets and works
|
|
179
|
+
out item sizes before setting them, so scrolling no longer forces a style
|
|
180
|
+
recalculation per item.
|
|
181
|
+
- Tabs throttle their window resize handling.
|
|
182
|
+
- `Utils.throttle` no longer stalls when the system clock moves backwards.
|
|
183
|
+
- Autocomplete with `allowUnsafeHTML` highlights the typed text inside the
|
|
184
|
+
label's text only. It used to insert the highlight into the HTML string, so a
|
|
185
|
+
match inside an attribute value could close the attribute and turn the rest
|
|
186
|
+
of the sanitized label into markup.
|
|
187
|
+
- Table-of-contents links are 48dp tall, the Material touch target, instead
|
|
188
|
+
of 32dp. `--md-comp-toc-item-height` sets a denser height.
|
|
189
|
+
- In Firefox, a carousel that moved several items while its item sizes were
|
|
190
|
+
still changing could slide back to an earlier item after it had settled.
|
|
191
|
+
Firefox re-snapped the track to whichever item it had passed mid-move.
|
|
192
|
+
Snapping is now off while the carousel scrolls to an item and comes back
|
|
193
|
+
once the item is in place.
|
|
194
|
+
|
|
8
195
|
## [0.13.1] - 2026-10-08
|
|
9
196
|
|
|
10
197
|
### Fixed
|
|
@@ -222,6 +409,11 @@ the format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
222
409
|
|
|
223
410
|
### Fixed
|
|
224
411
|
|
|
412
|
+
- A checkbox label written as `<input type="checkbox"><span>…</span>` keeps
|
|
413
|
+
links and other inline elements in its text. The span was a flex box, so
|
|
414
|
+
each text run and link became a separate item: the spaces around a link
|
|
415
|
+
disappeared and the words split into columns. It now lays out as inline
|
|
416
|
+
text, and one line still sits centered in the 48px target.
|
|
225
417
|
- A focused line, column, bar or pie chart no longer cancels Escape when its
|
|
226
418
|
tooltip is already hidden, so a dialog or sheet around the chart can close.
|
|
227
419
|
Pressing a chart's plot away from its marks focuses it without showing the
|
|
@@ -2147,7 +2339,10 @@ are no compatibility aliases.
|
|
|
2147
2339
|
- `.tabs` nested in a header or app bar as a secondary row. `.tabs` is a
|
|
2148
2340
|
standalone component; the `.tabs.transparent` app bar variant is gone with it.
|
|
2149
2341
|
|
|
2150
|
-
[Unreleased]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.
|
|
2342
|
+
[Unreleased]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.15.0...HEAD
|
|
2343
|
+
[0.15.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.14.1...v0.15.0
|
|
2344
|
+
[0.14.1]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.14.0...v0.14.1
|
|
2345
|
+
[0.14.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.13.1...v0.14.0
|
|
2151
2346
|
[0.13.1]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.13.0...v0.13.1
|
|
2152
2347
|
[0.13.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.12.0...v0.13.0
|
|
2153
2348
|
[0.12.0]: https://github.com/BaezFJ/ExpressiveCSS/compare/v0.11.0...v0.12.0
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ ExpressiveCSS is a Material Design 3 front-end framework built with Sass and
|
|
|
4
4
|
TypeScript. It provides theme tokens, layout and utility classes, styled form
|
|
5
5
|
controls, and JavaScript components in browser, ES module, and CommonJS builds.
|
|
6
6
|
|
|
7
|
-
> ExpressiveCSS version `0.
|
|
7
|
+
> ExpressiveCSS version `0.15.0` is under active development.
|
|
8
8
|
|
|
9
9
|
Documentation: [www.expressivecss.com](https://www.expressivecss.com)
|
|
10
10
|
|
|
@@ -416,6 +416,7 @@ The documentation source lives in `docs/src/` and is published at
|
|
|
416
416
|
| `docs/src` | Astro documentation and examples | Yes |
|
|
417
417
|
| `mcp/expressivecss` | Independently versioned MCP package | Yes |
|
|
418
418
|
| `skills/expressivecss` | Agent guidance and generated component references | Yes |
|
|
419
|
+
| `skills/expressivecss-review` | Scored interface review that runs five specialist subagents | Yes |
|
|
419
420
|
| `scripts`, `tests`, `visual` | Generators, verification, and test tooling | Source only |
|
|
420
421
|
| `semantics.json`, `llm.md`, `m3-guidelines.md` | Markup rules, API reference, design guidance | Yes |
|
|
421
422
|
| `SEMANTICS.md`, generated skill/MCP data | Derived files checked for drift | Yes |
|