A museum hang. Five portrait frames in ONE row, cropped to 4:5, at widths that were chosen rather than divided (18%, 14%, 30%, 14%, 24%), all bottom-aligned so their tops are ragged and their bases sit on one line. Under each frame is a small wall label: a 13px uppercase tracked title, and a 13px line of medium and year beneath it. There is no intro row and no heading above the row; the hang IS the section, with spacing|80 of air above and below it.
The signature moment
Five unequal frames hung to one baseline
The row has no grid in it at all. The five widths are not a division of anything (18, 14, 30, 14, 24), so nothing repeats and no rhythm is implied; a 4:5 crop at each of those widths gives five different frame heights and therefore five different tops. What holds the row together is the single line the five bases sit on, and the five wall labels ruled along beneath it. That is how pictures are actually hung: not to a grid, to a common line.
It survives colourlessness because it is made of width, alignment and a 13px label. Nothing in it is decoration: take every colour away and the composition is unchanged, because the composition IS the unequal widths and the one baseline.
The mechanic that makes it work. verticalAlignment: "bottom" is set on EVERY core/column, not only on the core/columns block. The columns-level class alone does nothing on the front end, because core's own align-items: normal !important overrides it, and nothing warns you: cover-trio's first draft sat top-aligned. So each column carries is-vertically-aligned-bottom and its own flex-basis, and only then do the bases meet.
The bases that meet are the bottoms of the LABELS, not of the frames, so each label has to hold the same number of lines or the frames stop agreeing. That is why the titles are kept to about 15 characters and the medium/year lines to about 21: at 14% of a 1240px measure a label is roughly 160px wide, and a second line in one column alone would break the device. Keep them short when you rewrite them.
What it inherits, what it decides
Inherits: every colour (the wall is a base chain, all type a contrast chain), the typeface, and the spacing scale (spacing|80 above and below, spacing|50 between stacked frames on a phone, spacing|20 between a frame and its label).
Decides: the five widths, the 4:5 crop with scale: "cover", the bottom alignment, the 1240px measure, the clamp gutters, the clamp(1rem, 2vw, 2rem) gap between frames, and the label's proportion (13px, 0.16em tracking and weight 600 on the title, 13px untracked at 1.4 on the medium line).
No accent appears in any rung, no rule or border is drawn, and no type sits on a photograph: every label is below its frame, on the band's own ground.
At 390px117 words
Core stacks core/columns below 782px. The unequal widths collapse to full width, every frame becomes the same size, and the alignment has nothing left to act on because each column is its own flex line. What survives is five frames each with its own wall label, one under the other, which is still a hang: the label is the thing that makes a picture read as hung, and it is per frame.
Be honest about it: the baseline device is a desktop idea. On a phone the unequal widths and the single base line are gone, and the pattern is a stacked run of labelled portraits. That is a good section, but it is not the signature.
What a buyer changes first101 words
The photographs. All five images ship EMPTY, which is what WordPress's own save() writes before a file is chosen and is valid at 6.6 and 7.0: click each frame, choose from the media library, and the 4:5 crop and the width are already set. Then the labels. Keep the title under about 15 characters and the medium/year line under about 21 so that no label wraps to two lines and the baseline holds.
The widths are the third thing, and the rule is to keep them unequal and unpatterned. They are width on each core/column and they should still total 100.
Variations86 words
- Labels above: the hang inverts vertically. Every column is
verticalAlignment: "top", so the five frames sit on one line at the top and the ragged edge moves to the bottom, and each wall label moves above its frame. Same five widths, same 4:5 crops, same colours; only the composition flips. It reads as a catalogue plate rather than a gallery wall, and it is the better choice when the section above it ends on a line of its own that the frame tops can meet.
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: Labels above
Fetching the markup…