shadcn/ui is a set of accessible interface components and a system for distributing their code, built by shadcn at Vercel. It describes itself as not a component library but a way to build one. A traditional component library is a package that an app installs and imports, and its components are hard to change from outside.
With shadcn/ui, a command-line tool (CLI) copies the source code of each chosen component, such as a button, dialog, data table, calendar, sidebar or chart, into the project itself. The team then owns that code and edits it directly instead of overriding styles. All components share one composable interface and carefully chosen default styles, so they fit together as a design system. A flat-file schema describes components, their dependencies and properties, so that teams can publish their own component registries. Setup commands exist for Next.js, Vite, Laravel, React Router, Astro and TanStack Start, and a set of AI Elements covers chat interfaces. Because the code sits in the project, AI models can read and change it.
shadcn/ui is free and open source under the MIT license.