Customization
Use H with a logo overlay
Click or drag to upload a logo
Enter content above to generate your QR code
What Type of QR Code Do You Need?
Each QR content type encodes your data in a specific format understood by phone cameras and QR apps. Choose the type that matches your use case:
QR Code Print Size Guide
The minimum scannable size depends on scanning distance. Use this table for print production:
| Use case | Min size | Recommended | Scan distance |
|---|---|---|---|
| Business card | 1.5 cm (0.6 in) | 2 cm (0.8 in) | 15–25 cm |
| Brochure / flyer | 2.5 cm (1 in) | 3–4 cm | 25–40 cm |
| A4 / Letter poster | 4 cm | 6 cm | 40–60 cm |
| Outdoor signage | 1 cm per meter of distance | 3–4 cm per meter | 1–5 m |
| Billboard | 20 cm | 30+ cm | 10+ m |
Always leave a quiet zone
The blank white border around a QR code (the "quiet zone") must be at least 4 module widths wide. Cropping into the quiet zone is one of the most common reasons QR codes fail to scan.
Color contrast matters
Dark modules on a light background scan most reliably. Reversed (light on dark) works but needs higher ECC. Avoid similar-luminance colors (e.g., dark green on dark blue) — this generator warns you when contrast is too low.
Error Correction Levels Explained
QR codes use Reed-Solomon error correction to remain scannable even when partially damaged or obscured. Higher ECC means more redundant data and a denser (larger) code.
- L (Low, 7%): Best for digital displays; smallest code size. Use for clean screens where no damage is expected.
- M (Medium, 15%): Good all-purpose choice. Handles minor scratches, smudges, or partial coverage.
- Q (Quartile, 25%): Recommended for industrial labels, packaging, or outdoor print exposed to wear.
- H (High, 30%): Required when overlaying a logo (up to 20–25% area). Maximum redundancy for harsh environments.
Logo overlay best practice
This generator automatically upgrades to ECC H when you add a logo, and warns if the logo exceeds 20% of the QR area. Even at ECC H, keep your logo below 25% of the total area for reliable scanning across all phone cameras.
How QR Codes Are Generated (No Library, Pure Browser)
This tool implements the full QR Model 2 algorithm (ISO/IEC 18004) entirely in JavaScript — no external libraries, no server calls. Here's what happens when you type:
- Encode payload: Your text is encoded in Byte mode (UTF-8). Version (1–10) is auto-selected based on payload length and ECC level.
- Reed-Solomon error correction: EC codewords are computed over GF(256) using the appropriate generator polynomial for your ECC level and version.
- Matrix placement: Data and EC codewords are interleaved per the spec and placed in the module matrix alongside finder patterns, alignment patterns, timing patterns, and dark module.
- Masking: All 8 mask patterns are tried; the one with the lowest penalty score (per the 4-rule spec scoring) is applied.
- Format information: ECC level and mask pattern number are BCH-encoded and placed in the format information areas.
- Render: The matrix is drawn to a Canvas element. For SVG export, the same matrix is serialized to <rect> elements at 1 unit per module with a viewBox set for infinite scalability.