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

Go to generator

10000+Themes for shadcn/ui

Immaterial for shadcn/ui

Immaterial is a shadcn/ui theme built around a light violet primary color (#d3bdea) with muted light violet accents (#d3cbdc). The light mode uses a neutral background (#ffffff). Dark mode keeps the light violet primary (#d3bdea) on a violet-tinted background (#0a0410).

Color palette

TokenLightDark
Background
#ffffffwhite
#0a0410black
Foreground
#050109black
#ffffffwhite
Card
#fcfcfcsnow
#0c0514black
Card foreground
#020105black
#ffffffwhite
Popover
#ffffffwhite
#0a0410black
Popover foreground
#050109black
#ffffffwhite
Primary
#d3bdeathistle
#d3bdeathistle
Primary foreground
#3a1c59midnightblue
#3a1c59midnightblue
Secondary
#e8e6ealavender
#141217black
Secondary foreground
#4f4757darkslategray
#ada4b6darkgray
Muted
#e0dae7gainsboro
#1e1825black
Muted foreground
#5e5c60dimgray
#a19fa3darkgray
Accent
#d3cbdclightgrey
#26202ddarkslategray
Accent foreground
#3a3046darkslategray
#bfb4casilver
Destructive
#a23e10saddlebrown
#ec743ctomato
Destructive foreground
#ffffffwhite
#000000black
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#d3bdeathistle
#d3bdeathistle

Contrast

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

Light mode
Text on background20.69:1AAA
Text on card20.36:1AAA
Primary button8.21:1AAA
Secondary button7.13:1AAA
Muted text4.83:1AA
Accent7.92:1AAA
Destructive6.45:1AA
Dark mode
Text on background20.22:1AAA
Text on card20.02:1AAA
Primary button8.21:1AAA
Secondary button7.75:1AAA
Muted text6.58:1AA
Accent8.00:1AAA
Destructive7.10:1AAA

CSS variables

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

:root {
  --radius: 0.5rem;
  --background: oklch(1 0 180);
  --foreground: oklch(0.095 0.033 310.218);
  --muted: oklch(0.897 0.019 307.547);
  --muted-foreground: oklch(0.479 0.006 307.634);
  --popover: oklch(1 0 180);
  --popover-foreground: oklch(0.095 0.033 310.218);
  --card: oklch(0.992 0 161.565);
  --card-foreground: oklch(0.075 0.026 310.218);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.832 0.066 306.859);
  --primary-foreground: oklch(0.303 0.106 302.77);
  --secondary: oklch(0.927 0.007 307.706);
  --secondary-foreground: oklch(0.412 0.028 307.005);
  --accent: oklch(0.855 0.024 307.46);
  --accent-foreground: oklch(0.329 0.041 306.314);
  --destructive: oklch(0.498 0.143 41.231);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.832 0.066 306.859);
  --chart-1: oklch(0.832 0.066 306.859);
  --chart-2: oklch(0.927 0.007 307.706);
  --chart-3: oklch(0.855 0.024 307.46);
  --chart-4: oklch(0.952 0.004 307.736);
  --chart-5: oklch(0.829 0.07 306.803);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0.128 0.032 307.532);
  --foreground: oklch(1 0 180);
  --muted: oklch(0.223 0.026 306.412);
  --muted-foreground: oklch(0.704 0.006 307.693);
  --popover: oklch(0.128 0.032 307.532);
  --popover-foreground: oklch(1 0 180);
  --card: oklch(0.139 0.036 305.983);
  --card-foreground: oklch(1 0 180);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.832 0.066 306.859);
  --primary-foreground: oklch(0.303 0.106 302.77);
  --secondary: oklch(0.188 0.01 307.194);
  --secondary-foreground: oklch(0.733 0.027 307.356);
  --accent: oklch(0.255 0.026 306.614);
  --accent-foreground: oklch(0.787 0.032 307.31);
  --destructive: oklch(0.689 0.164 43.63);
  --destructive-foreground: oklch(0 0 0);
  --ring: oklch(0.832 0.066 306.859);
  --chart-1: oklch(0.832 0.066 306.859);
  --chart-2: oklch(0.188 0.01 307.194);
  --chart-3: oklch(0.255 0.026 306.614);
  --chart-4: oklch(0.219 0.013 307.117);
  --chart-5: oklch(0.829 0.07 306.803);
}