QR Code Module
A module is the smallest single black or white square in a QR code — the individual building block that the whole scannable pattern is made of, comparable to a pixel in an image.
Every QR code is a grid of modules, and the grid size depends on the code's "version" (see the Version entry) — anywhere from 21×21 modules at the smallest to 177×177 at the largest. More data means more modules, which means a denser, more detailed pattern.
Module size matters most when printing: shrink a QR code too far and individual modules blur together or drop below what a camera can resolve at typical scanning distance, which is the most common cause of a code that looks fine on screen but fails to scan once printed small.
Each module isn't decorative — its black or white state is a specific bit of data, error-correction information, or part of a fixed structural element like a finder pattern or timing line. That's why a QR code can't be redrawn, cropped, or resized non-uniformly without breaking it: every module has to stay in exact proportion and position relative to every other module for the decoding math to work.
A generator handles module sizing automatically based on the export dimensions you choose — a 2048×2048 PNG spreads the same grid across far more pixels per module than a small thumbnail export, which is why raster exports have a practical size floor. Vector (SVG) output sidesteps this entirely, since each module is drawn as a mathematically defined square rather than a fixed number of pixels, so it stays crisp at any print size.
As a rule of thumb, aim to keep each individual module at least about 0.3–0.4 mm across in the final printed size — smaller than that and most phone cameras, especially at typical arm's-length scanning distance, start to struggle to resolve individual squares from their neighbors. A denser code (more modules, from encoding more data) needs a proportionally larger total print size to keep each module above that floor.