Skip to content
Fundamentals

QR Code Colour Customisation: A Complete Guide to Branded QR Designs

Codexengr, QR Systems Engineer
Published 2027-02-20 (Updated 2026-10-05)
5 min read
Peer Reviewed & Fact Checked

Why Colour Customisation Matters

A plain black-and-white QR code works, but it blends into nothing. A branded QR code with your brand colours reinforces recognition, increases scan rates by up to 35% in A/B tests, and communicates professionalism. The challenge: colour changes reduce contrast and can push error correction to its limits.

The Golden Rule: Dark on Light

QR scanners look for dark modules on a light background. The camera firmware calculates a contrast threshold between the foreground (modules) and background. If the contrast ratio falls below approximately 3:1, many scanners will fail to decode reliably.

Safe: Dark navy on white, dark green on cream, dark burgundy on pale grey. Risky: Medium blue on light blue, orange on yellow, dark grey on dark blue. Never: Light colours on white, dark colours on black.

Calculating Contrast Safely

Use the WCAG contrast ratio formula — the same used for accessibility:

| Foreground | Background | Contrast Ratio | Scannable? | |---|---|---|---| | #000000 (black) | #FFFFFF (white) | 21:1 | Always | | #1A237E (dark navy) | #FFFFFF (white) | 14.2:1 | Yes | | #2E7D32 (dark green) | #F5F5F5 (off-white) | 9.1:1 | Yes | | #FF6F00 (amber) | #FFFFFF (white) | 3.0:1 | Marginal | | #FF6F00 (amber) | #FFF9C4 (pale yellow) | 1.5:1 | No |

Aim for a minimum 4:1 ratio. Use a tool like [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) to verify any colour combination before printing.

Brand Colour Integration

Most brand guidelines specify a primary and secondary colour. Map these to QR modules:

- Primary brand colour → foreground modules (must be the darker colour) - White or light brand background → module background - Secondary accent → frame border or call-to-action text, not the modules themselves

If your brand primary is a light colour (pastels, yellow, lime), it cannot be used as the foreground. Use a darker shade from your extended palette instead.

Gradients and Patterns

Gradients applied to QR modules are high-risk. A gradient that fades from dark to light across the code creates regions where the local contrast drops below the scanner threshold. If using gradients:

- Apply only to the background, not the modules - Keep module colour uniform and dark - Test with at least three different scanner apps before printing

Error Correction as a Safety Net

Higher error correction levels allow more of the code to be damaged or misread before decoding fails:

- Level L (7%) — low tolerance, maximum data density - Level M (15%) — standard choice for colour customisation - Level Q (25%) — recommended for complex colour changes or logo embeds - Level H (30%) — use when applying logos or heavy colour effects

When using non-standard colours, always use Level Q or H error correction.

Testing Before Printing

Never print without testing. Scan your customised QR with: 1. iPhone Camera app (iOS 11+) 2. Google Lens on Android 3. A budget Android phone in poor lighting

If all three scan reliably, the design is safe to print. If any fails, increase contrast or switch to Level H error correction.

Related tools and guides

- Use the [QR size calculator](/qr-size-calculator) to match the printed size to the expected scan distance before you commit to a print run. - The [error correction simulator](/error-correction-simulator) shows how damage tolerance changes the density of the symbol at each level. - The [templates](/templates) collection offers ready-made layouts for common QR use cases. - Test every code with the [QR scanner](/qr-scanner) on more than one phone before you publish or print it. - Create a fresh code with the [URL QR code generator](/url-qr-code-generator) when the destination is a web page. - Run unfamiliar destinations through the [QR safety checker](/qr-safety-checker) before you share a code widely.

Frequently Asked Questions

Can I use my brand's primary colour as the QR code foreground even if it is bright?

Only if it provides at least 4:1 contrast against your chosen background. Bright or light brand colours (yellows, pastels, lime greens) typically do not meet this threshold against white. Use a darker tonal variant of your brand colour instead, and test scannability on multiple devices before committing to print.

Does inverting a QR code (white modules on dark background) work?

Most modern scanner apps handle inverted QR codes, but not all. Older firmware and some industrial scanners expect dark-on-light. Inverted codes also fail printed on glossy dark materials that cause glare. Unless you need it for aesthetic reasons, stick to dark-on-light for maximum compatibility.

How much of a QR code can I replace with a logo before it stops scanning?

With error correction Level H (30%), you can safely obscure up to 30% of the code area. In practice, keep logo placement to the centre 20–25% and ensure the three finder patterns in the corners are fully intact. Always test after adding a logo — the actual tolerance varies by QR version and data density.

Ready to generate high-precision QR codes?

Test your designs in real-time with our 100% client-side QR studio suite. Zero tracking, instant vector downloads.

Open QR Code Studio