Get ShapeShifter Modules Pro for free now for a limited time!

ShapeShifter Modules

ShapeShifter is a WordPress plugin. It provides a page-building system made up of ten content modules. Each module is designed for a specific way of laying out content — from heroes and column layouts, to carousels, accordions, and image-and-text rows. This guide explains what each module does and how to use its settings to get your content looking the way you want it.

ShapeShifter requires the Advanced Custom Fields Pro Wordpress plugin to be installed and active on your site.


How pages are built

Every ShapeShifter page is built by stacking modules vertically — from the top of the page to the bottom. You choose which module fits the content you're placing, then use its settings to control how it looks.

Modules are sections

Think of each module as a horizontal band of your page. A typical page is four to eight modules stacked top to bottom — a hero, a few content sections, and a call-to-action at the bottom. You pick the module that matches the layout you need, fill in your content, and configure its settings.

Every module shares common settings

All ten modules share the same core settings for spacing, background color, section width, and dividers. Once you're familiar with those shared controls, learning each new module is mostly just understanding what's unique about it.


Settings every module has

These settings appear on every module and are the most direct controls for shaping how a section looks on the page.

Width & Layout
Size to Window Width

Makes the section's background color or image stretch edge to edge across the full browser window. The content inside stays at the site's standard reading width and remains centered. Turn this on any time you want a section to feel full-bleed.

Constrain Columns to Site Width

Keeps the content from stretching wider than the site's maximum width. Use this together with Size to Window Width — if the background fills edge to edge but the content has no width limit, text will stretch uncomfortably wide on large screens.

Size Content to Condensed Width

Applies a narrower maximum width to the content. Useful for centered text, pull quotes, or reading-heavy content that benefits from a shorter line length.

Spacing
Default Spacing

Controls the padding around the module's content.

All (default)Top onlyBottom onlySides onlySides + TopSides + BottomNone

Use None when two modules need to sit flush against each other. Use Sides only for left and right padding without extra space above or below.

Background
Background Color

Sets a background color for the whole module. Enter a hex value, or use one of the site's pre-set color variables defined in the site's style guide.

Background Image

Places an image behind the entire module, filling and covering the full section area. If the image is dark, turn on Use Light Color Text so text and buttons stay readable over it.

Background Image Tint

Adds a semi-transparent color overlay on top of the background image. Enter an RGBA value to control the color and opacity — a dark tint at 50% opacity makes white text legible over most photos.

Use Light Color Text

Switches all text and buttons inside the module to their light-on-dark versions. Turn this on whenever the module has a dark background color or image.

Dividers & Labels
Horizontal Rule — Top / Bottom

Adds a thin dividing line above or below the module. Top and bottom rules are independent — add either, both, or neither.

Module Label

A private label visible only inside the WordPress editor — never shown to visitors. Use it to keep your block list organized on long pages.

Deactivate

Hides the module from the published page without deleting it. Useful for temporarily removing a section while keeping its content intact.

The Modules

ShapeShifter has ten modules, each built for a different kind of content layout. Choosing the right module for what you're trying to display is the most important decision when building a page.


M1

Columned Content

The most flexible module. Use it for heroes, single-column intros, two- or three-column layouts, stat bars, and anywhere you need content sitting side by side. Also handles full-width background images and CTAs.

M2

Slideshow & Grid

Displays a set of items — team members, services, events, portfolio pieces — as either a scrolling carousel or a static grid. Each item has its own image, headline, description, and optional button.

M3

Alternating Rows

A series of rows where an image and a block of text alternate sides — image left on one row, image right on the next. The standard choice for feature breakdowns or step-by-step content.

M4

Quote Carousel

A carousel of testimonials or pull quotes. Each item can include the quote text, the author's name, their title, and an optional portrait photo.

M5

Accordion / FAQ

A list of collapsible items — click a heading to expand the content below it. Ideal for FAQs, product details, or any content where you want answers on demand without cluttering the page.

M6

Sticky Column Layout

Two columns where one side stays pinned to the screen as the visitor scrolls through content in the other. Useful when you want a form, image, or summary to remain visible down a long page.

M7

Menu & Price List

A structured list of items with names, descriptions, and prices. Built for restaurant menus, service packages, or any content that follows a name-and-price pattern.

M8

Divider

