Best Colors for QR Codes: Contrast Rules That Still Scan
Which QR code colors scan reliably? Learn contrast rules, why light-on-dark can fail, and how to use brand colors and gradients without breaking your code.
The one rule that matters: contrast
A QR code is read by comparing dark modules (the dots) against a light background. Phone cameras need a clear difference in brightness between the two. Hue matters far less than lightness: a dark navy dot on a white background scans well, while a bright yellow dot on white does not, even though both are colorful.
A reliable starting point is dark dots on a light background, which is exactly what most printed QR codes use.
How QR Vibe rates your colors
QR Vibe calculates the contrast ratio between your dot color and background in real time. It treats a ratio of about 7:1 or higher as excellent, 4.5:1 or higher as good, 3:1 or higher as risky, and anything below 3:1 as likely to fail on many phones. These are the tool's own guidance thresholds, so treat them as a safe rule of thumb rather than a guarantee.
Colors and styles to be careful with
These choices are the usual cause of failed scans:
- Light dots on a dark background (inverted codes). Some scanner apps do not read them, so test on your target phones.
- Pastel or yellow dots on white.
- Gradients that fade toward the background color. Keep the lightest part of the gradient dark enough.
- Busy photo backgrounds behind the code.
- Transparent backgrounds placed on top of patterned or colored surfaces.
Using brand colors safely
Pick your darkest brand color for the dots and keep the background white or very light. If your brand color is bright, use a darker shade of it for the code. Place your logo in the center with High error correction, and keep the logo small.
Finally, remember that printed colors can look different from your screen. Always scan a printed proof before a full print run.
