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.
| Step | shadcn | bigbullui |
|---|---|---|
| Install | npx shadcn@latest init | npx bigbullui init |
| Add one piece | npx shadcn@latest add button | npx bigbullui add button |
| Tokens | CSS variables in :root | @import "bigbullui/css" — same idea, Ticket Stub values |
| Dark mode | .dark class | .dark class — identical mechanism |
| Theming | tweakcn / css override | /theme studio or /create, copy CSS variables |
| Registry | shadcn registry JSON | Compatible: npx shadcn@latest add https://ui.bigbullapp.com/r/button.json |
| Ownership | Copy-paste into your repo | Same: 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.