QR color decides whether a QR code feels like part of your design or like an afterthought stuck onto it, and it also decides whether the code scans. This guide sets out the working rules for color, explains why each rule matters, and shows how to apply it on real materials. The rules are practical rather than theoretical: each one can be checked on a proof with your eyes and a phone, before you spend money on a print run. If you follow them, your code will look intentional and still read quickly in the place where it will actually be used.
The core rules for color
Color is the first thing people notice about a QR code, and it is also one of the easiest things to get wrong. A branded color can make a code feel like part of a poster, a menu, or a pack, but only when the code still reads quickly on a real phone in real light.
Keep the code darker than its background, keep the hue shift modest, and keep the finder patterns solid and easy to find. When any of those three conditions weakens, scanning slows down or stops.
How color affects scanning
Use one foreground color for the whole symbol rather than a patchwork of colors that compete for attention. A single solid foreground keeps every module the same darkness, so the phone camera can separate code from background without guessing. If you want a second color, reserve it for the frame or the call to action outside the symbol, not for modules inside it.
Test the color on the actual background it will sit on, not on a white artboard. A navy code that looks strong on white can turn muddy on a cream menu, and a green code can vanish against a green shelf edge. Print a small proof, hold it at the real viewing distance, and scan it under the lighting where it will live before you approve the palette.
Setting up color before you print
Keep the finder patterns in the same foreground color as the rest of the symbol. Recoloring the three corner squares, or giving each one a different color, makes detection harder because the camera looks for a consistent dark shape in three corners. Branding belongs around the code, not inside the finder patterns.
Start with the plainest version that meets the brief, then add branding step by step, testing after each addition. If a step makes scanning slower, that step is the one to simplify. This gradual approach keeps the design honest: you can see exactly which choice helped and which choice hurt. Keep a copy of the last version that scanned instantly, so you can always fall back to a known-good design if a later variation fails.
Putting this into practice
Pick one live design that uses color and run it through this guide today. Print a proof at the final size, check the rules against it, and fix the first problem you find. Then scan the corrected proof with two phones in the real light. Keep the passing proof as a reference, and use it as the starting point for the next design so you are not solving the same problems twice.
Common mistakes to avoid
Even when the main rules are followed, small slips still creep in. The most common ones are letting decoration drift into the quiet zone, choosing colors that look distinct but share a brightness, and approving a design from a screen preview instead of a printed proof. Another frequent slip is changing one part of a working design, such as the link or the paper, without retesting the whole thing. Treat every change as a reason to run a fresh proof, and treat any hesitation in a test scan as a signal to simplify rather than to hope the next phone will cope better.
Quick checklist
- Keep dark modules on a light, even background with strong contrast.
- Leave a clear quiet zone on all four sides of the symbol.
- Keep the finder patterns solid, undisturbed, and easy to find.
- Check the code at the real size, on the real material, in the real light.
- Confirm the call to action names the payoff and the typed alternative works.
- Recheck the code after any change to the link, design, size, or placement.
Related tools and guides
- Try the [QR color pair tester](/qr-color-pair-tester) to check your choices before you commit to a design.
- Use the [QR contrast checker](/qr-contrast-checker) to confirm the numbers and guardrails for this element.
- Check the [QR size calculator](/qr-size-calculator) for a practical way to verify the finished code.
- Check the [QR scanner](/qr-scanner) for a practical way to verify the finished code.
- Check the [QR safety checker](/qr-safety-checker) for a practical way to verify the finished code.
- Check the [printed QR tester](/printed-qr-tester) for a practical way to verify the finished code.
- Browse the [blog](/blog) for more guides on sizing, printing, and design for QR codes.