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.
Athletic is a shadcn/ui theme built around a muted deep blue primary color (#1a1c23) with muted deep violet accents (#1c1a23). The light mode uses a neutral background (#f7f9fd). Dark mode keeps the muted deep blue primary (#1a1c23) on a neutral background (#000000).
| Token | Light | Dark |
|---|---|---|
| Background | #f7f9fdghostwhite | #000000black |
| Foreground | #010309black | #f9fafaghostwhite |
| Card | #f3f5fbaliceblue | #030303black |
| Card foreground | #010204black | #fcfcfdwhite |
| Popover | #f3f5fbaliceblue | #030303black |
| Popover foreground | #010204black | #fcfcfdwhite |
| Primary | #1a1c23black | #1a1c23black |
| Primary foreground | #acb2c3silver | #acb2c3silver |
| Secondary | #1a2123black | #1a2123black |
| Secondary foreground | #acbdc3silver | #acbdc3silver |
| Muted | #e3eaedlavender | #12191cblack |
| Muted foreground | #455459darkslategray | #a6b5badarkgray |
| Accent | #1c1a23black | #1c1a23black |
| Accent foreground | #b2acc3silver | #b2acc3silver |
| Destructive | #83210bmaroon | #eb431eorangered |
| Destructive foreground | #fad0c7pink | #ffffffwhite |
| Border | #e5e7eblavender | #1f2937darkslategray |
| Input | #e5e7eblavender | #1f2937darkslategray |
| Ring | #1a1c23black | #1a1c23black |
WCAG 2 contrast ratios between each background and its foreground color.
| Text on background | 19.52:1 | AAA |
| Text on card | 19.10:1 | AAA |
| Primary button | 8.02:1 | AAA |
| Secondary button | 8.41:1 | AAA |
| Muted text | 6.49:1 | AA |
| Accent | 7.85:1 | AAA |
| Destructive | 6.78:1 | AA |
| Text on background | 20.08:1 | AAA |
| Text on card | 20.16:1 | AAA |
| Primary button | 8.02:1 | AAA |
| Secondary button | 8.41:1 | AAA |
| Muted text | 8.39:1 | AAA |
| Accent | 7.85:1 | AAA |
| Destructive | 3.90:1 | AA Large |
Paste this into your globals.css to use Athletic in your shadcn/ui project.
:root {
--radius: 0.5rem;
--background: oklch(0.981 0.005 271.358);
--foreground: oklch(0.1 0.021 260.533);
--muted: oklch(0.934 0.008 219.571);
--muted-foreground: oklch(0.435 0.021 220.007);
--popover: oklch(0.972 0.008 271.331);
--popover-foreground: oklch(0.079 0.016 260.533);
--card: oklch(0.972 0.008 271.331);
--card-foreground: oklch(0.079 0.016 260.533);
--border: oklch(0.928 0.006 264.531);
--input: oklch(0.928 0.006 264.531);
--primary: oklch(0.228 0.015 270.695);
--primary-foreground: oklch(0.764 0.025 271.073);
--secondary: oklch(0.242 0.012 220.003);
--secondary-foreground: oklch(0.788 0.021 219.731);
--accent: oklch(0.224 0.019 296.28);
--accent-foreground: oklch(0.757 0.033 297.049);
--destructive: oklch(0.407 0.136 33.651);
--destructive-foreground: oklch(0.891 0.049 32.782);
--ring: oklch(0.228 0.015 270.695);
--chart-1: oklch(0.228 0.015 270.695);
--chart-2: oklch(0.242 0.012 220.003);
--chart-3: oklch(0.224 0.019 296.28);
--chart-4: oklch(0.275 0.014 220.047);
--chart-5: oklch(0.226 0.018 270.526);
}
.dark {
--radius: 0.5rem;
--background: oklch(0 0 0);
--foreground: oklch(0.984 0.001 271.398);
--muted: oklch(0.209 0.011 220.091);
--muted-foreground: oklch(0.763 0.019 219.715);
--popover: oklch(0.092 0 180);
--popover-foreground: oklch(0.992 0.001 271.403);
--card: oklch(0.092 0 180);
--card-foreground: oklch(0.992 0.001 271.403);
--border: oklch(0.278 0.03 256.848);
--input: oklch(0.278 0.03 256.848);
--primary: oklch(0.228 0.015 270.695);
--primary-foreground: oklch(0.764 0.025 271.073);
--secondary: oklch(0.242 0.012 220.003);
--secondary-foreground: oklch(0.788 0.021 219.731);
--accent: oklch(0.224 0.019 296.28);
--accent-foreground: oklch(0.757 0.033 297.049);
--destructive: oklch(0.627 0.21 33.656);
--destructive-foreground: oklch(1 0 180);
--ring: oklch(0.228 0.015 270.695);
--chart-1: oklch(0.228 0.015 270.695);
--chart-2: oklch(0.242 0.012 220.003);
--chart-3: oklch(0.224 0.019 296.28);
--chart-4: oklch(0.275 0.014 220.047);
--chart-5: oklch(0.226 0.018 270.526);
}