How QR Codes Work
A QR code is a 2D matrix of black and white squares encoding a string — typically a URL. Error correction lets scanners read the code even if 7–30% is damaged or obscured, at the cost of a denser code (more modules).
Error Correction Levels
- L (Low) — 7% — smallest code for the data. Use when the QR sits on a clean background.
- M (Medium) — 15% — default. Good balance of density and robustness.
- Q (Quartile) — 25% — use for print or when part of the QR may be covered.
- H (High) — 30% — use when embedding a logo or placing outdoors.
Color Guidelines
Contrast matters most. Dark-on-light scans reliably. Light-on-dark may fail on older scanners (many phone cameras expect dark modules on a light background). Use a solid background — gradients and patterns confuse decoders.
Test Before You Print
Scan with at least three devices before publishing. A QR that works on your iPhone may fail on a cheap Android scanner, especially at small print sizes.