How to Design a Stylish QR Code That Still Scans
A plain black-and-white QR code works, but it rarely gets noticed. A designed code that matches your brand gets more scans, as long as it still reads on every phone.
Every design choice trades a little reliability for looks. This guide goes through each option, from colours to photo and animated codes, and explains how much room you have with each.
The two rules that never change
- Dark code on a light background, with strong contrast. Aim for at least 4.5 : 1, and 7 : 1 or more for print. Light codes on dark backgrounds (inverted) fail on some older scanners.
- Keep the three big corner squares (finder patterns) and the empty margin around the code (quiet zone) clear. Phones use them to find the code at all.
Colours and gradients
Brand colours are fine if they are dark enough. Navy, deep green, maroon and dark purple all work; yellow, light blue, pink and pastel shades usually do not. If your brand colour is light, use it for the frame or the corner squares and keep the dots dark.
Gradients work when both ends are dark. A gradient that fades to a light colour leaves part of the code unreadable. Add a logo and use “Match my logo” in the Logo tab: it builds colour schemes from your logo that keep enough contrast.
Dot styles and corner shapes
Rounded and dot styles read almost as well as squares. Thin styles (plus marks, vertical bars, diamonds) leave less ink for the camera, so they need a bigger print. Decorative corner shapes such as leaves and stars look good but make the code slightly harder to find for some cameras.
The live scan score under the preview test-reads every change at three distances. If a style drops the score, the panel names the cause and offers a one-click fix.
Logos and frames
A logo in the centre covers modules, so the code needs error correction level H, which can rebuild up to about 30% of damaged data. Keep the logo under about 20–25% of the code’s width and use the clear background behind it. The add-a-logo guide covers this in detail.
Frames with a short call to action (“Scan for menu”, “Scan to pay”) consistently get more scans than a bare code, because people know what they will get.
Circle, heart and hexagon codes
Shaped codes keep the real QR code square in the middle with its own clear border. The space between that border and the round, heart or hexagon outline is filled with decorative dots that scanners ignore.
They scan like normal codes, but the decoration makes the whole image larger than the code inside it. Print the whole shape about 1.5–2 times wider than you would print a square code, and do not combine a shape with a frame.
Photo QR codes
A photo QR code draws a picture inside the pattern. Each module is split into a 3 × 3 grid: the centre stays the real black or white value, and the cells around it show the photo. At least seven of the nine cells always match the real value, so the module still reads from a distance.
The result looks like a newspaper photo made of dots. Simple pictures with one clear subject and a plain background work best. Photo codes need a bigger print than plain ones (3–5 cm or more), so always check the smallest safe print size in the scan score.
Animated QR codes
For Reels, Stories, slides and digital screens, a moving code catches the eye. The shine, scan-line and pulse effects only lighten a thin band or move a line, so every frame stays readable.
Download GIF for WhatsApp, email and slides, video for Instagram and YouTube Shorts, or animated SVG for websites. Animation is for screens; for anything printed, download the normal PNG or SVG.
A quick checklist before printing
| Design choice | Risk | What to do |
|---|---|---|
| Light brand colour | High | Use it for the frame; keep dots dark |
| Gradient | Medium | Both ends must be dark |
| Logo | Medium | Under 25% width, level H, clear background |
| Thin dot style | Medium | Print larger or switch to rounded |
| Circle / heart shape | Low | Print the whole shape larger |
| Photo QR | Medium | Simple photo, print 3–5 cm or more |
| Transparent background | Medium | Place only on a plain, light surface |