Install the foundation
Start with `base`. It pulls in Geist fonts, OKLCH theme tokens, base CSS, and the `cn` utility. Nothing else is written to your project.
$ pnpm dlx shadcn@latest add https://acme-design-system-psi.vercel.app/r/base.json
Install primitives with the shadcn CLI, wire dark mode yourself, and use the shared token language across dashboards, forms, and marketing surfaces.
Start with `base`. It pulls in Geist fonts, OKLCH theme tokens, base CSS, and the `cn` utility. Nothing else is written to your project.
$ pnpm dlx shadcn@latest add https://acme-design-system-psi.vercel.app/r/base.jsonOptional but recommended. After this, install items by short name instead of full URLs.
$ pnpm dlx shadcn@latest registry add @acme=https://acme-design-system-psi.vercel.app/r/{name}.jsonInstall one component at a time, or use a bundle when you want a larger starter set.
$ pnpm dlx shadcn@latest add @acme/button$ pnpm dlx shadcn@latest add @acme/dialog$ pnpm dlx shadcn@latest add @acme/essentialsThe theme provider is not part of the registry. Use class-based dark mode so tokens match `@custom-variant dark`.
import { ThemeProvider } from 'next-themes'
export function AppShell({ children }: { children: React.ReactNode }) {
return (
<html lang="en" suppressHydrationWarning>
<body>
<ThemeProvider attribute="class" defaultTheme="light" disableTransitionOnChange>
{children}
</ThemeProvider>
</body>
</html>
)
}Prefer design-system utilities over raw CSS variables in product code.
className="bg-background text-foreground border-border-muted"
className="rounded-md shadow-frame-primary"
className="text-display text-page text-section text-lead"Base actions, inputs, badges, cards, loading
Inputs, selection controls, calendar, date picker
Dialog, sheet, drawer, menus, popover, tooltip
Tables, tabs, navigation, status, charts
Audio player, spinner, shimmering text
Base plus every primitive
Project files and brand assets are standalone items. Neither base nor all installs them.
DESIGN.md with principles, tokens, and usage guidance
AGENTS.md, oxlint, oxfmt, and .gitignore defaults
Acme logo component using the primary token
Light and dark SVG favicons