For years I opened my design class the same way. Draw three squares. Paper or screen, your choice.

Follow along. Seriously, draw three squares.

Drag on the paper. Three of them.

What came back was three the size of postage stamps in the top left corner of an otherwise empty page. Three the width of a hand, butted against each other so the row read as one shape. Three ruled against a straightedge with the corners overshooting like a surveyor's mark. Three freehand, the last one larger than the first two because by then the wrist had loosened up.

Stroke weight. The gap between them. Whether they sat on a shared baseline or floated. Whether the corners were sharp or rounded. Whether the three matched or made a family. Every one of those options settled inside a minute. Thirty people in the room and not one of them ever asked how big.

A fair number of them were rectangles. Wider than tall, about the proportion of a business card.

English has never been that strict about four equal sides, even if mathematics is, and when designs are converted into code a square becomes a box: the box model calls every element on a page a box whatever its proportions.

Four concentric boxes make that one box. Content in the middle, padding around it, a border around that, and margin holding the neighbours off. Every choice in the exercise expanded to reveal a technical reality.

The CSS box model, with each layer named for the choice it settles Four nested rectangles. The outermost is margin, the gap left between the squares. Inside it a border, the weight of the drawn line. Inside that padding, the room between the line and the content. At the centre the content box, the square itself. MARGIN · the gap between items BORDER · the weight of the line you drew PADDING · the room between the border line and the content CONTENT · the square itself every element on the page, whatever it looks like
fig 1: box model

Boxes on endless boxes make up everything we see on a screen. Padding and margin take that variation further again, so that a page is a few properties and a handful of numbers arranged in one way out of millions. This is the essence of design: a small set of parts, configured in endless variation. The trick is making every one of those choices on purpose.


In 1841 a toolmaker in Manchester, in the north of England, went around collecting screws. A bolt cut in one workshop wouldn't take a nut cut in the shop across the road. Every firm had a house thread, arrived at through the master's habit, the gearing on the lathe, whatever the last man had done. They cut what the shop cut.

Joseph Whitworth proposed one system: 55 degrees between the flanks, rounded at crest and root, a table fixing the threads per inch for every diameter. The railways took the system, then the dockyards, and within a generation it held as firmly as if Parliament had passed it.

He measured what the country was already cutting and laid down a compromise. The first national screw thread standard is an average of everybody's unexamined habits, written down and given a number.


France has tried to get that kind of consistency with bread.

The Décret 93-1074, September 1993, reserves the words pain de tradition française for a loaf of wheat flour, water, salt, and yeast. Three additives are permitted and each is capped by weight: fava bean flour at 2 percent, soy at half a percent, wheat malt at three tenths.

Paris narrows it further. To enter the city's annual baguette competition a loaf has to run 55 to 65 centimeters, weigh 250 to 300 grams, and carry 18 grams of salt per kilo of flour. Anything outside those bands leaves the table before anyone tastes it.

In February 2026, 143 baguettes cleared that check and went out across three tables, scored zero to four on doneness, crumb, taste, smell and appearance, the top ten from each table sent to a second round. Sithamparappillai Jegatheepan of Fournil Didot, in the 14th arrondissement, won, and bakes for the French president for a year.

Four ingredients, three capped additives, a length, a weight, and the salt fixed to the gram, and a jury still needs two rounds to separate 143 of them. The law reaches the composition of the dough and stops. Hydration, how long it sits and how cold, how hard the hands work it, when it goes in the oven and how dark it comes out: all of that sits downstream of the decree.

Specification bottoms out in the face of reality.


Consider a one line ticket: "Add a confirmation step before delete." By the time anyone thinks to ask, the design is decided — a confirmation modal with inline cancel, the wording naming the thing being destroyed. Then the questions start. Which side does the destructive button sit on? Does it stay disabled for a beat so it isn't tapped as the modal pops up? Arguing costs time before deployment. If we don't consider it now it will come out in the first round of user feedback.


Take the last task you were handed. The brief, the ticket written late on a Friday, the message that said make the empty state friendlier. Draw three squares. Ask yourself what was left unanswered to find what the request left open. That's inches you ever so slightly closer to the intention. Because whatever is left unsaid is being settled downstream, by somebody working from the same few words.

Even with expanded specifications settling it well takes looking at what is already there, trying it several ways, and being able to say why the one that shipped beat the others. That is where the time goes, and it is the reason the variables are worth naming.

Everyone will see the boxes a little differently. Nobody hands back a wrong square. Everybody hands back their square.

I drew my own three squares at the board while the class worked. I knew what was coming, mine went up as one more set anyway.