Wedge is a shadcn/ui theme built around a muted cyan primary color (#b4c4ca) with muted light cyan accents (#d2d8da). The light mode uses a neutral background (#fbfdfd). Dark mode keeps the muted cyan primary (#b4c4ca) on a neutral background (#010304).
| Token | Light | Dark |
|---|---|---|
| Background | #fbfdfdwhite | #010304black |
| Foreground | #030d11black | #f6f8f9whitesmoke |
| Card | #f8fbfcghostwhite | #020608black |
| Card foreground | #020a0dblack | #f9fafbghostwhite |
| Popover | #fbfdfdwhite | #010304black |
| Popover foreground | #030d11black | #f6f8f9whitesmoke |
| Primary | #b4c4casilver | #b4c4casilver |
| Primary foreground | #20292ddarkslategray | #20292ddarkslategray |
| Secondary | #d2d8dalightgrey | #12191cblack |
| Secondary foreground | #374043darkslategray | #a0b7c0darkgray |
| Muted | #d9dcdegainsboro | #212526darkslategray |
| Muted foreground | #45484adarkslategray | #b5b9basilver |
| Accent | #d2d8dalightgrey | #12191cblack |
| Accent foreground | #374043darkslategray | #a0b7c0darkgray |
| Destructive | #9c1d11firebrick | #e73727crimson |
| Destructive foreground | #fce6e3mistyrose | #ffffffwhite |
| Border | #e5e7eblavender | #1f2937darkslategray |
| Input | #e5e7eblavender | #1f2937darkslategray |
| Ring | #b4c4casilver | #b4c4casilver |
WCAG 2 contrast ratios between each background and its foreground color.
| Text on background | 19.24:1 | AAA |
| Text on card | 19.17:1 | AAA |
| Primary button | 8.27:1 | AAA |
| Secondary button | 7.38:1 | AAA |
| Muted text | 6.70:1 | AA |
| Accent | 7.38:1 | AAA |
| Destructive | 6.76:1 | AA |
| Text on background | 19.38:1 | AAA |
| Text on card | 19.43:1 | AAA |
| Primary button | 8.27:1 | AAA |
| Secondary button | 8.48:1 | AAA |
| Muted text | 7.82:1 | AAA |
| Accent | 8.48:1 | AAA |
| Destructive | 4.21:1 | AA Large |
Paste this into your globals.css to use Wedge in your shadcn/ui project.
:root {
--radius: 0.5rem;
--background: oklch(0.993 0.002 221.319);
--foreground: oklch(0.152 0.019 219.807);
--muted: oklch(0.893 0.004 221.347);
--muted-foreground: oklch(0.401 0.005 221.407);
--popover: oklch(0.993 0.002 221.319);
--popover-foreground: oklch(0.152 0.019 219.807);
--card: oklch(0.986 0.003 221.333);
--card-foreground: oklch(0.137 0.017 216.78);
--border: oklch(0.928 0.006 264.531);
--input: oklch(0.928 0.006 264.531);
--primary: oklch(0.811 0.019 221.537);
--primary-foreground: oklch(0.275 0.015 221.959);
--secondary: oklch(0.879 0.007 221.376);
--secondary-foreground: oklch(0.365 0.013 221.69);
--accent: oklch(0.879 0.007 221.376);
--accent-foreground: oklch(0.365 0.013 221.69);
--destructive: oklch(0.45 0.164 29.961);
--destructive-foreground: oklch(0.941 0.025 23.855);
--ring: oklch(0.811 0.019 221.537);
--chart-1: oklch(0.811 0.019 221.537);
--chart-2: oklch(0.879 0.007 221.376);
--chart-3: oklch(0.879 0.007 221.376);
--chart-4: oklch(0.902 0.006 221.361);
--chart-5: oklch(0.812 0.023 221.585);
}
.dark {
--radius: 0.5rem;
--background: oklch(0.094 0.009 216.623);
--foreground: oklch(0.978 0.003 221.331);
--muted: oklch(0.261 0.006 221.524);
--muted-foreground: oklch(0.782 0.004 221.347);
--popover: oklch(0.094 0.009 216.623);
--popover-foreground: oklch(0.978 0.003 221.331);
--card: oklch(0.118 0.011 216.623);
--card-foreground: oklch(0.985 0.002 221.322);
--border: oklch(0.278 0.03 256.848);
--input: oklch(0.278 0.03 256.848);
--primary: oklch(0.811 0.019 221.537);
--primary-foreground: oklch(0.275 0.015 221.959);
--secondary: oklch(0.208 0.011 221.958);
--secondary-foreground: oklch(0.766 0.028 221.701);
--accent: oklch(0.208 0.011 221.958);
--accent-foreground: oklch(0.766 0.028 221.701);
--destructive: oklch(0.609 0.214 29.767);
--destructive-foreground: oklch(1 0 180);
--ring: oklch(0.811 0.019 221.537);
--chart-1: oklch(0.811 0.019 221.537);
--chart-2: oklch(0.208 0.011 221.958);
--chart-3: oklch(0.208 0.011 221.958);
--chart-4: oklch(0.242 0.014 222.048);
--chart-5: oklch(0.812 0.023 221.585);
}