shadcn/ui
A set of well-designed, accessible components you copy into your own project rather than install as a locked package, so you own and edit the code. Popular with React developers who want a good-looking starting point for their own design system.
124k
GitHub · Sept 2026
MIT
GitHub · Sept 2026
GitHub repo
Web Development
shadcn
Intermediate
Free
What it is
shadcn/ui describes itself as a set of beautifully designed, accessible components and a code distribution platform. Its key idea is "open code": instead of installing a component package you cannot change, a CLI copies the component source into your project. You then own it and can edit it directly. It is free and open source under the MIT licence, and its GitHub repository had about 124k stars as of 2026-09.
Why it matters for developers who design
A design system needs components that look consistent and behave accessibly. Building every dialog, dropdown and tooltip from scratch is slow and easy to get wrong. shadcn/ui gives you a styled, accessible starting point that you then adapt to your own tokens, so your app looks designed without a designer.
How it works in practice
- Components are built on accessible primitives and styled with Tailwind CSS by default.
- Theming uses CSS variables, which map naturally to design tokens.
- You add only the components you need, and they live in your repository alongside your code.
Check the documentation for the frameworks it currently supports and the setup steps for yours.
Time needed
An hour to set up and add your first components. The real work is adapting them to your tokens and writing stories and tests for each.
Prerequisites
A working React-based project (or another supported setup), comfort with Tailwind CSS and components. It is not for complete beginners.
Is it worth it?
For many apps, yes: it gets you a consistent, accessible base quickly while leaving you in control. The trade-off of owning the code is that you also own maintenance: upstream fixes do not arrive automatically, so you need to check for updates.
Common mistakes
- Copying components and then breaking their focus styles or keyboard behaviour while restyling.
- Mixing raw colour values into components instead of using your theme variables.
- Adding every component "just in case", which bloats the codebase.
What you can do after
Stand up a small component library styled with your own tokens, document it in Storybook and use it across an app.
Common questions
Is it a component library? Not in the usual sense. You do not install it as a dependency; you copy the code.
Do I need Tailwind? The default styles use it. Check the docs for current options.
Ready to start?
Opens on shadcn in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.