This guide will help you get started with RetroUI.
RetroUI is a trusted registry for shadcn/ui components. Start building unique, playful interfaces with retro-brutalist design in minutes!
Add components directly from the RetroUI registry using the shadcn CLI:
pnpm dlx shadcn@latest add @retroui/buttonThis will automatically add the RetroUI registry to your components.json:
{
"registries": {
"@retroui": "https://retroui.dev/r/{name}.json"
}
}RetroUI uses bold, playful typography and vibrant colors. You can customize the fonts and colors to match your brand. Here's how to set it up:
We use Archivo Black for headings and Space Grotesk for body text:
import { Archivo_Black, Space_Grotesk } from "next/font/google";
const archivoBlack = Archivo_Black({
subsets: ["latin"],
weight: "400",
variable: "--font-head",
display: "swap",
});
const space = Space_Grotesk({
subsets: ["latin"],
weight: "400",
variable: "--font-sans",
display: "swap",
});
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body className={`${archivoBlack.variable} ${space.variable}`}>
{children}
</body>
</html>
);
}Add this RetroUI theme to your global.css:
@theme {
--font-head: var(--font-head);
--font-sans: var(--font-sans);
--radius: var(--radius);
--shadow-xs: 1px 1px 0 0 var(--border);
--shadow-sm: 2px 2px 0 0 var(--border);
--shadow: 3px 3px 0 0 var(--border);
--shadow-md: 4px 4px 0 0 var(--border);
--shadow-lg: 6px 6px 0 0 var(--border);
--shadow-xl: 10px 10px 0 1px var(--border);
--shadow-2xl: 16px 16px 0 1px var(--border);
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-primary-hover: var(--primary-hover);
--color-card: var(--card);
--color-card-foreground: var(--card-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);
}
:root {
--radius: 0;
--background: #fff;
--foreground: #000;
--card: #fff;
--card-foreground: #000;
--primary: #ffdb33;
--primary-hover: #ffcc00;
--primary-foreground: #000;
--secondary: #000;
--secondary-foreground: #fff;
--muted: #aeaeae;
--muted-foreground: #5a5a5a;
--accent: #fae583;
--accent-foreground: #000;
--destructive: #e63946;
--destructive-foreground: #fff;
--border: #000;
--input: #fff;
}Looking for more color schemes? Check out our other /themes for a collection of pre-made RetroUI themes.
To install any component from RetroUI, use the following command:
pnpm dlx shadcn@latest add @retroui/[component]Examples:
pnpm dlx shadcn@latest add @retroui/card
# or
pnpm dlx shadcn@latest add @retroui/input
# or
pnpm dlx shadcn@latest add @retroui/dialogPreview components from the RetroUI registry before installing:
pnpm dlx shadcn@latest view @retrouiSearch for specific components across the registry:
pnpm dlx shadcn@latest search @retrouiSee the complete list of available components:
pnpm dlx shadcn@latest list @retrouiWorking in a monorepo? Specify the path to your workspace with the -c or --cwd option:
pnpm dlx shadcn@latest init -c ./apps/webOr when adding components:
pnpm dlx shadcn@latest add @retroui/button -c ./apps/webJoin our Community or reach out via Twitter/X or Email.
→ Discord Community
→ Twitter/X
→ Email
Last Updated: 30 May, 2025