Six square frames packed three across in two rows, numbered 01 to 06, each number sitting under a hairline rule on the band's own ground rather than on the photograph. Above the sheet, a tracked caps label and one short line, held to a 34rem measure and set a long way clear of the frames. The whole thing is a photographer's proof sheet: one printed object dropped onto a very quiet page.
The signature moment
Density contrast, the sheet against the air
The six frames sit at spacing|20, the tightest gutter in the catalogue, both between the columns and between the two rows, so the eye reads one grid rather than six cards. That block of six is then surrounded by air: spacing|80 above and below the band, and spacing|70 between the intro and the first row. The contrast between the packed sheet and the empty band is the whole idea, and it is made of gutter, scale and emptiness, so it survives colourlessness entirely: there is nothing to colour except the paper, the type and the hairlines, and inverting all three (see the variation) does not touch it.
It survives the phone for the same reason. Below 782px core stacks both core/columns blocks, and because the row gap and the column gap are the same spacing|20, the six frames become a single tight column at exactly the gutter they had across, each still carrying its rule and its number. The band's spacing|80 padding does not stack, so the sheet is still a dense object in a quiet band; the only thing that changes is that the object is now tall instead of wide.
What it inherits, what it decides
Inherits: every colour (the band is a base chain, its type a contrast chain, and every hairline is currentColor, so the rules follow the type into any theme), the typeface, and the spacing scale (spacing|80 band padding, spacing|70 between intro and sheet, spacing|30 inside the intro, spacing|20 for every gutter and for the gap between a frame and its number).
Decides: the 1:1 crop on all six frames (aspectRatio: "1" with "scale":"cover", so whatever the buyer uploads is cropped square rather than letterboxed), the three-across grid, the tight gutter, the 1240px measure with clamp(1.25rem, 4vw, 4rem) gutters, the 34rem intro measure, and the type proportion: a 13px tracked caps label against a clamp(1.5rem, 2.8vw, 2.375rem) line, with the frame numbers at the same 13px as the label so the sheet is captioned in the same voice it is introduced in.
The hairline is a per-side border-top on the small group that holds each number, not a core/separator. Twenty Twenty-Four narrows any separator that is not is-style-wide to a centred stub, and a stub under a square frame reads as a mistake; a group border is not affected by that rule and stops exactly at the frame's width, which is what a contact sheet's rule does.
What a buyer changes first159 words
The photographs. All six image blocks ship EMPTY, which is what WordPress's own editor writes before a file is chosen: click each frame, pick an image, and the square crop is already set. The sheet is deliberately indifferent to what is in the frames, so a set of six related shots reads best; the design does not depend on any one of them being distinct.
Then the numbers. They are plain text, so 01-06 can become contact-sheet codes (04A, 04B), dates, or place names, as long as each stays short: they are set at 13px with 0.22em tracking, which is legible for a glanced label and not for a sentence. Anything longer than a couple of words belongs above the sheet, in the intro line, which has the measure for it.
To make the sheet nine frames, duplicate one core/columns row; to make it four, delete a column from each row. Nothing in the design is keyed to six.
Variations77 words
- Ink sheet (
sheet-ink): the band inverts. The ground becomes thecontrastchain and all type becomes thebasechain; the hairlines arecurrentColorin both files, so they invert without being restated. Every frame, gutter, measure and size is identical to the base, which is the point: it is the same sheet printed dark, and it is the version to use when the photographs are mostly light or when the section above it is already white.
The markup
Core block markup and nothing else. Copy it, then paste it straight into the block editor: WordPress reads the delimiters and rebuilds the blocks.
Fetching the markup…
Variation: Ink sheet
Fetching the markup…