Fifteen sandbox variants are fifteen skins of one page. This is one grammar across four page types — a different axis, and the one the site is actually missing.
Source / Design Dojo
“Editorial Type Systems”
2026-07-30
The claim: the line between an illustrator and a graphic designer is the sequence. Anyone can make a good-looking page. A designer makes a language that governs a run of pages which behave differently from each other — and then breaks it once, on purpose.
Five ideas port cleanly to the web. The third is the actual unlock.
Topology, not content type. Pages are classified by the reader's behaviour, not their subject. Reading pages are scanned linearly. Consultation pages are scanned non-linearly for one specific fact. Display pages communicate through how they look, not what they say. Most sites accidentally build every page as a weak display page.Found Slowly today: all display, no consultation layer
The magic is mixing topologies in one spread. A piece page is display (the garment), reading (its story), and consultation (its specs) at once. The job is deciding which levels are shared across topologies and which stay unique to one.Shared = coherence. Unique = information scent.
Get creative with the information you gather. “If you get creative on the information, you can get more creative in the layout.” Layout richness is downstream of data richness. pieces.json holds seven usable fields, so the site can only ever be seven fields pretty.A data problem wearing a design problem's coat — see §07
The grid matters less than the rules you write around it. Lay elements out intuitively first, then lift the grid out of what emerged. The deliverable isn't a column count. It's a page of declarative sentences.§02 is that page of sentences
Build the system, then break it once. A break is louder than any single element can be, and it only reads as a break because something consistent preceded it.Exactly one per drop. Two breaks is noise.
Elements are the ingredients. Rules are the recipe. Everything below this panel is generated by obeying it — that's the test of whether a system is real.
Provenance annotations sit in the outer margin, mono, uppercase, T1. They never enter the reading column.Mobile: they stack below, never inline
Price is set in mono, right-aligned, tabular. Never bold, never larger, never labelled.A number in a price column is already a price
Techniques are a hierarchy level, not a tag row. One per line, mono, in the order Taylor performed them.Order encodes process; a pill row destroys it
Section heads are the only element permitted to hang past the left margin.The one place the grid is allowed to leak
Exactly one piece per drop breaks the grid: full bleed, inverted ground, no margin column. Chosen by Taylor, not by featured: true.The break is editorial judgment, not a boolean
Images in reading topology sit inline at measure width. Images in display topology bleed to the page edge. An image's width tells you which topology you're in.No in-between sizes — that's the whole signal
The catalogue never writes the word “catalogue,” and a spec row never writes “Price:” or “Size:”. If it's designed as an index, it reads as an index.Don't underestimate the viewer
Sold pieces stay in the index, struck through, with their date. They are never removed.The archive is the argument
| Token | Job | px |
|---|---|---|
| --t1 | Floor. Folio, annotation, micro-label | 12 |
| --t2 | Dense consultation. Notch, tech list | 13 |
| --t3 | Secondary prose. Margin values, notes | 14 |
| --t4 | Spec values, index rows | 16 |
| --t5 | Body. Everything derives from here | 17 |
| --t6 | Standfirst, section head | 23 |
| --t7 | Pull quote | 26 / 30 |
| --t8 | Display piece name | 34 / 40 |
| --t9 | Drop title | 44 / 71 |
| Token | Job | px |
|---|---|---|
| --s1 | Intra — a label to its own value | 8 |
| --s2 | Sibling — items inside one group | 14 |
| --s3 | Group — group to group | 24 |
| --s4 | Block — block to block | 40 |
| --s5 | Major — component to component | 64 |
| --s6 | Section — section to section | 104 |
v1 specified type and eyeballed rhythm: 35 distinct vertical spacing values and 16 inline margin overrides. Every gap looked defensible alone; across a long page they stopped meaning anything, because distance no longer encoded relatedness. Hierarchy survives being eyeballed. Rhythm doesn't — it only fails cumulatively, which is why it's the easier one to get wrong and the harder one to spot.
v2 has six spacing steps with one job each, nine fixed type steps, and every vertical gap produced by a .flow-N container rather than by an element's own margin. There are no clamp() values and no inline styles. The display band steps up once at 768px; the reading band never changes size at all.
Optical correction is the one place the metric is deliberately broken: display type's line box under-runs its visual mass, so anything following a T8 or T9 heading takes one step less than the scale would suggest. That's a rule, not an exception — it's declared once and applies everywhere.
He works at 6–8pt for annotations. The 12px floor is non-negotiable, so annotations differentiate by treatment instead of size: mono face, 0.14em tracking, uppercase, quiet colour, and physical displacement into the margin. Four differentiators doing the job one size-drop used to do — which is his own advice anyway: “every level is a design decision, not a formatting choice.”
He also says “we don't care about legibility now.” That's a studio exercise talking. This keeps the 62ch measure, the 44px targets, and AA contrast. The structural ideas survive the constraints intact; only the smallness doesn't.
His warning: don't make every level “the same font, smaller.” That earned him a 6/10 fifteen years ago and he still brings it up. Each rung changes at least two of face, case, tracking, weight, rule, position, colour.
A Marine Corps field jacket, cut down to fit a six-year-old who will absolutely put it through a fence.
The gray of text is the foundation — even colour across the column, no rivers, no orphans. Everything above and below this rung is derived from it. If the body is wrong, nothing else can be right.
The imperfection is the point.
Sourced — Village Discount, Irving Park
Base — USMC woodland, c. 1994
Hours — 5.5
2026 · 03 · 29 — catalogued
2026 · 04 · 12 — sold, Logan Square market
Found Slowly · Chicago · No. 02
Same three faces, same accent, same eight rules — four completely different reading behaviours. Copy is placeholder.
No. 02 · Eleven pieces · Chicago
Eleven garments that already had a life. Painted, stitched, patched, handed back.
Fig. 01 — block prints, drying
Behaviour — you don't read this, you receive it. One idea, one image, no navigation. The only page permitted a full-bleed image and an inverted ground.
Piece 02 / 11 · Kids · Jacket
A Marine Corps field jacket, cut down to fit a six-year-old who will absolutely put it through a fence.
Fig. 02 — patch and stitch detail, left cuff
The jacket came out of a bin at an estate sale in Berwyn, still smelling like a basement. Woodland pattern, mid-nineties, the kind of cotton-nylon that doesn't get made this way anymore. Someone had already repaired the left elbow badly, with the wrong thread, which is how it ended up in a bin instead of on a rack.
Cutting it down meant losing the original hem, so the new one is turned and topstitched in a colour that doesn't match, on purpose. The bad elbow repair stayed. It got a patch over it rather than a replacement panel — the repair is part of the record now instead of a thing to hide.
She isn't restoring it. She's adding a chapter.
What's underneath matters as much as what's on top. The reading topology exists so that sentence has somewhere to live. Right now the site has no page type that can hold two paragraphs, which is why every piece is currently described in zero words.
Behaviour — the column is read, the margin is consulted. Same page, two topologies, and the reader is never told which is which.
This is the page Found Slowly doesn't have. All fifteen sandbox variants render the collection as a photo grid — a display page doing a consultation job. A grid answers “what's the vibe.” An index answers “is there a 3T, is it under $60, and is it still available.” Both should exist.
| № | Piece | Technique | Size | Price |
|---|---|---|---|---|
| 01 | carhartt cropped teemens carhartt tee | hand painted | L | 50 |
| 02 | camo cropped KidsUSMC thrifted garment | hand painted hand stitched patched & mended | m/l | 135 |
| 03 | wolf tiger flanneleddie bauer flannel | hand drawn | L | 65 |
| 04 | insulated oshkosh overalls KidsOshKosh insulated overalls | — | 3T | 55 |
| 05 | maroon button downcolumbia lightweight button down | hand painted bleach | xl | 65 |
| 06 | denim bucket hatdenim bucket hat | hand drawn patchwork hand stitched | one size | 45 |
| 07 | pottery barn tee Kidscotton tee | hand painted | — | 45 |
| 08 | green drop cloth teewomens cut tee | hand painted | m | 45 |
| 09 | cropped b&p teecotton tee | hand painted | m | 50 |
| 10 | animal tee Kidsfruit of the loom tee | hand drawn stitched block prints | s 6–8 | 45 |
| 11 | black short sleeve coverallsbdg short sleeve cotton coverall — fits like a loose womens m | patchwork stitching | m/l | 125 |
Behaviour — nothing here says “index,” “sold out,” or “price.” Struck rows are gone. Mono is fact, Abril is name. Rows are top-aligned on a single padding step so a three-technique row and a one-technique row keep the same rhythm.
Piece 11 / 11
One piece per drop gets this: accent ground, no margin column, image to the edge, the piece name at drop scale. Every rule in §02 is suspended for exactly one page.
Ground inverted · margin suspended · image full bleed · 125
Behaviour — this only works because Spreads A–C were disciplined. Break twice in a drop and neither one reads as a break.
Add a consultation page. The collection exists only as a photo grid. An index is a second, cheap page type that answers different questions and takes an afternoon.
Give pieces a reading page. Eleven pieces have empty description fields and one line of copy between them. The reading topology is where the brand's actual asset — the story of the garment — gets somewhere to go.
Stop deleting sold pieces. Rule 08. The archive is the strongest argument the brand has, and it's currently thrown away every drop.
Pick one break per drop, by hand. Replaces featured: true, which is a boolean pretending to be an editorial decision.
Write the tokens into the repo. A TYPE-SYSTEM.md beside ARCHITECTURE.md holding the nine type steps and six spacing steps, so the fifteen sandbox skins stop being fifteen unrelated decisions.
This part isn't a design task. Every margin annotation in Spread B is invented, because the fields don't exist. Nine levels of hierarchy need nine kinds of fact. Adding these to intake is what makes the system possible — and Taylor already knows all of it at the moment she picks the garment up. It's a capture problem, not a research problem.
sourced_at · sourced_where“Estate sale in Berwyn” beats “thrifted.” Feeds L6 and gives every piece a place and a date.
base_era“USMC woodland, c. 1994” is the highest-value field on this list. Vintage provenance is the premise of the brand and it's currently unrecorded.
hoursAlready tracked mentally — 2–6 hrs/piece per the brand brief. Justifies price without a word of price justification.
prior_repairDamage or repair that existed before Taylor. The bad elbow stitch. This is what separates her from a print-on-demand shop.
fits_ages“m/l” means nothing to a parent. “fits 5–7” is the actual query. Cheap, high-conversion.
sold_at · sold_whereRequired for Rule 08. Turns a shrinking shop into a growing archive.
description — populate itEleven pieces, eleven empty strings, one exception. The reading topology has nothing to render until this is filled.
techniques[] — preserve orderAlready exists. Rule 03 depends on the array keeping the order of operations rather than being sorted or rendered as pills.