123.3k stars · MIT · shadcn@4.21.0 (2026-09-04)
Not a library you install — a folder of accessible React components you own, copied into your repo.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A collection of accessible React components — dialogs, dropdowns, tables, forms, tooltips — that you copy into your own repository with one command, instead of installing as a package. Underneath it uses Tailwind for styling and Radix for behaviour, but what lands in your project is plain, editable TSX.
Why it matters
Grasppy's screens are React, and each one currently looks like whatever the default was on the afternoon it was built — which reads to a visitor as a prototype, whatever the product actually does. This is the fastest available route to a product that looks deliberate, and the copy-in delivery model is why it fits you rather than a design team: the components arrive as files in your repo, so Claude Code reads and edits them like any other source, with no theming API in the way. It also brings keyboard navigation and screen-reader labelling with it, which is a large fraction of what pa11y (Ed. 11 #6) would otherwise hand you as a list of defects. And it is the natural place for Lucide (#2) to land, since shadcn uses it by default.
- The code is yours: no upgrade treadmill, no version to pin, nothing to break on a dependency bump.
- Accessibility comes built in through Radix rather than being bolted on later.
- Vast public example base, which means Claude Code is unusually good at it.
- It assumes Tailwind. If Grasppy's React app is not on Tailwind, this is a bigger decision than a component install.
- You own the code, so you also own the bugs — nobody upstream patches your copy.
- Components added months apart drift out of sync unless you deliberately re-run them.
npx shadcn@latest init

