shadcnthemes
All themes

Sage Meadow

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

Sans
Quicksand
Serif
Libre Baskerville
Mono
JetBrains Mono
Radius
0.8rem
Create project
Deploy your new project in one click.
Visitors
January – June
+12.5%
Buttons
Typography
The theme's three font families.
Sans · Quicksand
The quick brown fox
Serif · Libre Baskerville
jumps over the lazy dog.
Mono · JetBrains 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.9747 0.0086 84.57);
  --foreground: oklch(0.3247 0.0226 57.36);
  --card: oklch(0.9873 0.0043 84.56);
  --card-foreground: oklch(0.3247 0.0226 57.36);
  --popover: oklch(0.9747 0.0086 84.57);
  --popover-foreground: oklch(0.3247 0.0226 57.36);
  --primary: oklch(0.6136 0.0937 156.61);
  --primary-foreground: oklch(0.9873 0.0043 84.56);
  --secondary: oklch(0.609 0.126 221.72);
  --secondary-foreground: oklch(0.3787 0.0406 56.68);
  --muted: oklch(0.9293 0.0098 84.58);
  --muted-foreground: oklch(0.5576 0.0222 57.81);
  --accent: oklch(0.9163 0.0298 39.34);
  --accent-foreground: oklch(0.4201 0.1025 38.68);
  --destructive: oklch(0.5903 0.161 23.41);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.8944 0.0209 76.53);
  --input: oklch(0.9298 0.0138 76.58);
  --ring: oklch(0.6136 0.0937 156.61);
  --chart-1: oklch(0.6756 0.1165 155.84);
  --chart-2: oklch(0.737 0.0611 230.25);
  --chart-3: oklch(0.8486 0.0797 75.67);
  --chart-4: oklch(0.7415 0.0795 31.64);
  --chart-5: oklch(0.8632 0.0296 173.55);
  --sidebar: oklch(0.9569 0.006 160.86);
  --sidebar-foreground: oklch(0.3993 0.0494 157.63);
  --sidebar-primary: oklch(0.6136 0.0937 156.61);
  --sidebar-primary-foreground: oklch(0.9873 0.0043 84.56);
  --sidebar-accent: oklch(0.9153 0.0162 160.59);
  --sidebar-accent-foreground: oklch(0.4601 0.0675 156.84);
  --sidebar-border: oklch(0.8939 0.0203 160.47);
  --sidebar-ring: oklch(0.6136 0.0937 156.61);
  --font-sans: Quicksand, Inter, sans-serif;
  --font-serif: Libre Baskerville, Georgia, serif;
  --font-mono: JetBrains Mono, monospace;
  --radius: 0.8rem;
  --spacing: 0.25rem;
  --tracking-normal: 0.01em;
  --shadow-color: oklch(0.3277 0.0337 56.77);
  --shadow-opacity: 0.2;
  --shadow-blur: 22px;
  --shadow-spread: -18.5px;
  --shadow-offset-x: 2px;
  --shadow-offset-y: 13px;
  --shadow-2xs: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.10);
  --shadow-xs: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.10);
  --shadow-sm: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.20), 2px 1px 2px -19.5px hsl(25 30% 20% / 0.20);
  --shadow: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.20), 2px 1px 2px -19.5px hsl(25 30% 20% / 0.20);
  --shadow-md: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.20), 2px 2px 4px -19.5px hsl(25 30% 20% / 0.20);
  --shadow-lg: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.20), 2px 4px 6px -19.5px hsl(25 30% 20% / 0.20);
  --shadow-xl: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.20), 2px 8px 10px -19.5px hsl(25 30% 20% / 0.20);
  --shadow-2xl: 2px 13px 22px -18.5px hsl(25 30% 20% / 0.50);
}

.dark {
  --background: oklch(0.2263 0.0214 264.01);
  --foreground: oklch(0.9459 0.0117 84.58);
  --card: oklch(0.2561 0.0259 263.95);
  --card-foreground: oklch(0.9459 0.0117 84.58);
  --popover: oklch(0.2263 0.0214 264.01);
  --popover-foreground: oklch(0.9459 0.0117 84.58);
  --primary: oklch(0.6289 0.0949 164.11);
  --primary-foreground: oklch(0.2059 0.0182 264.05);
  --secondary: oklch(0.3645 0.0277 248.59);
  --secondary-foreground: oklch(0.9323 0.0147 84.58);
  --muted: oklch(0.3071 0.0264 264.07);
  --muted-foreground: oklch(0.7558 0.022 256.75);
  --accent: oklch(0.4112 0.0452 182.08);
  --accent-foreground: oklch(0.9344 0.0166 184.98);
  --destructive: oklch(0.5181 0.1747 25.76);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.3537 0.0319 264.04);
  --input: oklch(0.3071 0.0264 264.07);
  --ring: oklch(0.6289 0.0949 164.11);
  --chart-1: oklch(0.722 0.1054 164.36);
  --chart-2: oklch(0.6752 0.0929 212.98);
  --chart-3: oklch(0.7709 0.1009 91.48);
  --chart-4: oklch(0.713 0.097 39.19);
  --chart-5: oklch(0.7203 0.0677 299.96);
  --sidebar: oklch(0.2042 0.0219 263.9);
  --sidebar-foreground: oklch(0.8784 0.0141 256.71);
  --sidebar-primary: oklch(0.6289 0.0949 164.11);
  --sidebar-primary-foreground: oklch(0.2059 0.0182 264.05);
  --sidebar-accent: oklch(0.292 0.0224 256.82);
  --sidebar-accent-foreground: oklch(0.9459 0.0117 84.58);
  --sidebar-border: oklch(0.2851 0.0303 263.91);
  --sidebar-ring: oklch(0.6289 0.0949 164.11);
  --font-sans: Quicksand, Inter, sans-serif;
  --font-serif: Libre Baskerville, Georgia, serif;
  --font-mono: JetBrains Mono, monospace;
  --radius: 0.8rem;
  --spacing: 0.25rem;
  --tracking-normal: 0.01em;
  --shadow-color: oklch(0.1495 0.0159 262.96);
  --shadow-opacity: 0.2;
  --shadow-blur: 22px;
  --shadow-spread: -18.5px;
  --shadow-offset-x: 2px;
  --shadow-offset-y: 13px;
  --shadow-2xs: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.10);
  --shadow-xs: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.10);
  --shadow-sm: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.20), 2px 1px 2px -19.5px hsl(220 39.9% 5% / 0.20);
  --shadow: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.20), 2px 1px 2px -19.5px hsl(220 39.9% 5% / 0.20);
  --shadow-md: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.20), 2px 2px 4px -19.5px hsl(220 39.9% 5% / 0.20);
  --shadow-lg: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.20), 2px 4px 6px -19.5px hsl(220 39.9% 5% / 0.20);
  --shadow-xl: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.20), 2px 8px 10px -19.5px hsl(220 39.9% 5% / 0.20);
  --shadow-2xl: 2px 13px 22px -18.5px hsl(220 39.9% 5% / 0.50);
}

@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