A simple horizontal rule for separating sections. Use it when you need a visual break between two modules without adding extra spacing or background color.

M9

Custom HTML

A freeform block for custom code — embeds, third-party widgets, or anything that doesn't fit the structured modules. For advanced use only.

M10

Reusable Module

Pulls in a saved module from elsewhere in WordPress. If the same CTA block appears on multiple pages, M10 lets you maintain one version that updates everywhere automatically.

ℹ

Not sure which module to use? Start with M1 — it handles the most common layouts. Displaying a repeating set of items like cards or team members? That's M2. For alternating image-and-text rows that stack down the page, use M3.

Getting Started

Follow these steps to install ShapeShifter, configure your site styles, and start adding modules to your pages.


Installation

âš 

Be sure you have the Advanced Custom Fields Pro Wordpress plugin installed.

Install the plugin
1. Upload the plugin

In your WordPress admin, go to Plugins and click Add Plugin. Select Upload Plugin, choose the shapeshifter-modules.zip file from your computer, and click Install Now. Once installed, activate the plugin.

2. Add a license key

In your WordPress admin, go to Settings → ShapeShifter Modules and enter your license key. A valid license is required to enable the full suite of modules.

Configure your styles
DarkPhysiCSS Config

Under Settings → ShapeShifter Modules, open the DarkPhysiCSS Config tab. This is where you configure your website's design tokens — colors, spacing, typography, and other style variables that all modules inherit. Set these up to match your site's brand before adding modules to your pages.

Block Editor Preview

Open the Block Editor Preview tab under Settings → ShapeShifter Modules. Provide a path to your website's stylesheet — or a custom stylesheet — so the WordPress block editor can apply your site's styles while you're editing. This ensures modules look accurate inside the editor, not just on the published page.

Start building
Add modules to a page

Once your settings are saved, open any page in the WordPress block editor. Click the + button to open the Block Menu, search for "M:" or browse the ShapeShifter category, and select the module you want to add.

M1 — Columned Content

M1 is the module you'll reach for most often. It handles any layout where content sits in one or more side-by-side columns — a simple centered headline, a two-column text-and-image layout, a three-column stat bar, or a full-width hero with a background photo and CTA. Each column is independent and has its own settings.


Common layouts using M1

M1 handles a wide range of layouts depending on how many columns you use and what you put in each one.

Single column
Headlinebody + button

A single full-width column — for page heroes, section intros, or a centered message with an optional CTA button.

Two columns — text + image
Text+ button

Text on one side, an image on the other. Control which side each goes on and the width ratio between them.

Three columns — stats or features
Col 1
Col 2
Col 3

Three equal columns — perfect for a row of stats, service highlights, or feature points.

ℹ

If you need image and text rows to alternate sides as they stack down the page, use M3 (Alternating Rows) instead. M1 is for layouts where all columns sit in a single horizontal row.


Section headline & intro text

M1 lets you add an optional headline and intro paragraph that span the full module width above the column grid. These are module-level fields — separate from the headlines and text you put inside individual columns.

Section Headline

A headline that appears above all columns. Use it to title the section — for example, "Our Services" above three service columns. Leave it blank if no section title is needed.

Display as Page Title

Makes this headline the main title of the page. Only check this for the very first headline on a page — there should be only one page title. Leave it unchecked for all other section headings.

Section Intro Text

A short paragraph below the section headline and above the columns. Use it to provide context before the column content begins.

Max Intro Width

Sets a maximum width on the section headline and intro text block, controlling how wide the text can run before wrapping. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full column width.

Headline Text Size

Controls how large the section headline displays. Sizes follow the site's type scale — H1 through H4, plus named sizes like Big, Medium, Normal, and Small.

Text Alignment

Aligns the section headline and intro text — left, center, or right.

Intro Spacing

Controls the padding around the section headline block. Set to Bottom to add space below before the columns begin, or None to let the columns start right away.


Column layout settings

These settings control how many columns appear and how they're sized. Column counts can be set independently for desktop, tablet, and mobile.

Number of Columns

How many columns appear on desktop. Set this first, then decide whether to show fewer columns on smaller screens.

Columns on Tablet

Column count on medium screens — tablets and small laptops. If left blank it matches the desktop count. Common to drop from 3 columns to 2 on tablet.

Columns on Mobile

Column count on phones. Defaults to a single column — most layouts should stack to 1 on mobile so content doesn't get too narrow to read.

