Round QR Codes Are Square Codes Wearing a Circle — featured illustration
Design

Round QR Codes Are Square Codes Wearing a Circle

7 min read
Create a QR code

A round QR code is a square QR code with a circle drawn around it. The modules underneath are the same grid, in the same order, at the same spacing, because the format has no circular variant and never has. What the circle changes is the space around the symbol, and that space is a structural part of the code rather than decoration.

The brief arrives asking for a circular code to match a circular logo, a bottle cap, a coaster, a badge. It is a reasonable request and it is usually satisfiable. The failure mode is specific, and worth knowing before the artwork goes out.

The symbol is square by definition

A QR code is a square array of modules. Version 1 is 21 by 21, and every version above it adds four modules in each direction, so the grid stays square at every size in the series. Three finder patterns sit in three corners, timing rows of alternating modules run between them, and the data is placed into the remaining cells by a fixed traversal that assumes a square array.

None of that admits a circle. There is no round version, no round placement order, no round mask. So anything sold as a circular QR code is one of two things: a square symbol with round modules, or a square symbol inside a round frame. Usually both.

Round modules are fine, incidentally. A decoder samples near the centre of each cell and asks whether it is dark or light. Replace each square dot with a circle of similar area and the centres still read correctly, which is why dot styles work at all. The cost lands at the edges of adjacent dark runs, where circles pull back from the corners and a long dark run becomes a string of beads. That costs contrast at small sizes, not structure, and the design choices that hold up covers where the limits sit.

The circle eats the quiet zone on the diagonals

Here is the part almost nobody checks.

A QR symbol needs a clear light margin around it, four modules wide on all four sides, and that margin is part of the symbol rather than padding around it. What a decoder does with that empty space is the long version: the finder search needs light outside the outer ring, and the sampling grid needs an unambiguous boundary to measure against.

Now inscribe that square, margin included, inside a circle. The circle touches the square at its corners, half a diagonal from the centre, and passes closest to the square at the midpoint of each side. Size the ring so it just clears the code plus four modules at those midpoints and it sits comfortably outside the corners as well. That is the safe construction, and it produces a large ring with a lot of empty space in it.

Most round codes are not built that way. They are built to look tight, so the frame gets pulled inward until it sits close to the pattern, and the ring then crosses the corner regions where the margin has the least room to give. The three finder patterns live in three of those corners. A dark ring cutting through the margin beside a finder pattern is precisely the condition the margin exists to prevent: the outermost light run merges into the frame, the run-length ratio near 1:1:3:1:1 that the finder search hunts for stops holding, and the reader never locates the symbol at all.

The symptom is the confusing one. Nothing happens. No partial read, no wrong link, just a viewfinder held open at a code that looks perfect.

The rest of the ring is a second problem

Round frames rarely stay empty. They carry a word, an arrow, a brand line, a dashed border, a gradient. All of it goes in the ring, because the ring is the only place a round design has to put anything.

So the pressure is always inward. A frame with SCAN ME set around the top arc needs type large enough to read, the type needs its own clearance, and the cheapest way to find that clearance is to move the inner edge of the ring closer to the code. Two or three rounds of that and the margin is gone.

If the ring has to hold text, grow the outer diameter instead of shrinking the inner one. A round code that is slightly too big is a layout inconvenience. A round code that is slightly too tight is a dead code.

A genuinely rectangular code is a different symbology

Sometimes the request is not round but long: a code for a cable label, a book spine, a narrow strip of packaging. Stretching a QR symbol to fit is not available, because non-uniform scaling breaks the module grid and the finder ratio in one move. A square code scaled to 140 percent horizontally has finder patterns that no longer measure 1:1:3:1:1 in one axis, and it stops being findable.

There is a rectangular member of the family, and it is not standard QR. rMQR is defined across a set of width and height combinations rather than one square series, with its own standard and its own internal structure. Micro QR and rMQR goes through both, and the conclusion there governs here too: support across phone camera apps is inconsistent and varies by app version and platform, so rMQR belongs in closed loops with known hardware and not on anything the public will point a phone at.

Which makes a rectangular slot on a consumer product a layout problem rather than a symbology problem. The usual answer is a square code sized to the height of the strip, with the text set beside it and the call to action carrying the width.

Getting the round look without the failure

Everything below keeps the symbol standard and the margin honest.

  • Build the circle from the outside in. Fix the code size first, add the margin, then draw the smallest circle that fully contains the result. Never adjust the code to fit a circle you have already drawn.
  • Raise the margin before exporting. The quiet-zone slider in the Colors tab under Design runs up to eight modules and defaults to two; the standard asks for four, so set it yourself rather than trusting the default. On a round design, more than four is cheap insurance, because the corners are where the room runs out.
  • Keep the ring light, or keep it far away. A pale ring crossing the margin is survivable, since the requirement is about tone rather than geometry. A dark ring is not.
  • Put the call to action outside the circle rather than inside the ring, wherever the layout allows it.
  • Use round modules if you want the soft look, and keep the three finder patterns as square as the design will tolerate. Their ring structure is what the reader searches for, and it is the first thing stylised corners blur. Setting the module and corner styles takes a minute and shows the effect immediately.

The test that settles it

Print it at final size, on the real stock, and hand it to somebody who has not seen it before. Ask them to scan it once, at the distance and angle the real piece will be read at, on a phone that is not yours.

If it hesitates, cover the ring with a scrap of white paper and scan again. If it fires instantly with the ring covered, you have your answer and the fix is geometric: move the ring outward. If it still refuses with the ring covered, the problem lies elsewhere, and the general failure checklist is the better place to look.

Codes built here are square, because the format is. The frame around one is yours to draw, and the only rule is that it stays outside the margin.

Share this article