Post Apocalyptic Cloud Ape for shadcn/ui

Post Apocalyptic Cloud Ape is a shadcn/ui theme built around a muted light blue primary color (#c7ccd6) with muted blue accents (#49515f). The light mode uses a blue-tinted background (#282c34). Dark mode keeps the muted light blue primary (#c7ccd6) on a blue-tinted background (#282c34).

Color palette

TokenLightDark
Background
#282c34darkslategray
#282c34darkslategray
Foreground
#abb2bfdarkgray
#abb2bfdarkgray
Card
#23272edarkslategray
#23272edarkslategray
Card foreground
#b9bfcasilver
#b9bfcasilver
Popover
#21252bdarkslategray
#21252bdarkslategray
Popover foreground
#c8cdd5lightgrey
#c8cdd5lightgrey
Primary
#c7ccd6lightgrey
#c7ccd6lightgrey
Primary foreground
#2e333edarkslategray
#2e333edarkslategray
Secondary
#3d3f43darkslategray
#3d3f43darkslategray
Secondary foreground
#d7d8dbgainsboro
#d7d8dbgainsboro
Muted
#31363fdarkslategray
#31363fdarkslategray
Muted foreground
#afb5c0silver
#afb5c0silver
Accent
#49515fdarkslategray
#49515fdarkslategray
Accent foreground
#ebeceflavender
#ebeceflavender
Destructive
#dd1d13crimson
#dd1d13crimson
Destructive foreground
#ffffffwhite
#ffffffwhite
Border
#393a3cdarkslategray
#393a3cdarkslategray
Input
#404244darkslategray
#404244darkslategray
Ring
#c7ccd6lightgrey
#c7ccd6lightgrey

Contrast

WCAG 2 contrast ratios between each background and its foreground color.

Light mode
Text on background6.57:1AA
Text on card8.10:1AAA
Primary button7.86:1AAA
Secondary button7.43:1AAA
Muted text5.89:1AA
Accent6.80:1AA
Destructive4.94:1AA
Dark mode
Text on background6.57:1AA
Text on card8.10:1AAA
Primary button7.86:1AAA
Secondary button7.43:1AAA
Muted text5.89:1AA
Accent6.80:1AA
Destructive4.94:1AA

CSS variables

Paste this into your globals.css to use Post Apocalyptic Cloud Ape in your shadcn/ui project.

:root {
  --radius: 0.5rem;
  --background: oklch(0.292 0.016 264.298);
  --foreground: oklch(0.762 0.021 262.984);
  --muted: oklch(0.332 0.017 264.31);
  --muted-foreground: oklch(0.771 0.017 264.466);
  --popover: oklch(0.262 0.013 264.313);
  --popover-foreground: oklch(0.846 0.013 263.02);
  --card: oklch(0.272 0.014 264.308);
  --card-foreground: oklch(0.804 0.017 263.005);
  --border: oklch(0.348 0.004 264.509);
  --input: oklch(0.377 0.005 264.508);
  --primary: oklch(0.845 0.014 264.49);
  --primary-foreground: oklch(0.32 0.021 264.227);
  --secondary: oklch(0.366 0.008 264.472);
  --secondary-foreground: oklch(0.882 0.004 264.538);
  --accent: oklch(0.432 0.026 264.255);
  --accent-foreground: oklch(0.944 0.004 264.536);
  --destructive: oklch(0.572 0.222 29.349);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.845 0.014 264.49);
  --chart-1: oklch(0.845 0.014 264.49);
  --chart-2: oklch(0.366 0.008 264.472);
  --chart-3: oklch(0.432 0.026 264.255);
  --chart-4: oklch(0.394 0.009 264.47);
  --chart-5: oklch(0.843 0.017 264.475);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0.292 0.016 264.298);
  --foreground: oklch(0.762 0.021 262.984);
  --muted: oklch(0.332 0.017 264.31);
  --muted-foreground: oklch(0.771 0.017 264.466);
  --popover: oklch(0.262 0.013 264.313);
  --popover-foreground: oklch(0.846 0.013 263.02);
  --card: oklch(0.272 0.014 264.308);
  --card-foreground: oklch(0.804 0.017 263.005);
  --border: oklch(0.348 0.004 264.509);
  --input: oklch(0.377 0.005 264.508);
  --primary: oklch(0.845 0.014 264.49);
  --primary-foreground: oklch(0.32 0.021 264.227);
  --secondary: oklch(0.366 0.008 264.472);
  --secondary-foreground: oklch(0.882 0.004 264.538);
  --accent: oklch(0.432 0.026 264.255);
  --accent-foreground: oklch(0.944 0.004 264.536);
  --destructive: oklch(0.572 0.222 29.349);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.845 0.014 264.49);
  --chart-1: oklch(0.845 0.014 264.49);
  --chart-2: oklch(0.366 0.008 264.472);
  --chart-3: oklch(0.432 0.026 264.255);
  --chart-4: oklch(0.394 0.009 264.47);
  --chart-5: oklch(0.843 0.017 264.475);
}