The default black-and-white QR code is the equivalent of a plain text document in Times New Roman — it works, but it signals "I didn't care enough to customize this." Custom-colored QR codes are one of the easiest branding upgrades on the internet, and when done right, they don't cost you any scannability.
This guide covers how to customize QR code colors on QuicklyGenerateQR, the contrast rules that keep colored codes working, and the exact combinations that fail.
Why contrast matters more than color choice
A QR code scanner doesn't care what color the modules are. It cares whether it can reliably tell dark modules from light modules — that distinction is what encodes the data. The moment contrast drops below a certain threshold, the scanner starts guessing, and guesses become misreads.
The practical rule: the foreground (dark modules) and background (light modules) should have a contrast ratio of at least 4.5:1. That's the same threshold WCAG uses for readable body text, and it's a reliable baseline for QR code scanning too.
If you want to be precise, tools like WebAIM's Contrast Checker will tell you the exact ratio between any two hex colors. Anything 4.5:1 or higher is safe; anything lower is a gamble.
Safe vs risky combinations
| Combination | Reliability | When to use |
|---|---|---|
| Black on white | Perfect | Always safe, the gold standard |
| Dark brand color on white | Excellent | Matches your identity without risk |
| Dark modules on cream / pale tint | Great | Soft, designed look |
| Single accent eye color on dark body | Great | Subtle brand accent |
| White on dark (inverted) | Inconsistent | Test on 3+ devices before committing |
| Pastel foreground on white | Poor | Don't |
| Color on similar color | Poor | Don't |
| Gradient foreground (varying darkness) | Very poor | Don't |
| Photographic background behind the code | Very poor | Don't |
| Metallic / foil prints | Very poor | Reflections confuse camera exposure |
The six-step workflow
Open the generator
Go to the free QR code generator and fill in your content first. Design choices come after structure.
Pick your foreground color
This is the dark part of the code. Enter your brand's primary hex value. If your brand color is too light (a pastel, a pale accent), pick a darker shade instead — most brand systems have a "dark" or "primary" variant that works better for QR codes than pastel accents.
Pick your background color
Usually white or a very pale brand tint. Solid white (#ffffff) is the safest choice. If you want something softer, try a very pale cream or a 2-3% tint of your brand color.
Check the live preview
The preview updates in real time. Look at it at multiple sizes — imagine the code printed at business-card size. If the colors blur together or the pattern looks muddy, back off and try a darker foreground.
Optional: style the eye patterns separately
The three corner squares (the "eyes") can be styled independently from the body modules. Keeping the body dark and coloring only the eyes creates an elegant accent without compromising the main scannability.
Download and test
Export as SVG for print or PNG for digital. Scan with two different phones to verify — the final test is always a real scan on real hardware.
Ready to brand-match your code?
Hex-precision colors, custom dot shapes, and eye pattern overrides — all free, no signup required.
Color patterns worth copying
Monochrome brand tone
Dark brand color on white. Clean, professional, immediately recognizable. Works for 90% of use cases and never scans incorrectly.
Eye accent
Dark body modules on white, with the three eye squares in a brand accent color. Adds visual interest without touching the scannable body. Great for editorial and hospitality brands.
Pale tint background
Dark modules on a very pale brand-tinted background (3-5% tint). Feels more "designed" than pure white while staying safely high-contrast. Great for wedding invitations and boutique packaging.
Inverse hero card
White modules on a dark brand background, framed by a generous quiet zone. Best on large formats (posters, packaging). Test on multiple devices before committing — inverted codes are hit-or-miss on older scanners.
A plain black-and-white code with good copy outperforms a beautifully branded code with no copy, every time. Contrast matters more than color. Copy matters more than design. Design matters more than nothing.
How to verify contrast before you commit
Before downloading and printing:
- Look at the preview at the smallest size you plan to use (e.g., 2 cm for a business card).
- Squint. If the code still reads as a sharp pattern of dark and light, you're fine. If it blurs into mush, contrast is too low.
- Convert the preview to grayscale mentally. The pattern should still be clearly visible in black and white. If you can't tell modules from background in grayscale, scanners will struggle.
- Scan the printed result on at least two different devices.
Should you just use black on white?
Honestly? Yes, sometimes. If your primary goal is maximum scan reliability — say, you're printing codes on surfaces that will be scanned in bad lighting, or your audience includes users with older phones — pure black on white is unbeatable. Boring, but the gold standard.
The trade-off is brand recognition versus reliability. A dark brand blue on white loses you maybe 1% of scans in worst-case conditions, and gains you meaningful brand reinforcement on every scan that does work. For most businesses, that's a trade worth making.
Ready to customize?
Open the free QR code generator, pick your colors, and download. No signup, no watermark, no scan limits.
For more design context, see the logo tutorial and the QR code size guide.
Tagged