Colour themes

One light theme: the shadcn globals.css mapping. Generated from phase-2/kit/tokens.css (kit v3); the full page is docs › Foundations.

shadcn mapping

The globals.css block, generated from tokens.css, and the Tailwind 3.4 colour key for every role.

globals.css · :root (generated from tokens.css)
:root {
  --background: 0 0% 100%;
  --foreground: 222 43% 10%;
  --card: 0 0% 100%;
  --card-foreground: 222 43% 10%;
  --popover: 0 0% 100%;
  --popover-foreground: 222 43% 10%;
  --primary: 220 49% 11%;
  --primary-foreground: 60 17% 98%;
  --primary-hover: 223 42% 18%;
  --secondary: 0 0% 100%;
  --secondary-foreground: 220 49% 11%;
  --muted: 225 22% 96%;
  --muted-foreground: 221 17% 38%;
  --accent: 224 38% 94%;
  --accent-foreground: 220 49% 11%;
  --destructive: 353 53% 42%;
  --destructive-foreground: 0 0% 100%;
  --border: 220 20% 91%;
  --input: 219 14% 59%;
  --input-hover: 223 17% 45%;
  --secondary-border: 219 14% 79%;
  --secondary-border-hover: 220 10% 70%;
  --ring: 221 45% 45%;
  --radius: 0.375rem;
  --success: 158 51% 26%;
  --success-foreground: 0 0% 100%;
  --warning: 36 79% 29%;
  --warning-foreground: 0 0% 100%;
  --info: 218 49% 39%;
  --info-foreground: 0 0% 100%;
  --neutral: 222 13% 39%;
  --neutral-foreground: 0 0% 100%;
  --draft: var(--info);
  --available: var(--success);
  --retired: var(--neutral);
  --locked: var(--neutral);
  --not-wired: var(--warning);
  --sidebar: 220 49% 11%;
  --sidebar-background: var(--sidebar);
  --sidebar-foreground: 222 19% 82%;
  --sidebar-primary: 221 54% 75%;
  --sidebar-primary-foreground: 220 49% 11%;
  --sidebar-accent: 222 43% 19%;
  --sidebar-accent-foreground: 60 17% 98%;
  --sidebar-border: 222 33% 22%;
  --sidebar-ring: 221 54% 75%;
  --chart-1: 219 61% 47%;
  --chart-2: 166 76% 36%;
  --chart-3: 20 70% 53%;
  --chart-4: 229 62% 68%;
  --chart-5: 334 58% 58%;
  --chart-muted: 221 25% 58%;
}
TokenUtilitytailwind.config.ts theme.extend.colorsKind
--backgroundbg-background'background': 'hsl(var(--background) / <alpha-value>)',shadcn standard
--foregroundtext-foreground'foreground': 'hsl(var(--foreground) / <alpha-value>)',shadcn standard
--cardbg-card'card': 'hsl(var(--card) / <alpha-value>)',shadcn standard
--card-foregroundtext-card-foreground'card-foreground': 'hsl(var(--card-foreground) / <alpha-value>)',shadcn standard
--popoverbg-popover'popover': 'hsl(var(--popover) / <alpha-value>)',shadcn standard
--popover-foregroundtext-popover-foreground'popover-foreground': 'hsl(var(--popover-foreground) / <alpha-value>)',shadcn standard
--primarybg-primary'primary': 'hsl(var(--primary) / <alpha-value>)',shadcn standard
--primary-foregroundtext-primary-foreground'primary-foreground': 'hsl(var(--primary-foreground) / <alpha-value>)',shadcn standard
--primary-hoverbg-primary-hover'primary-hover': 'hsl(var(--primary-hover) / <alpha-value>)',RJ extension
--secondarybg-secondary'secondary': 'hsl(var(--secondary) / <alpha-value>)',shadcn standard
--secondary-foregroundtext-secondary-foreground'secondary-foreground': 'hsl(var(--secondary-foreground) / <alpha-value>)',shadcn standard
--mutedbg-muted'muted': 'hsl(var(--muted) / <alpha-value>)',shadcn standard
--muted-foregroundtext-muted-foreground'muted-foreground': 'hsl(var(--muted-foreground) / <alpha-value>)',shadcn standard
--accentbg-accent'accent': 'hsl(var(--accent) / <alpha-value>)',shadcn standard
--accent-foregroundtext-accent-foreground'accent-foreground': 'hsl(var(--accent-foreground) / <alpha-value>)',shadcn standard
--destructivebg-destructive'destructive': 'hsl(var(--destructive) / <alpha-value>)',shadcn standard
--destructive-foregroundtext-destructive-foreground'destructive-foreground': 'hsl(var(--destructive-foreground) / <alpha-value>)',shadcn standard
--borderborder-border'border': 'hsl(var(--border) / <alpha-value>)',shadcn standard
--inputborder-input'input': 'hsl(var(--input) / <alpha-value>)',shadcn standard
--input-hoverborder-input-hover'input-hover': 'hsl(var(--input-hover) / <alpha-value>)',RJ extension
--secondary-borderborder-secondary-border'secondary-border': 'hsl(var(--secondary-border) / <alpha-value>)',RJ extension
--secondary-border-hoverborder-secondary-border-hover'secondary-border-hover': 'hsl(var(--secondary-border-hover) / <alpha-value>)',RJ extension
--ringring-ring'ring': 'hsl(var(--ring) / <alpha-value>)',shadcn standard
--successbg-success'success': 'hsl(var(--success) / <alpha-value>)',RJ extension
--success-foregroundtext-success-foreground'success-foreground': 'hsl(var(--success-foreground) / <alpha-value>)',RJ extension
--warningbg-warning'warning': 'hsl(var(--warning) / <alpha-value>)',RJ extension
--warning-foregroundtext-warning-foreground'warning-foreground': 'hsl(var(--warning-foreground) / <alpha-value>)',RJ extension
--infobg-info'info': 'hsl(var(--info) / <alpha-value>)',RJ extension
--info-foregroundtext-info-foreground'info-foreground': 'hsl(var(--info-foreground) / <alpha-value>)',RJ extension
--neutralbg-neutral'neutral': 'hsl(var(--neutral) / <alpha-value>)',RJ extension
--neutral-foregroundtext-neutral-foreground'neutral-foreground': 'hsl(var(--neutral-foreground) / <alpha-value>)',RJ extension
--draftbg-draft'draft': 'hsl(var(--draft) / <alpha-value>)',RJ extension
--availablebg-available'available': 'hsl(var(--available) / <alpha-value>)',RJ extension
--retiredbg-retired'retired': 'hsl(var(--retired) / <alpha-value>)',RJ extension
--lockedbg-locked'locked': 'hsl(var(--locked) / <alpha-value>)',RJ extension
--not-wiredbg-not-wired'not-wired': 'hsl(var(--not-wired) / <alpha-value>)',RJ extension
--sidebarbg-sidebar'sidebar': 'hsl(var(--sidebar) / <alpha-value>)',shadcn standard
--sidebar-backgroundbg-sidebar-background'sidebar-background': 'hsl(var(--sidebar-background) / <alpha-value>)',shadcn standard
--sidebar-foregroundtext-sidebar-foreground'sidebar-foreground': 'hsl(var(--sidebar-foreground) / <alpha-value>)',shadcn standard
--sidebar-primarybg-sidebar-primary'sidebar-primary': 'hsl(var(--sidebar-primary) / <alpha-value>)',shadcn standard
--sidebar-primary-foregroundtext-sidebar-primary-foreground'sidebar-primary-foreground': 'hsl(var(--sidebar-primary-foreground) / <alpha-value>)',shadcn standard
--sidebar-accentbg-sidebar-accent'sidebar-accent': 'hsl(var(--sidebar-accent) / <alpha-value>)',shadcn standard
--sidebar-accent-foregroundtext-sidebar-accent-foreground'sidebar-accent-foreground': 'hsl(var(--sidebar-accent-foreground) / <alpha-value>)',shadcn standard
--sidebar-borderborder-sidebar-border'sidebar-border': 'hsl(var(--sidebar-border) / <alpha-value>)',shadcn standard
--sidebar-ringring-sidebar-ring'sidebar-ring': 'hsl(var(--sidebar-ring) / <alpha-value>)',shadcn standard
--chart-1bg-chart-1'chart-1': 'hsl(var(--chart-1) / <alpha-value>)',shadcn standard
--chart-2bg-chart-2'chart-2': 'hsl(var(--chart-2) / <alpha-value>)',shadcn standard
--chart-3bg-chart-3'chart-3': 'hsl(var(--chart-3) / <alpha-value>)',shadcn standard
--chart-4bg-chart-4'chart-4': 'hsl(var(--chart-4) / <alpha-value>)',shadcn standard
--chart-5bg-chart-5'chart-5': 'hsl(var(--chart-5) / <alpha-value>)',shadcn standard
--chart-mutedbg-chart-muted'chart-muted': 'hsl(var(--chart-muted) / <alpha-value>)',RJ extension

Presentation colours

Kit and docs pages only. Never in product UI.

TokenValue (HSL triple)Renders asAuthored hexRoleDirect refs
--canvas214 24% 94%#ECEFF3#EDF0F4page behind specimen cards1
--studioradial-gradient(120% 90% at 50% 18%, #f7f8fa 0%, #e3e7ee 80%)——garment photo ground15