How it works
What goes into the code
Text mode encodes exactly what you type: a link, a phone link (tel:), an email link (mailto:), an SMS (sms:) or a map point (geo:). The quick starts fill in the shape of each.
Wi-Fi mode writes the WIFI: format phones understand: security type, network name, password and whether the network is hidden. Semicolons, commas, colons, quotes and backslashes in the name or password are escaped, so they survive the trip.
Contact mode writes a vCard 3.0 with the fields you fill in. Batch mode makes one PNG per line and packs them into a ZIP.
Text is encoded as UTF-8 bytes, so Vietnamese and other accented text scans back exactly as typed.
Size, modules and error correction
The encoder (qrcode-generator, the one inside qr-code-styling) picks the smallest QR version that fits your data at the chosen error correction. Version 1 is 21 × 21 modules and each version adds 4 per side, up to 177 × 177 at version 40.
Each module is a whole number of pixels, so the code sits sharp in the image; the leftover pixels become margin. Padding adds 4 px of quiet zone per step.
Error correction lets a reader rebuild missing parts: Low restores about 7% of the code, Medium 15%, Quartile 25% and High 30%. Higher levels need more modules for the same data.
modules per side = 17 + 4 × version
Logo and looks
A logo clears a block of modules in the centre, sized from the logo's share of the code and the error correction level, the same way qr-code-styling does. The cleared area never exceeds what the chosen level can restore, which is why High is the safe choice with a logo.
Dots, eyes and pupils change only the shape of each module and finder; the pattern itself is the same, so every style scans as long as the contrast between foreground and background stays high.





