Description
shadcn/ui differs from classic component libraries in its distribution model: instead of shipping a finished package through the npm registry, it lays out a structure for each component and hands it to you through its own command-line tool. When adding a component, the command line copies the actual source code directly into your own project, by default into components/ui/; a one-time init run first creates the configuration file components.json, the matching Tailwind settings, and a small utility helper. Originally, since its start in January 2023, the project was built on Radix as its foundation for accessible, unstyled primitives; since July 2026, Base UI, a successor project from the same developers, has become the new default foundation, and Radix continues to be fully supported, with projects already built on it staying on that existing foundation.
Supported are React 18 and up as well as React 19, wired up through Next.js, Vite, Laravel, React Router, Astro, or TanStack Start, plus Tailwind CSS version 3 or 4 and TypeScript as the default. Because the component code becomes part of your own project, there is no automatic package update the way a classic library would provide: your customizations are preserved, and resetting a component to its upstream version requires deliberately re-running the install command with an overwrite option. A registry directory lets you add further, third-party-maintained registries with additional components and blocks, with no extra CLI configuration needed, though the responsibility to review their code stays with you.
Compared to heavily designed component libraries built for marketing pages, shadcn/ui is deliberately restrained: it delivers functional, accessible base building blocks such as forms, dialogs, or tables instead of eye-catching, animation-heavy hero sections. shadcn/ui is built as a foundation for your own design system; the registry directory lets you add further component collections for marketing-focused or motion-heavy interfaces on top of it.