Column Size Ratio

When using two columns, this sets how the total width is split between them. Equal halves is the default, but you can choose an uneven split — for example 70/30 for a wide text column next to a narrow image.

50 / 5033 / 6666 / 3325 / 7570 / 3030 / 70
Column Gap

The space between columns — set independently for desktop, tablet, and mobile.

Reverse Column Order on Mobile / Tablet

Flips the column order when they stack on smaller screens. Checking Reverse on Mobile places the image above the text when they stack — which is often the more natural reading order on a phone.

Don't Vertically Align Columns

By default, columns align their content to the vertical middle so a short column and a tall column look balanced. Check this when columns have very different amounts of content and you want each to start from the top instead.


Settings inside each column

Each column in M1 is independent. You can give each one its own headline, body text, image, background, button, and spacing — completely separate from the other columns on the same row.

Content
Headline

The column's heading — displayed larger and bolder above the body text. Leave it blank if the column doesn't need its own heading.

Display as Page Title

Makes this column's headline the page's main title. Use only once, on the primary heading of the page.

Headline Text Size

Overrides the size of this column's headline independently of the others.

Body Text

The main text content of the column — paragraphs, bullet points, links, and basic formatting. This is a rich text editor, formatted the same way as any WordPress content field.

Body Text Size

Adjusts the size of this column's body text. Smaller text is useful in dense columns or secondary columns supporting a primary message.

Button
Display Button

Check this to show a button at the bottom of the column's content.

Button Text

The label on the button. Defaults to "Read More" if left blank.

Link to URL

Check this and enter a destination URL to make the button navigate somewhere.

Open in New Tab

Opens the button link in a new browser tab. Use for links to external sites so visitors don't leave your page.

Reverse Button Colors

Swaps the button to an outlined style — transparent background with a colored border and text. Typically used on dark or colored backgrounds where the solid button doesn't contrast well.

Alternate Button Style

A more subtle secondary button — outlined and less prominent. Use when a button needs to be present but shouldn't compete with a nearby primary action.

Open as Popup

The button opens a lightbox popup containing content you enter in the Popup Content field, instead of navigating to a URL.

Image
Background Image

Places an image behind this column's content — filling the entire column as a background, not as an inline image. Use this when you want a column that looks like a photo panel with text or a button placed on top of it.

✓

To display an image at its natural size inside the column — like a logo or illustration — add it inside the Body Text field as an inserted image instead.

Background Image for Mobile

An alternate image shown on phones. Use this when the desktop image is wide and landscape — it may crop poorly in a tall, narrow mobile column.

Image Position

Controls which part of the background image stays in frame when cropped to fill the column. If a subject keeps getting cropped out, try center (default), top, bottom, left, or right.

Image Effect

A movement effect on the background image as the visitor scrolls:

None — staticParallax — subtle driftFixed — stays pinned
Background Image Tint

A semi-transparent color overlay on this column's background image. Use a dark tint when placing light text over a photo.

Background Color

A solid background color for this column only, independent from the module's overall background.

Use Light Color Text

Switches this column's text and buttons to their light-on-dark versions. Use when this column has a dark background image or color.

Layout & Spacing
Content Position

Controls where the column's content sits when the column has a background image — Fill, Top, Middle, or Bottom.

Vertical Alignment

Aligns this column's content vertically relative to the other columns in the same row — Top, Middle, or Bottom.

Text Alignment

Aligns the text and button inside this column — left, center, or right. Each column can have its own alignment independently.

Column Spacing

Adds internal padding to this column — All, Top, Bottom, Sides, or None. Use None when a column needs to sit flush, like a full-bleed image column.

Max Column Width

Caps this column's width at a specific pixel value, overriding the module-level size ratio.

Bleed Column to Browser Edge

Expands this column's background image or color all the way to the edge of the browser window. The text inside still stays within the normal content width — only the background bleeds. Use for bold split-screen layouts where one side goes edge to edge.

âš 

For bleed to work as intended, Size to Window Width must also be turned on at the module level.

Expand for More
Expand for More

Adds a "read more" accordion to this column. A portion of the content is visible initially, and a click reveals the rest.

Expand Trigger Label

The clickable text that triggers the expand — for example "Read more about our approach".

M2 — Slideshow & Grid

