An open shadcn registry of interface parts for AI agents and generative media — conversation, reasoning, approvals, and the controls that frame them. Install a piece, compose a surface, own the source.
- 🧩 Agents —
conversation,message,thinking-block,waiting-row,prompt-input,voice-input,attachment,scroll-rail,approval-card,skill-detail - 🎛️ Components —
aspect-ratio-picker,resolution-segmented,duration-slider,generation-overlay,cover-fan,flow-edge,toolbar,settings-dialog,activity-heatmap - 🏗️ Blocks — whole surfaces assembled from the parts, starting with
chat-app
- 🧩 Compound components — a root owns the state and named parts compose it. Rearrange them, drop one into another frame, or leave one out. A slot with nothing in it draws nothing; a part with no handler behind it is not drawn at all.
- 🎨 Theme tokens — every colour is a shadcn token, so dark mode and a theme swap
restyle a component for free. A component that needs a state the base theme does not
name brings the token with it in
cssVars. - ✨ Motion — animation explains the surface: a follow that keeps a thread at its tail, a wave that says a turn is still coming, a lift that names the card under the pointer.
- 🤖 Agent ready —
llms.txt,llms-full.txt, an API catalog and agent-skill discovery routes, so an assistant can read the registry without a browser. - 🔊 Web audio feedback - Built-in sound effects powered by
@web-kits/audio - 📳 Web haptics - Optional haptic feedback hooks for supported devices via
web-haptics - 🔄 View transitions - Next.js view transitions enabled for smoother navigation between pages
Next.js 16with the App RouterReact 19andTypeScriptTailwind CSS 4Fumadocsfor documentationshiki+rehype-pretty-codefor code blockssonnerfor toastsradix-ui+vaulfor accessible primitives@vercel/analyticsfor analytics
npx shadcn@latest add https://motif-ui.vercel.app/r/approval-card.jsonshadcn add writes the source into your repo at the path the registry item names and
brings its base components — button, input, radio-group — along with it.
-
Add the component under
registry/new-york/— the reference one isregistry/new-york/agents/approval-card/ -
Add a docs page and an example under
content/docs/andexamples/ -
Update
registry.jsonwith the registry item and its base components -
Build the registry:
pnpm registry:build- Check it:
pnpm dev├── registry/
│ └── new-york/ # The component source that ships
│ └── agents/approval-card/
├── registry.json # Registry manifest
├── content/docs/ # Documentation (MDX)
├── examples/ # Docs demos
├── app/ # Next.js app
└── public/r/ # Built registry files (auto-generated)
pnpm dev- Start development serverpnpm build- Build for productionpnpm registry:build- Rebuild the registry intopublic/r/