shadcnthemes
All themes

Green Dark

Green Dark is a green shadcn/ui theme with rounded corners and sans-serif typography, in light and dark modes.

Sans
System
Serif
Gentium Plus
Mono
Nova Mono
Radius
0.285rem
Create project
Deploy your new project in one click.
Visitors
January – June
+12.5%
Buttons
Typography
The theme's three font families.
Sans · System
The quick brown fox
Serif · Gentium Plus
jumps over the lazy dog.
Mono · Nova Mono
npx shadcn add button
Account
Notifications
Choose what you want to hear about.
Product updates
New features and releases
Security alerts
Sign-ins from new devices
Marketing
Tips, offers and news
Payment method
Team
Invite your teammates to collaborate.
SDJLINWK
OwnerEditorViewerSuspended
Storage7.2 of 10 GB
Volume64%
Invoices
InvoiceStatusAmount
INV001Paid$250.00
INV002Pending$150.00
INV003Unpaid$350.00
INV004Paid$450.00
FAQ

Yes. It adheres to the WAI-ARIA design pattern.

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.9911 0 0);
  --foreground: oklch(0.2101 0.0318 264.66);
  --card: oklch(0.7107 0.0351 256.79);
  --card-foreground: oklch(0 0 0);
  --popover: oklch(0.9911 0 0);
  --popover-foreground: oklch(0 0 0);
  --primary: oklch(0.8545 0.1675 159.66);
  --primary-foreground: oklch(0 0 0);
  --secondary: oklch(0.9683 0.0069 247.9);
  --secondary-foreground: oklch(0.1344 0 0);
  --muted: oklch(0.9702 0 0);
  --muted-foreground: oklch(0.5544 0.0407 257.42);
  --accent: oklch(0.2795 0.0368 260.03);
  --accent-foreground: oklch(0.6959 0.1491 162.48);
  --destructive: oklch(0.6665 0.2111 2.83);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.4455 0.0374 257.28);
  --input: oklch(0.9401 0 0);
  --ring: oklch(0.5109 0.0861 186.39);
  --chart-1: oklch(0.8545 0.1675 159.66);
  --chart-2: oklch(0.8979 0.1884 146.55);
  --chart-3: oklch(0.5106 0.2301 276.97);
  --chart-4: oklch(0.7507 0.1401 230.83);
  --chart-5: oklch(0.8257 0.1067 48.51);
  --sidebar: oklch(1 0 0);
  --sidebar-foreground: oklch(0 0 0);
  --sidebar-primary: oklch(0 0 0);
  --sidebar-primary-foreground: oklch(1 0 0);
  --sidebar-accent: oklch(0.9752 0.0307 168.39);
  --sidebar-accent-foreground: oklch(0 0 0);
  --sidebar-border: oklch(0.9401 0 0);
  --sidebar-ring: oklch(0 0 0);
  --font-sans: ui-sans-serif, system-ui, sans-serif;
  --font-serif: Gentium Plus, serif;
  --font-mono: Nova Mono, monospace;
  --radius: 0.285rem;
  --spacing: 0.27rem;
  --tracking-normal: 0em;
  --shadow-color: oklch(0 0 0);
  --shadow-opacity: 0.1;
  --shadow-blur: 4px;
  --shadow-spread: 2px;
  --shadow-offset-x: 0;
  --shadow-offset-y: 1px;
  --shadow-2xs: 0 1px 4px 2px hsl(0 0% 0% / 0.05);
  --shadow-xs: 0 1px 4px 2px hsl(0 0% 0% / 0.05);
  --shadow-sm: 0 1px 4px 2px hsl(0 0% 0% / 0.10), 0 1px 2px 1px hsl(0 0% 0% / 0.10);
  --shadow: 0 1px 4px 2px hsl(0 0% 0% / 0.10), 0 1px 2px 1px hsl(0 0% 0% / 0.10);
  --shadow-md: 0 1px 4px 2px hsl(0 0% 0% / 0.10), 0 2px 4px 1px hsl(0 0% 0% / 0.10);
  --shadow-lg: 0 1px 4px 2px hsl(0 0% 0% / 0.10), 0 4px 6px 1px hsl(0 0% 0% / 0.10);
  --shadow-xl: 0 1px 4px 2px hsl(0 0% 0% / 0.10), 0 8px 10px 1px hsl(0 0% 0% / 0.10);
  --shadow-2xl: 0 1px 4px 2px hsl(0 0% 0% / 0.25);
}