M2 is for displaying a collection of items — team members, services, events, portfolio pieces — each with its own image, headline, description, and optional button. The same items can be shown as a static grid or a scrolling carousel, controlled by a single setting.


Grid or Slideshow?

The first decision when setting up M2 is how to display the items. Both modes use the same item content — you're just choosing the presentation.

Grid — all items visible at once
Item 1
Item 2
Item 3

Grid

All items display at once in a multi-column grid. Visitors can see everything without needing to interact. Use a grid when you have a manageable number of items — typically four to eight — and want them all visible at the same time, like a services list or a team page.

Slideshow — one item at a time, navigable
Item 1 of 5

Slideshow

Items display in a carousel with navigation arrows and dots. Visitors swipe or click through them. Use a slideshow when you have many items, or want a compact presentation — like testimonials or featured articles — that doesn't need a long scrolling grid.


M2 Settings

Section headline & intro text
Section Headline

A heading spanning the full module width above the grid or carousel. Leave blank if no section title is needed.

Section Intro Text

A short paragraph below the headline and above the items.

Max Intro Width

Sets a maximum width on the section headline and intro text block, controlling how wide the text can run before wrapping. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full column width.

Headline Size & Alignment

Controls the size and horizontal alignment of the section headline and intro text — left, center, or right.

Adding items
Add items manually

Build each item by hand inside the module — entering the image, headline, description, and button for each one individually. Use this when the items are unique content that doesn't already exist in WordPress as posts or pages.

Pull from WordPress pages or posts

Instead of entering items manually, M2 can pull them automatically from existing WordPress content — blog posts, a custom post type, or specific pages you select. The item's featured image, title, and excerpt become the card's image, headline, and description.

Grid layout
Columns per Row

How many item cards appear in a row on desktop. Set separately for desktop, tablet, and mobile. A 4-column desktop grid typically drops to 2 on tablet and 1 on mobile.

Column Gap

The space between item cards in the grid — set independently for each screen size.

Item Alignment

Aligns the cards within the grid — left, center, or right. Center is most common when the grid has fewer items than columns.

Slider settings

These settings only apply when the module is set to Display as a Slider. They have no effect in Grid mode.

Auto-Advance

When enabled, the slider automatically moves to the next item after a set interval. The slider pauses when a visitor hovers over it or interacts with the navigation.

Slide Speed

How long each item stays visible before auto-advancing, in milliseconds. 5000 (5 seconds) is a common starting point — increase for content-heavy cards that need more reading time.

Items Visible

How many items are visible in the slider at once. Set to 1 for a full-width single-item carousel, or higher to show partial items peeking in from the sides. Can be set independently for desktop, tablet, and mobile.

Show Navigation Arrows

Displays left and right arrow buttons on either side of the slider so visitors can manually advance through items.

Show Navigation Dots

Displays a row of dots below the slider indicating the current position and total number of items. Visitors can click a dot to jump directly to that item.

Infinite Loop

When enabled, the slider wraps seamlessly from the last item back to the first. When disabled, the slider stops at the last item and the forward arrow is hidden.

Center Active Item

Keeps the active item centered in the slider viewport, with adjacent items partially visible on either side. Works best when Items Visible is set to an odd number.

Slide Gap

The space between items in the slider. Set independently for desktop, tablet, and mobile.

Settings inside each item
Image

The item's main image, displayed at the top of the card above the text content.

Headline

The item's title, displayed below the image in a prominent size.

Subtitle

A secondary line below the headline — used for a role, date, category, or price.

Description

The main text content of the card — a short description, excerpt, or summary.

Display Button

Shows a button at the bottom of the item card. Enter the button label and destination URL when enabled.

Link the Entire Card

Makes the whole card clickable rather than just the button. Use this when every item links somewhere and you want the largest possible click target.

Background Color

A background color for this specific item card, independent from the module's overall background.

Use Light Color Text

Switches this item's text and button to light-on-dark versions. Use when this card has a dark background color.

Text Alignment

Aligns the content inside this item card — left, center, or right.

Fit Image to Card

Makes the item's image fill the entire card as a background rather than sitting at the top above the text. Content is overlaid on top of the image. Turn on Use Light Color Text if the image is dark.

M3 — Alternating Rows

