Today (record)

Record: contrast reported, not enforced

The values web and DocuCert ship on 2026-10-29, transcribed as the comparison baseline (spec §5.2 P0). Not a theme to adopt.

9 of 30 gated contrast pairs are under WCAG AA.

Colour roles

Apps write these roles, never a palette class (D11, D12).

Text

--color-ink
#111827

Primary text. DocuCert --color-ink, kit --ink.

--color-ink-2
#374151

Secondary text. DocuCert --color-ink-2.

--color-mute
#6b7280

Muted text and captions. DocuCert --color-mute.

--color-faint
#9ca3af

Faint text, placeholders. DocuCert --color-faint (198 text uses); web text-gray-400 / slate-400 (497).

Surfaces

--color-canvas
#f9fafb

Page background. DocuCert --color-canvas, kit --bg.

--color-panel
#ffffff

Card and panel surface. DocuCert --color-panel.

--color-plan
#1f2530

The viewer's dark canvas. web and DocuCert --color-plan.

--color-plan-deep
#161b23

web and DocuCert --color-plan-deep.

Lines and focus

--color-line
#e5e7eb

Borders and dividers. DocuCert --color-line.

--color-line-2
#f3f4f6

Subtle dividers. DocuCert --color-line-2.

--color-line-strong
#d1d5db

A control's edge. web inputs: border-gray-300. DocuCert inputs draw it with line (gray-200).

--color-ring
#020817

Focus ring. web's shadcn --ring; the kit has none.

Brand

--color-brand
#346dff

Brand. DocuCert --color-brand, kit --brand.

--color-brand-2
#2563eb

web empty-state CTA hover: hover:bg-blue-600. The shadcn Button hovers at blue-500/90 instead.

--color-brand-fg
#ffffff

text-white on the blue buttons.

--color-accent
#1d4ed8

