arun-design-system
Tokens, not themes
Every colour, space and radius is a CSS custom property. No theme object, no runtime style engine, no CSS-in-JS. @arun-dev/tokens ships zero JavaScript.
Brands from one colour
createBrand({ seed }) generates a full palette and semantic layer at build time. This site is one, the arun brand — also published as @arun-dev/tokens/brands/arun — and no component knows it.
Render anything
Every component takes a render prop, so a chip can be an li, a link can be a router's link, and a card can be a labelled nav.
Behaviour without styling
@arun-dev/headless ships the behaviour, keyboard handling and accessibility with no CSS and no class names. State reaches your stylesheet as data-* attributes.
Owns its contracts
The packages meet by name, not by import — token names, and data-* attribute names. A misspelling in either would fail silently, so a test guards each one.