A QR code in your brand colors looks great in a mockup and then quietly fails to scan once it's actually printed. The culprit almost always comes down to one thing: contrast, not which specific colors you picked. Here's the actual rule scanners rely on, and how to keep your brand colors without breaking it.
Build a code with your own colors
Open Custom QR Code Builder — FreeThe Real Rule: Contrast Ratio, Not Specific Colors
A scanner locks onto a QR code by detecting the difference in brightness between its dark modules and light background, not by recognizing any particular color. That means a QR code doesn't need to be black on white specifically, but it does need a large enough gap in brightness between the two colors you choose. Two colors that look visually distinct to your eye can still have a small brightness gap and scan unreliably, especially two mid-tone colors of similar lightness.
Dark Backgrounds and Inverted Codes: Handle With Care
A light-colored code on a dark background can technically scan, some scanners handle it fine, but it's meaningfully less reliable than the standard dark-on-light arrangement, and a noticeable share of phone cameras and older scanning apps struggle with it in anything but ideal lighting. If a dark background is a hard brand requirement, test extensively before committing to it at scale, rather than assuming it'll behave the same as a standard code.
Error Correction Level Is Your Safety Buffer
A higher error correction level lets a code stay scannable even with part of its pattern damaged, obscured, or harder to read, which includes marginal contrast situations, not just physical damage or a logo placed in the center. If you're using colors that sit anywhere near the edge of safe contrast, raising the error correction level gives the scanner more room to recover a clean read. See QR code error correction levels explained for how to choose the right level.
Preview your color combo before printing
Open Custom QR Code Builder — FreeSafe Combos vs Risky Combos
- Safe: a dark brand color (navy, dark green, black) on white or a very light background, the classic arrangement scanners are most reliably tested against.
- Risky: two mid-tone colors of similar brightness, like a medium blue on a medium gray, even if they look clearly different to the human eye.
- Risky: a light or pastel color on a dark background, workable but needs extra testing and a higher error correction level to feel safe.
- Always test: any gradient or multi-color fill applied across the pattern itself, rather than a single flat foreground color.
Test Before You Commit to a Brand Color
Print a small test batch at actual size, in the actual lighting conditions the code will live in (a dim restaurant, direct outdoor sun, a poorly lit hallway), and scan it with a couple of different phones before finalizing thousands of copies. A color combination that scans fine on a bright screen preview can behave differently once it's ink on paper under real lighting.
Frequently Asked Questions
Does a QR code have to be black and white to scan reliably?
No, any two colors work as long as there's enough brightness contrast between them. Black on white is simply the safest, most heavily tested combination, not a hard requirement.
Why did my code scan fine on screen but fail once printed?
Screens and printed ink render color and contrast differently, and printed lighting conditions vary far more than a controlled screen preview. Always test a physical printed sample, not just an on-screen version.
Can raising the error correction level fix a bad color combination entirely?
It helps and adds real margin for marginal contrast, but it can't fully compensate for a genuinely low-contrast combination. Good contrast to begin with is still the foundation, error correction is the safety buffer on top of it, not a replacement for it.
Is there a way to check contrast before printing anything?
Generate the code, scan it directly from your screen with a couple of different phones first. It's not a perfect substitute for a printed test, but it catches genuinely broken combinations before you spend money on printing.
Related tools
- Custom QR Code Builder: Set your own colors and error correction level
- QR Code Generator: Create a standard black-on-white code