@expressivecss/expressive 0.7.0 → 0.9.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 +1313 -1
- package/README.md +76 -30
- package/dist/css/expressive.css +4896 -1777
- 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-material-symbols +93 -0
- package/dist/fonts/LICENSE-noto-sans +93 -0
- package/dist/fonts/LICENSE-roboto +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-latin-400.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-500.woff2 +0 -0
- package/dist/fonts/roboto-latin-400.woff2 +0 -0
- package/dist/fonts/roboto-latin-500.woff2 +0 -0
- package/dist/js/expressive.cjs +1673 -1338
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +1673 -1338
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +13 -13
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +1673 -1338
- package/dist/js/expressive.mjs.map +4 -4
- package/dist/types/behaviors/bottomSheets.d.ts +19 -11
- package/dist/types/behaviors/sheetDrag.d.ts +40 -0
- package/dist/types/behaviors/sideSheets.d.ts +2 -9
- package/dist/types/components/appBar.d.ts +26 -0
- package/dist/types/components/autocomplete.d.ts +15 -3
- package/dist/types/components/buttonGroup.d.ts +39 -0
- package/dist/types/components/buttons.d.ts +5 -1
- package/dist/types/components/cards.d.ts +11 -13
- package/dist/types/components/carousel.d.ts +87 -53
- package/dist/types/components/chips.d.ts +21 -1
- package/dist/types/components/expandingCard.d.ts +31 -0
- package/dist/types/components/index.d.ts +23 -20
- package/dist/types/components/lightbox.d.ts +1 -0
- package/dist/types/components/menu.d.ts +11 -1
- package/dist/types/components/{sidenav.d.ts → navigationDrawer.d.ts} +16 -16
- package/dist/types/components/registry.d.ts +18 -8
- package/dist/types/components/slider.d.ts +26 -85
- package/dist/types/components/snackbar.d.ts +20 -5
- package/dist/types/components/tabs.d.ts +12 -0
- package/dist/types/components/timepicker.d.ts +12 -10
- package/dist/types/components/tooltip.d.ts +1 -0
- package/dist/types/core/utils.d.ts +64 -53
- package/dist/types/index.d.ts +8 -9
- package/package.json +39 -3
- package/src/sass/README.md +61 -11
- package/src/sass/abstracts/_breakpoints.scss +17 -19
- package/src/sass/abstracts/_mixins.scss +155 -21
- package/src/sass/abstracts/_variables.scss +69 -5
- package/src/sass/base/_fonts.scss +63 -0
- package/src/sass/base/_global.scss +6 -24
- package/src/sass/base/_grid.scss +15 -12
- package/src/sass/base/_normalize.scss +34 -38
- package/src/sass/base/_typography.scss +4 -18
- package/src/sass/components/_badges.scss +3 -5
- package/src/sass/components/_banners.scss +298 -0
- package/src/sass/components/_bottom-app-bar.scss +180 -0
- package/src/sass/components/_bottom-sheet.scss +12 -4
- package/src/sass/components/_button-groups.scss +358 -0
- package/src/sass/components/_buttons.scss +245 -92
- package/src/sass/components/_cards.scss +514 -78
- package/src/sass/components/_carousel.scss +562 -68
- package/src/sass/components/_chips.scss +64 -5
- package/src/sass/components/_datepicker.scss +24 -24
- package/src/sass/components/_dialog.scss +17 -11
- package/src/sass/components/_drag-handle.scss +130 -0
- package/src/sass/components/_expanding-card.scss +226 -0
- package/src/sass/components/_fab-menu.scss +232 -0
- package/src/sass/components/_floating-sheet.scss +86 -0
- package/src/sass/components/_icon-buttons.scss +172 -0
- package/src/sass/components/_icons-material-design.scss +22 -10
- package/src/sass/components/_index.scss +22 -6
- package/src/sass/components/_list.scss +16 -13
- package/src/sass/components/_loading-indicator.scss +106 -0
- package/src/sass/components/_menu.scss +335 -61
- package/src/sass/components/_navbar.scss +245 -45
- package/src/sass/components/_navigation-bar.scss +22 -11
- package/src/sass/components/{_sidenav.scss → _navigation-drawer.scss} +123 -33
- package/src/sass/components/_navigation-rail.scss +31 -23
- package/src/sass/components/_page-footer.scss +19 -16
- package/src/sass/components/_pagination.scss +24 -6
- package/src/sass/components/_panes.scss +52 -11
- package/src/sass/components/{_preloader.scss → _progress.scss} +11 -3
- package/src/sass/components/_scrim.scss +37 -0
- package/src/sass/components/_search.scss +259 -0
- package/src/sass/components/_segmented-buttons.scss +188 -0
- package/src/sass/components/_side-sheet.scss +2 -2
- package/src/sass/components/_snackbar.scss +20 -15
- package/src/sass/components/_split-button.scss +196 -0
- package/src/sass/components/_tabs.scss +7 -8
- package/src/sass/components/_timepicker.scss +67 -58
- package/src/sass/components/_toolbar.scss +206 -80
- package/src/sass/components/_transitions.scss +8 -1
- package/src/sass/components/forms/_checkboxes.scss +49 -12
- package/src/sass/components/forms/_fieldset.scss +4 -4
- package/src/sass/components/forms/_file-input.scss +8 -1
- package/src/sass/components/forms/_index.scss +1 -1
- package/src/sass/components/forms/_input-fields.scss +50 -44
- package/src/sass/components/forms/_radio-buttons.scss +42 -10
- package/src/sass/components/forms/_select.scss +38 -1
- package/src/sass/components/forms/{_range.scss → _slider.scss} +8 -9
- package/src/sass/components/forms/_switches.scss +6 -7
- package/src/sass/expressive.scss +5 -0
- package/src/sass/tokens/_index.scss +4 -1
- package/src/sass/tokens/_reference.scss +70 -61
- package/src/sass/tokens/_state.scss +24 -0
- package/src/sass/tokens/_theme.scss +6 -3
- package/src/sass/tokens/_vibrant.scss +76 -0
- package/src/sass/utilities/_colors.scss +14 -1
- package/src/sass/utilities/_helpers.scss +5 -5
- package/src/sass/utilities/_visibility.scss +48 -26
- package/dist/types/behaviors/waves.d.ts +0 -15
- package/dist/types/components/parallax.d.ts +0 -16
- package/dist/types/components/range.d.ts +0 -43
- package/dist/types/core/bounding.d.ts +0 -6
- package/dist/types/core/edges.d.ts +0 -6
- package/src/sass/components/_parallax.scss +0 -104
- package/src/sass/components/_pulse.scss +0 -37
- package/src/sass/components/_slider.scss +0 -129
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 is currently at version `0.
|
|
7
|
+
> ExpressiveCSS is currently at version `0.9.0` and under active development.
|
|
8
8
|
|
|
9
9
|
Documentation: [www.expressivecss.com](https://www.expressivecss.com)
|
|
10
10
|
|
|
@@ -23,17 +23,45 @@ Documentation: [www.expressivecss.com](https://www.expressivecss.com)
|
|
|
23
23
|
|
|
24
24
|
- [Node.js](https://nodejs.org/) 20 or newer
|
|
25
25
|
- npm
|
|
26
|
-
- Python 3.14 or newer and [uv](https://docs.astral.sh/uv/) to run the local
|
|
27
|
-
documentation site
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
Use Node 24 for repository development, selected by `.nvmrc`. The framework's
|
|
28
|
+
runtime compatibility range remains unchanged. See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
29
|
+
for setup, checks, and the community workflow.
|
|
30
|
+
|
|
31
|
+
## MCP server for AI workflows
|
|
32
|
+
|
|
33
|
+
This repository includes a local MCP server at `mcp/expressivecss/` that exposes an
|
|
34
|
+
ExpressiveCSS design-to-QA workflow:
|
|
35
|
+
|
|
36
|
+
- Setup Expert
|
|
37
|
+
- Rules Enforcer
|
|
38
|
+
- Creative Director
|
|
39
|
+
- Page Arcjitect (`page_arcjitect`, with conventional `page_architect` compatibility)
|
|
40
|
+
- Component Syntax Expert
|
|
41
|
+
- Quality Inspector
|
|
42
|
+
|
|
43
|
+
The MCP entry point is `mcp/expressivecss/server.js`, with sample config in
|
|
44
|
+
`mcp/expressivecss/mcp.json`.
|
|
45
|
+
|
|
46
|
+
Quick start:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
cd mcp/expressivecss
|
|
50
|
+
npm ci
|
|
51
|
+
node server.js
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
To use it with your MCP client, point the command to:
|
|
55
|
+
|
|
56
|
+
- `node mcp/expressivecss/server.js`
|
|
57
|
+
- or `node ./server.js` from `mcp/expressivecss` as the working directory.
|
|
30
58
|
|
|
31
59
|
## Getting started
|
|
32
60
|
|
|
33
61
|
Clone the repository and install the JavaScript dependencies:
|
|
34
62
|
|
|
35
63
|
```sh
|
|
36
|
-
npm
|
|
64
|
+
npm ci
|
|
37
65
|
npm run build
|
|
38
66
|
```
|
|
39
67
|
|
|
@@ -44,6 +72,14 @@ dist/
|
|
|
44
72
|
├── css/
|
|
45
73
|
│ ├── expressive.css
|
|
46
74
|
│ └── expressive.min.css
|
|
75
|
+
├── fonts/
|
|
76
|
+
│ ├── material-symbols-outlined.woff2
|
|
77
|
+
│ ├── material-symbols-rounded.woff2
|
|
78
|
+
│ ├── material-symbols-sharp.woff2
|
|
79
|
+
│ ├── roboto-latin-400.woff2
|
|
80
|
+
│ ├── roboto-latin-500.woff2
|
|
81
|
+
│ ├── noto-sans-latin-400.woff2
|
|
82
|
+
│ └── noto-sans-latin-500.woff2
|
|
47
83
|
├── js/
|
|
48
84
|
│ ├── expressive.cjs
|
|
49
85
|
│ ├── expressive.js
|
|
@@ -52,7 +88,9 @@ dist/
|
|
|
52
88
|
└── types/
|
|
53
89
|
```
|
|
54
90
|
|
|
55
|
-
Source maps are produced alongside the CSS and JavaScript bundles.
|
|
91
|
+
Source maps are produced alongside the CSS and JavaScript bundles. The
|
|
92
|
+
stylesheet loads fonts from `../fonts/`, so keep `dist/fonts/` next to
|
|
93
|
+
`dist/css/`.
|
|
56
94
|
|
|
57
95
|
## Usage
|
|
58
96
|
|
|
@@ -138,37 +176,44 @@ Available npm commands include:
|
|
|
138
176
|
| `npm run build:js` | Build ESM, CommonJS, and browser bundles |
|
|
139
177
|
| `npm run build:types` | Generate TypeScript declarations |
|
|
140
178
|
| `npm run watch` | Watch Sass and TypeScript sources |
|
|
179
|
+
| `npm run verify` | Build, typecheck, test, check generated data, and verify docs |
|
|
141
180
|
| `npm run typecheck` | Check the TypeScript source without emitting files |
|
|
142
|
-
| `npm test` | Build
|
|
181
|
+
| `npm test` | Build all JavaScript bundles and CSS, then run the test suite |
|
|
143
182
|
| `npm run clean` | Remove generated build output |
|
|
183
|
+
| `npm run docs:dev` | Build the framework, then watch it beside the docs server |
|
|
184
|
+
| `npm run docs:build` | Build the documentation site into `_site/` and verify it |
|
|
185
|
+
| `npm run docs:preview` | Serve what `docs:build` wrote |
|
|
144
186
|
|
|
145
|
-
Run the
|
|
187
|
+
Run the documentation and smoke-test site:
|
|
146
188
|
|
|
147
189
|
```sh
|
|
148
|
-
|
|
149
|
-
uv run python docs/app.py
|
|
190
|
+
npm run docs:dev
|
|
150
191
|
```
|
|
151
192
|
|
|
152
|
-
|
|
153
|
-
|
|
193
|
+
This builds the framework, then starts the Sass and esbuild watchers alongside
|
|
194
|
+
the documentation server. Refresh the browser to see source changes. Astro
|
|
195
|
+
prints the server URL.
|
|
154
196
|
|
|
155
197
|
It is the same site published at
|
|
156
|
-
[www.expressivecss.com](https://www.expressivecss.com),
|
|
198
|
+
[www.expressivecss.com](https://www.expressivecss.com), authored in
|
|
199
|
+
`docs/src/`.
|
|
157
200
|
|
|
158
201
|
## Project structure
|
|
159
202
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
203
|
+
| Location | Purpose | Tracked? |
|
|
204
|
+
| --- | --- | --- |
|
|
205
|
+
| `src/sass`, `src/ts` | Framework source | Yes |
|
|
206
|
+
| `docs/src` | Astro documentation and examples | Yes |
|
|
207
|
+
| `mcp/expressivecss` | Independently versioned MCP package | Yes |
|
|
208
|
+
| `skills/expressivecss` | Agent guidance and generated component references | Yes |
|
|
209
|
+
| `scripts`, `tests`, `visual` | Generators, verification, and test tooling | Source only |
|
|
210
|
+
| `semantics.json`, `llm.md`, `m3-guidelines.md` | Markup rules, API reference, design guidance | Yes |
|
|
211
|
+
| `SEMANTICS.md`, generated skill/MCP data | Derived files checked for drift | Yes |
|
|
212
|
+
| `dist`, `_site`, visual reports and caches | Build output | No |
|
|
213
|
+
| `.design-sync` | Optional external design previews | Configuration and source only |
|
|
214
|
+
|
|
215
|
+
See [Sass architecture](src/sass/README.md), [TypeScript conventions](src/ts/README.md),
|
|
216
|
+
and [development notes](docs/development-notes.md).
|
|
172
217
|
|
|
173
218
|
## Testing
|
|
174
219
|
|
|
@@ -185,8 +230,9 @@ behavior rather than geometry or visual transitions.
|
|
|
185
230
|
|
|
186
231
|
## Contributing
|
|
187
232
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
233
|
+
Start with [CONTRIBUTING.md](CONTRIBUTING.md). Use
|
|
234
|
+
[Discussions](https://github.com/BaezFJ/ExpressiveCSS/discussions) for questions and
|
|
235
|
+
proposals, and [Issues](https://github.com/BaezFJ/ExpressiveCSS/issues) for accepted
|
|
236
|
+
work and reproducible bugs. Read our [governance](GOVERNANCE.md),
|
|
237
|
+
[code of conduct](CODE_OF_CONDUCT.md), [security policy](SECURITY.md), and
|
|
238
|
+
[release workflow](RELEASING.md).
|