Skip to content
ChromaBrew

Design system #47003A

Colours

Colour scale

Generated in OKLCH with your brand hue preserved; the source colour is pinned at its natural position.

Palette

6 colours
Primary#47003a
Complement#002f1a
Primary 2#621d52
Complement 2#004a2b
Primary 3#2d0024
Complement 3#001c0d

Lock swatches to keep them while regenerating, or type a HEX value to override one manually.

Refinement

0%
0%
0°
0%

Locked colours won't be affected by refinement.

Layout primitives

Radius style

Type scale

Fonts

The quick brown fox — 48pt heading sample

Dark background

Typography tokens
StepSize / LHCopy
xs0.64rem / 1.45
sm0.8rem / 1.45
base1rem / 1.5
lg1.25rem / 1.4
xl1.563rem / 1.3
2xl1.953rem / 1.15
3xl2.441rem / 1.15
4xl3.052rem / 1.15
5xl3.815rem / 1.15

Spacing (4px base)

24681012162024324048648096

Radii

Elevation

smmdlgxl

Exports include these as CSS variables (--font-size-*, --space-*, --radius-*, --shadow-*) and native Tailwind v4 theme namespaces.

Placeholder content — your tokens, real interfaces

Overview

MRR

$48,210

+12.4% sample

Active customers

1,284

+3.1% sample

Churned

17

-0.8% sample

Recent invoices

CustomerAmountStatus
Harbor & Co$1,240.00Paid
Northwind Labs$860.00Pending
Bluepeak GmbH$2,410.00Paid
Summit Studio$310.00Overdue
Ridgeway LLC$980.00Draft
Notifications

Accessibility — WCAG 2.x

Light: all AA pairs pass · Dark: all AA pairs pass

Contrast ratios for key colour pairs with WCAG pass/fail results
PairPreviewRatioAA normalAA largeAAA normalAAA largeFix
Body text on page backgroundlight18.37:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Muted text on page backgroundlight8.18:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Body text on cardslight18.48:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Primary buttonlight15.80:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Secondary buttonlight5.71:1PASSPASS passesPASSPASS passesFAILFAIL failsPASSPASS passes
Accent elementlight10.23:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Success badgelight4.57:1PASSPASS passesPASSPASS passesFAILFAIL failsPASSPASS passes
Warning badgelight9.35:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Danger badgelight4.55:1PASSPASS passesPASSPASS passesFAILFAIL failsPASSPASS passes
Info badgelight4.50:1PASSPASS passesPASSPASS passesFAILFAIL failsPASSPASS passes
Body text on page backgrounddark16.67:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Muted text on page backgrounddark7.93:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Body text on cardsdark15.46:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Primary buttondark4.69:1PASSPASS passesPASSPASS passesFAILFAIL failsPASSPASS passes
Secondary buttondark10.43:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Accent elementdark4.76:1PASSPASS passesPASSPASS passesFAILFAIL failsPASSPASS passes
Success badgedark9.13:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Warning badgedark10.91:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Danger badgedark8.13:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes
Info badgedark8.78:1PASSPASS passesPASSPASS passesPASSPASS passesPASSPASS passes

Thresholds: AA normal ≥ 4.5:1, AA large ≥ 3:1, AAA normal ≥ 7:1, AAA large ≥ 4.5:1. Fixes adjust the nearest accessible value in OKLCH, preserving hue.

Colour-blind preview

Simulated difference for each pair — under ~30 they are hard to tell apart.

