Framework-agnostic

Works anywhere CSS does

The four packages emit plain CSS and custom properties. No runtime, no preprocessor, no framework binding, so the same entry stylesheet works in every environment.

Static site generators

Hugo, Astro, Eleventy, Jekyll. Add the packages to your asset pipeline and import one entry stylesheet.

Server-rendered sites

Symfony, Laravel, Django, Rails. Ordinary npm dependencies, bundled like any other stylesheet.

E-commerce

Shopify, PrestaShop. Custom properties reach a theme without rewriting its templates.

Any build pipeline

PostCSS, Vite, webpack, esbuild. The packages are plain CSS files, with no plugin of their own to install.

design-tokens

Colours, typography, spacing, sizes, radii and motion, as primitive and semantic tokens. Imported once at the top of your entry stylesheet, and the one layer a project overrides to rebrand.

component-tokens

One namespace per component, from –btn-* to –modal-*. Each maps a semantic value onto a part of a component, so you can restyle buttons alone without moving the brand colour.

css-base

Reset, native element styles and layout primitives. Unstyled markup already looks right, and every value comes from a token rather than a hardcoded rule.

css-components

Buttons, cards, navs, alerts, dropdowns, modals and the rest. 29 components and 1 utility, reading their values from component-tokens and adding none of their own.