38 primitives · 1 theme bundle · WCAG 2.2 AA floor

Production-grade React primitives for shadcn.

Drop the @interlace/ui primitives into any React project with one command. Brand tokens, theme bridge, animation keyframes, and a portable 26-rule component-modeling floor — installed alongside.

Install a primitive
npx shadcn@latest add https://ds.interlace.tools/r/button.json

Or, after configuring this registry as @interlace in your components.json: npx shadcn@latest add @interlace/button

CSS module export

Theme + tokens, installed alongside.

Every primitive ships with theme as a registry dependency. The shadcn CLI bundles the three Interlace stylesheets into your project — brand palette, shadcn-bare token bridge, animation keyframes — so primitives render the moment you import them.

Install separately: npx shadcn@latest add @interlace/theme

Install the theme bundle
npx shadcn@latest add https://ds.interlace.tools/r/theme.json
tokens.css

Animation + motion tokens (marquee, shimmer, scale-in).

theme.css

shadcn-bare ↔ fumadocs token bridge; Shiki AAA boosts.

interlace-theme.css

Brand violet palette (light + dark), AAA contrast.

Or fetch raw: /r/styles/<tokens|theme|interlace-theme>.css

Portable floor

26-rule component-modeling floor — Tailwind + tokens, mobile-first, locked invariants, zero axe suppressions.

Engine-agnostic

Same rules run under ESLint and Oxlint with parity gates; Biome + TSC native on the roadmap.

Headless behavior

Built on @base-ui/react primitives. shadcn-canon-compatible source, drop-in via the shadcn CLI.

Available primitives

38 components

Visual previews + interactive variants live on storybook.interlace.tools. This registry is the source — install URLs, dependencies, and JSON contract only.