M3 is for content that naturally pairs an image with a block of text. Each row displays an image on one side and a headline, body text, and optional button on the other. When you add more than one row, the image and text sides automatically alternate — creating a rhythm that reads naturally down the page.


What M3 looks like

Each row is a two-column layout — text on one side, image on the other. The sides alternate automatically from row to row.

Row 1 — text left, image right
Headlinebody + button
Row 2 — image left, text right
Headlinebody + button

With Alternating Rows enabled, each new row flips sides automatically.

Image on left — all rows
Headlinebody + button

If you turn on Image on Left without alternating rows, every row shows the image on the left — consistent orientation throughout.


M3 Settings

Section headline & intro text
Section Headline

An optional headline spanning the full module width above all the rows.

Section Intro Text

A short paragraph below the section headline and above the rows.

Max Intro Width

Sets a maximum width on the section headline and intro text block. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full width.

Row layout
Alternating Rows

When checked, each row flips the image and text sides — row 1 is text left / image right, row 2 is image left / text right, and so on. When unchecked, every row keeps the same orientation.

Image on Left

Starts the first row with the image on the left. When combined with Alternating Rows, the image starts left and alternates from there.

Column Size Ratio

Sets how wide the image column is relative to the text column. The default is 50/50 — a wider image column (66/33) makes photos more prominent, while a wider text column (33/66) works better for long body copy.

Column Gap

The horizontal space between the image and text column in each row. Set independently for desktop, tablet, and mobile.

Image on Top for Mobile

When rows stack to a single column on phones, this places the image above the text. Usually checking this gives the better visual result on mobile.

Row Headline Size

Controls the headline size for every row. Applies module-wide — all row headlines use the same size unless overridden per-row.

Row Body Text Size

Controls the body text size for every row.

Text column — per row
Headline

The row's heading, displayed above the body text on the text side.

Body Text

The main text content for this row — paragraphs, bullet points, and basic formatting.

Text Alignment

Aligns the text content inside the text column — left, center, or right.

Use Light Color Text

Switches this row's text and button to light-on-dark versions. Use when this particular row has a dark background.

Expand for More

Adds a "read more" accordion to this row's text column.

Button — per row
Display Button

Shows a button below the body text in this row's text column.

Button Text

The label on the button. Defaults to "View More" if left blank.

Link to URL

Enter a destination URL to make the button navigate somewhere.

Image column — per row
Image

The image displayed on the image side of this row. Displayed inline at its natural proportions, not as a background fill.

Fit Image to Column

Makes the image fill the entire column area as a background cover. Useful when you want both columns to be equal in height.

Headline Over Image

Displays this row's headline on top of the image instead of in the text column. Use with a tint to ensure the text is readable.

Image Tint

A semi-transparent color overlay on the image. Particularly useful when using Headline Over Image — adds contrast so text is legible over the photo.

Image Content

Optional text placed below the image in the image column — for captions, credits, or supplementary content that belongs with the image rather than in the text column.

M4 — Quote Carousel

M4 displays a set of testimonials or pull quotes in a sliding carousel. Each quote can include the quote text, the author's name, their title, and an optional portrait photo. Visitors move through the quotes using navigation arrows or dots, or the carousel can advance automatically.


What M4 looks like

Quote with portrait
👤
"A meaningful quote from a happy customer goes here."
Author Name
Title or Company

With a portrait photo, the image appears above the quote. Without a photo, the quote and attribution display on their own.

Multiple quotes — carousel navigation
"Quote text..."

Navigation arrows and dots let visitors move between quotes. You can enable or disable each independently, or set the carousel to auto-advance.


M4 Settings

Section headline & intro text
Section Headline

An optional heading above the carousel — for example, "What our clients say".

Section Intro Text

A short paragraph below the section headline and above the carousel.

Max Intro Width

Sets a maximum width on the section headline and intro text block. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full width.

Headline Size & Alignment

Controls the size and alignment (left, center, right) of the section headline and intro text.

Carousel behavior
Auto-Advance

When enabled, the carousel automatically moves to the next quote after a set interval. The carousel pauses when a visitor hovers over it.

Slide Speed

How long each quote stays visible before auto-advancing, in milliseconds. 12000 (12 seconds) is the default — increase for longer quotes that need more reading time.

Show Navigation Arrows

Displays left and right arrow buttons on either side of the carousel so visitors can manually move between quotes.

Show Navigation Dots

