One wide 3:2 lead frame at the full 1240px measure, and under it the furniture of a slider: a tracked caps label on the left, a position counter reading 01 / 05 on the right, and a single row of five square thumbnails at equal width with a tight gutter. The first thumbnail carries a currentColor rule beneath it, so it reads as the frame currently on show. Nothing moves.
The signature moment
A carousel at rest
The section borrows every part of a slider except the sliding. A lead frame, a strip of thumbnails, a position counter and a marked current frame are the four things a visitor has been trained to read as "there is more, wait for it", and here all of them are true at once and none of them is a promise. The whole set is already on the page, so the visitor reads it instead of waiting for it.
This pattern has no motion and needs no plugin. There is no script, no <style>, no core/html and no pv/ block in it; it is core blocks and nothing else, and it looks the same with JavaScript switched off. That is the point rather than a limitation: a real carousel hides four photographs out of five and asks the visitor to earn them, and the counter on a real carousel is a promise it keeps only if the visitor keeps clicking.
The counter is honest because every frame is already on the page. 01 / 05 is not a state a script maintains; it is a caption describing a composition that cannot change. There are five photographs in the set, all five are visible in the strip, and the lead is frame one shown at size. That is why the pattern uses six image blocks for five pictures: the buyer puts the same photograph in the lead and in the first square, and the marked thumbnail and the lead are then the same frame. Move the rule to the third square and change the counter to 03 / 05 and the section is still true.
It survives colourlessness because the marker is a currentColor hairline and the counter is type. currentColor cannot blank, needs no chain and no slug a theme might not define, and it follows whatever colour the theme paints text on the band: an ink line on paper in a light theme, a pale line on ink in a dark one, and in both exactly as dark as the counter beside it. Nothing in the signature is carried by a hue, so a theme with twelve palette slugs and a theme with two make the same argument. Nothing a visitor reads sits on a photograph: the label and the counter are on the band's own ground, above the strip.
What it inherits, what it decides
Inherits: every colour (the band is a base chain, its type a contrast chain, the marker is currentColor), the typeface, and the spacing scale (spacing|70 above and below the band, spacing|50 between the lead and the index, spacing|30 between the counter row and the strip, spacing|20 between each thumbnail and its rule).
Decides: the 1240px measure and the clamp gutters, the 3:2 lead against 1:1 thumbnails, five thumbnails rather than four or six (four reads as a grid, six crowds the rail at 390px), the tight clamp(0.5rem, 1vw, 0.875rem) strip gutter that keeps the row reading as one object, the 13px to 14px tracked caps at 0.22em for both the label and the counter, and the 2px currentColor rule that marks the current frame.
The marker is a per-side group border, never a core/separator. Twenty Twenty-Four narrows any separator that is not is-style-wide to a centred stub, which would put a 100px dash under the middle of the first thumbnail instead of a rule across it. Each of the five thumbnails is wrapped in its own group with the same padding-bottom, and only the first group carries the border, so moving the marker is a matter of moving three lines of JSON rather than re-spacing the strip. The marked column is 2px taller than its neighbours and that difference falls at the bottom edge of the row, where nothing is aligned to it.
What happens at 390px242 words
The strip is the thing at risk. Core stacks every core/columns below 782px, and a stacked strip would turn five 60px thumbnails into five full-width square frames, one under another, which is not a smaller version of this section but a different and much worse one: a six-frame column in which the lead is no longer the lead and the marker rule reads as a divider.
So the strip states isStackedOnMobile: false, which serialises to the is-not-stacked-on-mobile class core's own .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{flex-basis:100%!important} is testing. That 0-3-0 important rule cannot be beaten by anything a pattern can emit inline, and the attribute is the only thing that turns it off. At 390px, with the band's clamp(1.25rem, 4vw, 4rem) gutters at their 20px floor and the strip's own gutter at its 0.5rem floor, the five thumbnails land at about 64px square: a real thumbnail rail, small but still five things in a row, still square, still marked.
The counter still makes sense, and it makes MORE sense, because at 390px the strip is the only way to see the other four frames at all and the counter is the label on it. The label and the counter sit in a wrapping flex row; if the two do not fit on one line the counter drops below the label and stays legible, because both are incidental tracked caps rather than measured copy. The lead keeps its 3:2 crop at whatever width it is given.
What a buyer changes first126 words
The photographs. All six image blocks ship EMPTY, which is what WordPress writes before a file is chosen and is valid at both matrix entries: click each frame and choose an image from the media library. Use the same photograph twice, in the lead and in the first square, and the counter tells the truth.
Then the two lines of type. Both are set in caps with 0.22em tracking and read best under about 24 characters; the label names the set and the counter names the position. If you use a different number of frames, change the counter to match and add or remove core/column blocks in the strip: no column states a width, so the row re-divides itself evenly at whatever count you leave it.
Variations64 words
- Strip above: the index group, counter row and strip together, moves above the lead frame, so the visitor meets the contact strip before the picture. Every other byte is identical: the same six frames, the same proportions, the same chains. It is a composition change and nothing else, which is why it reads as deliberate in a serif theme and a sans one.
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: Strip above
Fetching the markup…