Mark study, one of ours
A mark made of
the thing the
product makes
QRFLOW.codes generates QR codes. Its mark is a QR finder pattern, the square eye that sits in the corner of every code ever scanned. It is drawn on the same grid the codes are, and it comes apart at one corner into the modules it is made of.
How we got here
Four decisions, in the order they were made
A logo is usually shown finished, which hides the only interesting thing about it. This one is four decisions made in a fixed order, and each one had to happen before the next was possible. Step through them.
Order matters here. The gap is cut out of the tile rather than painted on top of it. That is why the mark sits on any color without a white card behind it. The six cells are last, and they are the only part that is allowed to leave the box.
QRFLOW.codesThe drawing, as it ships.The eight unit grid. Every edge in the drawing lands on a line.One color. What is left when the palette is gone.
The idea
Borrow the one shape everybody already reads
Nobody needs to be taught what a QR code looks like. The three square eyes in its corners are the most recognized part of it. They also do a real job. A camera uses them to find the code and work out which way up it is.
So the mark is one of those eyes. That buys instant recognition without a single word. The logo is built from the product rather than decorated to look like it. A generator whose mark is an abstract swoosh is a generator that could be anything.
The risk with borrowing a known shape is that you land on somebody else's. A centered eye inside a rounded square is a payment brand people see on a counter every week. That is the constraint the rest of the drawing solves.
The construction
Eight unit cells, and nothing between them
The mark lives in a 64 unit square divided into eight unit cells. Every edge in the drawing lands on a cell line, with no exceptions and no optical adjustments. That is not a purity exercise. It is what lets the bottom right corner fall away into six squares that look like they were always part of the shape.
- Box
- 64 by 64 units, 8 unit grid
- Tile radius
- 12 units on three corners
- The gap
- runs 8 to 48, four corners, one of them square
- The core
- 24 units, 16 to 40
- The dissolve
- six cells, 8 by 8 each
The tile carries a 12 unit radius on three corners. On a 64 unit box that is 18.75 percent. Percentage is the only form that survives a change of canvas, which is why it gets written down that way.
The fourth corner has no radius, because it has no corner. It is not rounded less than the others. It is absent, stepped away in 8 unit jumps. That is why this page has no radius control and the Halt one does. There is nothing here to slide.
The core is 24 units in a 64 unit box. That proportion is doing quiet work. It is close enough to a real finder pattern to read as one. It is also heavy enough to stay a solid block at sixteen pixels.
The one decision
The corner that walks away
The eye is pushed to the top left. The bottom right quadrant is not drawn at all. In its place, six purple cells step diagonally outward and finish flush with the edges of the box. The mark reads as a solid object coming apart into its own modules.
32, 56the first break, furthest from the eye40, 48the step inward begins48, 40the diagonal turns48, 56the outer pair, flush with the bottom edge56, 32flush with the right edge56, 48the corner cell, where the tile has gone
The lower right corner of the white gap is square while the other three are rounded. It sits on the same cell lines as the checkers, so the eye opens toward the dissolve instead of being sealed off from it. Round that corner and the whole idea collapses into a logo with some squares next to it.
The second reading
It is a finder pattern. It is also a Q.
The mark was drawn as a QR finder pattern, and that is what the brand guide calls it. But look at the silhouette and a second reading is sitting there. A rounded square with a solid center, and a tail coming off the bottom right corner.
That is a Q. The six cells land exactly where a Q's tail goes, at the four or five o'clock position, running outward and down. Nobody set out to draw a letter. The tail is where it is because the dissolve had to leave the box somewhere. The bottom right is the corner furthest from the eye.
We kept it because a mark that survives two readings is worth more than one that survives a single intended one. A person who scans codes sees the finder pattern. A person who does not sees a Q on a product called QRFLOW, which is the better outcome of the two.
This is the useful version of a happy accident: it was noticed after the drawing, and then it was protected. Centering the eye would break both readings at once, which is a second reason that rule exists.
Color, as rules rather than swatches
Four rules, and the mark survives any background
- The ring and the core are ink. White on a dark ground. They are one object and they never take the accent.
- The gap is never painted. It is the ground showing through, so the mark sits on any surface without a white box around it.
- The six cells take the strongest contrast available. Purple on white and on sand, ink on purple, light purple on ink. Never white, never the ground color.
- The open corner stays square. Rounding it closes the shape, and the whole idea is that the eye opens into the dissolve.
The second rule is the one people break. Painting the gap white turns the mark into a sticker, and a sticker on a colored panel shows its seams immediately. Leaving it as a hole means the same file works on white, on sand and on the brand purple with nothing switched.
The color
Two colors that are nearly the same color
The interesting thing about this palette is how close two of its three values sit. The purple is at 243 degrees. The ink is at 222. That is 21 degrees apart, which means the ink is not a neutral black at all. It is a blue black, chosen to sit in the same family as the accent.
- Brand purple
#5850ec243 degrees, 80% saturation, 62% light. The only accent in the system.- Ink
#0f172a222 degrees, 47%, 11%. A blue black, not a true one. It reads as the purple with the light taken out.- Sand
#e8d9be39 degrees. The warm opposite, used for grounds so the purple has something to be cold against.
Keeping the ink near the accent lets the ring and the core read as one object. Otherwise it looks like a dark shape with a colored thing beside it. Put a true neutral black in there instead and the six purple cells immediately look bolted on.
Why purple and not blue
Everything adjacent to this product is blue. Payment tools are blue, scanner apps are blue, and blue is the default for anything that wants to look trustworthy. At 243 degrees this purple is still close enough to blue to read as software. It is far enough not to be the fourth blue icon on a home screen.
What the numbers have to clear
The mark has to survive four grounds, so each pairing was measured rather than eyeballed:
- Purple on white: 5.56 to 1. Comfortably past the 3 to 1 a graphic has to clear.
- White on purple: 5.56 to 1. The same pair inverted, which is why the wordmark works on a purple band.
- Ink on white: 17.85 to 1. Close to the maximum available, and the reason body text uses it.
- Purple on sand: 4.00 to 1. The tightest pairing in the set, and the reason sand is a ground and never a mark color.
Dark mode lifts the purple to #8b85f5, the same 243 degrees at 74% light. The hue never moves, so the mark is recognizably itself in both themes.
The floor
What is left at sixteen pixels
Nothing is redrawn between those sizes. The same file is rendered five times, which is the only honest way to run this test.
Those are vector renders. Here is the same mark as the browser actually rasterizes it, magnified so the pixel decisions are visible. These are the real files the product ships, not a drawing of what small looks like.



At sixteen the six cells stop being six cells. They become a texture on the lower right, which is the correct outcome rather than a failure. The eye still reads. The silhouette is still asymmetric, and the mark is still not a centered square. A mark that needs its detail counted has already lost at this size.
The guardrails
Three things nobody may do to it
Redraw it by hand
Every edge is on a cell line. A mark traced by eye is a different mark, and the difference shows up first at small sizes where the cells stop lining up.
Center the eye
Centering it removes the one decision that makes the shape its own, and walks it straight into a payment mark people already know.
Round the open corner
That corner is the door the dissolve comes out of. Closed, the six cells look like decoration sitting beside a logo.
Where to start
Working on a mark, and unsure which way to take it?
Tell us what the thing actually does and where its icon has to survive. That is usually enough to rule out half the directions before anybody draws anything.
The product this belongs to is QRFLOW.codes. The other mark of ours is Halt, drawn for the Shopify app of the same name. The method behind both is on the logo page.