Each foreground/background pair simulated for protanopia, deuteranopia and tritanopia
PairProtanopiaDeuteranopiaTritanopia
Body text on page backgroundlightdiff 92 · 18.66:1Distinguishablediff 92 · 18.40:1Distinguishablediff 92 · 18.34:1Distinguishable
Muted text on page backgroundlightdiff 69 · 8.42:1Distinguishablediff 68 · 8.16:1Distinguishablediff 68 · 8.17:1Distinguishable
Body text on cardslightdiff 93 · 18.69:1Distinguishablediff 92 · 18.55:1Distinguishablediff 92 · 18.45:1Distinguishable
Primary buttonlightdiff 91 · 18.58:1Distinguishablediff 89 · 17.58:1Distinguishablediff 88 · 15.51:1Distinguishable
Secondary buttonlightdiff 47 · 5.90:1Distinguishablediff 45 · 5.39:1Distinguishablediff 45 · 5.73:1Distinguishable
Accent elementlightdiff 77 · 12.25:1Distinguishablediff 74 · 10.87:1Distinguishablediff 74 · 10.07:1Distinguishable
Success badgelightdiff 38 · 4.60:1Distinguishablediff 33 · 3.77:1Distinguishablediff 35 · 4.46:1Distinguishable
Warning badgelightdiff 56 · 8.36:1Distinguishablediff 61 · 9.87:1Distinguishablediff 64 · 8.52:1Distinguishable
Danger badgelightdiff 66 · 6.88:1Distinguishablediff 61 · 4.99:1Distinguishablediff 59 · 3.93:1Distinguishable
Info badgelightdiff 50 · 4.37:1Distinguishablediff 59 · 5.93:1Distinguishablediff 68 · 3.89:1Distinguishable
Body text on page backgrounddarkdiff 89 · 16.60:1Distinguishablediff 89 · 16.69:1Distinguishablediff 89 · 16.64:1Distinguishable
Muted text on page backgrounddarkdiff 60 · 7.86:1Distinguishablediff 60 · 7.92:1Distinguishablediff 61 · 7.93:1Distinguishable
Body text on cardsdarkdiff 85 · 15.44:1Distinguishablediff 85 · 15.48:1Distinguishablediff 85 · 15.43:1Distinguishable
Primary buttondarkdiff 44 · 4.06:1Distinguishablediff 46 · 4.61:1Distinguishablediff 49 · 4.78:1Distinguishable
Secondary buttondarkdiff 73 · 10.45:1Distinguishablediff 74 · 11.23:1Distinguishablediff 76 · 10.35:1Distinguishable
Accent elementdarkdiff 44 · 4.16:1Distinguishablediff 46 · 4.71:1Distinguishablediff 49 · 4.86:1Distinguishable
Success badgedarkdiff 61 · 9.41:1Distinguishablediff 57 · 8.17:1Distinguishablediff 57 · 8.87:1Distinguishable
Warning badgedarkdiff 61 · 9.85:1Distinguishablediff 66 · 11.52:1Distinguishablediff 70 · 10.09:1Distinguishable
Danger badgedarkdiff 50 · 6.17:1Distinguishablediff 57 · 7.96:1Distinguishablediff 64 · 7.63:1Distinguishable
Info badgedarkdiff 73 · 9.48:1Distinguishablediff 68 · 7.68:1Distinguishablediff 61 · 9.44:1Distinguishable

Simulations use the Machado, Oliveira & Fernandes (2009) matrices. A passing WCAG ratio does not guarantee the pair stays distinguishable under a colour vision deficiency — these checks surface pairs that collapse even though the numbers look fine.

Semantic tokens

Page tokens
TokenLightDark
--background
--background-subtle
--foreground
--foreground-muted
--foreground-subtle
Surfaces tokens
TokenLightDark
--surface
--surface-raised
--surface-muted
Primary & secondary tokens
TokenLightDark
--primary
--primary-hover
--primary-active
--primary-foreground
--secondary
--secondary-hover
--secondary-foreground
Accent tokens
TokenLightDark
--accent
--accent-foreground
Borders & inputs tokens
TokenLightDark
--border
--border-muted
--border-strong
--input
--input-border
--focus-ring
Status tokens
TokenLightDark
--success
--success-foreground
--warning
--warning-foreground
--danger
--danger-foreground
--info
--info-foreground

AI Palette Suggestion

Describe your brand and get 5 smart palette options

Export

Web

Mobile / Desktop

Design Tools

Plain CSS custom properties with a .dark override block.

