A design system for Next.js.Built on shadcn, yours to change.
Tokens with tested contrast, accessible components and complete example apps. You install them with the shadcn CLI, and the code is yours.
$ pnpm dlx shadcn@latest add https://prfct.dev/r/prfct.jsonFeatures
Components that agree with each other
One radius, one spacing scale and one set of states, across every component.
Contrast you don't have to check
Every scale is generated, and its text steps are tested against WCAG AA on the fills they sit on, in light and dark.
Type with roles
Each role sets size, line height, weight and tracking together.
- Display
- Heading
- Body
- Label
- Code
Usable without a mouse
Keyboard support, focus management and ARIA come with every component.
One theme, any brand
Pick a color in the theme builder. Every component follows it.
Code you own
The shadcn CLI copies components into your project. Read them, change them, delete what you don't need.
$ shadcn add button ✔ components/ui/button.tsx ✔ components/ui/spinner.tsx ✔ components/ui/locale.tsx ✔ lib/utils.ts
From an empty folder to a first screen
- 01
Start a project
Create a Next.js app with shadcn. In an app you already have, leave out --template next.
$ pnpm dlx shadcn@latest init --template next --base base --preset nova - 02
Add the theme
Tokens, base styles and font faces arrive as files in your project. The guide shows the stylesheet import and the two font files to download.
$ pnpm dlx shadcn@latest add https://prfct.dev/r/prfct.json - 03
Add what you need
A single component or a whole example app. Each one brings what it depends on.
$ pnpm dlx shadcn@latest add https://prfct.dev/r/dashboard.json
Questions people ask before they install
Install the theme. Build your first screen today.
$ pnpm dlx shadcn@latest add https://prfct.dev/r/prfct.json