Contrast at a glance
Measured live from the tokens on this page, in the current theme.
Use --color-text-link for links: full Blue on Manila, a 50% tint on black, where full Blue fails.
Set small text on Embargo Red, or small red text. Use --color-text-accent, which is shaded or tinted to pass.
Roles
Use these in components and pages. Each role is shown resolved in both themes.
Backgrounds
| Token | Dark | Light |
|---|---|---|
--color-bg-pageDefault page background. Department Black unless a reader switches to light. | manila/100 | |
--color-bg-surfaceCards, fields and raised panels. | manila/100 | |
--color-bg-mutedQuiet fills: hover states, wells, table stripes. | black/10 | |
--color-bg-inverseHigh-contrast blocks that flip against the page. | black/100 | |
--color-bg-accentEmbargo Red fields. Rare, and text on it must be large and bold. | red/100 | |
--color-bg-accent-subtleTinted red backgrounds for highlights. | red/10 | |
--color-bg-emphasisBeaurocracy Blue fields, for emphasis in limited form. | blue/100 |
Text
| Token | Dark | Light |
|---|---|---|
--color-text-primaryBody copy and headings. | black/100 | |
--color-text-secondarySupporting copy, metadata. | black/75 | |
--color-text-mutedPlaceholders, captions and de-emphasised hints. | black/65 | |
--color-text-inverseText on bg/inverse. | manila/100 | |
--color-text-accentRed text that still passes AA. | red/700 | |
--color-text-linkInline links (always underlined as well). | blue/100 | |
--color-text-on-accentText on Embargo Red (large bold only). | manila/100 | |
--color-text-on-emphasisText on Beaurocracy Blue. | manila/100 |
Borders
| Token | Dark | Light |
|---|---|---|
--color-border-subtleDividers and quiet outlines. | black/20 | |
--color-border-defaultHairline rules, field and outline-button borders. | black/100 | |
--color-border-focusKeyboard focus ring. Blue, so focus never reads as an error. | blue/100 | |
--color-border-accentAnnotation lines: grids, clear space, measurements. | red/100 |
Actions
| Token | Dark | Light |
|---|---|---|
--color-action-primary-bgPrimary button fill. | black/100 | |
--color-action-primary-bg-hoverPrimary hover. | black/90 | |
--color-action-primary-bg-pressedPrimary pressed. | black/75 | |
--color-action-primary-textPrimary label. | manila/100 | |
--color-action-secondary-bgSecondary button fill. | black/10 | |
--color-action-secondary-bg-hoverSecondary hover. | black/20 | |
--color-action-secondary-bg-pressedSecondary pressed. | black/30 | |
--color-action-secondary-textSecondary label. | black/100 | |
--color-action-disabled-bgDisabled control fill. | black/10 | |
--color-action-disabled-textDisabled label. | black/40 |
Feedback
| Token | Dark | Light |
|---|---|---|
--color-feedback-danger-bgError backgrounds. | red/10 | |
--color-feedback-danger-fgError text, icons and borders. | red/700 | |
--color-feedback-success-bgApproved, filed, complete. Ledger Green. | green/100 | |
--color-feedback-success-fgText on success. | black/100 | |
--color-feedback-info-bgNotices and neutral information. | blue/10 | |
--color-feedback-info-fgInfo text and icons. | blue/100 | |
--color-feedback-warning-bgNeeds attention soon. Safety Yellow. | yellow/100 | |
--color-feedback-warning-fgWarning text and icons. | black/100 |
Primitives
The raw palette: the brand colors with the tints the manual specifies. A few interface steps not in the manual (labelled in tokens.json) fill gaps for text contrast and dark fills. Reach for a role first.
black
black/100#232323black/90#393939black/75#5A5A5Ablack/65#707070black/50#919191black/40#A7A7A7black/30#BDBDBDblack/20#D3D3D3black/10#E9E9E9manila
manila/100#FBFBF4blue
blue/100#0000FFblue/75#4040FFblue/50#8080FFblue/25#BFBFFFblue/20#CCCCFFblue/15#D9D9FFblue/10#E6E6FFblue/5#F2F2FFblue/900#1C1C4Fred
red/100#FF2576red/75#FF5C98red/50#FF92BBred/25#FFC9DDred/10#FFE9F1red/700#C82561red/900#44232Fyellow
yellow/100#FFD600yellow/75#FFE040yellow/50#FFEB80yellow/25#FFF5BFyellow/10#FFFBE6green
green/100#98F2A8green/75#B2F5BEgreen/50#CCF9D4green/25#E5FCE9green/10#F5FEF6