Search documentation
Search pages, components, blocks, styles and colours.
Install and configure Fabricator UI for Vite.
Choose the setup that matches your starting point.
Scaffold a new Vite project directly from the terminal.
Configure Fabricator UI manually in an existing Vite project.
Use the CLI
Create Project
Run the init command to scaffold a new Vite project. Follow the prompts to configure your project: base, preset, monorepo, and more.
For a monorepo project, use --monorepo flag:
To choose the base (base, radix or aria), use the -b flag. Base UI is the default.
Add Components
Add the Card component to your project:
If you created a monorepo, run the command from apps/web or specify the workspace from the repo root:
The command above will add the Card component to your project. You can then import it like this:
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card"
function App() {
return (
<Card className="max-w-sm">
<CardHeader>
<CardTitle>Project Overview</CardTitle>
<CardDescription>
Track progress and recent activity for your Vite app.
</CardDescription>
</CardHeader>
<CardContent>
Your design system is ready. Start building your next component.
</CardContent>
</Card>
)
}
export default AppIf you created a monorepo, update apps/web/src/App.tsx and import from @workspace/ui/components/card instead.
Existing Project
Create Project
If you need a new Vite project, create one first and select the React + TypeScript template. Otherwise, skip this step.
Add Tailwind CSS
If your project already has Tailwind CSS configured, skip this step.
Replace everything in src/index.css with the following:
@import "tailwindcss";Edit tsconfig.json file
If your project already has the @/* alias configured, skip this step.
Vite splits TypeScript configuration across multiple files. Add the baseUrl and paths properties to the compilerOptions section of tsconfig.json and tsconfig.app.json:
{
"files": [],
"references": [
{
"path": "./tsconfig.app.json"
},
{
"path": "./tsconfig.node.json"
}
],
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}Edit tsconfig.app.json file
Add the same alias to tsconfig.app.json so your editor can resolve imports:
{
"compilerOptions": {
// ...
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
}
// ...
}
}Update vite.config.ts
Install @types/node and update vite.config.ts so Vite can resolve the @ alias:
import path from "path"
import tailwindcss from "@tailwindcss/vite"
import react from "@vitejs/plugin-react"
import { defineConfig } from "vite"
// https://vite.dev/config/
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
})Run the CLI
Run the init command to set up Fabricator UI in your project.
If the project already has components installed, init asks whether to add the @fabricator registry only, or to also apply the Fabricator theme. See Registry.
Add Components
You can now start adding components to your project.
The command above will add the Button component to your project. You can then import it like this:
import { Button } from "@/components/ui/button"
function App() {
return (
<div className="flex min-h-svh flex-col items-center justify-center">
<Button>Click me</Button>
</div>
)
}
export default App