Choose two clearly different colours
Use a dark colour for the small squares and a light colour for the background. A very pale brand colour works better around the QR code than in its modules. Different hues can have similar brightness: purple and dark blue, for instance, do not necessarily make a readable pair.
Prepare a black-on-white version as a reference. Keep the same link, size and error correction level for the coloured version. This lets you isolate the effect of changing colours without mixing several possible causes.
Keep a solid background and clear margin
The margin is part of the design: DENSO WAVE specifies a clear area four modules wide on every side. Do not crop it to save space. Keep text, borders and patterns away from the grid.
Qurl gives the QR code an opaque background. Keep that background square on a photographic poster, even if transparency would look more discreet. On coloured paper, discuss the actual result with your printer: white in a file does not always mean white ink will be printed.
Compare the files, then the finished material
- Create both versions with identical content and download their PNG files.
- Read each image in the Qurl reader and compare the decoded content.
- Place the chosen version in the layout without stretching it or changing its opacity.
- Print one copy at the intended size and try it under the lighting at its destination.
Successfully decoding the file validates a digital step. It does not measure paper reflections or a phone camera’s focus. Record the version and conditions tested instead of giving a colour a universal pass or fail.
Make corrections in a useful order
If reading is unreliable, first restore a plain light background and the full margin. Next, return to darker modules. If that is not enough, enlarge the QR code and simplify the encoded link. Temporarily remove the logo to see whether it contributes to the problem.
Use your brand colour for the heading, button or outer frame if it interferes with scanning. Continue with adding a logo and diagnosing an unreadable QR code.