The best QR code colours (that still scan)
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.