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

Go to generator

10000+Themes for shadcn/ui

Pennant for shadcn/ui

Pennant is a shadcn/ui theme built around a light orange primary color (#f4c0af) with muted light orange accents (#d3c1bb). The light mode uses a neutral background (#ffffff). Dark mode keeps the light orange primary (#f4c0af) on a neutral background (#000000).

Color palette

TokenLightDark
Background
#ffffffwhite
#000000black
Foreground
#140905black
#f9f7f6whitesmoke
Card
#ffffffwhite
#000000black
Card foreground
#140905black
#f9f7f6whitesmoke
Popover
#ffffffwhite
#000000black
Popover foreground
#140905black
#f9f7f6whitesmoke
Primary
#f4c0aflightpink
#f4c0aflightpink
Primary foreground
#62230emaroon
#62230emaroon
Secondary
#ddd6d4gainsboro
#1a1919black
Secondary foreground
#473c38darkslategray
#b5b1b0darkgray
Muted
#f5edealinen
#150d0ablack
Muted foreground
#514a48darkslategray
#b7b0aedarkgray
Accent
#d3c1bbsilver
#302927darkslategray
Accent foreground
#382924darkslategray
#cac1besilver
Destructive
#851a0amaroon
#ee3317orangered
Destructive foreground
#fbcdc6pink
#ffffffwhite
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#f4c0aflightpink
#f4c0aflightpink

Contrast

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

Light mode
Text on background19.60:1AAA
Text on card19.60:1AAA
Primary button7.34:1AAA
Secondary button7.45:1AAA
Muted text7.50:1AAA
Accent8.01:1AAA
Destructive6.81:1AA
Dark mode
Text on background19.66:1AAA
Text on card19.66:1AAA
Primary button7.34:1AAA
Secondary button8.24:1AAA
Muted text9.01:1AAA
Accent8.06:1AAA
Destructive4.11:1AA Large

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(1 0 180);
  --foreground: oklch(0.155 0.022 42.745);
  --muted: oklch(0.952 0.009 39.445);
  --muted-foreground: oklch(0.416 0.01 39.373);
  --popover: oklch(1 0 180);
  --popover-foreground: oklch(0.155 0.022 42.745);
  --card: oklch(1 0 180);
  --card-foreground: oklch(0.155 0.022 42.745);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.849 0.064 39.238);
  --primary-foreground: oklch(0.348 0.097 38.069);
  --secondary: oklch(0.882 0.008 39.449);
  --secondary-foreground: oklch(0.367 0.017 39.292);
  --accent: oklch(0.824 0.022 39.364);
  --accent-foreground: oklch(0.296 0.023 39.234);
  --destructive: oklch(0.403 0.144 31.591);
  --destructive-foreground: oklch(0.886 0.053 28.355);
  --ring: oklch(0.849 0.064 39.238);
  --chart-1: oklch(0.849 0.064 39.238);
  --chart-2: oklch(0.882 0.008 39.449);
  --chart-3: oklch(0.824 0.022 39.364);
  --chart-4: oklch(0.906 0.007 39.461);
  --chart-5: oklch(0.849 0.067 39.234);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0 0 0);
  --foreground: oklch(0.977 0.002 39.491);
  --muted: oklch(0.167 0.015 39.207);
  --muted-foreground: oklch(0.763 0.009 39.438);
  --popover: oklch(0 0 0);
  --popover-foreground: oklch(0.977 0.002 39.491);
  --card: oklch(0 0 0);
  --card-foreground: oklch(0.977 0.002 39.491);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.849 0.064 39.238);
  --primary-foreground: oklch(0.348 0.097 38.069);
  --secondary: oklch(0.215 0.002 39.45);
  --secondary-foreground: oklch(0.764 0.004 39.471);
  --accent: oklch(0.288 0.01 39.326);
  --accent-foreground: oklch(0.819 0.011 39.427);
  --destructive: oklch(0.616 0.224 31.517);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.849 0.064 39.238);
  --chart-1: oklch(0.849 0.064 39.238);
  --chart-2: oklch(0.215 0.002 39.45);
  --chart-3: oklch(0.288 0.01 39.326);
  --chart-4: oklch(0.248 0.002 39.445);
  --chart-5: oklch(0.849 0.067 39.234);
}