Clause is a shadcn/ui theme built around a vivid deep blue primary color (#030e21) with vivid deep orange accents (#211503). The light mode uses a neutral background (#fbfcfd). Dark mode keeps the vivid deep blue primary (#030e21) on a neutral background (#010204).
| Token | Light | Dark |
|---|---|---|
| Background | #fbfcfdwhite | #010204black |
| Foreground | #030911black | #f8fafcghostwhite |
| Card | #fbfcfdwhite | #010204black |
| Card foreground | #030911black | #f8fafcghostwhite |
| Popover | #fbfcfdwhite | #010204black |
| Popover foreground | #030911black | #f8fafcghostwhite |
| Primary | #030e21black | #030e21black |
| Primary foreground | #639af2cornflowerblue | #639af2cornflowerblue |
| Secondary | #211503black | #211503black |
| Secondary foreground | #de9012goldenrod | #de9012goldenrod |
| Muted | #eae9e6linen | #191715black |
| Muted foreground | #565552dimgray | #adaba9darkgray |
| Accent | #211503black | #211503black |
| Accent foreground | #de9012goldenrod | #de9012goldenrod |
| Destructive | #771008maroon | #db1d0ffirebrick |
| Destructive foreground | #fabcb7lightpink | #ffffffwhite |
| Border | #e5e7eblavender | #1f2937darkslategray |
| Input | #e5e7eblavender | #1f2937darkslategray |
| Ring | #030e21black | #030e21black |
WCAG 2 contrast ratios between each background and its foreground color.
| Text on background | 19.49:1 | AAA |
| Text on card | 19.49:1 | AAA |
| Primary button | 6.82:1 | AA |
| Secondary button | 6.89:1 | AA |
| Muted text | 6.12:1 | AA |
| Accent | 6.89:1 | AA |
| Destructive | 6.94:1 | AA |
| Text on background | 19.81:1 | AAA |
| Text on card | 19.81:1 | AAA |
| Primary button | 6.82:1 | AA |
| Secondary button | 6.89:1 | AA |
| Muted text | 7.78:1 | AAA |
| Accent | 6.89:1 | AA |
| Destructive | 4.99:1 | AA |
Paste this into your globals.css to use Clause in your shadcn/ui project.
:root {
--radius: 0.5rem;
--background: oklch(0.991 0.002 259.936);
--foreground: oklch(0.135 0.023 252.648);
--muted: oklch(0.933 0.004 79.926);
--muted-foreground: oklch(0.448 0.004 79.919);
--popover: oklch(0.991 0.002 259.936);
--popover-foreground: oklch(0.135 0.023 252.648);
--card: oklch(0.991 0.002 259.936);
--card-foreground: oklch(0.135 0.023 252.648);
--border: oklch(0.928 0.006 264.531);
--input: oklch(0.928 0.006 264.531);
--primary: oklch(0.166 0.044 256.257);
--primary-foreground: oklch(0.688 0.143 259.51);
--secondary: oklch(0.208 0.038 78.737);
--secondary-foreground: oklch(0.715 0.151 70.221);
--accent: oklch(0.208 0.038 78.737);
--accent-foreground: oklch(0.715 0.151 70.221);
--destructive: oklch(0.367 0.138 29.61);
--destructive-foreground: oklch(0.85 0.072 23.361);
--ring: oklch(0.166 0.044 256.257);
--chart-1: oklch(0.166 0.044 256.257);
--chart-2: oklch(0.208 0.038 78.737);
--chart-3: oklch(0.208 0.038 78.737);
--chart-4: oklch(0.252 0.048 75.991);
--chart-5: oklch(0.165 0.046 255.855);
}
.dark {
--radius: 0.5rem;
--background: oklch(0.087 0.009 252.759);
--foreground: oklch(0.983 0.003 259.937);
--muted: oklch(0.208 0.006 79.849);
--muted-foreground: oklch(0.742 0.003 79.926);
--popover: oklch(0.087 0.009 252.759);
--popover-foreground: oklch(0.983 0.003 259.937);
--card: oklch(0.087 0.009 252.759);
--card-foreground: oklch(0.983 0.003 259.937);
--border: oklch(0.278 0.03 256.848);
--input: oklch(0.278 0.03 256.848);
--primary: oklch(0.166 0.044 256.257);
--primary-foreground: oklch(0.688 0.143 259.51);
--secondary: oklch(0.208 0.038 78.737);
--secondary-foreground: oklch(0.715 0.151 70.221);
--accent: oklch(0.208 0.038 78.737);
--accent-foreground: oklch(0.715 0.151 70.221);
--destructive: oklch(0.57 0.221 29.739);
--destructive-foreground: oklch(1 0 180);
--ring: oklch(0.166 0.044 256.257);
--chart-1: oklch(0.166 0.044 256.257);
--chart-2: oklch(0.208 0.038 78.737);
--chart-3: oklch(0.208 0.038 78.737);
--chart-4: oklch(0.252 0.048 75.991);
--chart-5: oklch(0.165 0.046 255.855);
}