Media Placement
Which side of the two-column grid the media image sits on for desktop. The text column takes the other side. Alternate this between rows on the same page for a zig-zag reading rhythm.
Docs / Content Layouts / Media & Text
A streamlined two-column layout that pairs a single media image with a rich text block. Lighter than Image & Text - no per-image transforms, no section dividers - so it shines when you just need a clean image-plus-copy row.
The four most-used layout controls live here so editors can shape the row in seconds: which side the image sits on, the column ratio, how the text aligns vertically, and the stack order on mobile.
Type: choice (select)
Default: left
Which side of the two-column grid the media image sits on for desktop. The text column takes the other side. Alternate this between rows on the same page for a zig-zag reading rhythm.
left Left (default; image on the left, text on the right)right Right (image on the right, text on the left)
Type: choice (select)
Default: 6-6 (Equal)
Grid ratio between the two columns on a 12-column grid. Pick a wider image (8 | 4) for visual-led rows, wider text (4 | 8) for long-form copy, or equal (6 | 6) for a balanced split.
6-6 6 | 6 (Equal) - default4-8 4 | 8 (narrow media, wide text)8-4 8 | 4 (wide media, narrow text)5-7 5 | 7 (slightly narrow media)7-5 7 | 5 (slightly wide media)
Type: choice (select)
Default: center
Where the text column sits vertically inside its grid cell relative to the media. Use Top when the text is much shorter than the image and you want them to share a top edge; use Center for the most common balanced look.
top Top-alignedcenter Center-aligned (default)bottom Bottom-aligned
Type: choice (select)
Default: media-first
Stack order when the two columns collapse on mobile. Defaults to media-first because the image is usually the visual hook; flip to text-first when the headline matters more than the image.
media-first Media on Top (default)text-first Text on TopThe fields visitors actually see: scroll animation, the media image, the rich-text block, and per-breakpoint text alignment.
Type: choice (select)
Default: none
Entrance animation triggered by an IntersectionObserver when the row scrolls into view. The fade pairs opacity with a short slide from the chosen direction.
none No animation (default)fade-up Fade Up (slides up from below)fade-down Fade Down (slides down from above)fade-left Fade from Leftfade-right Fade from Rightfade Fade Only (no slide)Reduced motion: visitors with prefers-reduced-motion: reduce see the row fully visible with no animation.
Type: image (responsive, resizable)
Default: tile-1.png placeholder
The image that fills the media column. Responsive sizing is on by default; lazy-loading is on; HubSpot's file manager handles SRC and alt text. Upload a 1200x800 (or larger) image so the column has room to scale without softness.
Tip: Use a unique filename when you replace this image. HubSpot's CDN caches by URL, so overwriting a file with the same name can leave visitors seeing the stale image for hours.
Type: richtext
Default: H3 + paragraph placeholder copy
The rich text body of the text column. Supports headings, paragraphs, bullet and numbered lists, links, and CTA buttons. Apply the theme's CTA classes (cta-primary, cta-secondary, cta-tertiary, cta-four, cta-five, cta-six) to inline links to render them as styled buttons.
Type: choice (select)
Default: left
Horizontal text alignment for the text column on desktop (993px and above).
left Left (default)center Centerright Right
Type: choice (select)
Default: left
Horizontal text alignment for the text column on tablet and mobile (below 993px). Set independently from desktop so you can left-align on desktop while centering on phones.
left Left (default)center Centerright RightDeveloper hooks for adding custom CSS or JS targeting. Leave blank for most pages.
Type: text
Default: empty
Sets an id="..." on the section element. Must be unique on the page. Useful for anchor links (e.g. #about) and JS targeting. Only use one ID.
Type: text
Default: empty
Additional CSS classes (space-separated) appended to the section element. Useful when applying page-specific overrides via the page's custom CSS.
The visual controls, all under HubSpot's Style tab: badge styling for the H6, and the row settings (background, content width, per-breakpoint padding).
Optional pill-badge styling for the H6 inside the text column. If you do not use an H6, this group has no visible effect.
Type: boolean (toggle)
Default: true
Styles every <h6> inside the text column as a pill badge instead of a plain heading. Colors and shape come from the chosen badge tier plus the theme's badge settings.
Type: choice (select)
Default: badge-primary
Shown when: Show Badge Styling is on
Picks the badge tier. Per-tier colors are configured in Theme Settings > Badge.
badge-primary Primary (default)badge-secondary Secondarybadge-three Threebadge-four Fourbadge-five Fivebadge-six SixThe row wrapper's background, content width, and per-breakpoint padding.
Type: group
Default: none
The Background Type select drives which sub-controls appear inside this group.
none No background (default; the row inherits the page background)color Solid Color - reveals Select Background Colorgradient Gradient - reveals Gradient Top Color, Gradient Bottom Color, and Gradient Direction (8 directions)image Background Image - reveals Background Image, Background Size, Background Position, Enable Overlay (and color), Enable Blur (and amount)Note: the group label says "Image, Video, Color, Etc." but the current build does not include a video option - the Background Type select only exposes none / color / gradient / image.
Type: color
Default: #ffffff @ 100%
Shown when: Background Type is color
Solid background color (and opacity) for the row.
Type: color
Default: #ffffff @ 0%
Shown when: Background Type is gradient
Start color of the gradient. Note the default is transparent white, so you will need to set both stops before the gradient is visible.
Type: color
Default: #ffffff @ 0%
Shown when: Background Type is gradient
End color of the gradient.
Type: choice (select)
Default: to bottom
Shown when: Background Type is gradient
Direction the gradient travels.
to bottom Top to Bottom (default)to top Bottom to Topto right Left to Rightto left Right to Leftto bottom right Top-Left to Bottom-Rightto bottom left Top-Right to Bottom-Leftto top right Bottom-Left to Top-Rightto top left Bottom-Right to Top-Left
Type: image (responsive, lazy-loaded)
Default: empty
Shown when: Background Type is image
Image file used as the row background. Stays in the document only when Background Type is image.
Type: choice (select)
Default: cover
Shown when: Background Type is image
cover Cover - fills the area and may crop (default)contain Contain - fits inside without croppinginitial Original Size
Type: choice (select)
Default: center center
Shown when: Background Type is image
center center Center Center (default)center top Center Topcenter bottom Center Bottomleft center Left Centerright center Right Center
Type: boolean (toggle)
Default: false
Shown when: Background Type is image
Adds a flat color layer between the background image and the row content. Useful for darkening busy photos so text stays readable.
Type: color
Default: #869BAC @ 10%
Shown when: Enable Overlay is on
Color (and opacity) of the overlay layer.
Type: boolean (toggle)
Default: false
Shown when: Enable Overlay is on
Applies a backdrop blur to whatever sits behind the overlay (the background image). Pairs with the overlay color for a frosted-glass effect.
Type: number (slider, 0-20px)
Default: 5px
Shown when: Enable Blur is on
Pixel radius of the backdrop blur.
Type: group
Constrains the row's content width.
Type: boolean (toggle)
Default: true
When on, the row's content fills the entire section width with no container padding. Turn it off when you want the row to inherit a constrained width.
Type: choice (select)
Default: standard
Shown when: Full Width is off
Standard and Slim widths are set in Theme Settings > Layout.
standard Standard (default)slim Slim (narrower)custom Custom - reveals the Custom Width input
Type: number (600-1920px, step 10)
Default: 1200px
Shown when: Content Width is custom
One-off container width when neither Standard nor Slim fit the design.
Type: group (per breakpoint)
Padding around the text column on each breakpoint. Every value is a slider in pixels.
padding_top_desktop Desktop Top - slider 0-200px, default 0padding_bottom_desktop Desktop Bottom - slider 0-200px, default 0desktop_sides Desktop Sides - slider 0-200px, default 80tablet_top Tablet Top - slider 0-200px, default 50tablet_bottom Tablet Bottom - slider 0-200px, default 50tablet_sides Tablet Sides - slider 0-100px, default 25mobile_top Mobile Top - slider 0-200px, default 25mobile_bottom Mobile Bottom - slider 0-200px, default 25mobile_sides Mobile Sides - slider 0-100px, default 25