Tokens, not values
Every component reads --color-color-1, --font-size-2, --space-s. Change the token, the component follows. The component never owns a color.
Twenty-four web components, each a real customElement in the browser. Built on tokens from the rest of the system — no rogue hex codes, no off-scale type, no bespoke layout. Drop them in any backend. Render them anywhere HTML renders.
Every component reads --color-color-1, --font-size-2, --space-s. Change the token, the component follows. The component never owns a color.
Components ship with structure and behavior. Styling lives in CSS variables you control. Re-skin without forking — and without prop drilling.
No JSX, no signals, no hydration. A component is a tag the browser already understands. View source still works.
Light DOM children with slot attributes. Styleable from the outside. Searchable. Readable in view source.
open, variant, disabled — set them as HTML attributes, query them from CSS. No state library, no props ceremony.
Components emit change, submit, dismiss. Listen with addEventListener. Works in Go templates, Rails, Astro, plain HTML.
The full set ships with every scaffold. Custom elements, plain CSS, no build pipeline. Open the source — it's HTML.