Vercel 3purple
All themes
CF - 3
CF - 3 is a purple shadcn/ui theme with pill corners and sans-serif typography, in light and dark modes.
- Sans
- Public Sans
- Serif
- System
- Mono
- System
- Radius
- 1rem
Heads up!
You can add components to your app using the CLI.
Payment failed
Please update your billing details.
Colors
Click any swatch to copy its OKLCH value.
Base
Brand
Lines
Charts
Sidebar
StatusOptional, generated to match
Use this theme
Install it with the shadcn CLI, paste the CSS, or export tokens for your design tool.
Paste into app/globals.css, replacing the existing :root and .dark blocks.
:root {
--background: oklch(0.9816 0.0017 247.84);
--foreground: oklch(0.1649 0.0352 281.83);
--card: oklch(1 0 0);
--card-foreground: oklch(0.1649 0.0352 281.83);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.1649 0.0352 281.83);
--primary: oklch(0.648 0.31 319.88);
--primary-foreground: oklch(1 0 0);
--secondary: oklch(0.9595 0.02 286.02);
--secondary-foreground: oklch(0.1649 0.0352 281.83);
--muted: oklch(0.9595 0.02 286.02);
--muted-foreground: oklch(0.1649 0.0352 281.83);
--accent: oklch(0.924 0.054 94.45);
--accent-foreground: oklch(0.1649 0.0352 281.83);
--destructive: oklch(0.6535 0.2348 34.04);
--destructive-foreground: oklch(1 0 0);
--border: oklch(0.9205 0.0086 225.09);
--input: oklch(0.9205 0.0086 225.09);
--ring: oklch(0.758 0.104 56.22);
--chart-1: oklch(0.703 0.264 321.26);
--chart-2: oklch(0.593 0.238 288.58);
--chart-3: oklch(0.788 0.131 231.95);
--chart-4: oklch(0.866 0.166 94.02);
--chart-5: oklch(0.771 0.158 56.53);
--sidebar: oklch(0.982 0.002 247.84);
--sidebar-foreground: oklch(0.1649 0.0352 281.83);
--sidebar-primary: oklch(0.648 0.31 319.88);
--sidebar-primary-foreground: oklch(1 0 0);
--sidebar-accent: oklch(0.924 0.054 94.45);
--sidebar-accent-foreground: oklch(0.1649 0.0352 281.83);
--sidebar-border: oklch(0.92 0.009 225.09);
--sidebar-ring: oklch(0.648 0.31 319.88);
--font-sans: 'Public Sans', system-ui, -apple-system, sans-serif;
--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--radius: 1rem;
--spacing: 0.25rem;
--tracking-normal: 0em;
--shadow-color: oklch(0 0 0);
--shadow-opacity: 0.1;
--shadow-blur: 3px;
--shadow-spread: 0px;
--shadow-offset-x: 0px;
--shadow-offset-y: 1px;
--shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05);
--shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05);
--shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10);
--shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10);
--shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 2px 4px -1px hsl(0 0% 0% / 0.10);
--shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 4px 6px -1px hsl(0 0% 0% / 0.10);
--shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 8px 10px -1px hsl(0 0% 0% / 0.10);
--shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.25);
}
.dark {
--background: oklch(0.1649 0.0352 281.83);
--foreground: oklch(0.9513 0.0074 260.73);
--card: oklch(0.2542 0.0611 281.14);
--card-foreground: oklch(0.9513 0.0074 260.73);
--popover: oklch(0.2542 0.0611 281.14);
--popover-foreground: oklch(0.9513 0.0074 260.73);
--primary: oklch(0.6726 0.2904 341.41);
--primary-foreground: oklch(1 0 0);
--secondary: oklch(0.2542 0.0611 281.14);
--secondary-foreground: oklch(0.9513 0.0074 260.73);
--muted: oklch(0.2123 0.0522 280.99);
--muted-foreground: oklch(0.6245 0.05 278.1);
--accent: oklch(0.8903 0.1739 171.27);
--accent-foreground: oklch(0.1649 0.0352 281.83);
--destructive: oklch(0.6535 0.2348 34.04);
--destructive-foreground: oklch(1 0 0);
--border: oklch(0.3279 0.0832 280.79);
--input: oklch(0.3279 0.0832 280.79);
--ring: oklch(0.6726 0.2904 341.41);
--chart-1: oklch(0.6726 0.2904 341.41);
--chart-2: oklch(0.5488 0.2944 299.1);
--chart-3: oklch(0.8442 0.1457 209.29);
--chart-4: oklch(0.8903 0.1739 171.27);
--chart-5: oklch(0.9168 0.1915 101.41);
--sidebar: oklch(0.1649 0.0352 281.83);
--sidebar-foreground: oklch(0.9513 0.0074 260.73);
--sidebar-primary: oklch(0.6726 0.2904 341.41);
--sidebar-primary-foreground: oklch(1 0 0);
--sidebar-accent: oklch(0.8903 0.1739 171.27);
--sidebar-accent-foreground: oklch(0.1649 0.0352 281.83);
--sidebar-border: oklch(0.3279 0.0832 280.79);
--sidebar-ring: oklch(0.6726 0.2904 341.41);
--font-sans: 'Public Sans', system-ui, -apple-system, sans-serif;
--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--radius: 1rem;
--spacing: 0.25rem;
--tracking-normal: 0em;
--shadow-color: oklch(0 0 0);
--shadow-opacity: 0.1;
--shadow-blur: 3px;
--shadow-spread: 0px;
--shadow-offset-x: 0px;
--shadow-offset-y: 1px;
--shadow-2xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05);
--shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.05);
--shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10);
--shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 1px 2px -1px hsl(0 0% 0% / 0.10);
--shadow-md: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 2px 4px -1px hsl(0 0% 0% / 0.10);
--shadow-lg: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 4px 6px -1px hsl(0 0% 0% / 0.10);
--shadow-xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.10), 0px 8px 10px -1px hsl(0 0% 0% / 0.10);
--shadow-2xl: 0px 1px 3px 0px hsl(0 0% 0% / 0.25);
}
@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);
--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);
--font-sans: var(--font-sans);
--font-mono: var(--font-mono);
--font-serif: var(--font-serif);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--shadow-2xs: var(--shadow-2xs);
--shadow-xs: var(--shadow-xs);
--shadow-sm: var(--shadow-sm);
--shadow: var(--shadow);
--shadow-md: var(--shadow-md);
--shadow-lg: var(--shadow-lg);
--shadow-xl: var(--shadow-xl);
--shadow-2xl: var(--shadow-2xl);
--tracking-tighter: calc(var(--tracking-normal) - 0.05em);
--tracking-tight: calc(var(--tracking-normal) - 0.025em);
--tracking-normal: var(--tracking-normal);
--tracking-wide: calc(var(--tracking-normal) + 0.025em);
--tracking-wider: calc(var(--tracking-normal) + 0.05em);
--tracking-widest: calc(var(--tracking-normal) + 0.1em);
}
@layer base {
body {
letter-spacing: var(--tracking-normal);
}
}