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

Go to generator

10000+Themes for shadcn/ui

Likable for shadcn/ui

Likable is a shadcn/ui theme built around a purple primary color (#bf5dd5) with teal accents (#5dd5bf). The light mode uses a neutral background (#fbf8fc). Dark mode keeps the purple primary (#bf5dd5) on a purple-tinted background (#0d060e).

Color palette

TokenLightDark
Background
#fbf8fcghostwhite
#0d060eblack
Foreground
#030104black
#faf9fbghostwhite
Card
#f9f5faghostwhite
#100812black
Card foreground
#000000black
#fdfcfdwhite
Popover
#f9f5faghostwhite
#100812black
Popover foreground
#000000black
#fdfcfdwhite
Primary
#bf5dd5mediumorchid
#bf5dd5mediumorchid
Primary foreground
#000000black
#000000black
Secondary
#d5bf5ddarkkhaki
#d5bf5ddarkkhaki
Secondary foreground
#000000black
#000000black
Muted
#f0eee5linen
#1a180fblack
Muted foreground
#565343darkolivegreen
#bcb9a9silver
Accent
#5dd5bfmediumaquamarine
#5dd5bfmediumaquamarine
Accent foreground
#000000black
#000000black
Destructive
#ae0d04firebrick
#fa3429orangered
Destructive foreground
#fee7e6mistyrose
#ffffffwhite
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#bf5dd5mediumorchid
#bf5dd5mediumorchid

Contrast

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

Light mode
Text on background19.76:1AAA
Text on card19.45:1AAA
Primary button5.74:1AA
Secondary button11.45:1AAA
Muted text6.66:1AA
Accent11.75:1AAA
Destructive6.21:1AA
Dark mode
Text on background19.06:1AAA
Text on card19.29:1AAA
Primary button5.74:1AA
Secondary button11.45:1AAA
Muted text9.01:1AAA
Accent11.75:1AAA
Destructive3.77:1AA Large

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(0.983 0.005 319.996);
  --foreground: oklch(0.085 0.018 321.717);
  --muted: oklch(0.949 0.013 96.33);
  --muted-foreground: oklch(0.44 0.026 96.798);
  --popover: oklch(0.974 0.008 319.998);
  --popover-foreground: oklch(0 0 0);
  --card: oklch(0.974 0.008 319.998);
  --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.643 0.195 319.966);
  --primary-foreground: oklch(0 0 0);
  --secondary: oklch(0.804 0.121 96.856);
  --secondary-foreground: oklch(0 0 0);
  --accent: oklch(0.799 0.113 179.314);
  --accent-foreground: oklch(0 0 0);
  --destructive: oklch(0.476 0.189 29.607);
  --destructive-foreground: oklch(0.947 0.025 21.241);
  --ring: oklch(0.643 0.195 319.966);
  --chart-1: oklch(0.643 0.195 319.966);
  --chart-2: oklch(0.804 0.121 96.856);
  --chart-3: oklch(0.799 0.113 179.314);
  --chart-4: oklch(0.818 0.114 96.97);
  --chart-5: oklch(0.643 0.204 319.932);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0.138 0.023 320.569);
  --foreground: oklch(0.984 0.003 319.994);
  --muted: oklch(0.208 0.018 96.973);
  --muted-foreground: oklch(0.784 0.023 96.511);
  --popover: oklch(0.15 0.026 320.238);
  --popover-foreground: oklch(0.992 0.001 319.992);
  --card: oklch(0.15 0.026 320.238);
  --card-foreground: oklch(0.992 0.001 319.992);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.643 0.195 319.966);
  --primary-foreground: oklch(0 0 0);
  --secondary: oklch(0.804 0.121 96.856);
  --secondary-foreground: oklch(0 0 0);
  --accent: oklch(0.799 0.113 179.314);
  --accent-foreground: oklch(0 0 0);
  --destructive: oklch(0.639 0.233 28.8);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.643 0.195 319.966);
  --chart-1: oklch(0.643 0.195 319.966);
  --chart-2: oklch(0.804 0.121 96.856);
  --chart-3: oklch(0.799 0.113 179.314);
  --chart-4: oklch(0.818 0.114 96.97);
  --chart-5: oklch(0.643 0.204 319.932);
}