What a dot style removes
A QR module is a square. Draw it as a circle that touches the square’s sides and the circle covers π/4 of the square — about 79%. Draw a smaller dot, with gaps between neighbours, and it covers less: a circle 80% of the module’s width covers about 50%.
A decoder samples near the centre of each module, so a centred dot still reads dark in a sharp image. The cost appears when the image is not sharp — at distance, in low light, with a moving hand — because blur averages each module with the light space around it, and a module with less ink falls toward grey sooner.
ShapeShare of the square inked
Square (the standard module)100%
Rounded square, small radiusa little under 100%
Circle touching the sides79%
Circle at 80% of the width50%
Area of a circle of diameter d in a square of side d is π/4. Geometry, not measurement.
The corners matter more than the dots
Before a decoder reads a single data module it has to find the code, and it does that by looking for the three finder patterns in the corners. ISO/IEC 18004 defines them so that a line through the centre crosses dark, light, dark, light, dark in the ratio 1 : 1 : 3 : 1 : 1. Decoders scan the image for that ratio.
Rounding a finder pattern’s corners keeps the ratio along lines through its centre, which is why gently rounded “eyes” usually work. Replacing the pattern with a shape that changes the ratio — a circle with a dot, a leaf, a hollow ring of a different thickness — removes the very thing the camera is looking for. Error correction cannot help here, because finder patterns are not data.
Style the data modules if you like. Leave the camera something it recognises in the corners.
Styling without paying for it
Keep finder patterns square or gently rounded, at full contrast. Prefer dot styles that cover most of the module. Keep the quiet zone clear of decoration. Raise the error correction level if the style removes a lot of ink, and print a little larger than you would for plain squares. Then run the result through the scanability report before it goes to print.
Check a styled code before printingThe report measures contrast, quiet zone and the finder patterns of the code you give it.