145 components · 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

Last verified 25 Aug 2026: 142 items installed into a brand-new Next.js app with the real npx shadcn add, writing 162 files, and the app type-checked. See the run.

CSS module export

Theme + tokens, installed alongside.

Every primitive ships with theme as a registry dependency. The shadcn CLI lands the whole CSS contract in your project — brand palette, shadcn-bare token bridge, animation keyframes, type / spacing / radius scales — behind the one index.css barrel, 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 burnt-orange 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.

Everything in the registry

145 items, 10 categories

Grouped by intent — what you reach for, not by implementation lineage. Visual previews + interactive variants live on storybook.interlace.tools.

Search matches the words each component’s own source says about itself — its states, its keyboard path, and whether it renders on the server — not just its name. Press ⌘K or / to focus, to step into results, Esc to clear.

Foundation

19

Layout, typography, and surface primitives — the structural floor every page composes on top of.

Form & input

16

Text input, choice controls, and form composition. All inherit the WCAG 2.2 SC 2.4.13 focus ring from preflight.

Overlay

9

Floating surfaces — dialogs, popovers, menus, tooltips. Base UI owns focus + dismissal; we own surface + motion.

Feedback

12

Communicate state — toast, alert, progress, skeleton, badge. Tone tokens (info / success / warning / danger) keep semantics consistent.

Data display

21

Stats, scorecards, avatars, scroll areas — the chrome around numbers and content.

Blog & long-form

24

Article-body surfaces — Callout, Prose, CodeBlock, Tag, TOC, article cards and templates. Install via @interlace/mdx-starter.

Marketing

9

Above-the-fold sections that sell — hero, pricing, FAQ, testimonial, feature grid, CTA.

Decorative

21

Motion-aware visual flair. Always reduced-motion-respecting.