Why Astralis

Everything the design system should have done

Primitives that stay out of the way, tokens that survive a rebrand, and sections you own outright the moment you paste them in.

Zero runtime cost

Every style resolves at build time. No style recalculation on mount, no cascade of context providers, nothing shipped to parse.

One theme seed

Set a brand hue and a neutral ramp. Every surface, border and label repaints from the same tokens — no per-component overrides.

Accessible by default

Focus rings, roving tabindex and ARIA wiring live inside the primitives, so the accessible path is also the shortest one.

Composable primitives

Layout, typography and interaction split cleanly. Box owns spacing, Text owns type — nothing reaches across that line.

Copy-in blocks

Sections arrive as source in your repo, not as an import you have to fight. Edit the markup, keep the tokens.

Server-first

Primitives render on the server unmodified. Client boundaries stay where you put them instead of creeping up the tree.