Skip to content
UseQR
ESC

↑↓ MOVE↵ OPEN48 PLACES

Design

Brand colour QR codes that still scan

Take the brand hex, compute its luminance, and check the difference against white — 40 points is the floor, 60 the safe target. If the swatch fails, darken that hue for the modules only and keep the exact colour in the surrounding artwork. Colour the modules, never the background, and keep the eyes darkest.

View as MarkdownPaste this page into any AI assistant — it is plain, portable Markdown.

The three-step workflow

Brand colour requests fail predictably or succeed predictably; the deciding step is measuring before designing.

Step 1 — measure the swatch. Compute the brand colour's luminance (L = 0.2126R + 0.7152G + 0.0722B, as a percentage of white) and subtract from 100. The contrast minimum is 40 points; the print-safe target is 60, meaning a module luminance of 40% or darker.

Step 2 — if it fails, darken the shade, keep the hue. Reduce the colour's lightness until the arithmetic passes, and use that darker variant for the modules only. The exact brand swatch stays in the frame, the label, the surrounding artwork — where it belongs and where no decoder cares. A slightly darker green that scans everywhere serves the brand better than the exact green on a support ticket.

Step 3 — modules coloured, background white, eyes darkest. Colouring the background is where most branded codes die. And since the corner eyes must be found before error correction helps anything, pin them at the darkest tone in the design.

Worked examples

Brand-ish colour Hex Luminance vs white Verdict
Crimson #e60023 20% 80 use as-is
Bright blue #1877f2 42% 58 use as-is
Indigo #6366f1 44% 56 usable; darken for print headroom
Bright green #25d366 65% 35 fails — darken
Amber #ffcc00 79% 21 fails badly — darken a lot

The darkening step in action: the bright green #25d366 fails at 35 points, but a deepened variant such as #1a9c4b measures ~48% luminance — a 52-point difference that passes with the hue intact. Ambers and yellows need more aggressive treatment (toward olive or brown) because luminance weights green so heavily; sometimes the honest answer is using the brand colour on the label instead, via the approaches on colours that scan.

Applying it in UseQR

Every colour is a URL parameter, so a passing brand style becomes a link the whole team reuses:

fg=1a9c4b                    modules in the darkened brand green
eyefg=0f172a&ballfg=0f172a   eyes pinned near-black
bg=ffffff                    background stays white (the default)

Try it: a branded code with dark eyes. Two-tone brands can run a gradient between two passing stops, and eye styling adds shape branding on top at no contrast cost. Whatever the combination, the validator computes the real contrast of the rendered pair and decodes the output — attach its pass to the brand sign-off, and the "can we use our exact green?" conversation becomes a measurement instead of a negotiation.

One deliberate omission: this page darkens colours rather than lightening them, because the alternative — light modules on a dark brand ground — is a polarity failure, not a contrast problem, and no shade adjustment fixes it.

FAQ

Can a QR code use our brand colour?

Almost always, on the modules. If the colour's luminance difference against white is 40 points or more it works as-is; lighter brand colours need a darkened variant of the same hue for the modules, with the exact swatch kept in the surrounding design.

Should the brand colour go on the modules or the background?

The modules, always, with the background left white. A coloured background subtracts from the one luminance difference the decoder depends on, and it is the most common reason branded codes fail.

What about brand colours like yellow or orange?

They fail as module colours — their luminance is too close to white. Darken them substantially (toward olive or rust) or keep them in the frame and label while the modules use the brand's darkest neutral.

Do the corner squares have to be the brand colour too?

No, and it is often better if they are not. Keeping the three eyes near-black gives detection maximum margin while the data modules carry the brand hue — a combination most scanners handle better than a uniformly mid-tone code.

Try it — free, no signup