Skip to content

Hero Banner

Placeable in Canvas A full-bleed banner — image or video, one or many slides, with the content block anchored top, centre or bottom.

Usage
Loading…

Props

Prop Required Type Description Example
layout Optional enum Simple is a compact banner, Full a full-height hero, Split puts content beside media. Defaults to simple. simple, full, split
reverse Optional boolean Split layout only: show the media first. Defaults to false. false
color_scheme Optional enum Match your slides so the arrows and dots stay visible. Defaults to dark. light, dark
carousel_type Optional enum The slideshow style used when there's more than one slide. Site default follows the IXM Blocks setting. Defaults to default. default, bootstrap, swiper
navigation Optional boolean Show previous and next arrows. Defaults to true. true
pagination Optional boolean Show the slide dots. Defaults to true. true
scrollbar Optional boolean Show a progress bar under the slides (Swiper style only). Defaults to false. false
autoplay Optional boolean Move to the next slide on a timer, with a pause button (Swiper style only). Defaults to false. false
autoplay_delay Optional integer How long each slide shows before the next one when slides play automatically. Defaults to 6. 6
hero_id Optional string Optional. Leave empty unless you need to link to it.

The banner's color_scheme only sets its carousel controls; each Hero Banner Slide's own color_scheme (see the Slide tab) colors that slide's text and background. They aren't linked: match them, or the arrows and dots can end up low-contrast against the slides.

Carousel type picks the slideshow library: Bootstrap or Swiper. Site default follows the setting at Configuration → Content → IXM Blocks (/admin/config/content/ixm-blocks), so one change switches every banner left on it. Choosing Bootstrap or Swiper here overrides that for a single banner, but its slides always follow the site setting, so leave banners on Site default unless you're sure the two match.

Slots

Slot Description
slides The slides. See the Slide tab.

A single-slide hero gets a smaller bottom padding at runtime

Multiple slides need extra space reserved for the carousel indicators/pagination dots; one slide doesn't, so it only keeps a small floor (--hero-content-pad-bottom-single) instead. hero-carousel-controller.js and hero-swiper.js swap .hero__banner's padding-bottom directly via inline style rather than toggling a specific utility class, so retheming that spacing (a different pb-* class, custom CSS, whatever) never silently breaks it.

Used inside the slides slot. Each slide is its own text block, plus an optional image or video background. Its props are grouped below by what they touch.

Content

Prop Required Type Description Example
eyebrow Optional string Small label shown above the title (e.g. 'Our Mission'). Our Mission
title Optional string The slide heading. Welcome to Our Site
body Optional string The slide text. <p>Discover amazing content and features.</p>
link_url Optional string Where the button links to. /about
link_text Optional string Link text Learn More
color_scheme Optional enum Keep Dark over images and video. Use Light only for a slide with no media. Defaults to dark. light, dark
heading_level Optional enum Use h1 only when this slide title is the page's main heading. Defaults to h1. h1, h2, h3, h4, h5, h6

Layout

Prop Required Type Description Example
content_alignment Optional enum Where the text sits. Not used by the Split layout. Defaults to left. left, center, right
content_valign Optional enum Show the text at the top, middle or bottom. Defaults to bottom. top, center, bottom

Media

Prop Required Type Description Example
video Optional object or string Upload a video. Plays on tablets and larger screens.
video_url Optional string Used when no video is uploaded.
desktop_image Optional object or string Shown when there's no video.
mobile_image Optional object or string Replaces the video or image on phones.
show_audio_controls Optional boolean Video only. Turn off for a silent background video. Defaults to true. true

desktop_image 16:9 · mobile_image 4:5 · video / video_url 16:9

Give autoplay video a pause control. → Full accessibility guidelines

Tokens used by this component

Token Default
--hero-banner-breakout-correction (unset — 0px until a theme sets it)
--hero-banner-cta-radius (unset — var(--theme-radius, 0) until a theme sets it)
--hero-carousel-control-width 15%
--hero-content-pad-bottom (unset — clamp(1.5rem, 0.5rem + 2vw, 2.5rem) until a theme sets it)
--hero-content-pad-bottom-single clamp(1rem, 0.5rem + 1vw, 1.5rem)
--hero-controls-* (several — see full reference)
--hero-eyebrow-color (unset — var(--bs-primary, #0a58ca) until a theme sets it)
--hero-eyebrow-color-light (unset — #fff until a theme sets it)
--hero-gradient-* (several — see full reference)
--hero-indicator-hit-padding 8px
--hero-min-height-desktop 600px
--hero-min-height-mobile 400px
--hero-nav-* (several — see full reference)
--hero-preloader-size 60px
--hero-split-* (several — see full reference)
--hero-video-max-height 56.25cqw
--hero-video-max-width 177.78cqh
--swiper-pagination-* (several — see full reference)
--swiper-theme-color var(--bs-light)

→ Full token reference
→ Retheming walkthrough: Retheme a Hero Banner