Can QR codes be any color or shape?
10 min read
Yes, QR codes can be any color, as long as the dots stay clearly darker than the background, because a phone looks for a difference in lightness, not for black and white. The safe rule is a dark code on a light background with a contrast of at least 3:1 (4.5:1 or more for print) and an empty margin around it; within that rule, colors, gradients, rounded dots and logos all work.
In short
- Color is fine; low contrast isn't. Keep the dots clearly darker than the background.
- linqr warns you below 3:1, and every ready-made style is built for at least 3.5:1.
- Light-on-dark (inverted) codes work in some apps and fail in others.
- Gradients, round dots, hearts and logos work if the corner squares stay solid and the margin stays empty.
- The live scan check tests every change, but always print one test copy.
Contents
The contrast rule: dark code, light background
Put simply, a phone turns the photo of a code into a two-tone image and looks for light and dark modules. The hue doesn't matter; the difference in lightness does. That difference is measured with the contrast ratio from the WCAG accessibility guidelines, which runs from 1:1 (the same color) to 21:1 (black on white). linqr uses the same formula.
| Code color | Contrast with white | Verdict |
|---|---|---|
Black #000000 | 21:1 | Safest |
Navy #0C1445 | 17.5:1 | Excellent |
Plum #4B1D6B | 12.5:1 | Excellent |
Blue #2B4AFF | 6:1 | Good |
Red #CB272F | 5.4:1 | Good |
Orange #EA580C | 3.6:1 | Borderline; only on clean white |
Green #22C55E | 2.3:1 | Too light; linqr will warn you |
Yellow #FFE45E | 1.3:1 | Won't work |
linqr shows Not enough contrast below 3:1, and every ready-made style is built for at least 3.5:1. For print, aim for 4.5:1 or higher. That's a rule of thumb: paper, ink and dim restaurant lighting eat some of the difference you see on screen.
Inverted codes: why some apps fail
An inverted code, with light dots on a dark background, is the riskiest choice. Some scanner apps read it without trouble and some don't read it at all, because they look for dark modules on a light field. You can't control which app your customer opens, so white dots on a black T-shirt or yellow on a navy poster is a gamble you can easily avoid.
linqr flags these codes with “Light code on a dark background: some apps won't read it” and a Swap colours button. The Night dots style is inverted on purpose, for dark designs. The safer move in a dark design is a light panel behind a dark code: a white label, a frame or a sticker. If a code is already up and not scanning, work through the checklist in QR code not working.
Gradients that still scan
A gradient looks modern and scans fine when both ends are dark. Trouble starts when it fades from navy to light blue: half the code has strong contrast and the other half doesn't. linqr checks every color in the gradient against the background, so a too-light end triggers the warning too.
- Pair two dark colors, like the violet and burgundy of the Grape bars style (both about 7:1 against white).
- Linear turns with the Gradient angle slider; Radial spreads out from the center of the code.
- Keep the background plain and light, including when you place a transparent code on your own artwork.
Dot and corner shapes
Dots don't have to be squares. linqr has 12 dot shapes, 6 corner frames and 6 corner centers, and every ready-made style passes automated tests that encode the code and read it back.
The three big squares in the corners matter most. Phones use them to find the code and work out its angle, so they can be rounded, circular or leaf-shaped, but they should stay solid and clear. A rule of thumb: thin shapes like stars or crosses carry less ink than squares, so small prints need more contrast. Every shape and frame is shown on the custom QR code design page.
Round and heart codes: shapes vs frames
Do QR codes have to be square? The grid does, because phones read rows and columns of modules. The look doesn't. Dots with Circle corners reads as round, and Hearts turn the whole pattern into little hearts, as in the Candy style. For a round sticker or a heart-shaped wedding sign, put the square code inside the shape and leave an empty margin around it.
Frames change the outline around the code, not the code itself. Bubble and Ticket give the sticker a speech-bubble or ticket silhouette with room for a label like “SCAN ME”. The frame keeps an empty band of at least 2 modules inside it, so it never crowds the dots.
Logos and transparent backgrounds
A logo covers some of the dots and error correction rebuilds them, so when you add one, linqr switches to the highest error correction level and watches that the logo doesn't cover too much. The logo can be any color; the dots around it still need contrast with the background. Size and spacing are covered on the QR code generator with logo page.
A transparent background, set with Background and Transparent in the Colours tab, lets the code sit on your flyer without a white box. PNG and SVG keep it; JPG doesn't. The quiet zone then comes from whatever is under the code, so give it a plain, light area at least 4 modules wide on every side.
Brand color tips
You don't have to do the math yourself. Our free QR code generator does it as you design: the Colours tab shows Not enough contrast with a Fix button, and the reader under the preview shows Scans correctly or This code may be hard to scan after every change. A workflow that keeps a brand-colored code safe:
Start from a ready-made style
In Style, pick the one closest to your palette, like Midnight or Terracotta.
Put your darkest brand color on the dots
In Colours, pick it from the swatches or enter your own.
Choose a light background
White, cream or a pale tint of your brand, clearly lighter than every dot.
Add an accent on the corners
Turn on Different corner colour for a brighter brand color on the three corner squares, as long as it stays dark enough.
Print a sample
Print one at the final size and scan it with two different phones.
Design a QR code in your brand colors
Paste your link, pick a style and colors, and the scan check tells you right away whether the code will work.
Design your QR codeQuestions
Do QR codes have to be black and white?
No. Any dark color on a light background works: navy, burgundy, plum, forest green or a dark gradient. What matters is contrast, not hue. linqr warns you below 3:1 and builds every ready-made style for at least 3.5:1. For print, aim for 4.5:1 or more, since paper and ink lose some of what you see on screen.
Do QR codes have to be square?
The grid does: phones find a code by its three square corner markers and read it in rows and columns. The look doesn't: round dots, circle or leaf-shaped corners, hearts and stars all work. For a round or heart-shaped sticker, put the square code inside the shape with an empty margin around it.
Can a QR code be white on black?
It can, but it's the risky option. Some scanner apps read light-on-dark codes and some don't, and you can't control which app your customer uses. linqr flags it and offers Swap colours. The safe version for a dark design is a white panel with a dark code on it, like a label on a black T-shirt.
Can I use a gradient?
Yes, if both ends are dark. A gradient from violet to burgundy, like the Grape bars style, stays around 7:1 against white. One that fades from navy to light blue leaves half the code with weak contrast. linqr checks every gradient color against the background, so a too-light end triggers the warning.
Can a QR code have a transparent background?
Yes. In Colours, set Background to Transparent and download PNG or SVG; both keep the transparency, while JPG comes out white. The scan check assumes the code sits on white paper, so place it on a plain, light area of your design and keep the quiet zone around it clear.
What contrast ratio does a colored QR code need to scan reliably?
Aim for at least 3:1 between the dots and the background, and 4.5:1 or more for anything printed. linqr measures contrast with the WCAG formula, shows Not enough contrast below 3:1 and builds every ready-made style for at least 3.5:1. Black on white is 21:1, navy on white about 17.5:1, and a mid orange only about 3.6:1, which is borderline.
Can I use my brand's exact hex color for the QR code dots?
Yes. In the Colours tab, enter your own hex value for Code colour or pick it from the swatches. If the color is too light against the background, linqr shows Not enough contrast with a Fix button that darkens it just enough to scan. A light brand color often works better as the background or as the frame color than on the dots.
Can the three corner squares be a different color from the rest of the code?
Yes. Turn on Different corner colour in the Colours tab and set Corner frames and Corner centres separately. It is a simple way to add a brand accent without touching the rest of the pattern. The corner colors still need to be clearly darker than the background, because phones use those three squares to find the code.
Will a yellow or light green QR code scan?
Usually not. Bright yellow on white is about 1.3:1 and a light green about 2.3:1, far below what phones need, and linqr will warn you. Use the light color as the background instead: the Highlighter style puts navy dots on yellow for roughly 13.7:1. Another option is a light frame or label around a dark code.
If I change the colors of a code I already printed, do the printed copies change?
No. Colors are part of the image you downloaded, so paper copies keep the colors they were printed with. In linqr, a saved design change applies to future downloads, and the printed codes keep working because they open the same short link. What you can change without reprinting is the destination, with Change link in My codes.
Do I need a paid plan for custom colors, gradients and dot shapes?
No. On linqr's Free plan the whole design panel is included: colors, gradients, the 12 dot shapes, corner shapes, logos and frames, plus PNG, JPG, WEBP and SVG downloads up to 2048 px. Pro adds unlimited codes, PDF and EPS files for print, a 4096 px size and full stats, but no extra design options.
Does a colored QR code need to be printed larger than a black one?
It can help. Lower contrast and thin dot shapes like stars or crosses leave phones less to work with, so a borderline code benefits from a bit more size and good lighting. There is no fixed formula, so treat it as a rule of thumb: print one test copy at the final size and scan it with two different phones before the full run.