On this page
- Chapter 1: What keeps a code scannable
- Chapter 2: Brand styling without breaking scans
- Chapter 3: Size follows distance — and density
- Chapter 4: Materials that fight you
- Chapter 5: Proofing is the whole game
- Five steps between artwork and print run
- Chapter 6: Common print failures and their fixes
- Pre-press checklist
Chapter 1: What keeps a code scannable
A phone camera reads a QR code by finding a grid of dark and light squares, so everything about scannability comes down to three properties. Contrast: the pattern must be clearly darker than its background — dark-on-light is the safe default, and every step towards a low-contrast pair makes the camera work harder. The quiet zone: an empty margin around the code, at least four modules wide (four of the small squares), that tells the scanner where the pattern begins and ends. Text, logos, borders, or busy artwork pushed against the code's edge break it as surely as smudged ink does. Error correction: QR codes carry built-in redundancy, defined in the standard at four levels — L, M, Q, and H — which tolerate roughly 7%, 15%, 25%, and 30% damage respectively.
Error correction is also your design budget. A centred logo works because it “damages” a region the redundancy can reconstruct — but the redundancy it spends on your logo is no longer available for scratches, glare, or sloppy printing. Raising the level buys tolerance back, at a price: a denser grid of smaller squares, which in turn needs to be printed larger. Every styling decision in this handbook is a withdrawal from that same budget; the craft is spending it where your brand needs it most.
Chapter 2: Brand styling without breaking scans
A branded code does not have to be a plain black box. With Qrcado's design and branding tools you can set foreground and background colours or a gradient, reshape the modules and the corner “eyes”, centre a logo, and wrap the result in one of around 21 call-to-action frames. All of it is compatible with reliable scanning — if you respect a few rules.
Keep the contrast relationship intact: the pattern stays clearly darker than the background, whatever the hue. A deep brand navy on white scans fine; pale gold on cream does not. With gradients, judge contrast at the gradient's lightest point. Leave the three corner eyes recognisable — restyled shapes are fine, but scanners lock onto those squares first, so they need to stay high-contrast and unobstructed. Keep the logo modest: centred, well inside the pattern, small enough that error correction absorbs it comfortably, ideally with the level raised a step to compensate. And put the branding energy where it is free: the frame and call-to-action text around the code can carry as much colour and personality as you like, because they live outside the scannable area — provided the quiet zone between frame and pattern stays clear. Once a combination works, save it as a template so every code the team makes inherits a tested design instead of a fresh gamble.
Chapter 3: Size follows distance — and density
Size is the most common print failure and the easiest to prevent. The working rule: minimum width ≈ farthest realistic scan distance ÷ 10. A business card read at 20 cm needs about 2 cm of code; a shop window scanned from a metre needs 10 cm; a billboard read from across the road needs the better part of a metre. Our QR code size guide applies the rule placement by placement, from product labels to vehicle wraps — treat its table as your minimums and round up.
Density moves the goalposts. The more data a code carries and the higher its error-correction level, the finer its grid, and finer squares need more physical size to survive printing. This is a quiet argument for dynamic codes in print: they encode only a short redirect, so the pattern stays coarse, forgiving, and scannable at smaller sizes than a static code stuffed with a long URL.
Chapter 4: Materials that fight you
A code that scans perfectly from your office printer can die on the final material. Gloss and lamination reflect light: under shop spotlights or sunlight, a glossy code becomes a mirror with a glare patch where the pattern should be. Prefer matte finishes; if you must laminate, use matte laminate and test under the actual lighting. Curved surfaces — bottles, cups, tubes — bend the grid so the camera sees a distorted pattern. Keep the code small relative to the curve so it sits on an effectively flat area, place it along the axis with the least curvature, and test on the filled, final package, not a flat mock-up. Fabric stretches and drapes, which warps the grid unpredictably; print on a stiff patch, label, or transfer rather than directly onto flexible cloth. Thermal paper — receipts — fades with heat and time, so treat a receipt code as short-lived by design. Metal and other reflective media combine the glare problem with low contrast; a printed sticker on the surface usually beats etching. Screens are mostly friendly — codes in slides or on displays scan well — but keep the on-screen code large, never let a projector wash out the contrast, and mind that some dark-mode themes invert colours and produce the risky light-on-dark case.
Chapter 5: Proofing is the whole game
Every failure above is caught by the same habit: proof on the real thing before committing to a run. A proof is not glancing at the artwork PDF — it is one physical piece, on the final material, scanned like a stranger would scan it. The workflow below takes about fifteen minutes and is the cheapest insurance in print.
Chapter 6: Common print failures and their fixes
When a printed code will not scan, the cause is almost always on this short list. Too small: the single most common failure — re-check the distance ÷ 10 rule and reprint larger. Low contrast or inverted colours: a light pattern on a dark background trips up many scanners; darken the foreground, lighten the background, or return to dark-on-light. Missing quiet zone: artwork crowding the code's edge — restore the four-module margin. Logo too large: it has spent more error correction than the code can spare; shrink it or raise the correction level, then re-test. Blurry edges: a low-resolution raster was scaled up; go back to the vector export. Ink bleed: porous stock swells the dark squares until they touch; use a coarser code, a larger print, or better stock. Glare: gloss under bright light; switch to matte. And the one design cannot fix — the right code pointing at the wrong destination. A static code with a wrong link means reprinting everything, which is why print jobs favour a dynamic code whose destination you can correct after the fact, and why the security guide recommends checking live codes periodically even after a clean launch.