All posts
Branding

Accessible Brand Colors: Meeting WCAG Contrast Without Losing Personality

Accessible brand colors without a bland palette: build tonal scales, test real text pairs against WCAG contrast and plan UI states that pass audits.

By Mehdi Hassan8 min read

The short answer

To make brand colors accessible, keep your hue and build a tonal scale from very light to very dark, then test every real text and interface pair against WCAG contrast: 4.5:1 for body text, 3:1 for large text and key UI components. Use darker or lighter tones of the brand color where needed, rather than abandoning it.

Key takeaways

  • Accessible brand colors come from tonal scales, not from swapping your hue for a safe gray-blue.
  • Contrast belongs to pairs. Test the exact text, button and border combinations your site uses.
  • Separate brand moments from working colors: the logo color doesn't have to be your link color.
  • Never rely on color alone for meaning. Pair state colors with icons or text.
  • Overlays and widgets don't fix a palette that fails contrast in the design itself.

Part of How to Choose Brand Colors: A Practical Framework

What makes brand colors accessible?

Brand colors are accessible when every combination people need to read or use has enough contrast, and when no information depends on color alone. Accessibility isn't a property of a single swatch. It's a property of pairs: text on a background, a button on a page, a border around an input. A bright brand yellow can be perfectly accessible as a background behind dark text and completely unreadable as text on white.

This is the second pass in our framework for how to choose brand colors. The first pass picks colors for personality and category contrast. This pass makes sure those colors survive real use in a website and a product without losing the character you chose them for.

What WCAG color contrast does a brand palette need to meet?

A brand palette needs to meet the contrast minimums in the W3C's Web Content Accessibility Guidelines, which most accessibility audits and legal standards reference. WCAG's contrast minimum asks for a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. WCAG also asks for 3:1 for the visual parts of interface components and states, such as input borders, icons and focus indicators.

What you're checking

WCAG AA minimum

Common brand failure

Body text and links

4.5:1

Brand color used as link text on white

Large text (big headings)

3:1

Pale brand color on a light hero background

Button label on button

4.5:1 for normal-size labels

White text on a bright accent

Input borders and icons

3:1 against adjacent colors

Light gray borders that vanish

Focus indicators

3:1 against adjacent colors

Brand-colored focus ring on a brand-colored button

Stricter AAA targets exist too, but AA is the level most teams and most compliance programs work to. Our guide to website accessibility compliance covers which standard applies to which business.

How do you build an accessible color palette from your brand colors?

You build an accessible color palette by turning each brand color into a tonal scale and then choosing which tones do which jobs. A scale gives you room to keep the hue everywhere while moving lightness up or down until each pair passes. Here's the process we follow.

  1. Lock the brand hues

    Start from the primary, secondary and accent colors chosen in the personality pass. Don't change the hue yet.

  2. Build a tonal scale for each

    Create a range of tones from near-white to near-black for every color, typically around 10 steps, with even visual spacing. Perceptual color spaces such as OKLCH make the steps look more even than plain HSL.

  3. List the real pairs

    Write down every combination your site and product use: body text, links, buttons, badges, borders, charts, alerts. Include both light and dark themes.

  4. Test each pair

    Run every pair through a contrast checker. Record the ratio and whether it passes the relevant threshold.

  5. Fix with tones, not hues

    When a pair fails, move to a darker or lighter step on the same scale. Only change the hue if no step works for the job.

  6. Assign roles and document

    Name which tone is for text, links, buttons, borders and backgrounds, and record the tested pairs in your guidelines.

How do you keep brand personality while meeting contrast?

You keep brand personality by separating the brand moment from the working job. Your signature color can stay vivid on large surfaces, illustrations and the logo, while a deeper tone of the same hue handles text and buttons. Buyers recognize the hue, not the exact lightness, so the brand still feels like itself.

  • Use the bright tone as a background, not as text. Dark text on a bright yellow or lime surface can pass easily, while the same colors reversed fail.
  • Darken the accent for actions. A slightly deeper tone of your brand color usually passes with white labels and still reads as the brand.
  • Lean on large type. Headlines at large sizes need less contrast, which gives a lighter brand color room to appear in display type.
  • Let neutrals carry body text. Near-black or deep gray text keeps reading comfortable and frees your brand color for emphasis.
  • Tint your neutrals. A gray with a hint of your primary hue makes the whole interface feel on-brand without touching contrast.

If you're defining how much each color appears, our guide to brand color palette structure explains the roles and ratios. Personality traits from the first pass still guide which of these tactics fits: a quiet, serious brand might keep vivid color almost entirely out of the product.

How do you design accessible UI states with brand colors?

