Guides

Color and contrast

Phones do not look for black squares. They look for a dark grid on a light field, with a clear edge. You can use brand colors. You cannot use two colors that turn into the same gray.

Updated 28 October 2026

What the two pickers do

On the QRazyQR homepage, Foreground paints the dark modules, including the three large finder squares in the corners. Background paints everything else, including the quiet area inside the file. The defaults are charcoal, #1a1a2e, on white, #ffffff. Those two are a safe pair. Changing them does not change the payload. A blue code and a charcoal code with the same text are the same link. Only the chance of a successful scan changes.

The colors are flat. There is no gradient, no transparency, and no image mask. If you need the code to sit on a photograph, export it with a solid light background and place that rectangle on top of the photo, with the background still visible as a margin. Do not set the background to match a busy picture and hope. The encoder cannot see the page you will paste the file into.

Reload the page and the pickers return to charcoal and white. The choices are not saved in the browser. That is the same behavior as the rest of the form, described on the about page.

Think in grayscale

Camera scanners mostly use brightness. A practical test: imagine the code as a black-and-white photocopy. If you would still see the modules, a phone probably will. If the photocopy is a gray square, the scan will be a coin toss, and it will fail first in a dim room.

Pairs that usually work:

Pairs that often fail:

The background has to include the margin

The quiet zone has to be the same light color as the light modules, and it has to be empty. A black outline drawn tight around the symbol is damage. A drop shadow that crosses the outer modules is damage. A background photograph showing through the light modules is damage, even when the dark modules are perfectly black. The print guide explains that QRazyQR’s file ends at the outer modules, so the margin has to come from the page you place it on, or from a background color you keep visible.

Gloss is a color problem in practice. A reflective laminate can turn a row of modules into a white streak under a ceiling light. The pixels are still dark. The camera never sees them. Matte stock, or a slight tilt so the glare moves off the finder patterns, fixes scans that no amount of error correction will.

Brand color without gambling

Pick the darker brand color for the modules only if it survives the photocopy test. Otherwise use charcoal or black for the modules and put the brand color in the type next to the code. A logo beside the code, outside the quiet zone, does not spend any error correction. A logo on top of the code does. QRazyQR will not place one for you.

Transparency is another trap. A PNG from this site has a solid background, not a transparent one. If a design tool knocks the white out, the page behind the code becomes the light modules. That is safe only when the page is a flat light color. It is unsafe on a texture.

Test with two phones if you can, including one that is not this year’s model, in the room where the code will be used. A code on a monitor is an easier scan than the same colors in ink. If the print fails and the on-screen preview worked, trust the print. Write down the two hex colors you used. If you want a second opinion on a pair that should have worked, email contact@qrazyqr.com with those colors and a photo of the print, taken straight on, without flash glare.