SheetWriting · 11 pieces
OrderNewest first, by published date
GroundDeep header over a deeper list
TagsShown in System Mode
Writing · 11 pieces
Written down, with the numbers that went against me left in.
Notes on design systems, accessibility, builds and the checks I put on my own work. Written when something turned out differently than I expected, which is the only time writing it down is worth anyone's time.
11 pieces and most of them are me being wrong about something. That's not modesty, it's just where the interesting bit lives.
SheetThe pieces
Count11, read from the list
RowOne link, ordinal and meta on the left
GatedOrdinal holds 4.5 on the hover ground
Every one of them
Written when something turned out differently than expected.
I run AI agents the way I run a build
A written brief, a done-state I can check, gates that fail the work, and every commit read before it merges. Most of the method is in files an agent has to obey.Warm on purpose, and why I stopped trying to fit every screen at once
The umber and the orange are a choice, not a mood. I spent six years in print before I came back to code, and the site finally looks like both halves of that. The colour turned out to be the easy part. The hard one, the part I'm in the middle of now, is that a layout which bends to fit every screen fits none of them properly, so I'm building three.The tool scored my site 100%, and nobody owns a phone that wide
I rebuilt Quoin's own site, ran the tool over it, and shipped it at a hundred per cent on the grid. That number was true at six viewport widths and nowhere else, and every phone anyone actually owns fell in the gap between them. The fix wasn't in the tool. It was four rules in the stylesheet, and they're rules any stylesheet can follow.Eight typefaces gave me the same number, and I read it as consistency
I published a finding about vertical Japanese text, backed by measurements in three browsers. Every one of those measurements was taken against a font that had never loaded, and the checks I ran to confirm it shared the same blind spot. Here's how a control that can't fail agrees with you three times in a row.My site came last in my own survey, so I went and fixed it
I measured nine design systems for typographic coherence and finished bottom, three times worse than anything else in the table. Here's what the ninety was made of, what it took to get it to ten, and why it's fourteen now.The web can't do a baseline grid, and I got tired of pretending otherwise
Every font hides asymmetric space above its capitals. The browser splits the leftover leading evenly, so it centres the box and not the letters. Print solved this with metal type. Here's why the web can't, and the start of the tool that now corrects it.Three times I thought I'd put the page on the grid
Finding every line of text that misses a baseline grid is arithmetic. Putting a whole page onto one is a constraint problem, and I got it wrong three times in a row, starting with a tool that couldn't see its own corrections.Two big numbers, and why I only touched one of them
2,430 TypeScript errors went to zero in an afternoon. 1,751 hardcoded utilities are still sitting there, and leaving them was the same decision as fixing the others, not the opposite one.Every build was green through all three configurations
TypeScript 7 broke the declaration build, so I reached for the obvious fallback. Then I measured it before adopting it, and found 257 resolution errors that no build, in any of the three configurations, had ever reported.Seven defects a gate found that reading the code didn't
Every one of these was in code I'd written, reviewed and shipped. None of them surfaced until something existed whose only job was to fail me.I claimed AAA, then built the gate that could fail me
A design system I'd described as WCAG 2.2 AAA for months turned out to have an accessibility suite that never once loaded the 7:1 contrast rule. Here's what the gate found when I finally wrote it, and why the number that mattered wasn't the one I expected.