← ClaudeAtlas

component-system-shadcn-radixlisted

How to build a component layer on shadcn/ui + Radix instead of reinventing it — shadcn as a CLI code-distributor (init/add/view/search, registry.json, registry:base whole-design-system installs), the official shadcn MCP server for agent-driven component installs, Radix Primitives (unstyled, WAI-ARIA-correct, asChild composition), and Radix Colors' 12-step accessible scales. Use when adding a UI component (dialog, dropdown, combobox, toast…), setting up or consuming a component registry, wiring the shadcn MCP, choosing a primitive to build on, or picking accessible color tokens.
BenMacDeezy/Orns-Forge · ★ 0 · Web & Frontend · score 72
Install: claude install-skill BenMacDeezy/Orns-Forge
<!-- last-verified: 2026-07 --> # Component system: shadcn/ui + Radix Default posture for any new interactive component: **install from a registry, own the code, restyle the tokens** — do not hand-roll a dialog/menu/combobox from raw `<div>`s. shadcn distributes the source into the repo; Radix supplies the unstyled, accessible behavior underneath. You get to keep and edit the code without an opaque dependency. ## shadcn/ui is a code distributor, not an npm dependency You do not `import { Button } from "shadcn"`. The CLI copies component **source files** into the project (typically `components/ui/`), and from then on they are your files to edit. Core commands (`pnpm dlx shadcn@latest …`, or the npm/yarn/bun equivalent): - `init` — scaffold `components.json`, CSS variables, and the `cn()` util. - `add <name>` — vendor a component's source into the repo (e.g. `add button dialog`). - `view <name>` — inspect a registry item's files/deps before installing. - `search <query>` — find items across configured registries. Because it is copy-in source, upgrades are diffs you review, not version bumps you pray over. Never re-fetch and clobber a component the project has since customized — treat a vendored file as owned code. ## registry.json turns any repo into a component source A `registry.json` (schema at `ui.shadcn.com/schema/registry.json`) plus item JSON files makes **any** repo a shadcn registry the CLI can install from. This is how you ship an internal component library: p