Customizing your QR code
Shapes & Logo Embedding
Beyond color, you can change the shape of the dots and corners, round the overall code, and embed your own logo in the center.
Dot and corner styles
Dot style (Square, Dots, Rounded, Classy, Classy rounded, Extra rounded) and Corner style (Square, Dot, Extra rounded) can be set independently.
These are cosmetic — they change how each module is drawn, not the data underneath. The one thing to watch is that the more decorative dot styles leave slightly more space between modules, which costs you a little contrast at small printed sizes. If a code is going somewhere physically small, plain Square is the safest choice.
The overall Shape toggle also lets you fit the whole code inside a Circle instead of the default Square. The pattern shrinks slightly to stay inside the circle, so the modules end up smaller at the same overall width — it can be a touch harder to scan from a distance.
Embedding a logo
Check Import a custom logo to reveal logo options — upload an image file, or link to one by URL. You can then adjust the logo's size, remove its background, or recolor it to a solid color.
Every code this generator makes is already built at error correction level H, the highest of the four levels, whether or not it has a logo. That's what makes a logo possible at all: level H is designed so a code still decodes with a substantial share of it unreadable. Nothing extra is switched on when you add a logo — you're spending a margin that was always there.
Which is the thing to understand about logos generally: a logo is deliberate damage. It doesn't sit on top of the code in some separate layer; it destroys the modules underneath it, and the decoder reconstructs them from the redundancy that level H built in. Spend too much of that margin and there's nothing left to absorb the ordinary damage of the real world — print registration, a scuffed sticker, bad lighting, an awkward angle.
How big is too big
Keep the logo at or below 15% of the code's area. The slider goes to 20%, and above 15% the generator will warn you.
That's stricter than the 20–30% figure most QR guides quote, and we didn't take it on faith — we swept logo coverage against a real barcode detector across several QR versions. Codes began failing consistently between 16% and 20% of the area, under conditions far kinder than any print job: a clean digital render, a perfect quiet zone, no camera noise, no angle, no wear.
The reason the common figure is wrong is worth knowing. "Level H recovers about 30%" is a budget measured over codewords, and it assumes damage is scattered across the code. A centred logo is the opposite of scattered — it wipes out whole blocks at once, and a block that's entirely gone can't be reconstructed no matter how much budget remains elsewhere.
Because area grows with the square of width, the slider's percentages move faster than they feel: 15% of the area is about 38% of the code's width, and nudging that width up to 45% takes you to 20% coverage — the level that failed in testing. See the full measurements and the decode proofs.
The two warnings you might see
The generator watches for two different failure modes, and they're genuinely separate problems:
- Coverage — the logo is over 15% of the area. This applies regardless of how much data the code holds.
- Density — the payload is long enough that the code needs a fine grid, so even a modest logo destroys more of a single block than that block can repair. A long vCard or a Wi-Fi password with a complex passphrase will trigger this well below 15%.
If you hit the density warning, shrinking the logo is only one option — shortening the content works just as well and often better. A dynamic QR code is the cleanest fix, since it encodes a short redirect link no matter how long the real destination is.
Placement and shape of the logo itself
The logo is always centred, which is deliberate — the three large corner squares (the finder patterns) are what a scanner uses to locate the code at all, and covering any part of one breaks it instantly no matter how small the logo is. Centre is the only region where the damage is recoverable.
Practical notes:
- A square or circular logo works better than a wide one. A wide logo at the same area reaches further toward the timing patterns running between the finders.
- Use "Remove background" on a logo with a transparent or white field so it doesn't punch a larger opaque block than the artwork actually needs.
- Simple marks survive better than detailed ones. At the size a logo occupies on a printed code, fine detail turns to mush anyway, so a simplified version costs you nothing visually and lets you use less area.
Frequently asked questions
Does adding a logo lower my error correction level?
No. Codes are generated at level H whether or not there's a logo, and adding one doesn't change that. What the logo does is consume the recovery margin level H provides, which is why the size ceiling matters — the level stays the same, the headroom doesn't.
Why does the generator warn me when my logo looks fine on screen?
Because a screen is the easiest possible scanning condition. A code rendered crisply on a bright display, held still, at a comfortable size, will decode with damage that would fail on a printed sticker under shop lighting at arm's length. Our own testing found the failure cliff under ideal conditions — real conditions are worse, so the warning is deliberately early. Test a physical proof before committing to a print run: see testing before printing.
Can I put a logo on any QR type?
Yes, the logo controls work with every type. But the denser types — vCard, Wi-Fi, and Event — produce a finer grid, so they hit the density warning at smaller logo sizes than a short link does. If you want a logo on a vCard, keep the vCard fields brief.
Does the circle shape make a code less reliable?
Slightly. The pattern shrinks to fit inside the circle, so at a given printed width the modules are smaller than the square version's — and module size is what determines whether a camera can resolve the code at distance. It's a fine choice for something held in the hand or viewed on screen; for a poster or a sign meant to be scanned from several feet away, use the square.
My logo made the code stop scanning. What do I change first?
Size, before anything else — drop it to 10% of the area and test again. If it still fails, the payload is likely the real problem rather than the logo; shorten the content or switch to a dynamic code. If it works at 10% but not 15%, that's the coverage cliff and you've simply found where yours sits.