QR code colours: what scans and what does not

By Dhurka Manchukan, software engineer · Last updated: 2026-10-04

The rule: dark modules, light background

Scanners look for dark squares on a light background. The classic black on white is the safest. You can use colour, but the code must stay clearly darker than its background. Inverted codes (light on dark) fail on many scanner apps.

A black QR code with rounded corner squares on a white card in QRinst
High contrast baseline: near-black modules on white.

A colourful example, tested

Here the finder squares are teal and the data modules olive green. It looks friendly, but the olive is noticeably lighter than black.

A QR code with teal corner squares and olive green data modules
Looks fine to the eye. Does it scan reliably?

Uploading it to the QR checker gives a useful answer. It decoded the link and measured about 66% contrast, which passes, but it still returned Scannable with Recommendations because of a margin warning. That is the point of testing rather than guessing.

QR checker result: Scannable with Recommendations, valid web link, quiet zone warning, contrast about 66 percent
QR checker result for the coloured code.

Practical tips

  • Keep every module darker than the background, not just the corners.
  • Avoid light grey, yellow or pastel on white.
  • Keep the white margin around the code; do not place colour right against it.
  • Print colours look different from screens, so print a proof and scan it.
  • When in doubt, go darker. See why a QR code is not scanning.

More guides