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

Go to generator

10000+Themes for shadcn/ui

Policeman for shadcn/ui

Policeman is a shadcn/ui theme built around a red primary color (#e7929b) with muted light red accents (#e5e1e1). The light mode uses a neutral background (#fcf8f8). Dark mode keeps the red primary (#e7929b) on a neutral background (#000000).

Color palette

TokenLightDark
Background
#fcf8f8snow
#000000black
Foreground
#000000black
#fdfcfcsnow
Card
#fcf8f8snow
#000000black
Card foreground
#000000black
#fdfcfcsnow
Popover
#fcf8f8snow
#000000black
Popover foreground
#000000black
#fdfcfcsnow
Primary
#e7929bdarksalmon
#e7929bdarksalmon
Primary foreground
#3b0d11black
#3b0d11black
Secondary
#e5e1e1gainsboro
#362628darkslategray
Secondary foreground
#504445darkslategray
#d0bdbfsilver
Muted
#f3e7e8linen
#180c0dblack
Muted foreground
#6a4e51dimgray
#b19598rosybrown
Accent
#e5e1e1gainsboro
#362628darkslategray
Accent foreground
#504445darkslategray
#d0bdbfsilver
Destructive
#af180dfirebrick
#df1f11crimson
Destructive foreground
#fef2f1seashell
#ffffffwhite
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#e7929bdarksalmon
#e7929bdarksalmon

Contrast

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

Light mode
Text on background19.91:1AAA
Text on card19.91:1AAA
Primary button7.19:1AAA
Secondary button7.17:1AAA
Muted text6.17:1AA
Accent7.17:1AAA
Destructive6.45:1AA
Dark mode
Text on background20.50:1AAA
Text on card20.50:1AAA
Primary button7.19:1AAA
Secondary button8.00:1AAA
Muted text6.95:1AA
Accent8.00:1AAA
Destructive4.84:1AA

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(0.982 0.004 10.177);
  --foreground: oklch(0 0 0);
  --muted: oklch(0.938 0.013 10.4);
  --muted-foreground: oklch(0.454 0.037 11.974);
  --popover: oklch(0.982 0.004 10.177);
  --popover-foreground: oklch(0 0 0);
  --card: oklch(0.982 0.004 10.177);
  --card-foreground: oklch(0 0 0);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.75 0.103 13.343);
  --primary-foreground: oklch(0.24 0.072 18.731);
  --secondary: oklch(0.912 0.005 10.2);
  --secondary-foreground: oklch(0.399 0.016 11.007);
  --accent: oklch(0.912 0.005 10.2);
  --accent-foreground: oklch(0.399 0.016 11.007);
  --destructive: oklch(0.484 0.185 29.691);
  --destructive-foreground: oklch(0.969 0.013 22.372);
  --ring: oklch(0.75 0.103 13.343);
  --chart-1: oklch(0.75 0.103 13.343);
  --chart-2: oklch(0.912 0.005 10.2);
  --chart-3: oklch(0.912 0.005 10.2);
  --chart-4: oklch(0.937 0.004 10.164);
  --chart-5: oklch(0.748 0.108 13.525);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0 0 0);
  --foreground: oklch(0.992 0.001 10.097);
  --muted: oklch(0.171 0.021 13);
  --muted-foreground: oklch(0.697 0.033 11.161);
  --popover: oklch(0 0 0);
  --popover-foreground: oklch(0.992 0.001 10.097);
  --card: oklch(0 0 0);
  --card-foreground: oklch(0.992 0.001 10.097);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.75 0.103 13.343);
  --primary-foreground: oklch(0.24 0.072 18.731);
  --secondary: oklch(0.288 0.024 11.976);
  --secondary-foreground: oklch(0.816 0.022 10.685);
  --accent: oklch(0.288 0.024 11.976);
  --accent-foreground: oklch(0.816 0.022 10.685);
  --destructive: oklch(0.577 0.223 29.73);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.75 0.103 13.343);
  --chart-1: oklch(0.75 0.103 13.343);
  --chart-2: oklch(0.288 0.024 11.976);
  --chart-3: oklch(0.288 0.024 11.976);
  --chart-4: oklch(0.317 0.027 12.049);
  --chart-5: oklch(0.748 0.108 13.525);
}