Seeing contrast done well is faster than reading a list of rules, so this guide walks through examples that work in real places. Each example keeps the same discipline underneath the design: a clean code, a clear margin, strong contrast, and a message that tells people what they get. The examples cover different surfaces and distances, from a card held at arm length to a poster read from across a room. Use them as starting points, copy the structure, adapt the colors and words to your brand, and always test your own version before you print.
Example one: a small, everyday use
A pharmacy label uses near-black modules on white stock with a plain white quiet zone. The brightness gap is large, the edges are crisp, and the code reads even when the label is small. A museum ticket uses dark charcoal on pale grey card, and the designer checks the printed ticket under gallery lighting before approving it.
The lesson is restraint. The code itself stays plain, the message is short, and the surrounding design does the branding. A reader who glances at the card understands what to do in a second, and a phone locks on without hunting.
Example two: a larger, public use
A delivery box uses dark ink on a kraft panel that has been given a white printed patch behind the code. Without the patch the kraft background was too dark for reliable reads; with it, the code reads at a normal scanning distance. A gym poster uses dark ink on a pale background with no pattern behind the code.
The lesson is scale. A larger code earns a larger margin and a larger message, and the design respects that. The code is not squeezed into a leftover corner; it is given the space its viewing distance demands.
Example three: a branded, busy surface
A restaurant table card uses dark modules on a cream card and keeps the card away from direct window glare. The card is small, but the brightness gap is large, so phones lock on quickly. A retail shelf edge uses black on white with no tint behind the code, even though the surrounding shelf design is colorful.
The lesson is separation. The brand carries the pattern and the color, while the code carries a calm panel and a clean margin. The two jobs stay separate, and both succeed. Whenever a design tries to make the code itself carry the pattern, scanning suffers.
Putting this into practice
Pick the example closest to your placement and rebuild it with your own brand and message. Keep the structure the same: a clean code, a clear margin, and a short message. Print it at the final size, scan it with two phones, and compare it with the example. If your version scans as quickly as the example, you have a safe design to build on.
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 contrast checker](/qr-contrast-checker) to check your choices before you commit to a design.
- Use the [QR color pair tester](/qr-color-pair-tester) to confirm the numbers and guardrails for this element.
- 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.
- Check the [QR placement guide](/qr-placement-guide) for a practical way to verify the finished code.
- Check the [blog](/blog) for a practical way to verify the finished code.