FOUNDATIONS

Colour

Two tiers. The brand tier is intentionally small — CBC Blue leads, with Action Blue and Rhino beneath it — so each subsidiary has room for one accent. The system tier is neutral scaffolding that never competes with that accent. Click any swatch to copy its hex.

01

The system

Standard
Dark mode — demonstration only
The toggle demonstrates the system is fully token-driven — every colour token has a validated dark counterpart and themes switch without a flash of light content. Shipping dark mode to visitors is a per-property decision, not a master-brand default; where a property opts in, prefers-color-scheme is honoured before the page renders.

Colour works in two tiers. The brand tier is deliberately small: CBC Blue is the primary and always leads, with Action Blue carrying interaction — links, buttons and focus rings, where contrast has to hold — and Rhino carrying contrast and structure. Neither displaces the primary, and Rhino never enters the mark. The system tier is the neutral and semantic scaffolding the shared design system needs: surfaces, borders, text, and state colours that stay quiet so a subsidiary accent can lead.

02

Brand

CBC Blue
#0D9ADDcopied

DISPLAY ONLY — large headings ≥24px, decorative fills, accent lines. Never small text or interactive fills.

--cbc-blue
Action Blue
#0A6E9Ecopied

Buttons, links, active states, info text, focus rings. 5.6:1 on white — AA at any size.

--action-blue
Rhino
#284156copied

Headings, nav chrome, dark-fill CTA (btn-dark), dark band backgrounds. 10.6:1 on white.

--rhino
03

Neutrals & states

Standard

Neutrals

White · surface
#FFFFFFcopied

Page background, card surface, modal surface

--surface
Surface muted
#F4F5F6copied

Alternate row, form input background, system preview panels

--surface-muted
Alto · border
#D9D9D9copied

Dividers, card outlines, input outlines at rest

--border
Text secondary
#5C6B7Acopied

Captions, helper text, metadata, navigation at rest

--text-secondary
Mine Shaft · text
#2D2D2Dcopied

Body copy, default prose — the workhorse

--text-primary

Semantic states

Success
#1E9E5Acopied

Confirmation states, Do indicators, positive feedback

--success
Warning
#D98E04copied

Non-critical alerts, partial contrast badges

--warning
Error
#C42B2Bcopied

Validation errors, Don't indicators, destructive actions

--error
Info (= CBC Blue)
#0D9ADDcopied

Informational callouts — reuses CBC Blue

--cbc-blue

Error red is held deliberately distinct from any partner brand colour, so “error” never reads as “brand.”

04

Usage — where each token is used

CBC Blue
DISPLAY ONLY — large headings ≥24px, decorative fills, accent lines. Never small text or interactive fills.
Action Blue
Buttons, links, active states, info text, focus rings. 5.6:1 on white — AA at any size.
Rhino
Headings, nav chrome, dark-fill CTA (btn-dark), dark band backgrounds. 10.6:1 on white.
White · surface
Page background, card surface, modal surface
Surface muted
Alternate row, form input background, system preview panels
Alto · border
Dividers, card outlines, input outlines at rest
Text secondary
Captions, helper text, metadata, navigation at rest
Mine Shaft · text
Body copy, default prose — the workhorse
Success
Confirmation states, Do indicators, positive feedback
Warning
Non-critical alerts, partial contrast badges
Error
Validation errors, Don't indicators, destructive actions
05

The display gate

Constitutional
A rule you can see

CBC Blue (3.1:1 on white) passes WCAG AA only for large text — ≥24px any weight, or ≥18.67px at weight ≥700. Below that gate, use Action Blue (5.6:1). Here is the same white label on both, plus the full size/weight breakdown:

White on CBC Blue · 14px
3.1 : 1Fails AA
28px / 700
3.1 : 1Passes (large)
White on Action Blue · 14px
5.6 : 1Passes AA
Action Blue on white · 14px
5.6 : 1Passes AA

The gate:reserve CBC Blue for display ≥ 24px and decoration. Everything interactive or small uses Action Blue — including subsidiaries on CBC’s palette.

06

Contrast checker

Pick any two brand tokens to see the live WCAG contrast ratio and pass/fail result.

Large text — Poppins 700 at 24px
Body text — Montserrat 400 at 16px. Restraint reads as confidence.
Small / caption — Montserrat 400 at 14px
13.77:1
AA large / UI: ✓ passAA body text: ✓ passAAA: ✓ pass

For the full contrast rules — including the CBC Blue display gate and the AA floors — see Accessibility → Contrast.

07

Recommended pairings

Standard

Accessibility — WCAG contrast

White on Rhino10.6:1AAADark band, headers on dark
Mine Shaft on White13.8:1AAABody copy on white
White on CBC Blue3.1:1UI onlyButton label / large UI — never body text

CBC Blue decorative uses (blade geometry, accent lines, lockup mark fill) are exempt — they carry no text. Use Action Blue wherever colour conveys interactive meaning at small sizes.