Q3 2025
Q2 2025
Q1 2025
Q4 2024
Q3 2024
Q2 2024
Q1 2024
Q4 2023
Search for a command to run...
This is the recommended approach for new React applications. You own the component code, customize freely, and get the full shadcn/ui experience with Strongtie branding.
Why this approach? Components are copied into your project, not installed as dependencies. You own the code and never worry about breaking changes from package updates.
The fastest way to get started is using shadcn's preset feature:
This creates a new Vite + React project with Strongtie design standards pre-configured.
Already have a project? Follow the manual setup steps below.
Follow the guide from shadcn
Add components using the shadcn CLI:
Components are copied to your components/ui/ directory where you can customize them.
Best Practice: When adding custom functionality, create abstracted
components instead of editing shadcn components directly. For example, if you
need a button with custom props, create components/custom-button.tsx that
wraps components/ui/button.tsx. This keeps shadcn components pristine and
makes updates easier.
All major AI coding assistants (Claude, ChatGPT, Cursor, etc.) have native knowledge of shadcn/ui. Just ask "use shadcn to add a button" and they know exactly what to do. Plus, with the shadcn MCP server available, AI agents can directly add and modify components in your project—making UI development faster and more intuitive than ever.
shadcn/ui supports two UI primitive libraries:
To use Base-UI instead:
Both produce the same visual output. The difference is the underlying accessibility primitives.
Since you own the code, modify components directly:
// Add custom variants to match your needs
const buttonVariants = cva(
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-all",
{
variants: {
variant: {
default: "bg-primary text-primary-foreground hover:bg-primary/90",
destructive: "bg-destructive text-white hover:bg-destructive/90",
outline: "border bg-background hover:bg-accent",
secondary:
"bg-secondary text-secondary-foreground hover:bg-secondary/80",
ghost: "hover:bg-accent hover:text-accent-foreground",
link: "text-primary underline-offset-4 hover:underline",
// Add your own
brand: "bg-orange-500 text-white hover:bg-orange-600",
},
// ...
},
}
)Ensure your CSS variables match the example above. shadcn components rely on variables like --background, --foreground, --primary, etc.
Cmd/Ctrl + Shift + P > "TypeScript: Restart TS Server"tsconfig.json:{
"compilerOptions": {
"paths": {
"@/*": ["./*"]
}
}
}globals.css is imported in your root layoutcontent paths in your Tailwind config