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

Go to generator

10000+Themes for shadcn/ui

Picturesque for shadcn/ui

Picturesque is a shadcn/ui theme built around a violet primary color (#6132c8) with green accents (#98c832). The light mode uses a neutral background (#ffffff). Dark mode keeps the violet primary (#6132c8) on a violet-tinted background (#080410).

Color palette

TokenLightDark
Background
#ffffffwhite
#080410black
Foreground
#080311black
#fcfcfdwhite
Card
#ffffffwhite
#080410black
Card foreground
#080311black
#fcfcfdwhite
Popover
#ffffffwhite
#080410black
Popover foreground
#080311black
#fcfcfdwhite
Primary
#6132c8slateblue
#6132c8slateblue
Primary foreground
#ffffffwhite
#ffffffwhite
Secondary
#98c832yellowgreen
#98c832yellowgreen
Secondary foreground
#1c2509black
#1c2509black
Muted
#dadbd6gainsboro
#272924darkslategray
Muted foreground
#555652dimgray
#abada9darkgray
Accent
#98c832yellowgreen
#98c832yellowgreen
Accent foreground
#1c2509black
#1c2509black
Destructive
#9d0702darkred
#fc0b03red
Destructive foreground
#ffd3d2pink
#ffffffwhite
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#6132c8slateblue
#6132c8slateblue

Contrast

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

Light mode
Text on background20.35:1AAA
Text on card20.35:1AAA
Primary button7.49:1AAA
Secondary button8.07:1AAA
Muted text5.31:1AA
Accent8.07:1AAA
Destructive6.31:1AA
Dark mode
Text on background19.76:1AAA
Text on card19.76:1AAA
Primary button7.49:1AAA
Secondary button8.07:1AAA
Muted text6.52:1AA
Accent8.07:1AAA
Destructive4.03:1AA Large

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(1 0 180);
  --foreground: oklch(0.121 0.035 299.504);
  --muted: oklch(0.889 0.006 120.886);
  --muted-foreground: oklch(0.45 0.006 120.971);
  --popover: oklch(1 0 180);
  --popover-foreground: oklch(0.121 0.035 299.504);
  --card: oklch(1 0 180);
  --card-foreground: oklch(0.121 0.035 299.504);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.473 0.214 290.111);
  --primary-foreground: oklch(1 0 180);
  --secondary: oklch(0.772 0.178 126.035);
  --secondary-foreground: oklch(0.247 0.047 124.525);
  --accent: oklch(0.772 0.178 126.035);
  --accent-foreground: oklch(0.247 0.047 124.525);
  --destructive: oklch(0.439 0.177 29.588);
  --destructive-foreground: oklch(0.904 0.049 20.425);
  --ring: oklch(0.473 0.214 290.111);
  --chart-1: oklch(0.473 0.214 290.111);
  --chart-2: oklch(0.772 0.178 126.035);
  --chart-3: oklch(0.772 0.178 126.035);
  --chart-4: oklch(0.791 0.177 125.691);
  --chart-5: oklch(0.471 0.222 289.301);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0.125 0.03 299.695);
  --foreground: oklch(0.991 0.002 300.735);
  --muted: oklch(0.276 0.009 121.279);
  --muted-foreground: oklch(0.744 0.005 120.876);
  --popover: oklch(0.125 0.03 299.695);
  --popover-foreground: oklch(0.991 0.002 300.735);
  --card: oklch(0.125 0.03 299.695);
  --card-foreground: oklch(0.991 0.002 300.735);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.473 0.214 290.111);
  --primary-foreground: oklch(1 0 180);
  --secondary: oklch(0.772 0.178 126.035);
  --secondary-foreground: oklch(0.247 0.047 124.525);
  --accent: oklch(0.772 0.178 126.035);
  --accent-foreground: oklch(0.247 0.047 124.525);
  --destructive: oklch(0.625 0.254 29.429);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.473 0.214 290.111);
  --chart-1: oklch(0.473 0.214 290.111);
  --chart-2: oklch(0.772 0.178 126.035);
  --chart-3: oklch(0.772 0.178 126.035);
  --chart-4: oklch(0.791 0.177 125.691);
  --chart-5: oklch(0.471 0.222 289.301);
}