Gotham is a shadcn/ui theme built around a light teal primary color (#d1eae8) with deep blue accents (#243647). The light mode uses a blue-tinted background (#0a0f14). Dark mode keeps the light teal primary (#d1eae8) on a blue-tinted background (#0a0f14).
| Token | Light | Dark |
|---|---|---|
| Background | #0a0f14black | #0a0f14black |
| Foreground | #99d1celightsteelblue | #99d1celightsteelblue |
| Card | #070a0eblack | #070a0eblack |
| Card foreground | #abd9d7lightblue | #abd9d7lightblue |
| Popover | #05080ablack | #05080ablack |
| Popover foreground | #bce1dfpowderblue | #bce1dfpowderblue |
| Primary | #d1eae8gainsboro | #d1eae8gainsboro |
| Primary foreground | #0b1918black | #0b1918black |
| Secondary | #2e524fdarkslategray | #2e524fdarkslategray |
| Secondary foreground | #cee3e2gainsboro | #cee3e2gainsboro |
| Muted | #22262bdarkslategray | #22262bdarkslategray |
| Muted foreground | #9ba6b0darkgray | #9ba6b0darkgray |
| Accent | #243647darkslategray | #243647darkslategray |
| Accent foreground | #bfcfdflightsteelblue | #bfcfdflightsteelblue |
| Destructive | #ec3322orangered | #ec3322orangered |
| Destructive foreground | #ffffffwhite | #ffffffwhite |
| Border | #161c23black | #161c23black |
| Input | #1b242cdarkslategray | #1b242cdarkslategray |
| Ring | #d1eae8gainsboro | #d1eae8gainsboro |
WCAG 2 contrast ratios between each background and its foreground color.
| Text on background | 11.30:1 | AAA |
| Text on card | 12.87:1 | AAA |
| Primary button | 14.32:1 | AAA |
| Secondary button | 6.48:1 | AA |
| Muted text | 6.13:1 | AA |
| Accent | 7.83:1 | AAA |
| Destructive | 4.14:1 | AA Large |
| Text on background | 11.30:1 | AAA |
| Text on card | 12.87:1 | AAA |
| Primary button | 14.32:1 | AAA |
| Secondary button | 6.48:1 | AA |
| Muted text | 6.13:1 | AA |
| Accent | 7.83:1 | AAA |
| Destructive | 4.14:1 | AA Large |
Paste this into your globals.css to use Gotham in your shadcn/ui project.
:root {
--radius: 0.5rem;
--background: oklch(0.167 0.013 248.638);
--foreground: oklch(0.822 0.058 192.207);
--muted: oklch(0.267 0.011 248.233);
--muted-foreground: oklch(0.719 0.02 248.103);
--popover: oklch(0.13 0.008 243.166);
--popover-foreground: oklch(0.883 0.039 192.744);
--card: oklch(0.143 0.01 245.811);
--card-foreground: oklch(0.852 0.048 192.484);
--border: oklch(0.223 0.016 248.541);
--input: oklch(0.255 0.02 248.599);
--primary: oklch(0.919 0.027 190.611);
--primary-foreground: oklch(0.199 0.019 188.996);
--secondary: oklch(0.409 0.042 188.846);
--secondary-foreground: oklch(0.901 0.023 190.692);
--accent: oklch(0.324 0.039 249.118);
--accent-foreground: oklch(0.846 0.028 248.163);
--destructive: oklch(0.614 0.222 29.913);
--destructive-foreground: oklch(1 0 180);
--ring: oklch(0.919 0.027 190.611);
--chart-1: oklch(0.919 0.027 190.611);
--chart-2: oklch(0.409 0.042 188.846);
--chart-3: oklch(0.324 0.039 249.118);
--chart-4: oklch(0.442 0.046 188.806);
--chart-5: oklch(0.921 0.029 190.563);
}
.dark {
--radius: 0.5rem;
--background: oklch(0.167 0.013 248.638);
--foreground: oklch(0.822 0.058 192.207);
--muted: oklch(0.267 0.011 248.233);
--muted-foreground: oklch(0.719 0.02 248.103);
--popover: oklch(0.13 0.008 243.166);
--popover-foreground: oklch(0.883 0.039 192.744);
--card: oklch(0.143 0.01 245.811);
--card-foreground: oklch(0.852 0.048 192.484);
--border: oklch(0.223 0.016 248.541);
--input: oklch(0.255 0.02 248.599);
--primary: oklch(0.919 0.027 190.611);
--primary-foreground: oklch(0.199 0.019 188.996);
--secondary: oklch(0.409 0.042 188.846);
--secondary-foreground: oklch(0.901 0.023 190.692);
--accent: oklch(0.324 0.039 249.118);
--accent-foreground: oklch(0.846 0.028 248.163);
--destructive: oklch(0.614 0.222 29.913);
--destructive-foreground: oklch(1 0 180);
--ring: oklch(0.919 0.027 190.611);
--chart-1: oklch(0.919 0.027 190.611);
--chart-2: oklch(0.409 0.042 188.846);
--chart-3: oklch(0.324 0.039 249.118);
--chart-4: oklch(0.442 0.046 188.806);
--chart-5: oklch(0.921 0.029 190.563);
}