Image Gallery

A set of photographs, not twelve separate images

Native Page Builder has one image and a slider you feed one content type at a time. This is the gallery: a grid, a masonry wall or a carousel, with captions, alternative text and an enlargement that walks from picture to picture.

Finished work sells the next job

A wall of what you have actually made is the page a considering customer spends longest on. It belongs on a landing page, not in an attachment.

Twelve pictures, one form each

Add, reorder, caption and link each picture with the controls you already use. No third-party gallery, no shortcode and no second media library.

The page does not wait for pictures nobody has scrolled to

Everything below the first row is loaded lazily, worked out from the number of columns rather than guessed.

Use cases

Where shops put it

Projects on a service page

Twelve finished jobs in an even grid, each cropped to the same shape so the wall reads as one thing, with the lightbox for the detail.

A lookbook or a shoot

Masonry, where every photograph keeps the shape it was taken in — the layout for a wall of images rather than a sequence.

"Our shop", inside an accordion panel

A carousel of three at a time, tucked into a panel on the contact page, where a full grid would push the opening hours off the screen.

What you control

Every field in the form, in plain words

Three appearances
An even grid, a masonry wall, or a carousel.
Columns per screen size
From six down to one, and the spacing between tiles.
Tile shape
Square, 4:3, 3:2 or the original proportions. Pictures are cropped, never stretched.
Whether a tile opens in a lightbox
With a counter, the caption and arrows between pictures.
Carousel settings
Arrows, dots, loop, autoplay and its interval, pause on hover.
Per picture
The file, its alternative text, a caption and an optional link.

Shown in the demo store

Native and honest

Your content is written in Magento's own format

The gallery is stored as a plain list of pictures with captions. Nothing in the page promises an enlargement: what makes a tile pressable is added at runtime, so a page the script never reached is still a gallery — it simply does not open. The enlargement itself has an accessible name, arrow keys that walk the set, and Escape that closes it and puts the focus back on the tile.

One limitation we will state rather than bury: the enlargement shows the same file as the tile. Page Builder stores one reference per picture and has nowhere to keep a second, larger address, so the size you upload is the size of the enlargement. Around 1600 px on the longer side is the target, and the form says so.

Every element saves itself the way native Page Builder saves its own: a plain <div data-content-type="wrizu_…"> with its settings in data-* attributes, stored with the page. There is no proprietary database table, no shortcode, no second editor and nothing that has to be converted later.

That has a practical consequence. Disable the module and the storefront keeps serving those pages: headings, copy, images, links and buttons stay visible and clickable, and the styling you set per element — alignment, colours, spacing — stays with them, because it lives in a <style> block stored with the page rather than in our stylesheets. What you lose is what our CSS draws: the layouts, the borders and shadows, the button variants and the bundled icons.

One honest warning

With the module switched off, do not open and save a page that contains Wrizu elements — Page Builder flattens any page holding a content type it does not know into a single HTML Code block, and that save cannot be undone. It behaves that way with every unknown content type, not only with ours, and the storefront is unaffected either way; the rule is simply to leave those pages alone until the module is back on.

Works with any Luma-based theme

The elements are built on the same front-end stack the native Page Builder uses: jQuery and the libraries Page Builder already loads. They target Luma-based themes — Magento Blank, Luma, and the custom themes shops build on either of them.

Buttons use Luma's own button mixins, so a Wrizu button looks like a button from your theme rather than like a button from a plug-in. All of the module's CSS is scoped to [data-content-type^="wrizu_"], so it styles our elements and nothing else in your theme.

Requirements

  • Magento Open Source or Adobe Commerce 2.4.6 or newer, with the Magento_PageBuilder module enabled
  • PHP 8.1 to 8.5 — whichever your Magento version supports
  • No other extension, no external icon font, no CDN dependency

Questions about this element

Can a picture link somewhere instead of enlarging?
Why does masonry read down the columns?
Are the captions a substitute for alternative text?
What does it look like with the module switched off?

Media & motion

More in Media & motion

Animated Counter

A figure that counts up as it comes into view, with an icon and a label.

Animated Headline

A heading whose key word changes — rotating, typed with a caret, or marked by a drawn shape.

Before / After

Two photographs of the same thing under one handle.

Marquee

A strip that scrolls without end, in claims, logos or tiles.

Progress Bar

A bar or a ring that fills to a percentage.

Video Popup

A poster or a button that opens a YouTube, Vimeo or self-hosted video in a window.

Thirty-five conversion elements for the Page Builder you already have

Wrizu Page Builder Extensions adds them to the native Magento 2 Page Builder — no second editor, no proprietary format, no content held hostage.