Skip to main content
FEASIBILITY REVIEW

Colour

The Orbit colour system — eight ramps, contrast ratios, and accessibility guidance.

Colour in Open Point carries meaning. Green communicates action and positivity; red signals problems; neutral sets the page surface and provides text contrast. The palette is built on perceptual consistency — each ramp follows a lightness curve that makes contrast ratios predictable and accessible choices straightforward.

Seven chromatic ramps (green through yellow) each have eleven steps from 05 to 95 (05 is darkest, matching Web Awesome's own convention). The Neutral ramp has twelve steps from 05 to 100 and covers most backgrounds, borders, text, and icons. Token names follow the pattern --op-color-[ramp]-[step]. Semantic alias tokens map ramp values to their intended UI roles and are documented on the Tokens page.

Primitive colour ramps

Seven chromatic ramps (steps 05–95) and one neutral ramp, Neutral (steps 05–100). Contrast ratios shown against the page background (neutral-100, #FDFCFB) and the dark surface (neutral-10, #211F1B). Click any token name or hex value to copy it to your clipboard.

Green

Primary brand ramp. Light lime through deep forest. Use for interactive elements, positive states, and brand applications.

AAA 17.2 Fail 1.1
AAA 14.8 Fail 1.1
AAA 9.8 Fail 1.6
AA 6.2 Fail 2.6
AA 4.8 AA+ 3.4
Fail 2.5 AA 6.4
Fail 1.7 AAA 9.4
Fail 1.5 AAA 10.9
Fail 1.3 AAA 12.6
Fail 1.1 AAA 14.4
Fail 1.0 AAA 15.4

Teal

Secondary ramp — trust and calm. Use for secondary UI elements, scheduled status, and supplementary information.

AAA 14.7 Fail 1.1
AAA 12.6 Fail 1.3
AAA 8.7 Fail 1.9
AA 5.8 Fail 2.8
AA+ 3.9 AA+ 4.1
Fail 2.7 AA 5.9
Fail 2.0 AAA 8.2
Fail 1.6 AAA 9.9
Fail 1.4 AAA 11.8
Fail 1.1 AAA 14.0
Fail 1.1 AAA 15.2

Blue

Informational states. Use for informational messages, links on dark backgrounds, and data visualisation informational sequences.

AAA 18.7 Fail 1.2
AAA 17.0 Fail 1.1
AAA 12.6 Fail 1.3
AAA 8.6 Fail 1.9
AA 5.7 Fail 2.8
AA+ 3.8 AA+ 4.2
Fail 2.6 AA 6.1
Fail 2.0 AAA 8.0
Fail 1.5 AAA 10.4
Fail 1.2 AAA 13.1
Fail 1.1 AAA 14.7

Purple

Accent and discovery. Use for tags, badges, and features that introduce something new or exploratory.

AAA 18.5 Fail 1.2
AAA 16.9 Fail 1.1
AAA 12.7 Fail 1.3
AAA 8.8 Fail 1.8
AA 5.9 Fail 2.7
AA+ 4.0 AA+ 4.0
Fail 2.7 AA 5.8
Fail 2.1 AAA 7.8
Fail 1.6 AAA 10.2
Fail 1.2 AAA 13.1
Fail 1.1 AAA 14.7

Red

Error and destructive states. Use exclusively for errors, validation failures, and destructive action confirmation.

AAA 17.7 Fail 1.1
AAA 16.2 Fail 1.0
AAA 12.7 Fail 1.3
AAA 9.4 Fail 1.7
AA 6.8 Fail 2.4
AA 4.9 AA+ 3.3
AA+ 3.6 AA+ 4.5
Fail 2.5 AA 6.5
Fail 1.8 AAA 9.1
Fail 1.3 AAA 12.3
Fail 1.1 AAA 14.2

Orange

Pending-approval and in-progress states. Use where something requires attention or a decision but isn’t an error.

AAA 17.8 Fail 1.1
AAA 16.2 Fail 1.0
AAA 12.7 Fail 1.3
AAA 9.5 Fail 1.7
AA 6.8 Fail 2.4
AA 4.9 AA+ 3.3
AA+ 3.6 AA 4.5
Fail 2.5 AA 6.5
Fail 1.8 AAA 9.1
Fail 1.3 AAA 12.4
Fail 1.1 AAA 14.3

Yellow

Warning and mild caution. Use for warnings, cautions, data visualisation annotations, and highlights.

AAA 17.5 Fail 1.1
AAA 15.2 Fail 1.1
AAA 10.1 Fail 1.6
AA 6.4 Fail 2.5
AA+ 4.0 AA+ 4.0
Fail 2.6 AA 6.2
Fail 1.8 AAA 9.2
Fail 1.5 AAA 10.7
Fail 1.3 AAA 12.5
Fail 1.1 AAA 14.4
Fail 1.0 AAA 15.4

Neutral

Gray ramp for backgrounds, borders, text, and icons. Neutral-100 is the primary page background; neutral-10 (#211F1B) is the primary text colour.

AAA 18.2 Fail 1.1
AAA 16.1 Fail 1.0
AAA 11.6 Fail 1.4
AAA 7.6 Fail 2.1
AA 5.0 AA+ 3.2
AA+ 3.2 AA 5.0
Fail 2.3 AAA 7.1
Fail 1.7 AAA 9.4
Fail 1.4 AAA 11.6
Fail 1.2 AAA 13.7
Fail 1.1 AAA 15.0
Fail 1.0 AAA 16.1

Accessibility and colour

Why it matters

Contrast ratios are a baseline, not a ceiling

WCAG 2.1 AA requires a 4.5:1 contrast ratio for normal text and 3:1 for large text and UI components. These numbers are derived from research into how people with low vision — including around 1 in 12 men and 1 in 200 women who have some form of colour vision deficiency — can reliably distinguish content from its background.

Meeting AA isn't enough on its own. Someone using a phone screen in bright sunlight, someone with early-stage cataracts, or someone with a screen set to reduced brightness will all struggle with contrast that just barely passes. Where practical, aim for AAA (7:1) for body text, especially in community-facing Social Point contexts where you can't predict your audience's conditions.

How to apply it

Use semantic tokens in components, not ramp values

Semantic alias tokens are built around the constraint that the values they reference meet contrast requirements for their intended use. --op-color-text-primary (neutral-10, #211F1B) achieves AAA against the neutral-100 page background. --op-color-interactive-default (green-60, #BACE42) achieves AAA contrast against the neutral-10 dark surface (#211F1B) used for inverse and dark UI contexts.

When you use --op-color-interactive-default instead of --op-color-green-60 directly, you're not just naming a value — you're using a token that has been verified to work in its intended context. If the ramp value ever changes, the alias and its verified contrast relationship change together.

Watch out

green-60 on light backgrounds — the most common mistake

--op-color-green-60 (#BACE42) has a contrast ratio of approximately 1.76:1 against the neutral-100 page background. This fails WCAG AA for all text sizes and UI components. It's the primary brand green, which makes it tempting to use everywhere — but it is only accessible on dark backgrounds. On neutral-10 (#211F1B), it achieves approximately 9.1:1, which is AAA.

Never use green-60 as a text colour on any light or neutral background. Use --op-color-text-link (blue-50, #2684D5) for links on light surfaces instead.

Was this page helpful?