Generate feedback colors (success, warning, error, and info) for shadcn/ui
Go to generatorUsed by 4k+ developers. Want me to build your product next? Let's work together.
Grimy is a shadcn/ui theme built around a muted deep violet primary color (#352f41) with muted deep green accents (#3b412f). The light mode uses a neutral background (#ffffff). Dark mode keeps the muted deep violet primary (#352f41) on a neutral background (#020104).
| Token | Light | Dark |
|---|---|---|
| Background | #ffffffwhite | #020104black |
| Foreground | #0a0515black | #ffffffwhite |
| Card | #fcfcfcsnow | #040208black |
| Card foreground | #080411black | #ffffffwhite |
| Popover | #fcfcfcsnow | #040208black |
| Popover foreground | #080411black | #ffffffwhite |
| Primary | #352f41darkslategray | #352f41darkslategray |
| Primary foreground | #cfcad8lightgrey | #cfcad8lightgrey |
| Secondary | #3b412fdarkslategray | #3b412fdarkslategray |
| Secondary foreground | #d4d8calightgrey | #d4d8calightgrey |
| Muted | #e9eae6linen | #181915black |
| Muted foreground | #4a4f40darkslategray | #babfb0silver |
| Accent | #3b412fdarkslategray | #3b412fdarkslategray |
| Accent foreground | #d4d8calightgrey | #d4d8calightgrey |
| Destructive | #961f0dbrown | #ed462ctomato |
| Destructive foreground | #fcded9mistyrose | #ffffffwhite |
| Border | #e5e7eblavender | #1f2937darkslategray |
| Input | #e5e7eblavender | #1f2937darkslategray |
| Ring | #352f41darkslategray | #352f41darkslategray |
WCAG 2 contrast ratios between each background and its foreground color.
| Text on background | 20.08:1 | AAA |
| Text on card | 19.83:1 | AAA |
| Primary button | 7.99:1 | AAA |
| Secondary button | 7.28:1 | AAA |
| Muted text | 6.98:1 | AA |
| Accent | 7.28:1 | AAA |
| Destructive | 6.62:1 | AA |
| Text on background | 20.81:1 | AAA |
| Text on card | 20.62:1 | AAA |
| Primary button | 7.99:1 | AAA |
| Secondary button | 7.28:1 | AAA |
| Muted text | 9.41:1 | AAA |
| Accent | 7.28:1 | AAA |
| Destructive | 3.82:1 | AA Large |
Paste this into your globals.css to use Grimy in your shadcn/ui project.
:root {
--radius: 0.5rem;
--background: oklch(1 0 180);
--foreground: oklch(0.134 0.037 298.748);
--muted: oklch(0.935 0.005 121.58);
--muted-foreground: oklch(0.419 0.026 122.515);
--popover: oklch(0.992 0 161.565);
--popover-foreground: oklch(0.123 0.033 300.452);
--card: oklch(0.992 0 161.565);
--card-foreground: oklch(0.123 0.033 300.452);
--border: oklch(0.928 0.006 264.531);
--input: oklch(0.928 0.006 264.531);
--primary: oklch(0.32 0.032 299.837);
--primary-foreground: oklch(0.847 0.021 301.097);
--secondary: oklch(0.364 0.031 122.89);
--secondary-foreground: oklch(0.876 0.021 121.872);
--accent: oklch(0.364 0.031 122.89);
--accent-foreground: oklch(0.876 0.021 121.872);
--destructive: oklch(0.441 0.157 31.596);
--destructive-foreground: oklch(0.924 0.034 28.159);
--ring: oklch(0.32 0.032 299.837);
--chart-1: oklch(0.32 0.032 299.837);
--chart-2: oklch(0.364 0.031 122.89);
--chart-3: oklch(0.364 0.031 122.89);
--chart-4: oklch(0.397 0.034 122.922);
--chart-5: oklch(0.316 0.039 299.487);
}
.dark {
--radius: 0.5rem;
--background: oklch(0.079 0.018 302.06);
--foreground: oklch(1 0 180);
--muted: oklch(0.21 0.007 122.058);
--muted-foreground: oklch(0.798 0.022 121.948);
--popover: oklch(0.099 0.022 302.06);
--popover-foreground: oklch(1 0 180);
--card: oklch(0.099 0.022 302.06);
--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.32 0.032 299.837);
--primary-foreground: oklch(0.847 0.021 301.097);
--secondary: oklch(0.364 0.031 122.89);
--secondary-foreground: oklch(0.876 0.021 121.872);
--accent: oklch(0.364 0.031 122.89);
--accent-foreground: oklch(0.876 0.021 121.872);
--destructive: oklch(0.632 0.208 31.638);
--destructive-foreground: oklch(1 0 180);
--ring: oklch(0.32 0.032 299.837);
--chart-1: oklch(0.32 0.032 299.837);
--chart-2: oklch(0.364 0.031 122.89);
--chart-3: oklch(0.364 0.031 122.89);
--chart-4: oklch(0.397 0.034 122.922);
--chart-5: oklch(0.316 0.039 299.487);
}