You design accessible UI states by giving each state a distinct, tested tone and by never using color alone to carry meaning. Hover, focus, pressed, disabled, error and success all need to look different from each other and from the default, for people with full color vision and for people without it.

State

Color approach

Non-color cue

Hover and pressed

One and two steps darker on the accent scale

Cursor change, slight shadow or movement

Focus

High-contrast ring, often a separate color

Visible outline offset from the element

Disabled

Lower-contrast neutral tones

Changed cursor and a label explaining why

Error

Red scale, distinct from the accent

Icon and error text next to the field

Success and warning

Green and amber scales

Icon and a short message

Disabled controls are exempt from WCAG's contrast minimum, but low-contrast disabled buttons still confuse people. Explaining why something is disabled helps more than any color. For product teams, our guide to accessible web app design covers forms, tables and charts in more depth.

For example, suppose a fintech brand's signature color is a bright green

Hypothetical example: a fintech startup's brand color is a vivid mint green. On a white background, white button labels on that green fail contrast, and the green as link text is close to unreadable.

Working through the steps, they keep the mint as the hero background and illustration color, with near-black text on top, which passes comfortably. They pick a deeper green, five steps down the same scale, for primary buttons and links; it passes with white labels and still reads as their green. Because green is also the usual success color, they shift success messages to a teal with a check icon, so a successful payment never looks like a button. The brand still feels mint-green, and the product passes its contrast checks.

Why do accessible brand colors matter for ADA audits?

Accessible brand colors matter for ADA audits because low contrast is one of the most visible and easily tested accessibility failures, and your brand palette appears on every page. Fixing contrast at the palette level fixes it everywhere at once, which is far cheaper than patching individual pages after a complaint.

The legal pressure is real. Seyfarth Shaw counted 3,117 federal website accessibility lawsuit filings in the US in 2025, up 27% on the year before. Overlays don't solve the underlying problem either: the FTC's order against accessiBe, finalized in 2025, included a $1 million payment over claims about what its overlay could do. The durable fix is designing accessible colors into the brand and the build. Our guide to accessible web design covers the rest of the checklist.

How do accessible brand colors get into code?

Accessible brand colors get into code as named design tokens that encode the tested pairs, so developers can't accidentally reach for a failing combination. Instead of a token called brand-green, you define jobs such as text-link, action-primary-bg and border-input, each pointing to a tone you've already tested.

This matters most for teams whose product and docs are a big part of the brand, which is why a developer brand usually needs tokens before it needs a brand book. Record tested pairs in your brand guidelines too, so marketing designers making a one-off landing page use the same rules. If you're rebuilding on a new stack, palette tokens are one of the easiest wins to include in the scope, and our Framer to Next.js migration cost guide covers what else goes into a rebuild.

Frequently asked questions

Can a brand color be accessible if it's light, like yellow?
Yes. Light colors such as yellow, lime or mint are accessible as backgrounds behind dark text, and they pass contrast easily in that role. They usually fail as text or as button backgrounds with white labels. Keep the light color for surfaces and illustrations, and use a darker tone or a neutral for anything people need to read.
Do I have to change my logo color to meet WCAG?
Usually not. WCAG's contrast minimum excludes text that is part of a logo or brand name, so your logo can keep its color. The rules apply to the text and interface elements people need to read and use. Many brands keep a vivid logo color and use a deeper tone of it for links and buttons.
What tools can I use to check brand color contrast?
Use any WCAG contrast checker, a browser's developer tools, which show contrast ratios when you inspect text, or a contrast plugin in Figma. The tool matters less than the method: list every real text and interface pair your site uses, check each one in both light and dark themes, and record the results in your guidelines.
Is WCAG AA or AAA the right target for brand colors?
AA is the practical target for most businesses and the level most accessibility programs and audits reference. AAA is stricter and hard to meet across a whole site without heavily limiting your palette. A sensible approach is AA everywhere, with AAA for long-form reading content such as docs or articles where comfortable reading matters most.
How do accessible colors work in dark mode?
Dark mode needs its own tested pairs. Saturated brand colors often look harsher on dark backgrounds, and tones that passed on white may fail on near-black. Build dark-mode tokens from the same tonal scales, usually using lighter, slightly desaturated tones for text and actions, and test every key pair again rather than assuming the light theme results carry over.

· CEO & Design Director

Copywriter, designer and developer, and founder of Designify Studio. Over five years, 60+ projects across 14+ industries, for startups that have raised $300M+.

Want this done for you? Website, $8,000.

A multi-page marketing site, designed by us, developed in Next.js and animated. $8,000, one-time, up to 6 pages. Book a free 30-minute call to see if it fits.

Schedule Call