Colour
Headland Yachting's colours work in pairs: one for light mode and one for dark. Every text colour meets WCAG AA contrast on the surfaces it's used on.
Main colours
-
#0F2846#D7C9B8Accent Buttons, links, focus and highlights. Use it sparingly, so it keeps pointing at what matters. -
#FFFFFF#081627On accent Text and icons on the accent colour. -
#F4EFE8#081627Page The background of every page. -
#FAF7F2#10233DCard Cards, panels and form fields, one step up from the page. -
#0F2846#F4EFE8Text Headings and body text. -
#4A586B#A9B5C4Secondary text Captions, dates and supporting text. -
rgba(15,40,70,0.12)rgba(244,239,232,0.14)Border Lines between things, and the edges of cards. -
#0F2846#D7C9B8Focus The outline that shows where the keyboard is.
Each swatch shows light mode on the left and dark mode on the right. In code, always use the token (the name under each swatch), never the hex value, so a colour change in the brand reaches everything.
Contrast
WCAG AA asks for at least 4.5:1 for text and 3:1 for focus outlines and large shapes. The site won't build if any of these pairs falls short.
| Where | Light | Dark | Needs |
|---|---|---|---|
| Body text on the page | Aa 12.9:1 | Aa 15.9:1 | 4.5:1 |
| Body text on cards | Aa 13.9:1 | Aa 13.8:1 | 4.5:1 |
| Secondary text on the page | Aa 6.3:1 | Aa 8.7:1 | 4.5:1 |
| Secondary text on cards | Aa 6.7:1 | Aa 7.5:1 | 4.5:1 |
| Links and accent text on the page | Aa 12.9:1 | Aa 11.2:1 | 4.5:1 |
| Links on cards | Aa 13.9:1 | Aa 9.7:1 | 4.5:1 |
| Button label on button | Aa 14.8:1 | Aa 11.2:1 | 4.5:1 |
| Field error on a form | Aa 4.9:1 | Aa 6.0:1 | 4.5:1 |
| Error message box | Aa 13.4:1 | Aa 13.4:1 | 4.5:1 |
| Success message box | Aa 11.2:1 | Aa 11.2:1 | 4.5:1 |
| Text in a callout | Aa 11.4:1 | Aa 11.4:1 | 4.5:1 |
| Button label in a callout | Aa 14.8:1 | Aa 14.8:1 | 4.5:1 |
| Button in a callout against the callout | Aa 11.4:1 | Aa 11.4:1 | 3:1 |
| Focus ring against the page | Aa 12.9:1 | Aa 11.2:1 | 3:1 |
| Icon on the chat button | Aa 14.8:1 | Aa 11.2:1 | 3:1 |
All colour tokens
| Token | Light | Dark | Use |
|---|---|---|---|
#F4EFE8color.headland.stone-100 | #081627color.headland.navy-950 | ||
#FAF7F2color.headland.stone-50 | #10233Dcolor.headland.navy-850 | ||
#EAE1D5color.headland.sand-200 | #EAE1D5color.headland.sand-200 | Fixed: stays light in both themes | |
#FFFFFFcolor.white | #FFFFFFcolor.white | A raised surface inside a callout (secondary buttons, mockups) | |
#FFFFFFcolor.white | #FFFFFFcolor.white | Tile behind a client or partner logo: white in light mode; in dark mode the raised navy used by stat tiles | |
#0F2846color.headland.navy-900 | #F4EFE8color.headland.stone-100 | ||
#4A586Bcolor.headland.slate-600 | #A9B5C4color.headland.slate-300 | ||
#0F2846color.headland.navy-900 | #0F2846color.headland.navy-900 | ||
#FFFFFFcolor.white | #FFFFFFcolor.white | ||
#152238color.ink.900 | #F3F0E9color.cream.100 | Logo text on a logo tile (dark in both themes) | |
#0F2846color.headland.navy-900 | #D7C9B8color.headland.sand-300 | ||
#FFFFFFcolor.white | #081627color.headland.navy-950 | ||
#FFFFFFcolor.white | #FFFFFFcolor.white | Label on a button inside a callout | |
#1B3A60color.headland.navy-800 | #F4EFE8color.headland.stone-100 | Primary button background on hover. Same as the action colour unless a brand sets its own (Gulo: Claw Gold on dark) | |
rgba(15,40,70,0.12)color.headland-alpha.navy-12 | rgba(244,239,232,0.14)color.headland-alpha.stone-14 | ||
#0F2846color.headland.navy-900 | #0F2846color.headland.navy-900 | ||
rgba(15,40,70,0.36)color.headland-alpha.navy-36 | rgba(244,239,232,0.30)color.headland-alpha.stone-30 | Edge of text fields, drop-down lists, date fields and the search box. Brands can make it firmer than the card border so a field reads at its full height beside a solid button. | |
rgba(21,34,56,0.12)color.alpha.ink-12 | rgba(255,255,255,0.10)color.alpha.white-10 | Edge of a logo tile | |
rgba(21,34,56,0.12)color.alpha.ink-12 | rgba(21,34,56,0.12)color.alpha.ink-12 | Hairline drawn inside a colour swatch (brand guide, docs), so a swatch the same colour as the page keeps its shape. Dark and see-through in both modes, so it never shows as a light outline round a dark colour. | |
#C13D0Acolor.ember.600 | #FF7A3Dcolor.ember.400 | Theme-aware; at least 4.5:1 on page and raised surfaces | |
#FFF4E5color.amber.50 | #3A2400color.amber.950 | ||
#C13D0Acolor.ember.600 | #FF7A3Dcolor.ember.400 | ||
#3A2400color.amber.950 | #FFF4E5color.amber.50 | ||
#EAF6ECcolor.green.50 | #1A3A24color.green.900 | ||
#2E7D46color.green.600 | #2E7D46color.green.600 | ||
#1A3A24color.green.900 | #EAF6ECcolor.green.50 | ||
#FFF4E5color.amber.50 | #3A2400color.amber.950 | ||
#B4812Acolor.amber.600 | #B4812Acolor.amber.600 | ||
#3A2400color.amber.950 | #FCE7C2color.amber.100 | Text and icon in a warning notice | |
#EAF2FCcolor.blue.50 | #0C2240color.blue.950 | ||
#2F6BB3color.blue.600 | #2F6BB3color.blue.600 | ||
#12305Acolor.blue.900 | #EAF2FCcolor.blue.50 | Text and icon in an information notice | |
#1B7A3Dcolor.green.700 | #1B7A3Dcolor.green.700 | ||
#B4812Acolor.amber.600 | #B4812Acolor.amber.600 | ||
#C13D0Acolor.ember.600 | #C13D0Acolor.ember.600 | ||
rgba(11,18,32,0.38)color.alpha.scrim-38 | rgba(11,18,32,0.38)color.alpha.scrim-38 | ||
rgba(11,18,32,0.72)color.alpha.scrim-72 | rgba(11,18,32,0.72)color.alpha.scrim-72 | ||
rgba(11,18,32,0.88)color.alpha.scrim-88 | rgba(11,18,32,0.88)color.alpha.scrim-88 | ||
#081627color.headland.navy-950 | #F4EFE8color.headland.stone-100 | ||
#10233Dcolor.headland.navy-850 | #FAF7F2color.headland.stone-50 | ||
#F4EFE8color.headland.stone-100 | #0F2846color.headland.navy-900 | ||
#A9B5C4color.headland.slate-300 | #4A586Bcolor.headland.slate-600 | ||
rgba(244,239,232,0.14)color.headland-alpha.stone-14 | rgba(15,40,70,0.12)color.headland-alpha.navy-12 | ||
#D7C9B8color.headland.sand-300 | #0F2846color.headland.navy-900 | ||
#081627color.headland.navy-950 | #FFFFFFcolor.white | Text on the inverse accent (buttons and selected states on an inverse panel) | |
#0F2846color.headland.navy-900 | #D7C9B8color.headland.sand-300 | ||
#FAF7F2color.surface.raised | #10233Dcolor.surface.raised | Code blocks and inline code sit on the raised surface, so they take on each brand like tables and cards | |
#0F2846color.text.primary | #F4EFE8color.text.primary | ||
#566074color.syntax.slate-light | #9AA6BAcolor.syntax.slate-dark | ||
#A8310Acolor.syntax.ember-light | #FF8F5Ccolor.syntax.ember-dark | ||
#0B6B52color.syntax.jade-light | #7FD6B0color.syntax.jade-dark | ||
#1E4FA8color.syntax.cobalt-light | #8DB4FFcolor.syntax.cobalt-dark | ||
#7A4300color.syntax.ochre-light | #F2C46Dcolor.syntax.ochre-dark | ||
#4B5567color.ink.600 | #B9C2D0color.ink.300 | ||
rgba(15,40,70,0.12)color.border.subtle | rgba(244,239,232,0.14)color.border.subtle | ||
#FFFFFFcolor.white | #FFFFFFcolor.white | The sheet, and any surface that would otherwise be tinted | |
#0F2846color.text.primary | #F4EFE8color.text.primary | Running text and headings on paper | |
#4A586Bcolor.text.secondary | #A9B5C4color.text.secondary | Captions, labels and the source line | |
#0F2846color.action.primary | #D7C9B8color.action.primary | Links and accent marks on paper | |
#A3A3A3color.neutral.400 | #A3A3A3color.neutral.400 | Box outlines and dividers on paper: firmer than the screen border so they survive printing. Brands set their own. | |
#F3F0E9color.cream.100 | #131C2Ecolor.ink.850 | Background of an illustration | |
rgba(21,34,56,0.06)color.alpha.ink-06 | rgba(255,255,255,0.10)color.alpha.white-10 | Construction grid lines | |
#152238color.ink.900 | #F3F0E9color.cream.100 | Main shapes | |
#B23508color.ember.700 | #FF7A3Dcolor.ember.400 | Accent shapes | |
#3F4A5Ccolor.ink.500 | #B9C2D0color.ink.300 | Secondary shapes | |
#B9C2D0color.ink.300 | #3F4A5Ccolor.ink.500 | Quiet shapes | |
rgba(15,40,70,0.06)color.headland-alpha.navy-06 | rgba(244,239,232,0.08)color.headland-alpha.stone-08 | ||
rgba(15,40,70,0.28)color.headland-alpha.navy-28 | rgba(244,239,232,0.30)color.headland-alpha.stone-30 | ||
#0F2846color.text.primary | #F4EFE8color.text.primary | ||
#B4812Acolor.amber.600 | #B4812Acolor.amber.600 | Filled star in a review score (a graphic beside its words, 3:1 on cards) | |
#0F2846color.action.primary | #D7C9B8color.action.primary | Icons and small graphics beside words (facts, chips, menus). A brand can give them their own colour (3:1 on cards) | |
#0F2846color.headland.navy-900 | #D7C9B8color.headland.sand-300 | The round button | |
#FFFFFFcolor.white | #081627color.headland.navy-950 | The speech bubble on the button | |
#FFFFFFcolor.white | #FFFFFFcolor.white | Ring round the "online now" dot, so it stands off the button |