.dark {
  --background: oklch(0 0 0);
  --foreground: oklch(0.9551 0 0);
  --card: oklch(0.2101 0.0318 264.66);
  --card-foreground: oklch(0.9551 0 0);
  --popover: oklch(0.221 0.0015 197.05);
  --popover-foreground: oklch(0.9551 0 0);
  --primary: oklch(0.8545 0.1675 159.66);
  --primary-foreground: oklch(0 0 0);
  --secondary: oklch(0.2935 0.0632 243.16);
  --secondary-foreground: oklch(0.9551 0 0);
  --muted: oklch(0.2795 0.0368 260.03);
  --muted-foreground: oklch(0.709 0.1592 293.54);
  --accent: oklch(0.7729 0.1535 163.22);
  --accent-foreground: oklch(0.997 0 0);
  --destructive: oklch(0.7425 0.1696 1.08);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.7107 0.0351 256.79);
  --input: oklch(0.3717 0.0392 257.29);
  --ring: oklch(0.8545 0.1675 159.66);
  --chart-1: oklch(0.8545 0.1675 159.66);
  --chart-2: oklch(0.6002 0.1038 184.7);
  --chart-3: oklch(0.4568 0.2146 277.02);
  --chart-4: oklch(0.7535 0.139 232.66);
  --chart-5: oklch(0.2573 0.0861 281.29);
  --sidebar: oklch(0.1448 0 0);
  --sidebar-foreground: oklch(0.9551 0 0);
  --sidebar-primary: oklch(0.8545 0.1675 159.66);
  --sidebar-primary-foreground: oklch(1 0 0);
  --sidebar-accent: oklch(0.2824 0.0678 156.56);
  --sidebar-accent-foreground: oklch(0.8545 0.1675 159.66);
  --sidebar-border: oklch(0.3452 0.0098 241.94);
  --sidebar-ring: oklch(0.8545 0.1675 159.66);
  --font-sans: ui-sans-serif, system-ui, sans-serif;
  --font-serif: Gentium Plus, serif;
  --font-mono: Nova Mono, monospace;
  --radius: 0.285rem;
  --spacing: 0.27rem;
  --tracking-normal: 0em;
  --shadow-color: oklch(0.2621 0.0849 264.49);
  --shadow-opacity: 0.1;
  --shadow-blur: 4px;
  --shadow-spread: 1px;
  --shadow-offset-x: 0;
  --shadow-offset-y: 1px;
  --shadow-2xs: 0 1px 4px 1px hsl(223 67.4% 18% / 0.05);
  --shadow-xs: 0 1px 4px 1px hsl(223 67.4% 18% / 0.05);
  --shadow-sm: 0 1px 4px 1px hsl(223 67.4% 18% / 0.10), 0 1px 2px 0px hsl(223 67.4% 18% / 0.10);
  --shadow: 0 1px 4px 1px hsl(223 67.4% 18% / 0.10), 0 1px 2px 0px hsl(223 67.4% 18% / 0.10);
  --shadow-md: 0 1px 4px 1px hsl(223 67.4% 18% / 0.10), 0 2px 4px 0px hsl(223 67.4% 18% / 0.10);
  --shadow-lg: 0 1px 4px 1px hsl(223 67.4% 18% / 0.10), 0 4px 6px 0px hsl(223 67.4% 18% / 0.10);
  --shadow-xl: 0 1px 4px 1px hsl(223 67.4% 18% / 0.10), 0 8px 10px 0px hsl(223 67.4% 18% / 0.10);
  --shadow-2xl: 0 1px 4px 1px hsl(223 67.4% 18% / 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);
  }
}

Similar themes