General Resources, guides, and helpful links.
Blocks Larger composed sections for building pages.
Components Copy and paste UI components into your apps.
Animations Beautiful animations and effects for your UI.
Add dependencies to your project manually.
Copy {
"compilerOptions" : {
"baseUrl" : "." ,
"paths" : {
"@/*" : [ "./*" ]
}
}
} The @ alias is a preference. You can use other aliases if you want.
Add the following to your styles/globals.css file. You can learn more about using CSS variables for theming in the theming section .
Add a cn helper lib/utils.tsCopy import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"
export function cn ( ... inputs : ClassValue []) {
return twMerge ( clsx (inputs))
}
Create a components.json file Create a components.json file in the root of your project.
components.jsonCopy {
"$schema" : "https://ui.pitsi.com/schema.json" ,
"style" : "new-york" ,
"rsc" : false ,
"tsx" : true ,
"tailwind" : {
"config" : "" ,
"css" : "src/styles/globals.css" ,
"baseColor" : "neutral" ,
"cssVariables" : true ,
"prefix" : ""
},
"aliases"
That's it You can now start adding components to your project.
--popover : oklch ( 1 0 0 );
--popover-foreground : oklch ( 0.145 0 0 );
--primary : oklch ( 0.205 0 0 );
--primary-foreground : oklch ( 0.985 0 0 );
--secondary : oklch ( 0.97 0 0 );
--secondary-foreground : oklch ( 0.205 0 0 );
--muted : oklch ( 0.97 0 0 );
--muted-foreground : oklch ( 0.556 0 0 );
--accent : oklch ( 0.97 0 0 );
--accent-foreground : oklch ( 0.205 0 0 );
--destructive : oklch ( 0.577 0.245 27.325 );
--destructive-foreground : oklch ( 0.577 0.245 27.325 );
--border : oklch ( 0.922 0 0 );
--input : oklch ( 0.922 0 0 );
--ring : oklch ( 0.708 0 0 );
--chart-1 : oklch ( 0.646 0.222 41.116 );
--chart-2 : oklch ( 0.6 0.118 184.704 );
--chart-3 : oklch ( 0.398 0.07 227.392 );
--chart-4 : oklch ( 0.828 0.189 84.429 );
--chart-5 : oklch ( 0.769 0.188 70.08 );
--radius : 0.625 rem ;
--sidebar : oklch ( 0.985 0 0 );
--sidebar-foreground : oklch ( 0.145 0 0 );
--sidebar-primary : oklch ( 0.205 0 0 );
--sidebar-primary-foreground : oklch ( 0.985 0 0 );
--sidebar-accent : oklch ( 0.97 0 0 );
--sidebar-accent-foreground : oklch ( 0.205 0 0 );
--sidebar-border : oklch ( 0.922 0 0 );
--sidebar-ring : oklch ( 0.708 0 0 );
}
.dark {
--background : oklch ( 0.145 0 0 );
--foreground : oklch ( 0.985 0 0 );
--card : oklch ( 0.145 0 0 );
--card-foreground : oklch ( 0.985 0 0 );
--popover : oklch ( 0.145 0 0 );
--popover-foreground : oklch ( 0.985 0 0 );
--primary : oklch ( 0.985 0 0 );
--primary-foreground : oklch ( 0.205 0 0 );
--secondary : oklch ( 0.269 0 0 );
--secondary-foreground : oklch ( 0.985 0 0 );
--muted : oklch ( 0.269 0 0 );
--muted-foreground : oklch ( 0.708 0 0 );
--accent : oklch ( 0.269 0 0 );
--accent-foreground : oklch ( 0.985 0 0 );
--destructive : oklch ( 0.396 0.141 25.723 );
--destructive-foreground : oklch ( 0.637 0.237 25.331 );
--border : oklch ( 0.269 0 0 );
--input : oklch ( 0.269 0 0 );
--ring : oklch ( 0.439 0 0 );
--chart-1 : oklch ( 0.488 0.243 264.376 );
--chart-2 : oklch ( 0.696 0.17 162.48 );
--chart-3 : oklch ( 0.769 0.188 70.08 );
--chart-4 : oklch ( 0.627 0.265 303.9 );
--chart-5 : oklch ( 0.645 0.246 16.439 );
--sidebar : oklch ( 0.205 0 0 );
--sidebar-foreground : oklch ( 0.985 0 0 );
--sidebar-primary : oklch ( 0.488 0.243 264.376 );
--sidebar-primary-foreground : oklch ( 0.985 0 0 );
--sidebar-accent : oklch ( 0.269 0 0 );
--sidebar-accent-foreground : oklch ( 0.985 0 0 );
--sidebar-border : oklch ( 0.269 0 0 );
--sidebar-ring : oklch ( 0.439 0 0 );
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
}
@layer base {
* {
@ apply border-border outline-ring /50;
}
body {
@ apply bg-background text-foreground ;
}
}
: {
"components" : "@/components" ,
"utils" : "@/lib/utils" ,
"ui" : "@/components/ui" ,
"lib" : "@/lib" ,
"hooks" : "@/hooks"
},
"iconLibrary" : "lucide"
}