Start here
What you change first
- The pictures. Select the block and use "Fill items from media library" in its toolbar: pick sixteen at once and they are dealt into the items in order.
- The room names. Each is an
h3inside its item. - The heading and the lede. The lede says out loud what the pointer does, because a control nobody knows about is a control nobody uses.
- The row height (Item height) if your pictures want more room: the band follows it, so there is one number rather than two.
- Top speed and Still band if the control feels too eager or too dead.
The signature moment
The reader takes hold of the band
Every other gallery in the catalogue waits to be read. This one is a control. Move the pointer into the left of the band and the pictures run backwards; hold it in the middle and they stop, so a room can actually be looked at; push it right and they hurry through at two and a half times their own speed. The two rows run opposite ways the whole time, so the band never reads as one moving block, and letting go glides it back to its resting speed rather than snapping.
Theme handoff
What comes from where
From your theme
Everything you can see. The band's ground is your section's ground, the plates behind the pictures are your own text colour mixed down to seven per cent, the hairline round each one is the same colour at sixteen, and the captions are your theme's face at your theme's weight. The heading, the lede and the eyebrow take your preset sizes. Nothing here states a colour or a family.
The eyebrow reaches for role-label and falls back to contrast, so in a theme built by the theme tool it is the label colour that theme derived, and in a stock theme it is your ordinary ink.
Set by this pattern
Each row is 300px, stated rather than fluid, because a picture row whose height follows its content changes height when the theme's line height does, and the band is exactly its two rows plus the gap between them. Every picture takes the same landscape slot, 1.6 times the row height, and fills it with object-fit: cover: a portrait photograph is honestly cropped to a landscape slot rather than making one item twice the width of its neighbours.
The gap is 28px and the edges of the band are dissolved, so pictures arrive and leave rather than being cut at a straight line. The mask states no colour, so whatever your section is painted stays visible through it.
Sixteen pictures dealt eight to a row. The block copies the run until it is longer than the frame plus one whole cycle, so there is never bare ground in the band, and it takes those copies away again when it stops.
Full pattern notes
Why it works, and how it is built
Open a topic for the complete design reasoning, editing guidance and implementation notes.
Design rationaleComposition, intent and nearest alternatives
Overview
Two rows of framed pictures running opposite ways past a band of two 300px rows, with the pointer driving them.
The signature moment: the reader takes hold of the band
Every other gallery in the catalogue waits to be read. This one is a control. Move the pointer into the left of the band and the pictures run backwards; hold it in the middle and they stop, so a room can actually be looked at; push it right and they hurry through at two and a half times their own speed. The two rows run opposite ways the whole time, so the band never reads as one moving block, and letting go glides it back to its resting speed rather than snapping.
The speed is 0.7, which is slow on purpose: a picture that cannot be recognised before it leaves the frame is a picture nobody looked at.
Why this is not gallery-spread or gallery-ledger
Those two lay pictures out to be studied: a grid and a ruled list, both still, both showing everything at once. This one shows a few at a time and keeps moving, which is the right shape when the pictures are a mood rather than a catalogue, and the wrong one when a reader needs to compare them. If somebody has to find a particular room, give them the grid.
It is also not hero-wall-field. That is an isometric plane the page scrolls past; this is flat, horizontal, and driven by the pointer rather than by travel down the page.
Make it yoursVariations and the edits to make first
What you change first
- The pictures. Select the block and use "Fill items from media library" in its toolbar: pick sixteen at once and they are dealt into the items in order. A caption you have already written is never overwritten.
- The room names. Each is an
h3inside its item. They are headings so a screen reader can list them; if that upsets your page's heading order, change the level rather than the markup. - The heading and the lede. The lede says out loud what the pointer does, because a control nobody knows about is a control nobody uses. If you take that sentence out, take the control out too.
- The row height (Item height) if your pictures want more room: the band follows it, so there is one number rather than two. And Speed if 0.7 is too slow for yours.
- Top speed and Still band if the control feels too eager or too dead. Top speed is how fast the pointer can drive a row at the frame's edges; Still band is the width of the resting zone in the middle, as a percentage of the frame.
Theme behaviourInheritance, fixed decisions and contrast
What it inherits from your theme
Everything you can see. The band's ground is your section's ground, the plates behind the pictures are your own text colour mixed down to seven per cent, the hairline round each one is the same colour at sixteen, and the captions are your theme's face at your theme's weight. The heading, the lede and the eyebrow take your preset sizes. Nothing here states a colour or a family.
The eyebrow reaches for role-label and falls back to contrast, so in a theme built by the theme tool it is the label colour that theme derived, and in a stock theme it is your ordinary ink.
What it decides for itself
Each row is 300px, stated rather than fluid, because a picture row whose height follows its content changes height when the theme's line height does, and the band is exactly its two rows plus the gap between them. Every picture takes the same landscape slot, 1.6 times the row height, and fills it with object-fit: cover: a portrait photograph is honestly cropped to a landscape slot rather than making one item twice the width of its neighbours.
The gap is 28px and the edges of the band are dissolved, so pictures arrive and leave rather than being cut at a straight line. The mask states no colour, so whatever your section is painted stays visible through it.
Sixteen pictures dealt eight to a row. The block copies the run until it is longer than the frame plus one whole cycle, so there is never bare ground in the band, and it takes those copies away again when it stops.
Technical notesBlock mechanics, responsive behaviour and constraints
What needs the plugin
The running, the pointer control and the press-to-hold. Everything else is core blocks: with the plugin inactive, or with motion switched off in the block's inspector, the heading and lede are followed by the sixteen pictures as a plain stack, each with its caption. Nothing you typed lives in a block setting, so nothing you typed can disappear.
A reader who asks their system for reduced motion always gets the still band.
Included images
The copied markup includes WordPress Photo Directory example photographs. The public image URLs keep the examples visible after pasting. Select an image or cover and choose Replace to use your own Media Library files. See image credits for the sources and licenses. Pasting an image URL does not import a Media Library attachment.
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…