QR Code Design: Colours, Logos and Quiet Zone Tips

Updated October 1, 2026

Good QR code design keeps strong contrast (dark code on a light background), leaves a clear quiet zone of blank space around the edges, uses a logo no bigger than the error correction can absorb, and is always tested on several phones before printing. Style is fine, as long as the scanner can still read every part of it.

A branded QR code looks better than a plain black square, but every design choice can take something away from what the scanner needs. This guide explains the rules that matter, so you can make a code that looks good and still scans first time.

How a scanner "sees" your QR code

A phone camera does not read a QR code the way you read a picture. It looks for three large squares in the corners (the finder patterns), works out the angle and size of the code, and then checks each small square, called a module, to decide whether it is dark or light.

That means three things matter more than anything else:

  • Contrast between the dark and light modules
  • Clear finder patterns in three corners
  • Empty space around the code, so the scanner knows where it starts and stops

Anything that blurs the difference between dark and light, hides part of the pattern, or crowds the edges makes scanning slower or impossible.

Contrast, colours and the quiet zone

Choosing colours

Colour is where most designs fail. The safest rule is simple: dark foreground on a light background. Black on white works best, but navy, dark green, deep red or dark brown on white or cream also scan well.

Things to avoid:

  • Low contrast pairs such as light grey on white, yellow on white, or pastel on pastel
  • Inverted codes (light modules on a dark background). Many newer phone cameras can read them, but some scanner apps and older phones cannot, so you lose part of your audience
  • Gradients that fade from dark to light across the code, because some modules end up too pale
  • Busy photo backgrounds behind the code, which confuse the scanner

A quick test: convert your design to greyscale. If the code still looks clearly dark on light, the contrast is probably fine. If it turns into mid-grey on mid-grey, choose stronger colours.

The quiet zone: leave room to breathe

The quiet zone is the blank margin around the code. The QR code standard calls for a border of four modules on every side. In practice, many codes scan with a little less, but it is a risky place to save space.

If a code sits right against a photo, border or text, the scanner cannot tell where it ends. Keep the margin clear and the same colour as the light modules, and you avoid one of the most frustrating scanning problems.

Adding a logo without breaking the code

A logo in the middle is popular, and it can work because QR codes contain error correction. Error correction adds extra data so the code can still be read if part of it is damaged or covered. There are four levels, from L (about 7% of the data can be recovered) to H (about 30%). You can read more in our guide to QR error correction levels.

When you place a logo on top, you are deliberately "damaging" part of the code. Follow these rules:

  1. Use a higher error correction level, such as Q or H, when adding a logo.
  2. Keep the logo small, roughly a fifth of the code's width or less, and well inside what the chosen level can recover.
  3. Place it in the centre, never over the three corner finder patterns.
  4. Give the logo a plain background or a thin white border so it does not blend into nearby modules.
  5. Test again after every change to logo size or position.

Remember that higher error correction makes the code denser (more, smaller modules). That is another reason to keep the content short, for example by using a dynamic QR code with a short link instead of a long URL.

Keep the data short for a cleaner code

The more data you put into a QR code, the more modules it needs, and the smaller each one becomes at the same print size. A long web address with tracking parameters can produce a dense code that is hard to read from a distance or on low-quality print.

Two easy fixes:

  • Use a link shortener or a dynamic QR code, which stores only a short link
  • Remove unnecessary parameters from the URL before generating the code

A dynamic code has another advantage: if you need to change the destination later, you do not have to reprint your beautiful design.

Shapes, styles and frames

Many generators let you round the modules, change the shape of the corner squares or add a frame with a call to action. These can look great, with some limits:

  • Rounded or dot-style modules usually scan well if they stay large enough and keep contrast. Very small dots with big gaps between them can fail.
  • Custom corner squares should still look like solid squares within squares. Do not make them too thin or decorative.
  • Frames and labels such as "Scan for the menu" are useful, but keep them outside the quiet zone.
  • Do not stretch the code into a rectangle or bend it around a curved surface without testing. Skewing changes the module grid.

Design checklist before you print

Run through this list for every new QR code design:

  1. Dark modules on a light background, with strong contrast in greyscale
  2. Quiet zone of about four modules on all sides, kept completely clear
  3. Logo small, centred, and not covering the corner squares
  4. Error correction level raised if you added a logo
  5. Data kept short, ideally with a short or dynamic link
  6. Call to action placed outside the code
  7. Printed at a size that suits the scanning distance (see our QR code size guide)
  8. Tested on at least two or three different phones, both iPhone and Android, in normal lighting
  9. Final file exported in a sharp format (SVG or high-resolution PNG), not a blurry screenshot

FAQ

Can a QR code be any colour?

Yes, as long as the modules are clearly darker than the background. Dark colours on white or cream are safest. Avoid light colours on light backgrounds and be careful with inverted designs.

How big can the logo be in a QR code?

Keep it to roughly a fifth of the code's width or less, centred, with error correction set to Q or H. Always test after adding it, because every code and logo is different.

Why does my designed QR code not scan?

The usual causes are low contrast, a missing quiet zone, a logo that is too large, or a code printed too small for its data. Fix one thing at a time and test after each change.

Does a custom design make a QR code less safe?

The design itself does not change safety. What matters is where the code points. A branded code with a clear call to action and a trusted destination helps people feel confident scanning it.

Create a QR code that looks good and scans

Good design is about balance: your brand on one side, the scanner's needs on the other. Try the free QR code generator on QR-TH to add colours and a logo, preview the result, and test it with your own phone before you send anything to print.

More guides