Pricey for shadcn/ui

Pricey is a shadcn/ui theme built around a muted red primary color (#89525b) with muted blue accents (#525b89). The light mode uses a neutral background (#fefbfb). Dark mode keeps the muted red primary (#89525b) on a neutral background (#070304).

Color palette

TokenLightDark
Background
#fefbfbsnow
#070304black
Foreground
#080203black
#fdfcfcsnow
Card
#fefbfbsnow
#070304black
Card foreground
#080203black
#fdfcfcsnow
Popover
#fefbfbsnow
#070304black
Popover foreground
#080203black
#fdfcfcsnow
Primary
#89525bdimgray
#89525bdimgray
Primary foreground
#ffffffwhite
#ffffffwhite
Secondary
#5b8952dimgray
#5b8952dimgray
Secondary foreground
#ffffffwhite
#ffffffwhite
Muted
#e7e9e7lavender
#161816black
Muted foreground
#43553fdarkslategray
#aec0aadarkgray
Accent
#525b89darkslateblue
#525b89darkslateblue
Accent foreground
#ffffffwhite
#ffffffwhite
Destructive
#c81104firebrick
#fb3628orangered
Destructive foreground
#ffffffwhite
#ffffffwhite
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#89525bdimgray
#89525bdimgray

Contrast

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

Light mode
Text on background19.97:1AAA
Text on card19.97:1AAA
Primary button6.12:1AA
Secondary button4.07:1AA Large
Muted text6.60:1AA
Accent6.49:1AA
Destructive5.93:1AA
Dark mode
Text on background20.00:1AAA
Text on card20.00:1AAA
Primary button6.12:1AA
Secondary button4.07:1AA Large
Muted text9.27:1AAA
Accent6.49:1AA
Destructive3.71:1AA Large

CSS variables

Paste this into your globals.css to use Pricey in your shadcn/ui project.

:root {
  --radius: 0.5rem;
  --background: oklch(0.99 0.004 5.546);
  --foreground: oklch(0.104 0.02 6.09);
  --muted: oklch(0.933 0.004 140.525);
  --muted-foreground: oklch(0.427 0.043 140.388);
  --popover: oklch(0.99 0.004 5.546);
  --popover-foreground: oklch(0.104 0.02 6.09);
  --card: oklch(0.99 0.004 5.546);
  --card-foreground: oklch(0.104 0.02 6.09);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.505 0.074 9.264);
  --primary-foreground: oklch(1 0 180);
  --secondary: oklch(0.583 0.095 140.34);
  --secondary-foreground: oklch(1 0 180);
  --accent: oklch(0.485 0.074 274.649);
  --accent-foreground: oklch(1 0 180);
  --destructive: oklch(0.528 0.21 29.833);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.505 0.074 9.264);
  --chart-1: oklch(0.505 0.074 9.264);
  --chart-2: oklch(0.583 0.095 140.34);
  --chart-3: oklch(0.485 0.074 274.649);
  --chart-4: oklch(0.612 0.101 140.339);
  --chart-5: oklch(0.503 0.083 9.798);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0.109 0.01 5.753);
  --foreground: oklch(0.992 0.001 5.481);
  --muted: oklch(0.206 0.005 140.491);
  --muted-foreground: oklch(0.788 0.037 140.46);
  --popover: oklch(0.109 0.01 5.753);
  --popover-foreground: oklch(0.992 0.001 5.481);
  --card: oklch(0.109 0.01 5.753);
  --card-foreground: oklch(0.992 0.001 5.481);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.505 0.074 9.264);
  --primary-foreground: oklch(1 0 180);
  --secondary: oklch(0.583 0.095 140.34);
  --secondary-foreground: oklch(1 0 180);
  --accent: oklch(0.485 0.074 274.649);
  --accent-foreground: oklch(1 0 180);
  --destructive: oklch(0.642 0.232 29.333);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.505 0.074 9.264);
  --chart-1: oklch(0.505 0.074 9.264);
  --chart-2: oklch(0.583 0.095 140.34);
  --chart-3: oklch(0.485 0.074 274.649);
  --chart-4: oklch(0.612 0.101 140.339);
  --chart-5: oklch(0.503 0.083 9.798);
}