A QR code does not have to look like a black and white barcode from 1994. It does have to scan. These ten rules let you make a code that matches your brand without losing the people it was made for.
Why design goes wrong
A QR code is a grid of small squares called modules. A phone camera finds the three large corner squares, the finder patterns, then reads the grid between them. Every design choice either helps the camera tell dark from light or gets in its way.
Styling is safe when it keeps the grid honest. It fails when it lowers contrast, hides modules, or crowds the edges. The rules below are in rough order of how often they break a code in the real world.
Rule 1: keep the contrast high
The camera needs dark modules on a light background. Pure black on white is the standard. Dark navy, dark green, deep purple and charcoal all work. Mid-tones do not.
Do this
Deep purple #6C63FF modules on white. High contrast, on-brand, scans at arm's length in a dim café.
Not this
Pale gold modules on cream. The camera sees one beige square and gives up.
The colours and contrast guide has the numbers. If you only remember one, remember a contrast ratio of 4.5 to 1 or better.
Rule 2: keep the background lighter than the modules
An inverted code, light modules on a dark background, scans on modern iPhones and most Android phones but fails on many older scanners and kiosk readers. If your design is dark, put the code on a light tile instead. See inverted and dark mode codes for when the risk is acceptable.
Do this
A dark poster with a white rounded tile and a black code inside it. Works on every scanner ever made.
Not this
White modules printed straight onto black. Fails on a supermarket handheld scanner and some Android camera apps.
Rule 3: protect the quiet zone
The quiet zone is the blank border around the code, four modules wide on every side. It is part of the code. Designers crop it because it looks like wasted space, then the finder patterns blend into the artwork beside them.
Do this
Four modules of clear background on all sides. On a 3 cm code that is about 4 mm.
Not this
A code butted straight up to a photo, a border line or a block of text.
Rule 4: keep the logo small and central
A logo works because error correction can rebuild missing data. At level H it can recover up to 30 percent of the code, but a logo should never use all of that budget. Keep it under a quarter of the area, in the centre, with a white margin. The logo guide gives the size budget for each level.
Do this
A round logo covering about 20 percent of the area at level H, with a white ring around it.
Not this
A wide wordmark covering a third of the code at level M, touching the modules on both sides.
Rule 5: never cover the finder patterns
The three large squares in the corners and the smaller alignment pattern near the bottom right are how the camera locates and straightens the code. Error correction does not protect them. Keep logos, gradients and frames away from all three corners.
Do this
Logo in the centre. Finder patterns solid and untouched.
Not this
A brand icon dropped over the top-left finder pattern because the designer thought it was decorative.
Rule 6: style modules, but keep them mostly filled
Rounded modules, dots and small gaps between squares all scan if each module still covers most of its cell. A dot that fills 70 percent of its square reads as dark. A dot that fills 40 percent reads as noise.
Do this
Rounded squares with a small gap, finder patterns kept as solid rounded blocks.
Not this
Tiny circles with wide gaps, so the code looks like a dotted texture and the camera cannot find a grid.
Rule 7: skip gradients unless the light end is still dark
A gradient across the modules looks smart in a mock-up. On a phone, the pale end of the gradient stops being dark and the code half vanishes. A gradient from black to dark purple is fine. A gradient from purple to white is not.
Do this
A gradient from #0A0A0F to #6C63FF across the modules. Both ends read as dark.
Not this
A gradient from #6C63FF to #FFFFFF. The bottom-right corner, including the alignment pattern, disappears.
Rule 8: use a frame for the message, not the code
A frame is a shape around the code with a label. It is a good home for the call to action and the logo, because it sits outside the quiet zone. Do not let the frame touch the code or fill the quiet zone with colour.
Do this
A rounded frame with Scan for the menu in the tab and the logo in the corner of the frame, code centred with its full quiet zone.
Not this
A frame drawn tight against the modules, with the label overlapping the top row.
Rule 9: always add a call to action
Nobody scans a bare square. A short instruction tells them why. Scan to order. Scan for Wi-Fi. Scan to book. Print the short URL under it too, for anyone whose phone will not scan.
Do this
Scan to see today's menu, with getqrstudio.app printed beneath.
Not this
A code on its own in the corner of a leaflet, with no hint of where it goes.
In practice
Put the call to action above the code and the URL below it. Eyes land on the code first, then look up for the reason and down for the fallback.
Rule 10: test the styled code, not the plain one
Every rule above is about tolerances. The only way to know you stayed inside them is to scan the finished artwork with at least two different phones, at the real size, on the real material. The testing guide has the full ten-step routine.
Do this
Printed a test sheet on the final stock and scanned it with an iPhone and an Android phone at the real distance.
Not this
Scanned the design on a bright monitor once, then sent 5,000 leaflets to print.
Try it in QR Studio
QR Studio runs a scannability audit on the styled code as you change colours, shapes and logo size. It warns on low contrast, a logo over budget, and a missing quiet zone before you export.
Checklist
- Modules much darker than the background, contrast ratio 4.5 to 1 or better
- Background lighter than the modules, or the code sits on a light tile
- Quiet zone of four modules kept clear on every side
- Logo under a quarter of the area, centred, with a white margin, at level H
- Finder and alignment patterns untouched
- Styled modules still fill most of their cell
- No gradient that ends in a light colour
- Call to action and printed URL beside the code
- Scanned the final artwork on two phones at the real size
Try it yourself
Upload the finished artwork. The tester decodes it in your browser, checks contrast and quiet zone, and tells you how much margin you have left before it fails.