Gallery marquee frames

Two rows of framed pictures running opposite ways past a band of two 300px rows, with the pointer driving them: the left of the frame runs them backwards, the middle holds them still so a picture can be read, and the right hurries them along. Sixteen picture plates dealt eight to a row, every one the same landscape slot whatever you upload, and both edges of the band dissolved so pictures arrive and leave rather than being cut.

Includes replaceable example images. Needs the companion plugin, which comes with your access; without it, or without motion, the heading is followed by the sixteen pictures as a plain stack. States no colour and no font of its own.

ThemePreview sizeMotion
As authoredColour
Twenty Twenty-Five·1280pxPlays best in its own window

Manrope typefacergb(255, 255, 255) ground1280px viewport

Start here

What you change first

  1. 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.
  2. The room names. Each is an h3 inside its item.
  3. 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.
  4. The row height (Item height) if your pictures want more room: the band follows it, so there is one number rather than two.
  5. 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

  1. 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.
  2. The room names. Each is an h3 inside 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.
  3. 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.
  4. 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.
  5. 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

18KB of core-block markup, 5 blocks (group, heading, image, paragraph, patternpaste/marquee), and nothing else: paste it into the block editor and it becomes editable blocks wearing your theme.

Start free trial to copyWhat you copy is yours forever. Cancel whenever.

Back to the library