shadcn/ui
What is shadcn/uiโ
shadcn/ui is not a traditional npm package โ it is a copy-paste component collection you add to your project via the CLI (npx shadcn add <component>). Components are built on a headless primitive layer โ Base UI by default, or Radix UI as an opt-in (as of the July 2026 changelog) โ and styled with Tailwind CSS. It is MIT licensed, with ~2.1M weekly npm downloads and 110k GitHub stars.
Why we recommend itโ
- Full code ownership โ components live in your repo, so you never fight upstream library abstractions or wait for patches.
- Excellent defaults โ accessible, well-structured components powered by headless primitives (Base UI by default, Radix optional) out of the box.
- Composable API โ small, focused components designed to be composed and extended rather than configured with prop sprawl.
- Tight Tailwind integration โ all styles are Tailwind utilities, so the components fit naturally into your existing styling approach.
- Active ecosystem โ large community, frequently updated registry, themes, and pre-built blocks accelerate development.
When to useโ
- Greenfield React + Tailwind projects that need production-quality components fast
- Projects requiring accessible components without the overhead of a full design-system library
- Teams that want to bootstrap a design system they fully own and can evolve independently
When NOT to useโ
- Projects not using Tailwind CSS โ shadcn/ui has a hard dependency on Tailwind
- Teams that need massive component breadth immediately โ consider MUI instead
- Teams that prefer an install-and-update model (
npm update) over manual code ownership - Legacy projects already committed to another component library
Updates are manual. There is no npm update path โ you re-run the CLI or manually merge upstream changes into your copy. Factor this into your maintenance planning.
Base UI is the default primitive layer as of July 2026. New projects scaffold with Base UI; opt into Radix with pnpm dlx shadcn init -b radix. Existing Radix-based projects are unaffected and require no migration. See Headless UI Components for the Radix-vs-Base-UI breakdown.
Resourcesโ
- Official shadcn/ui docs
- shadcn/ui GitHub repo
- Tailwind CSS โ the styling layer shadcn/ui builds on
- React โ the UI library shadcn/ui targets
- Headless UI Components โ the Radix UI and Base UI primitives shadcn/ui builds on