1. Contrast is non-negotiable
Phone cameras read QR codes as a pattern of dark squares on a light background. Weak contrast means failed scans.
Dark dots on a light background. Safest pairing, works on every phone.
Avoid inverted codes (light dots on a dark background). Some phone cameras refuse to read them.
Skip near-identical hues. Navy on black or pale yellow on white looks great in mockups and fails in the wild.
Aim for at least a 40% contrast ratio between your dot color and your background. When in doubt, view the code in grayscale — if it starts to disappear, so will your scans.
In the editor, this is your Dot Color and Background Color.
2. Give it room to breathe
Every QR code needs empty space around it so the camera can find its edges. Crowd it, and the scan fails.
Keep at least 4 modules (the small squares that make up the code) of clear space on every side.
Don't butt the code up against text, photos, or the edge of your packaging.
The QR Margin setting controls this — don't reduce it below the default.
3. Consider sizing
On packaging, bigger is almost always better.
We recommend the code take up at least 30% of the surface area it lives on.
If you can't go that big, surround the code with white space on the packaging. A smaller QR with a generous quiet zone scans far more reliably than a slightly larger one crammed into a busy panel.
4. We recommend skipping the logo
We know — branded QRs look great, and the temptation to drop your mark in the center is real. But for ease of use, we recommend leaving the logo off.
Logos can interfere with scannability, especially when the code is small — which it usually is on packaging.
A QR that gets scanned beats a branded QR that doesn't.
We get the desire for a branded code, but ultimately, given how small packaging QRs end up, a clean code is the more reliable choice.
If you really want to include one, keep it small and centered, and test thoroughly before printing.
5. Use both frame text slots
Your code already comes with a frame and pre-populated top and bottom text. Use both slots — it doesn't matter which message goes on top and which on bottom.
One should encourage the scan — "SCAN ME," "TAP TO REDEEM."
The other should tease a vague reward — "SOMETHING INSIDE," "DON'T MISS OUT," "A GIFT FOR YOU."
Keep each line short — 2–4 words.
Border color, text color, and font should all match your brand. White text on a dark brand color is a safe default.
6. Test before you submit
You can't hold a physical proof in your hand before we print, but you can run a solid digital test from the preview in the editor.
Pull up the QR preview on your screen and scan it with at least 3 different phones — one new iPhone, one older Android, one in between. Cameras vary more than you'd think.
Dim your screen for one round of testing. A bright monitor masks contrast problems that show up on real packaging.
Scan from the edges and corners, not just dead-on. If your customer is holding the package at an angle, the code still needs to read.
Zoom out in your browser so the preview shrinks toward its real printed size, then scan again. A code that works at 100% on a big monitor isn't guaranteed to work at packaging scale.
Quick checklist
Before you save a design:
Dark dots on a light background, strong contrast
Quiet zone preserved — nothing crowding the edges
Code takes up ~30% of the panel, or is surrounded by white space
No logo (or a small, well-tested one)
Both frame text slots used — one CTA, one tease
Scanned on 3 phones from the editor preview, including at a zoomed-out size and from off-axis angles
A code that clears those six is one that works in your customer's hand, not just in a mockup.