Beyond the Muted Middle: A Bolder Colour System That Still Behaves
Photo: SuSanA Secretariat, CC BY 2.0, via Wikimedia Commons
Walk through a certain kind of UK creative tool and you can predict the palette before it loads: off-white, charcoal, a single desaturated blue, maybe a lavender accent that appeared in every Figma community file for a season. It is not ugly. It is just interchangeable.
That is the grey default. It comes from good intentions — accessibility, professionalism, not wanting to look daft — but it flattens personality. For a maker brand, colour is not decoration. It is the first bit of craft a visitor sees.
Safe is not the same as accessible
A muted palette can fail contrast just as easily as a loud one. Accessibility is about relationships: text against surface, focus ring against background, error state against normal state. It is not about removing hue. You can ship a deep clay accent and a bright focus ring and still pass WCAG 2.2 AA. You can also ship a tasteful grey-on-grey interface that nobody can read outdoors.
The useful rule is simple: keep body text neutral and high-contrast, then let surfaces, accents and focus states carry the personality. Bold colour belongs in the places where it does a job — a header band, a primary button, a chart series, a focus ring. It does not need to be the paragraph colour.
Give colour a job: a token structure that scales
Most colour chaos comes from naming. If your tokens are blue, light-blue and blue-2, nobody knows what to change when the brand shifts. Build three layers instead.
- Core palette: raw values, named by hue and lightness. Use OKLCH ramps so you can move chroma without changing perceived lightness.
- Semantic tokens:
surface,surface-raised,text,text-muted,accent,accent-hover,focus-ring,border. - Component tokens:
button-bg,button-text,card-border.
:root {
--clay-500: [oklch](https://en.wikipedia.org/wiki/Oklab_color_space)(62% 0.14 45);
--clay-600: oklch(55% 0.14 45);
--surface: oklch(97% 0.01 80);
--text: oklch(25% 0.02 80);
--accent: var(--clay-500);
--accent-hover: var(--clay-600);
--focus-ring: oklch(70% 0.18 250);
}
This structure lets you swap a bold accent without rewriting every component. It also makes dark mode less painful, because you are changing semantic values, not hunting for hex codes.
Personality is a system, not a neon sticker
Small UK maker brands understand this intuitively. A Bristol ceramics studio can own iron-rich reds and chalky whites. A Glasgow risograph outfit can build a whole identity on fluorescent pink and ink blue. A Margate print shop can pull sea-glass green from the coast into packaging, social posts and the website. The colour is not random; it is repeated at different scales.
That is the difference between a bold palette and a loud one. A bold palette has a point of view and a ratio. It knows how much neutral space to give the accent. It uses the same colour in the favicon, the diagram labels and the error message. A loud palette just adds another hue when the first one stops feeling exciting.
Try a simple ratio: 70% neutral, 20% brand surface, 10% accent. You can break it, but having a ratio stops the page from becoming a paint sample. If you want to be braver, invert it for one hero section and keep the rest calm. Contrast is more interesting than constant saturation.
Test the system, not the swatch
A colour that looks great on a studio monitor can fall apart on a cheap laptop in a bright room. Test the system in context.
- Check contrast: 4.5:1 for body text, 3:1 for large text and UI components, and 3:1 for focus indicators against adjacent colours.
- Run a greyscale test. If the hierarchy disappears, fix it with weight, spacing and borders, not just more colour.
- Simulate deuteranopia, protanopia and tritanopia. Make sure links have underlines and errors have icons as well as colour.
- Check forced-colors mode and
prefers-contrast. Your custom colours should not erase focus. - Test on a real phone outdoors and on a low-quality monitor. UK winter daylight is not a design lab.
- Stress the content: long headings, empty states, disabled buttons, form errors.
APCA is worth watching as a complementary contrast model, but it is not a free pass to skip WCAG 2.2. Use it to understand perceptual contrast, not to win an argument with your accessibility lead.
A checklist for teams nervous about standing out
- Pick one bold move. A single accent colour, a coloured header surface, or a distinctive focus ring.
- Keep body text near-neutral and high-contrast.
- Document the core palette and semantic tokens in one place.
- Give every interactive state a visible, non-colour cue.
- Test light mode, dark mode and forced-colors mode.
- Audit third-party components — they often bring their own blues.
- Check the palette in greyscale and with colour-vision simulation.
- Use colour consistently across web, social and print, not just the homepage.
- Ask five people what the brand feels like, not whether they like the colour.
- Review after two weeks of real use. Bold choices need evidence, not just taste.
Ship the bold bit first
You do not need to repaint the whole product. Change the accent, the focus ring and one surface. See how it behaves with real content. Then expand the system. The grey default is not a moral high ground; it is a habit. Colour with a job is the more interesting habit.