Generate feedback colors (success, warning, error, and info) for shadcn/ui

Go to generator

10000+Themes for shadcn/ui

Dad for shadcn/ui

Dad is a shadcn/ui theme built around a muted deep purple primary color (#2c1f2d) with muted deep teal accents (#1f2d2c). The light mode uses a neutral background (#fefbfe). Dark mode keeps the muted deep purple primary (#2c1f2d) on a neutral background (#000000).

Color palette

TokenLightDark
Background
#fefbfewhite
#000000black
Foreground
#040104black
#fdfcfdwhite
Card
#fefbfewhite
#000000black
Card foreground
#040104black
#fdfcfdwhite
Popover
#fefbfewhite
#000000black
Popover foreground
#040104black
#fdfcfdwhite
Primary
#2c1f2ddarkslategray
#2c1f2ddarkslategray
Primary foreground
#c9b4cbsilver
#c9b4cbsilver
Secondary
#2d2c1fdarkslategray
#2d2c1fdarkslategray
Secondary foreground
#cbc9b4silver
#cbc9b4silver
Muted
#e8e8e3gainsboro
#1c1c17black
Muted foreground
#474639darkslategray
#c6c5b8silver
Accent
#1f2d2cdarkslategray
#1f2d2cdarkslategray
Accent foreground
#b4cbc9silver
#b4cbc9silver
Destructive
#7d1907maroon
#f4593etomato
Destructive foreground
#fbc5bclightpink
#000000black
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#2c1f2ddarkslategray
#2c1f2ddarkslategray

Contrast

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

Light mode
Text on background20.22:1AAA
Text on card20.22:1AAA
Primary button8.07:1AAA
Secondary button8.39:1AAA
Muted text7.73:1AAA
Accent8.36:1AAA
Destructive6.84:1AA
Dark mode
Text on background20.51:1AAA
Text on card20.51:1AAA
Primary button8.07:1AAA
Secondary button8.39:1AAA
Muted text9.85:1AAA
Accent8.36:1AAA
Destructive6.35:1AA

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(0.991 0.004 323.657);
  --foreground: oklch(0.085 0.023 325.573);
  --muted: oklch(0.929 0.006 103.221);
  --muted-foreground: oklch(0.39 0.021 103.971);
  --popover: oklch(0.991 0.004 323.657);
  --popover-foreground: oklch(0.085 0.023 325.573);
  --card: oklch(0.991 0.004 323.657);
  --card-foreground: oklch(0.085 0.023 325.573);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.262 0.031 324.221);
  --primary-foreground: oklch(0.794 0.04 323.891);
  --secondary: oklch(0.291 0.022 104.279);
  --secondary-foreground: oklch(0.832 0.029 103.675);
  --accent: oklch(0.285 0.019 191.037);
  --accent-foreground: oklch(0.824 0.025 191.795);
  --destructive: oklch(0.387 0.138 32.187);
  --destructive-foreground: oklch(0.869 0.064 29.908);
  --ring: oklch(0.262 0.031 324.221);
  --chart-1: oklch(0.262 0.031 324.221);
  --chart-2: oklch(0.291 0.022 104.279);
  --chart-3: oklch(0.285 0.019 191.037);
  --chart-4: oklch(0.326 0.026 104.321);
  --chart-5: oklch(0.261 0.036 324.31);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0 0 0);
  --foreground: oklch(0.991 0.003 323.652);
  --muted: oklch(0.224 0.009 103.753);
  --muted-foreground: oklch(0.822 0.018 103.467);
  --popover: oklch(0 0 0);
  --popover-foreground: oklch(0.991 0.003 323.652);
  --card: oklch(0 0 0);
  --card-foreground: oklch(0.991 0.003 323.652);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.262 0.031 324.221);
  --primary-foreground: oklch(0.794 0.04 323.891);
  --secondary: oklch(0.291 0.022 104.279);
  --secondary-foreground: oklch(0.832 0.029 103.675);
  --accent: oklch(0.285 0.019 191.037);
  --accent-foreground: oklch(0.824 0.025 191.795);
  --destructive: oklch(0.666 0.194 32.275);
  --destructive-foreground: oklch(0 0 0);
  --ring: oklch(0.262 0.031 324.221);
  --chart-1: oklch(0.262 0.031 324.221);
  --chart-2: oklch(0.291 0.022 104.279);
  --chart-3: oklch(0.285 0.019 191.037);
  --chart-4: oklch(0.326 0.026 104.321);
  --chart-5: oklch(0.261 0.036 324.31);
}