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

Go to generator

10000+Themes for shadcn/ui

Rest for shadcn/ui

Rest is a shadcn/ui theme built around a neutral gray primary color (#adaba9) with neutral gray accents (#d1cfcc). The light mode uses a neutral background (#fcfaf8). Dark mode keeps the neutral gray primary (#adaba9) on a neutral background (#000000).

Color palette

TokenLightDark
Background
#fcfaf8snow
#000000black
Foreground
#090602black
#fbfaf9snow
Card
#fcfaf8snow
#000000black
Card foreground
#090602black
#fbfaf9snow
Popover
#fcfaf8snow
#000000black
Popover foreground
#090602black
#fbfaf9snow
Primary
#adaba9darkgray
#adaba9darkgray
Primary foreground
#121211black
#121211black
Secondary
#d1cfcclightgrey
#23221fblack
Secondary foreground
#383633darkslategray
#bebbb6silver
Muted
#efeeeblinen
#141210black
Muted foreground
#69655ddimgray
#a29d96darkgray
Accent
#d1cfcclightgrey
#23221fblack
Accent foreground
#383633darkslategray
#bebbb6silver
Destructive
#7f2605saddlebrown
#f65b23tomato
Destructive foreground
#fcccbapeachpuff
#000000black
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#adaba9darkgray
#adaba9darkgray

Contrast

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

Light mode
Text on background19.44:1AAA
Text on card19.44:1AAA
Primary button8.19:1AAA
Secondary button7.75:1AAA
Muted text4.99:1AA
Accent7.75:1AAA
Destructive6.63:1AA
Dark mode
Text on background20.14:1AAA
Text on card20.14:1AAA
Primary button8.19:1AAA
Secondary button8.33:1AAA
Muted text6.92:1AA
Accent8.33:1AAA
Destructive6.43:1AA

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(0.986 0.003 79.929);
  --foreground: oklch(0.123 0.017 87.791);
  --muted: oklch(0.949 0.004 79.926);
  --muted-foreground: oklch(0.508 0.013 79.868);
  --popover: oklch(0.986 0.003 79.929);
  --popover-foreground: oklch(0.123 0.017 87.791);
  --card: oklch(0.986 0.003 79.929);
  --card-foreground: oklch(0.123 0.017 87.791);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.742 0.003 79.926);
  --primary-foreground: oklch(0.182 0.001 79.924);
  --secondary: oklch(0.855 0.005 79.925);
  --secondary-foreground: oklch(0.334 0.006 79.89);
  --accent: oklch(0.855 0.005 79.925);
  --accent-foreground: oklch(0.334 0.006 79.89);
  --destructive: oklch(0.404 0.129 37.41);
  --destructive-foreground: oklch(0.883 0.06 40.941);
  --ring: oklch(0.742 0.003 79.926);
  --chart-1: oklch(0.742 0.003 79.926);
  --chart-2: oklch(0.855 0.005 79.925);
  --chart-3: oklch(0.855 0.005 79.925);
  --chart-4: oklch(0.879 0.004 79.926);
  --chart-5: oklch(0.745 0.008 79.912);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0 0 0);
  --foreground: oklch(0.986 0.002 79.93);
  --muted: oklch(0.185 0.006 79.826);
  --muted-foreground: oklch(0.698 0.012 79.896);
  --popover: oklch(0 0 0);
  --popover-foreground: oklch(0.986 0.002 79.93);
  --card: oklch(0 0 0);
  --card-foreground: oklch(0.986 0.002 79.93);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.742 0.003 79.926);
  --primary-foreground: oklch(0.182 0.001 79.924);
  --secondary: oklch(0.251 0.005 79.886);
  --secondary-foreground: oklch(0.794 0.008 79.915);
  --accent: oklch(0.251 0.005 79.886);
  --accent-foreground: oklch(0.794 0.008 79.915);
  --destructive: oklch(0.669 0.2 38.264);
  --destructive-foreground: oklch(0 0 0);
  --ring: oklch(0.742 0.003 79.926);
  --chart-1: oklch(0.742 0.003 79.926);
  --chart-2: oklch(0.251 0.005 79.886);
  --chart-3: oklch(0.251 0.005 79.886);
  --chart-4: oklch(0.283 0.006 79.882);
  --chart-5: oklch(0.745 0.008 79.912);
}