EndureQR

Design

QR code design best practices: custom codes that still scan

A branded QR code can look good and scan first time. The trick is knowing which design choices are safe and which ones quietly break the code.

Updated · 6 min read

A custom QR code scans reliably when it has strong contrast, uses dark modules on a light background, keeps a clear margin around the edge, and limits any logo to roughly 20 to 25% of the code's area with high error correction. Add a frame with a short call to action, then test on several phones before you print.

What colours can a QR code be?

A QR code can be almost any colour, as long as the modules are much darker than the background. Scanners convert the image to light and dark. They care about brightness, not hue. A deep navy, forest green or wine red on white scans as well as black on white. A pale yellow or light grey does not, however good it looks.

  • Keep the modules dark and the background light. Light modules on a dark background, often called an inverted code, fail on some older phones and scanner apps.
  • Aim for strong contrast. If you squint and the code starts to blend into the background, it is too faint.
  • Use a plain background. White or a very light tint works best. Avoid placing the code directly over a photo, pattern or texture.
  • Be careful with gradients. A gradient from dark to mid tone can leave part of the code too light. Check the lightest point, not the average.
  • Watch the finder patterns. The three large squares in the corners must be as dark and clear as the rest of the code.

Your brand colour does not have to disappear. Use it for the frame, the call to action and the logo, and keep the modules a darker shade. The code still reads as yours.

Keep a logo to around 20 to 25% of the code's area at most, and smaller is safer. A logo in the centre covers modules, so part of the data is missing. Error correction is what lets the code survive this. QR codes have four levels, L, M, Q and H, which can recover roughly 7%, 15%, 25% and 30% of the data.

That recovery budget also has to cover scratches, dirt, glare and print defects, so do not spend all of it on the logo. Use a high error correction level when you add one. The EndureQR generator switches to level H automatically as soon as you upload a logo.

  • Place the logo in the centre, never over the three corner finder patterns.
  • Give the logo a small light border so its edge does not merge with nearby modules.
  • Use a simple mark or icon. A full wordmark becomes unreadable at the size a code allows.
  • Keep the content short. A denser code has smaller modules, so the same logo hides more of them.

The free EndureQR generator lets you upload a logo, pick colours and add a frame, then download PNG, SVG, JPEG or PDF with no watermark.

Dot styles and corner shapes

Many generators let you change the shape of the modules and the corner squares. Rounded modules and soft corners are a quick way to make a code feel less technical, and they usually scan fine.

  • Rounded squares are a safe choice. They keep almost all of the dark area of a square module.
  • Small circles need testing. Tiny dots leave more white space between modules, which lowers contrast at small sizes.
  • Keep the corner eyes recognisable. Scanners look for a dark outer ring, a light ring and a dark centre. Rounded versions work. Unusual shapes can confuse older scanners.
  • Do not distort the grid. Never stretch a code into a rectangle, skew it or move parts of it for effect.

Whatever style you choose, apply it evenly to every module. Mixing shapes inside one code makes the pattern harder to read.

Does a QR code need a call to action?

Yes. A code on its own does not tell anyone what will happen. A short instruction gets more scans and builds trust, because people know what to expect.

  • Use a verb and a benefit: "Scan for the menu", "Scan to join WiFi", "Scan to book a viewing".
  • Keep it to a few words and set it in a frame or label next to the code.
  • Keep the frame outside the quiet zone, the clear margin of 4 modules around the code.
  • Print a short web address too, for anyone who cannot or prefers not to scan.

Match the call to action to the destination. If the frame says menu and the code opens your homepage, people trust the next code they see a little less.

Size and placement

Good design fails if the code is too small. A printed code should be at least about 2 cm (0.8 in) wide for close scanning. For longer distances, use the 10:1 rule: the code should be about one tenth as wide as the distance people scan from. Place it on a flat surface at a comfortable height, away from folds, edges and glossy glare.

If the destination might change after printing, consider a dynamic code. Its short link keeps the pattern simple, which leaves more room for a logo, and you can update the link without reprinting. See pricing for dynamic plans.

Test on several phones before you print

Phones differ in camera quality, focus speed and the software that reads codes, so one successful scan proves very little.

  1. Scan with the camera on an iPhone and on at least one Android phone, ideally from different brands.
  2. Include an older phone if you can. Older cameras are less forgiving of low contrast and busy designs.
  3. Test a printed proof, not just the screen. Ink spreads, paper colour shifts and finishes add glare.
  4. Scan from the real distance and in the real lighting where the code will live.
  5. Check that the link opens the right page and that the page works on a phone.
  6. Test again after every design change, however small.

FAQ

Quick answers.

Something else? Email hello@endureqr.com and a person will reply within one business day.

Yes, as long as the modules are much darker than the background. Dark brand colours on white or a pale tint work well. Light colours and inverted codes are risky.

Keep it to roughly 20 to 25% of the code's area at most, with high error correction, and keep it away from the three corner squares. Smaller logos are more reliable.

A small, well-placed logo usually does not. Problems start when the logo is too large, covers the corner squares or blends into the modules around it.

Yes. A clear, light margin of 4 modules on every side helps phones find the code. Trimming it is a common cause of codes that will not scan.

Print it once. Keep it forever.

Make your first dynamic code in a minute. If you ever leave, it keeps working.