Every surface is a token
Color, outline, elevation, shape, and motion all resolve through the same custom properties this page is using.
Material 3 Expressive · React 18 and 19
32 conformant components with native web semantics, precompiled CSS, and typed theme and token APIs. No Tailwind, no runtime style injection, no dependencies.
npm install @language-lit/material3-expressiveTonal palettes generated from the source color #6750a4.
Themes are created through a typed API and validated before they render — including role-pair contrast. A theme that would be unreadable is rejected rather than shipped.
Tonal palettes are generated from this color, then the complete theme is validated — reference integrity and role-pair contrast included — before any component sees it.
Color, outline, elevation, shape, and motion all resolve through the same custom properties this page is using.
Every number here is read from the repository at build time.
React and React DOM are peers. Nothing else ships.
Plus 40.3 kB of precompiled CSS for the complete stylesheet. Both are budgeted in CI.
Components, /theme, /tokens, and /styles.css. The theme and token entries are React-free.
Counted from the inventory that gates the release. Anything unfinished is absent, not listed as partial.
A button is a <button>. A dialog is a <dialog>. A checkbox is a real form control that submits. Focus, keyboard, RTL, reduced motion, and forced-colors behavior come from the browser wherever the browser already gets them right, and the deliberate exceptions are written down.
Supported browsers: Chrome 120, Edge 120, Firefox 121, Safari 17.2, iOS 17.2.