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

Go to generator

10000+Themes for shadcn/ui

Second-hand for shadcn/ui

Second-hand is a shadcn/ui theme built around a vivid orange primary color (#b25310) with vivid violet accents (#5310b2). The light mode uses a neutral background (#fefcfb). Dark mode keeps the vivid orange primary (#b25310) on a neutral background (#070503).

Color palette

TokenLightDark
Background
#fefcfbsnow
#070503black
Foreground
#090502black
#fbfaf9snow
Card
#fcfaf8snow
#0b0705black
Card foreground
#040201black
#fdfcfcsnow
Popover
#fcfaf8snow
#0b0705black
Popover foreground
#040201black
#fdfcfcsnow
Primary
#b25310sienna
#b25310sienna
Primary foreground
#ffffffwhite
#ffffffwhite
Secondary
#10b253seagreen
#10b253seagreen
Secondary foreground
#ffffffwhite
#ffffffwhite
Muted
#dbebe2gainsboro
#14241bblack
Muted foreground
#3f4642darkslategray
#b9c0bcsilver
Accent
#5310b2rebeccapurple
#5310b2rebeccapurple
Accent foreground
#f9f6feghostwhite
#f9f6feghostwhite
Destructive
#d7550fchocolate
#d7550fchocolate
Destructive foreground
#ffffffwhite
#ffffffwhite
Border
#e5e7eblavender
#1f2937darkslategray
Input
#e5e7eblavender
#1f2937darkslategray
Ring
#b25310sienna
#b25310sienna

Contrast

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

Light mode
Text on background19.87:1AAA
Text on card19.82:1AAA
Primary button5.05:1AA
Secondary button2.78:1Fail
Muted text7.83:1AAA
Accent9.40:1AAA
Destructive4.05:1AA Large
Dark mode
Text on background19.53:1AAA
Text on card19.58:1AAA
Primary button5.05:1AA
Secondary button2.78:1Fail
Muted text8.73:1AAA
Accent9.40:1AAA
Destructive4.05:1AA Large

CSS variables

Paste this into your globals.css to use Second-hand in your shadcn/ui project.

:root {
  --radius: 0.5rem;
  --background: oklch(0.993 0.002 58.335);
  --foreground: oklch(0.117 0.016 68.938);
  --muted: oklch(0.925 0.021 160.477);
  --muted-foreground: oklch(0.385 0.011 160.335);
  --popover: oklch(0.985 0.004 58.307);
  --popover-foreground: oklch(0.093 0.013 68.938);
  --card: oklch(0.985 0.004 58.307);
  --card-foreground: oklch(0.093 0.013 68.938);
  --border: oklch(0.928 0.006 264.531);
  --input: oklch(0.928 0.006 264.531);
  --primary: oklch(0.553 0.143 48.835);
  --primary-foreground: oklch(1 0 180);
  --secondary: oklch(0.669 0.181 149.918);
  --secondary-foreground: oklch(1 0 180);
  --accent: oklch(0.407 0.218 291.376);
  --accent-foreground: oklch(0.977 0.012 304.876);
  --destructive: oklch(0.612 0.178 42.384);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.553 0.143 48.835);
  --chart-1: oklch(0.553 0.143 48.835);
  --chart-2: oklch(0.669 0.181 149.918);
  --chart-3: oklch(0.407 0.218 291.376);
  --chart-4: oklch(0.708 0.193 149.837);
  --chart-5: oklch(0.557 0.146 48.208);
}

.dark {
  --radius: 0.5rem;
  --background: oklch(0.116 0.009 64.196);
  --foreground: oklch(0.985 0.002 58.338);
  --muted: oklch(0.242 0.028 157.934);
  --muted-foreground: oklch(0.801 0.009 160.744);
  --popover: oklch(0.133 0.01 64.113);
  --popover-foreground: oklch(0.992 0.001 58.351);
  --card: oklch(0.133 0.01 64.113);
  --card-foreground: oklch(0.992 0.001 58.351);
  --border: oklch(0.278 0.03 256.848);
  --input: oklch(0.278 0.03 256.848);
  --primary: oklch(0.553 0.143 48.835);
  --primary-foreground: oklch(1 0 180);
  --secondary: oklch(0.669 0.181 149.918);
  --secondary-foreground: oklch(1 0 180);
  --accent: oklch(0.407 0.218 291.376);
  --accent-foreground: oklch(0.977 0.012 304.876);
  --destructive: oklch(0.612 0.178 42.384);
  --destructive-foreground: oklch(1 0 180);
  --ring: oklch(0.553 0.143 48.835);
  --chart-1: oklch(0.553 0.143 48.835);
  --chart-2: oklch(0.669 0.181 149.918);
  --chart-3: oklch(0.407 0.218 291.376);
  --chart-4: oklch(0.708 0.193 149.837);
  --chart-5: oklch(0.557 0.146 48.208);
}