10-minute switch

Migrate from shadcn

Same mental model, different aesthetic. Components are intentionally API-compatible where it matters (Button, Card, Dialog, Tabs, Toast), so migration is mostly class names and tokens — not rewrites.

Stepshadcnbigbullui
Installnpx shadcn@latest initnpx bigbullui init
Add one piecenpx shadcn@latest add buttonnpx bigbullui add button
TokensCSS variables in :root@import "bigbullui/css" — same idea, Ticket Stub values
Dark mode.dark class.dark class — identical mechanism
Themingtweakcn / css override/theme studio or /create, copy CSS variables
Registryshadcn registry JSONCompatible: npx shadcn@latest add https://ui.bigbullapp.com/r/button.json
OwnershipCopy-paste into your repoSame: files live in your repo, MIT

Class-name notes

  • Replace neutral palettes with semantic tokens (bg-primary, text-muted-foreground, border-border).
  • Status colors map to success / warning / info / destructive.
  • Spacing uses logical props (ms-, me-, ps-, pe-) — RTL flips for free.
  • Pass animated={false} anywhere you need instant, motion-free rendering.