Displays a row of dots below the carousel indicating which quote is active and how many total there are.

Layout
Text Alignment

Aligns the quote text and attribution inside each slide — left, center, or right.

Content Alignment

Controls how the carousel is positioned within the module — left, center, or right.

Settings inside each quote
Quote Text

The quote itself. Enter without quotation marks — the module styles it as a blockquote automatically.

Author Name

The name of the person being quoted, displayed below the quote in bold.

Author Title

The author's title, role, or company — displayed below the author name in a lighter style.

Portrait Photo

An optional photo of the person being quoted. Square or portrait-oriented images work best.

M5 — Accordion / FAQ

M5 displays a list of collapsible items — each with a header that a visitor can click to expand or collapse the content below it. Designed for FAQs, but works for any content where you want answers or details available on demand without cluttering the page.


What M5 looks like

Collapsed — items show headings only
How do I get started? +
What's included in each plan? +
Can I cancel at any time? +

By default all items are collapsed, showing only their header. Visitors click a header to reveal the content below it.

Expanded — one item open
How do I get started? −
Sign up for an account and follow the onboarding steps. You'll be up and running in minutes.
What's included in each plan? +

Clicking a header expands it to reveal the content. Clicking it again collapses it.


M5 Settings

Section headline & intro text
Section Headline

An optional heading spanning the full module width above the accordion list.

Section Intro Text

A short paragraph below the section headline and above the accordion items.

Max Intro Width

Sets a maximum width on the section headline and intro text block. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full width.

Closing Text

Optional text displayed below the entire accordion list — useful for a follow-up prompt or contact link after the FAQ.

Accordion items

M5 uses a two-level structure: sections and items. A section is a collapsible group with its own header. Inside each section you add one or more items, each with its own content block.

Section Title

The clickable header for this accordion group. When a visitor clicks it, the items inside expand to reveal their content.

Item Content

The content revealed when this section is expanded — a rich text field supporting paragraphs, lists, links, and basic formatting.

Appearance
Section Header Size

Controls the text size of each accordion section's header.

Item Text Size

Controls the text size of the expanded content inside each item.

FAQ Schema

When enabled, outputs structured FAQ data that search engines can read. This can cause your FAQ answers to appear directly in Google search results as rich snippets. Enable this when the accordion is being used as a genuine FAQ.

M6 — Sticky Column Layout

M6 is a two-column layout where one column stays fixed (sticky) on screen while the visitor scrolls through content in the other. It's designed for pages where you want a persistent element — a contact form, a summary, a CTA, or an image — to remain visible as the visitor reads through a long list of items alongside it.


What M6 looks like

Sticky column pinned — scrollable items alongside
📌Stickystays in view
Item 1
Item 2
Item 3 ↓ scrolls

The sticky column stays fixed as the visitor scrolls. Typical uses: a contact form, key details, or a summary that supports a long list of content in the other column.

Sticky column on left
Item 1
Item 2
Item 3 ↓ scrolls
📌Stickystays in view

By default the sticky column is on the right. You can switch it to the left using the Sticky Column Side setting.


M6 Settings

Section headline & intro text
Section Headline

An optional heading spanning the full module width above the two-column layout.

Section Intro Text

A short paragraph below the section headline and above the columns.

Max Intro Width

Sets a maximum width on the section headline and intro text block. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full width.

Sticky column
Sticky Column Title

A heading displayed at the top of the sticky column.

Sticky Column Content

The main content of the sticky column — a rich text field. This is where you'd place a form shortcode, a summary block, a CTA, or any other content you want to stay in view as the user scrolls.

Sticky Column Side

Controls whether the sticky column appears on the left or the right. Default is right.

Sticky Column Width

Sets the relative width split between the sticky column and the scrollable items column.

Use Light Color Text (Sticky Column)

Switches the sticky column's text to light-on-dark versions. Use when the sticky column has a dark background.

Disable Sticky Behavior

Turns off the sticky pinning — both columns scroll normally.

Scrollable items
Item Content

Each item in the scrollable column is a rich text block. Add as many items as needed — they stack vertically as the sticky column stays pinned beside them.

Item Text Alignment

Aligns the text inside each scrollable item — left, center, or right.

Use Light Color Text (Items)

Switches the scrollable items column's text to light-on-dark versions.

M7 — Menu & Price List