/*
  Design system #47003A design tokens
  Source: #47003a
  Generated by ChromaBrew — free design system generator
*/
:root {
  --background: #fffcfe;
  --background-subtle: #faf1f7;
  --foreground: #1b0e17;
  --foreground-muted: #584a53;
  --foreground-subtle: #7e727a;
  --surface: #fffdfe;
  --surface-raised: #ffffff;
  --surface-muted: #fcf3f9;
  --primary: #47003a;
  --primary-hover: #38002d;
  --primary-active: #290021;
  --primary-foreground: #ffffff;
  --secondary: #6e9b81;
  --secondary-hover: #5d896f;
  --secondary-foreground: #1d141a;
  --accent: #6b265b;
  --accent-foreground: #ffffff;
  --border: #e4dbe1;
  --border-muted: #ebe4e8;
  --border-strong: #cabfc6;
  --input: #ffffff;
  --input-border: #e4dbe1;
  --focus-ring: #47003a;
  --success: #2b9338;
  --success-foreground: #1d141a;
  --warning: #ebb213;
  --warning-foreground: #1d141a;
  --danger: #c94c49;
  --danger-foreground: #ffffff;
  --info: #007cc2;
  --info-foreground: #ffffff;
}

.dark {
  --background: #0e090c;
  --background-subtle: #150f13;
  --foreground: #f3e9f0;
  --foreground-muted: #aaa2a7;
  --foreground-subtle: #797377;
  --surface: #191317;
  --surface-raised: #201a1e;
  --surface-muted: #130e11;
  --primary: #b0639b;
  --primary-hover: #c072ab;
  --primary-active: #a65a92;
  --primary-foreground: #130c11;
  --secondary: #103c26;
  --secondary-hover: #214c35;
  --secondary-foreground: #e1efe6;
  --accent: #b0659b;
  --accent-foreground: #130c11;
  --border: #322c30;
  --border-muted: #282326;
  --border-strong: #4a4348;
  --input: #191317;
  --input-border: #322c30;
  --focus-ring: #b0639b;
  --success: #6bc670;
  --success-foreground: #130c11;
  --warning: #f0bb3b;
  --warning-foreground: #130c11;
  --danger: #ff847d;
  --danger-foreground: #130c11;
  --info: #59b6ff;
  --info-foreground: #130c11;
}

:root {
  --font-heading: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-sans: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;

  --font-size-xs: 0.64rem;
  --font-size-xs-line-height: 1.45;
  --font-size-xs-letter-spacing: 0em;
  --font-size-sm: 0.8rem;
  --font-size-sm-line-height: 1.45;
  --font-size-sm-letter-spacing: 0em;
  --font-size-base: 1rem;
  --font-size-base-line-height: 1.5;
  --font-size-base-letter-spacing: 0em;
  --font-size-lg: 1.25rem;
  --font-size-lg-line-height: 1.4;
  --font-size-lg-letter-spacing: 0em;
  --font-size-xl: 1.563rem;
  --font-size-xl-line-height: 1.3;
  --font-size-xl-letter-spacing: -0.01em;
  --font-size-2xl: 1.953rem;
  --font-size-2xl-line-height: 1.15;
  --font-size-2xl-letter-spacing: -0.02em;
  --font-size-3xl: 2.441rem;
  --font-size-3xl-line-height: 1.15;
  --font-size-3xl-letter-spacing: -0.02em;
  --font-size-4xl: 3.052rem;
  --font-size-4xl-line-height: 1.15;
  --font-size-4xl-letter-spacing: -0.02em;
  --font-size-5xl: 3.815rem;
  --font-size-5xl-line-height: 1.15;
  --font-size-5xl-letter-spacing: -0.02em;

  --space-2: 0.125rem;
  --space-4: 0.25rem;
  --space-6: 0.375rem;
  --space-8: 0.5rem;
  --space-10: 0.625rem;
  --space-12: 0.75rem;
  --space-16: 1rem;
  --space-20: 1.25rem;
  --space-24: 1.5rem;
  --space-32: 2rem;
  --space-40: 2.5rem;
  --space-48: 3rem;
  --space-64: 4rem;
  --space-80: 5rem;
  --space-96: 6rem;

  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 2px 0 rgb(0 0 / 0.05);
  --shadow-md: 0 2px 4px -1px rgb(0 0 / 0.06), 0 4px 10px -2px rgb(0 0 / 0.07);
  --shadow-lg: 0 4px 8px -2px rgb(0 0 / 0.08), 0 12px 24px -6px rgb(0 0 / 0.1);
  --shadow-xl: 0 8px 16px -4px rgb(0 0 / 0.1), 0 24px 48px -12px rgb(0 0 / 0.14);
}