Active nav, links. Kit --accent (not in DocuCert's styles.css).

--color-accent-bg
#eff6ff

Kit --accent-bg; web active nav bg-blue-50.

--color-accent-line
#bfdbfe

Kit --accent-line.

Logo

--color-logo
#346dff

The logo's folder and wordmark, #346DFF.

--color-logo-tab
#ffb526

The logo's tab, #FFB526.

--color-logo-bar
#3ab56b

The logo's bar, #3AB56B.

Status

--color-ok
#15803d

Kit --ok. DocuCert writes green-700 directly.

--color-ok-bg
#f0fdf4

Kit --ok-bg.

--color-ok-line
#bbf7d0

Kit --ok-line.

--color-bad
#b91c1c

Kit --bad.

--color-bad-bg
#fef2f2

Kit --bad-bg.

--color-bad-line
#fecaca

Kit --bad-line.

--color-warn
#b45309

Kit --warn.

--color-warn-bg
#fffbeb

Kit --warn-bg.

--color-warn-line
#fde68a

Kit --warn-line.

--color-re
#4338ca

Re-review. Kit --re.

--color-re-bg
#eef2ff

Kit --re-bg.

--color-re-line
#c7d2fe

Kit --re-line.

--color-new
#6d28d9

"N new". DocuCert --color-new.

--color-new-bg
#ede9fe

DocuCert --color-new-bg.

--color-int
#334155

Internal notes. DocuCert --color-int.

--color-int-ink
#1e293b

DocuCert --color-int-ink.

--color-int-bg
#f1f5f9

DocuCert --color-int-bg.

--color-int-line
#cbd5e1

DocuCert --color-int-line.

--color-int-2
#e2e8f0

DocuCert --color-int-2.

Contrast (G17)

WCAG 2.x ratio. 4.5 for text, 3 for large text and non-text UI. Advisory pairs are reported and never fail a build.

SamplePairRatioMinResultUse
Aa Samplecolor.ink
on color.panel
17.744.5PassBody text on a panel
Aa Samplecolor.ink
on color.canvas
16.984.5PassBody text on the page
Aa Samplecolor.ink-2
on color.panel
10.314.5PassSecondary text
Aa Samplecolor.mute
on color.panel
4.834.5PassMuted text and captions on a panel
Aa Samplecolor.mute
on color.canvas
4.634.5PassMuted text on the page
Aa Samplecolor.faint
on color.canvas
2.434.5FailFaint text on the page
Aa Samplecolor.faint
on color.panel
2.544.5FailFaint text. G17: either disabled / decorative only, or dark enough to pass
Aa Samplecolor.brand
on color.panel
4.404.5FailBrand-coloured text
Aa Samplecolor.accent
on color.panel
6.704.5PassLinks and the active nav item
Aa Samplecolor.brand-fg
on color.brand
4.404.5FailPrimary button label
Aa Samplecolor.brand-fg
on color.brand-2
5.174.5PassPrimary button label, hover and pressed
Aa Samplecolor.accent
on color.accent-bg
6.164.5PassActive nav item, info tag
Aa Samplecolor.ink
on color.accent-bg
16.304.5PassText on a selected row
Aa Samplecolor.ok
on color.ok-bg
4.794.5PassStatus word on its tint: ok
Aa Samplecolor.bad
on color.bad-bg
5.914.5PassStatus word on its tint: bad
Aa Samplecolor.warn
on color.warn-bg
4.844.5PassStatus word on its tint: warn
Aa Samplecolor.re
on color.re-bg
7.074.5PassStatus word on its tint: re-review
Aa Samplecolor.new
on color.new-bg
5.984.5Pass"N new" on its tint
Aa Samplecolor.int
on color.int-bg
9.454.5PassInternal-note text on its tint
Aa Samplecolor.int-ink
on color.int-bg
13.354.5PassInternal-note body text on its tint
Aa Samplecolor.ring
on color.panel
20.013PassFocus ring (non-text)
Aa Samplecolor.ring
on color.canvas
19.143PassFocus ring on the page (non-text)
Aa Samplecolor.line-strong
on color.panel
1.473FailA control's edge: input, select and checkbox borders (non-text). line itself is decorative.
Aa Samplecolor.ok-line
on color.ok-bg
1.163AdvisoryStatus tag border. Advisory: decorative while the word names the tag
Aa Samplecolor.bad-line
on color.bad-bg
1.323AdvisoryStatus tag border. Advisory
Aa Samplecolor.warn-line
on color.warn-bg
1.203AdvisoryStatus tag border. Advisory
Aa Samplecolor.re-line
on color.re-bg
1.333AdvisoryStatus tag border. Advisory
Aa Samplecolor.logo
on color.panel
4.403PassLogo mark. Advisory: logotypes are exempt (WCAG 1.4.3)
Aa Samplelegacy.button-default-fg
on legacy.button-default-bg
3.684.5Failweb primary Button: white on bg-blue-500
Aa Samplelegacy.shadcn-muted-foreground
on color.panel
4.764.5Passweb text-muted-foreground
Aa Samplelegacy.email-accent
on legacy.email-card-bg
3.294.5FailEmail accent and link text
Aa Samplelegacy.email-body
on legacy.email-card-bg
12.634.5PassEmail body text
Aa Samplelegacy.email-muted
on legacy.email-card-bg
7.464.5PassEmail muted text
Aa Samplelegacy.email-faint
on legacy.email-card-bg
2.854.5FailEmail faint text
Aa Samplelegacy.email-footer-text
on legacy.email-footer-bg
3.374.5FailEmail footer text

Type

--font-sans

Banksia Rise OC · Condition 14(b) · 2,418 items

ADR 0031 UI face. The tail is Tailwind's default stack, so a failed load renders the OS face.

--font-mono

Banksia Rise OC · Condition 14(b) · 2,418 items

ADR 0031 data face.

--text-title
30px / 34.5px · 800
DocuCert page header h1: text-[30px] leading-[1.15] font-extrabold tracking-[-.025em]. web's Requirements page has no title.
--text-display
22px / 26px · 800
DocuCert count tiles: text-[22px] font-extrabold.
--text-heading
16px / 24px · 600
web set header: text-base font-semibold.
--text-body
14px / 20px · 400
text-sm, with the v3 line-height restore.
--text-label
14px / 20px · 500
text-sm font-medium: buttons, nav.
--text-small
13px / 18px · 400
text-[13px] and text-[13.5px], two of the 22 arbitrary sizes.
--text-caption
12px / 16px · 400
text-xs.
--text-eyebrow
12px / 16px · 600
web table headers: text-xs font-semibold uppercase tracking-wider.

Shape

--radius-sm
6px
--radius-md
8px
--radius-lg
12px
--radius-pill
9999px
--shadow-sm
--shadow-md
--shadow-lg
--spacing-tap = 2.75rem

44px: the touch target (V5 L8). G10 grows interactive hit areas to it under pointer: coarse.

--spacing-control-sm = 36px

shadcn Button sm: h-9.

--spacing-control-md = 40px

shadcn Button default: h-10.

--spacing-control-lg = 44px

shadcn Button lg: h-11.

--spacing-row = 60px

Requirements rows: about 60px, set by the 36px due-date chip.

--spacing-gutter = 32px

md:px-8.

Outside the roles

Colours that ship today without a role. Recorded so the contrast report can name them. Never emitted to CSS.

#3b82f6 libs/shadcn Button default variant: bg-blue-500, hard-coded.
#ffffff Its text-white.
#020817 web --foreground, hsl(222.2 84% 4.9%).
#64748b web --muted-foreground, hsl(215.4 16.3% 46.9%).
#e2e8f0 web --border, hsl(214.3 31.8% 91.4%).
#dc2626 web --destructive, hsl(0 72.2% 50.6%).
#4a90e2 EMAIL_THEME.color.accent (libs/dal/src/dal/email/shared/email-theme.ts).
#1a1a1a EMAIL_THEME.color.heading.
#333333 EMAIL_THEME.color.body.
#555555 EMAIL_THEME.color.muted.
#999999 EMAIL_THEME.color.faint.
#888888 EMAIL_THEME.color.footerText.
#f9f9f9 EMAIL_THEME.color.footerBg.
#ffffff EMAIL_THEME.color.cardBg.
@docubuild-io/design · every sample on this site uses invented data