M7 is a structured list of items where each entry has a name, a description, a price, and an optional image and link. Built for restaurant menus and service packages, but works for any content that follows a name-and-price pattern.


What M7 looks like

Single-column list
Item Name$12
A short description of the item goes here.
Another Item$18
Description of the second item.

Items display as a vertical list with an optional image thumbnail, name, description, and price.

Multi-column grid
Item 1
$10
Item 2
$14
Item 3
$16

Set Columns to 2 or 3 to display items in a grid rather than a single-column list.


M7 Settings

Section headline & intro text
Section Headline

An optional heading above the item list — for example, "Our Menu" or "Service Packages".

Section Intro Text

A short paragraph below the headline and above the items.

Max Intro Width

Sets a maximum width on the section headline and intro text block. Enter a pixel value — for example "640px". Leave blank to let the intro text span the full width.

List layout
Columns

How many columns the item list uses. Default is 1 (a single vertical list). Set to 2 or 3 to display items in a multi-column grid.

Column Gap

The space between columns when using a multi-column layout.

Alternate Layout

When enabled, alternates the position of the image between left and right on each row.

Stack Items

When enabled, stacks the image above the text for each item. Useful for a card-style grid layout.

Text Alignment

Aligns the text inside each item — left, center, or right.

Settings inside each item
Item Name

The name or title of the item, displayed as a heading.

Description

A short description of the item — ingredients, details, or a brief summary.

Price

The price displayed below the description. Enter the price as plain text including any currency symbol — for example "$14" or "From £20/month".

Image

An optional photo for the item.

Fit Image

Makes the image fill its container as a background cover rather than displaying at its natural size.

Link

An optional URL that the item's button links to.

Link Text

The label for the item's link button.

M8 — Divider

M8 is a simple horizontal rule — a thin line for creating a visual break between two sections of a page. Use it when you need separation without adding background color, extra spacing, or content.


M8 Settings

M8 is deliberately minimal. Most of its settings control how much space appears around the rule rather than the rule itself.

Default Spacing

Controls the padding above and below the horizontal rule — choose from All, Top, Bottom, Sides, or None.

Alignment

Positions the rule left, center, or right within the module.

Constrain to Site Width

When checked, the rule is constrained to the site's standard content width rather than stretching edge to edge.

Module Label

A private editor-only label for this divider. Useful when a page has multiple M8 modules and you want to tell them apart in the block list.

Deactivate

Hides the divider from the published page without deleting it.

✓

If you just need a gap between two modules without a visible line, adjusting the Default Spacing on adjacent modules is often the better choice. Use M8 specifically when you want the line to be visible.

M9 — Custom HTML

M9 renders whatever HTML and shortcodes you enter directly onto the page. It has no structured fields — it's a freeform block for anything that doesn't fit the other modules.


M9 Settings

When to use M9
Third-party embeds

Embed codes from tools like Calendly, Typeform, HubSpot forms, or any other service that provides an HTML snippet. Paste the embed code directly into M9.

WordPress shortcodes

Any WordPress shortcode works inside M9 — contact form plugins, custom post type displays, or any feature your theme or plugins expose as a shortcode.

Custom layouts

If you need a layout that none of the other modules support, M9 lets you write custom HTML. Use DarkPhysiCSS classes inside your markup to keep spacing and typography consistent with the rest of the page.

Settings
Content

The full HTML and/or shortcode content to render. Everything entered here is output directly to the page without additional wrapping or formatting.

Deactivate

Hides the module from the published page without deleting it.

âš 

M9 renders code as-is with no safety checks. Invalid HTML can break the layout of the surrounding page. Test changes on a staging environment before publishing, and avoid entering code from sources you don't trust.

M10 — Reusable Module

M10 pulls in the output of another ShapeShifter module saved elsewhere in WordPress and renders it in place. Edit the source module once and every page using M10 to reference it updates automatically.


M10 Settings

ShapeShifter will install a new section in the Wordpress admin titled "Modules". Here you can build modules the same way you build pages. When a module exists, you can use the M10 module anywhere to select and display the module on the site. You can also add the module with a shortcode using the ID of the module I.E. [module id="12345"]. Modules also have the ability to used to create Lightboxes.

When to use M10
Repeated CTAs

If the same "Book a consultation" or "Get a quote" section appears at the bottom of multiple pages, build it once as a standalone module and reference it with M10 everywhere it's needed.

