Custom QR Code Generator

Branded QR codes with custom colours and a centre logo, generated at error-correction level H.

Why level H matters for logos

Covering the centre of a QR code destroys modules. Error correction level H can reconstruct up to 30% of the code, which is what makes a centre logo survivable. This generator forces H and keeps the overlay inside roughly 10% of the area, well within the recoverable budget.

Colour rules that keep it scannable

A QR scanner looks for dark modules on a light background and relies on luminance contrast, not hue. Purple on white is fine; light purple on white is not. Aim for at least 4:1 luminance contrast between foreground and background, and never invert (light modules on dark) unless you test on both iOS and Android.

Design guardrails

  • Keep the quiet zone: do not crop the white margin
  • Do not place the code on a busy photo — put a solid panel behind it
  • Avoid gradients across the code; scanners sample module centres
  • Test 10 printed copies before a full run

When to skip the logo

If the payload is long (a full vCard or a UTM-heavy URL), the code is already dense. Adding an overlay then makes it fragile at small sizes. Use the plain generator or shorten the URL first.

Frequently Asked Questions

Will a logo break the code?

At level H with a small overlay, no. Large overlays or low contrast can still break it — always test with a real phone.

Can I use a real image logo?

This tool renders a short text mark to keep the file dependency-free. For a bitmap logo, composite it in a design tool over a level-H code.

What colours should I avoid?

Low-contrast pairs (light grey on white), inverted schemes and gradients.

Privacy & Your Data

CSSmith runs entirely in your browser. Whatever you type, paste or upload is processed on your own device and never sent to a server — there is no backend to store it.