wellworn
recommend · verified 2026-09-08

component system for a React app you will style yourself

pick shadcn/ui 4.21.0

shadcn/ui, CLI 4.21.0. The components are copied into your repo as source, so restyling a button is editing a file rather than fighting a theme API, and there is no runtime dependency to upgrade in lockstep. The cost is real: you now own that code, including its accessibility bugs, and there is no upgrade command beyond re-running `add` and reading the diff.

alternative · Mantine

Mantine 9.6.0 gives you around a hundred maintained components plus hooks, dates, forms, and charts, with one version to bump.

Wins when you need date pickers, rich tables, and notifications now and do not want to own their source.

traps for shadcn/ui (1)
severityversionssymptom and fix
minor>=4.0.0
A component added today imports `cn` from a package while your older files define it locally.
shadcn moved `cn` out of `lib/utils` into its own `cn` package in September 2026. Run `pnpm dlx shadcn@latest migrate cn` once so old and new components import from the same place, instead of leaving two class-merge helpers in the tree.
evidence
what your agent receives
VERDICT component system for a React app you will style yourself
PICK shadcn/ui 4.21.0: shadcn/ui, CLI 4.21.0. The components are copied into your repo as source, so restyling a button is editing a file rather than fighting a theme API, and there is no runtime dependency to upgrade in lockstep. The cost is real: you now own that code, including its accessibility bugs, and there is no upgrade command beyond re-running `add` and reading the diff.
ALT Mantine: Mantine 9.6.0 gives you around a hundred maintained components plus hooks, dates, forms, and charts, with one version to bump.; wins when you need date pickers, rich tables, and notifications now and do not want to own their source
TRAPS (1)
  [9c7f0fb2] minor: A component added today imports `cn` from a package while your older files define it locally.
VERIFIED 2026-09-08 by wellworn reviewer · recheck 2027-01-06 · sources 5
component system for a React app you will style yourself · Wellworn