Shared headers or footers

Content blocks that need to be identical across many pages — an award bar, a trust-mark strip, or a newsletter signup — are good candidates for M10.

Sitewide updates

When you need to update a block that appears on dozens of pages, M10 means you make the change in one place and it propagates everywhere automatically.

Settings
Select Module

Choose the saved module to pull in from a dropdown list of available modules in WordPress. The selected module's full output is rendered in place of M10.

Module Label

A private editor-only label so you can identify this M10 instance in the block list — for example, "Footer CTA (reusable)".

Lightbox

Select "Add to site as a Lightbox" on the "Module" panel in the editor and give it a unique name.

Deactivate

Hides this M10 instance from the published page without affecting the source module or any other pages using it.

ℹ

M10 references a module — it doesn't copy it. If the source module is deleted or deactivated, M10 will render empty on every page that references it. Always check before removing a module that may be in use.

DarkPhysiCSS Quick Reference

DarkPhysiCSS is the CSS utility framework that ShapeShifter modules use for layout, spacing, typography, and color. When adding custom HTML to a module's body text field, use these classes instead of inline styles — they keep spacing and color consistent with the rest of the site. Full documentation →


Spacing & Typography

All spacing in DarkPhysiCSS ties back to a single --dp-site-padding variable, so the entire site's rhythm can be adjusted from one place.

Padding & Margin

Syntax: dp-pad:[size]:[side]   dp-marg:[size]:[side]

dp-pad
100% of site padding, all sides
dp-pad:25pc
25% of site padding
dp-pad:50pc
50% of site padding
dp-pad:10px
Fixed 10px
dp-pad:20px
Fixed 20px

Side modifiers: :top :bot :lt :rt
Screen modifiers: :xs :s :m :l

Example: dp-pad:25pc:top:m = 25% padding top, medium screens only.

Font Sizes & Weights

Syntax: dp-txt:[size]   dp-fnt:[weight]

dp-txt:h1
Largest heading
dp-txt:h2
Section heading
dp-txt:h3
Sub-section heading
dp-txt:h4
Small heading
dp-txt:big
Large body text
dp-txt:norm
Default body text
dp-txt:sm
Small text
dp-txt:xsm
Captions, fine print

Font weight: dp-fnt:600 — values from 100–800, or :bold / :light.


Colors & Grid

Color Classes

DarkPhysiCSS colors are configured per-site via CSS variables. clr1–clr8 are brand hues; grey1–grey4 are greyscale.

dp-bg:clr1
Brand color 1 background
dp-bg:clr2
Brand color 2 background
dp-txt:clr1
Brand color 1 text
dp-txt:clr2
Brand color 2 text
dp-bg:grey1
Lightest grey background
dp-bg:grey4
Darkest grey background
dp-bg:blk
Black background
dp-txt:wht
White text

Grid Columns

Percentage-based columns in 5% increments. Append a screen modifier to change width at a breakpoint. Float-based — always add dp-clear after each row.

dp-grid:50pc
50% wide column
dp-grid:33pc
~33% (one-third)
dp-grid:66pc
~66% (two-thirds)
dp-grid:25pc
25% (one-quarter)
dp-grid:fit:3
3 equal flexbox columns (no clearfix needed)
dp-gutter:20px
20px gap between columns

Example: dp-grid:33pc dp-grid:100pc:s = one-third on desktop, full width on small screens.

ℹ

Float-based dp-grid:% columns require <div class="dp-clear"></div> after each row. dp-grid:fit:N uses flexbox and does not need a clearfix.


Alignment, Display & Utilities

dp-txt:cntr
Center-align text
dp-txt:rt
Right-align text
dp-txt:uppercase
Uppercase text transform
dp-pos:cntr
Center a block element horizontally
dp-contain
Constrains element to the site's max content width
dp-rnd
Rounds all corners of an element
dp-hide
Hides element on all screen sizes
dp-display:above:m
Show only above medium breakpoint
dp-display:below:m
Show only below medium breakpoint
dp-flex:valign:mid
Vertically center flex children
dp-flex-col:s
Stack flex children vertically on small screens
✓

For the full class reference including all breakpoints, flex utilities, and positioning helpers, see the DarkPhysiCSS documentation →

;

Site Translation

Accessibility