Installation
Add Venti UI to your Next.js project with the CLI scaffold or manually copy the components you need.
Quick scaffold
RecommendedThe fastest way to start is with the create-venti-app CLI. It scaffolds a full Next.js project with all components, the theme engine, and Tailwind CSS v4 pre-configured.
bash <(curl -s https://raw.githubusercontent.com/duckeydev/VentiUI/main/install.sh) my-app
Or run interactively to choose options:
bash <(curl -s https://raw.githubusercontent.com/duckeydev/VentiUI/main/install.sh)
- ✓Next.js + TypeScript + Tailwind CSS v4
- ✓65+ components in
components/ - ✓Utility library (
cn(), theme engine) inlib/ - ✓shadcn-style CSS variables with Coffee light/dark theme
Manual install
If you already have a project, install the required dependencies:
npm install framer-motion class-variance-authority clsx tailwind-merge @tabler/icons-react npm install -D tailwindcss @tailwindcss/postcss
Then copy the files you need from components/, lib/, and app/globals.css into your project.
Peer dependencies
These packages are required at runtime. The scaffold installs them automatically.
PostCSS & Tailwind
Venti UI uses Tailwind CSS v4 with the @tailwindcss/postcss plugin. Your postcss.config.mjs should look like this:
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config;The app/globals.css file imports Tailwind and defines CSS variable tokens for the Coffee theme. The scaffold creates this automatically.
@import "tailwindcss";
@custom-variant dark (&:is(.dark *));
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-primary: var(--primary);
/* ... all shadcn-style CSS variable tokens ... */
--radius-sm: calc(var(--radius) * 0.6);
--radius-md: calc(var(--radius) * 0.8);
--radius-lg: var(--radius);
}
:root {
/* Coffee light theme */
--background: oklch(0.995 0.008 80);
--primary: oklch(0.4 0.08 50);
/* ... */
}
.dark {
/* Coffee dark theme */
--background: oklch(0.14 0.015 50);
--primary: oklch(0.65 0.1 50);
/* ... */
}TypeScript setup
Components use the @/* import alias. Ensure yourtsconfig.json includes:
{
"compilerOptions": {
"paths": { "@/*": ["./*"] }
}
}Import components
All components are imported from @/components/<name>. Utility functions live in @/lib/.
Single importimport { Button } from "@/components/button";Multiple importsimport { Card, CardContent, CardHeader } from "@/components/card";
import { cn } from "@/lib/utils";With iconsimport { IconArrowRight } from "@tabler/icons-react";
import { Button } from "@/components/button";
export default function CTA() {
return (
<Button rightIcon={<IconArrowRight className="h-4 w-4" />}>
Continue
</Button>
);
}Next steps
Browse components
Explore the full catalog of 65+ components with live examples and code snippets.
Customize themes
Use the Theme Studio to tweak colors, radius, and export your design tokens.