Vite
Set up Layout UI in a React + Vite project with Tailwind v4 and TypeScript.
New project
Create a Vite React app
npm create vite@latest my-app -- --template react-ts cd my-app npm installInstall Tailwind v4
npm install tailwindcss @tailwindcss/viteAdd the Tailwind Vite plugin to
vite.config.ts:import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; export default defineConfig({ plugins: [react(), tailwindcss()], });Replace the contents of
src/index.csswith:@import "tailwindcss";Add path aliases
Install
@types/nodeand configure the@alias in bothvite.config.tsandtsconfig.json:npm install -D @types/node// vite.config.ts import path from "path"; // ... export default defineConfig({ plugins: [react(), tailwindcss()], resolve: { alias: { "@": path.resolve(__dirname, "./src") }, }, });// tsconfig.json { "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } } }Initialise shadcn
npx shadcn@latest init -y -b base -p novaAdd the Layout registry
// components.json { "registries": { "@layout": "https://ui.layout.design/r/{name}.json" } }Install the theme and a component
npx shadcn add @layout/theme-layout npx shadcn add @layout/button