Head to head
21st.dev vs Radix UI Primitives
21st.dev and Radix UI Primitives solve the same job (Core design stack), so this is a pick-one decision. 21st.dev is our default here: The themes page is the fastest visual win you have. A theme here is a shadcn token set — colors, type, radius. Copy the :root/.dark blocks into index.css and the whole app re-skins with zero component edits. Browse the themes page and pick one that matches the look you are already going for. Watch out: Use Primitives, not Radix Themes — Themes brings its own CSS reset and token system and will fight your Tailwind setup. Also note shadcn defaulted to Base UI in July 2026; do not run both primitive layers.
Quick read
- Free with no card: Radix UI Primitives.
- Editor's pick: 21st.dev.
- No logged gotchas: 21st.dev.
| Field | 21st.dev21st.dev Not yet swept | Radix UI Primitivesradix-ui.com Not yet swept |
|---|---|---|
| What it is | 12,000+ React/Tailwind components in native shadcn registry format, plus ~50 community themes, 29,000 searchable icons, shaders and gradients. Every item exposes an AI-ready prompt written specifically for Lovable, Cursor and Claude Code. | Unstyled, behavior-only components — Dialog, Popover, Select, Dropdown — with focus traps, keyboard nav and ARIA solved. Zero CSS opinions, so no Tailwind conflict. Maintained by WorkOS. You already have it transitively via shadcn. |
| Category | Core design stack | Core design stack |
| Cost tier | mixed | free |
| Pricing | Free (2 copies/day) · $6/mo · $15/mo +AI | Free · MIT |
| Why builders pick it | The themes page is the fastest visual win you have. A theme here is a shadcn token set — colors, type, radius. Copy the :root/.dark blocks into index.css and the whole app re-skins with zero component edits. Browse the themes page and pick one that matches the look you are already going for. | Reach for it when your project needs a component shadcn does not ship — an issue-picker combobox, a lightbox with proper focus management, a filter drawer. Accessibility on a publication site is not optional. |
| Watch out for | not logged | Use Primitives, not Radix Themes — Themes brings its own CSS reset and token system and will fight your Tailwind setup. Also note shadcn defaulted to Base UI in July 2026; do not run both primitive layers. |
| How to wire it up | npx @21st-dev/magic@latest | npm install radix-ui |
| Editor's pick | Yes | No |
Other matchups worth running
Agent endpoint: GET /api/public/compare?slugs=21st-dev,radix-ui-primitives