Design

The best QR code colours (that still scan)

Published 18 July 2026 · 4 min read

A branded, coloured QR code looks far better than plain black — but colour is where most codes break. Here’s how to stay on-brand and still scan every time.

The one rule: contrast

Scanners read a QR code by telling dark modules from a light background. As long as that contrast is strong, colour is fine. The safest formula is a dark colour on a light background — deep navy, forest green, maroon or charcoal on white or a very light tint.

Colours that work

  • Dark, saturated foreground on white or near-white.
  • A subtle light-tinted background instead of pure white — still high contrast.
  • Gradients, as long as the lightest part is still clearly darker than the background.

Colours that break codes

  • Light foreground on a dark background (inverted) — many scanners struggle.
  • Low contrast pairs — e.g. medium grey on light grey, or two pastels.
  • Red foregrounds can be unreliable, as some sensors read red weakly — test carefully.
  • Busy photo backgrounds behind the code.

Don’t forget the finder patterns

The three corner squares are essential for detection. Keep them high-contrast; recolouring them the same as the modules is fine, but don’t make them faint.

Always test

Colour is exactly where “looks great, won’t scan” happens. Use our generator’s scan-safety meter, then scan the real thing with two phones before printing.


Frequently asked questions

Can a QR code be any colour?

Almost — as long as the modules stay clearly darker than the background. Dark-on-light is safest; inverted and low-contrast combinations often fail.

Why doesn’t my red QR code scan?

Some camera sensors read red as a light tone, lowering effective contrast. Use a darker, more saturated colour or test thoroughly before printing.

Can I use a gradient?

Yes, if the lightest point of the gradient is still clearly darker than the background so contrast holds across the whole code.


Design an on-brand QR code that scans — free.

Create a QR code →Scan a QR code