Contact Us

Heading-Band Hero Example

Hero Variants

Heading-Band Hero Example

Hero rendered in main-header to satisfy route-level heading-band placement.

Hero heading-band sample
Show code
<LayoutSection background="soft" verticalPadding="2xl">
  <Hero
    heading="Heading-Band Hero Example"
    subheading="Hero rendered in main-header to satisfy route-level heading-band placement."
    primaryAction={{ label: "Primary Action", href: "/theme-docs/" }}
    secondaryAction={{ label: "Secondary Action", href: "/about/" }}
    image={{ src: heroImage, alt: "Hero heading-band sample" }}
    splitAt="lg"
  />
</LayoutSection>

Text-Only Hero

Text-only hero verifies baseline heading, body copy, and action behavior.

Show code
<LayoutSection verticalPadding="2xl">
  <Hero
    heading="Text-Only Hero"
    subheading="Text-only hero verifies baseline heading, body copy, and action behavior."
    primaryAction={{ label: "Primary Action", href: "/theme-docs/" }}
    secondaryAction={{ label: "Secondary Action", href: "/articles/" }}
  />
</LayoutSection>

Hero with Right-Side Media

Validates image-aware layout with the default large-screen split breakpoint.

Hero preview image
Show code
<LayoutSection background="soft" verticalPadding="2xl">
  <Hero
    heading="Hero with Right-Side Media"
    subheading="Validates image-aware layout with the default large-screen split breakpoint."
    primaryAction={{ label: "Explore Docs", href: "/theme-docs/" }}
    image={{ src: heroImage, alt: "Hero preview image" }}
    splitAt="lg"
    imagePosition="right"
  />
</LayoutSection>

Hero with Left-Side Media

Validates alternate image placement and earlier split breakpoint behavior.

Hero preview image
Show code
<LayoutSection background="contrast" verticalPadding="2xl">
  <Hero
    heading="Hero with Left-Side Media"
    subheading="Validates alternate image placement and earlier split breakpoint behavior."
    primaryAction={{ label: "Read Articles", href: "/articles/" }}
    image={{ src: heroImage, alt: "Hero preview image" }}
    splitAt="md"
    imagePosition="left"
  />
</LayoutSection>

Center-Aligned Hero with Actions

Validates center alignment in the complex (action) rendering path.

Show code
<LayoutSection verticalPadding="2xl">
  <Hero
    heading="Center-Aligned Hero with Actions"
    subheading="Validates center alignment in the complex (action) rendering path."
    primaryAction={{ label: "Primary Action", href: "/theme-docs/" }}
    secondaryAction={{ label: "Secondary Action", href: "/about/" }}
    align="center"
  />
</LayoutSection>

Right-Aligned Hero with Actions

Validates right alignment in the complex (action) rendering path.

Show code
<LayoutSection verticalPadding="2xl">
  <Hero
    heading="Right-Aligned Hero with Actions"
    subheading="Validates right alignment in the complex (action) rendering path."
    primaryAction={{ label: "Primary Action", href: "/theme-docs/" }}
    align="right"
  />
</LayoutSection>

Center-Aligned Hero with Image

Validates center alignment in the image+grid rendering path.

Hero preview image
Show code
<LayoutSection background="soft" verticalPadding="2xl">
  <Hero
    heading="Center-Aligned Hero with Image"
    subheading="Validates center alignment in the image+grid rendering path."
    primaryAction={{ label: "Explore Docs", href: "/theme-docs/" }}
    image={{ src: heroImage, alt: "Hero preview image" }}
    splitAt="lg"
    align="center"
  />
</LayoutSection>

Right-Aligned Hero with Image

Validates right alignment in the image+grid rendering path.

Hero preview image
Show code
<LayoutSection background="contrast" verticalPadding="2xl">
  <Hero
    heading="Right-Aligned Hero with Image"
    subheading="Validates right alignment in the image+grid rendering path."
    primaryAction={{ label: "Read Articles", href: "/articles/" }}
    image={{ src: heroImage, alt: "Hero preview image" }}
    splitAt="lg"
    align="right"
  />
</LayoutSection>

Minimal Hero (Page-Title Band)

Left-Aligned Page Title

Default variant — compact heading band with no actions or image.

Centered Page Title

Used for focused landing pages or error pages.

Right-Aligned Page Title

Verifies on-surface foreground handling.

Show code
{/* Left-aligned default (compact page-title band) */}
<LayoutSection background="default" contentWidth="wide" verticalPadding="lg">
  <Hero
    heading="Left-Aligned Page Title"
    subheading="Default variant — compact heading band with no actions or image."
    align="left"
  />
</LayoutSection>

{/* Centered soft */}
<LayoutSection background="soft" contentWidth="wide" verticalPadding="xl">
  <Hero
    heading="Centered Page Title"
    subheading="Used for focused landing pages or error pages."
    align="center"
  />
</LayoutSection>

{/* Right-aligned contrast */}
<LayoutSection background="contrast" contentWidth="wide" verticalPadding="lg">
  <Hero
    heading="Right-Aligned Page Title"
    subheading="Verifies on-surface foreground handling."
    align="right"
  />
</LayoutSection>

CallToAction Variants

Start Your Implementation Pass

Stacked CTA keeps focus on one primary action with optional secondary support.

Show code
<SurfaceBox background="soft" class="py-xl">
  <CallToAction
    heading="Start Your Implementation Pass"
    body="Stacked CTA keeps focus on one primary action with optional secondary support."
    primaryAction={{ label: "Start", href: "/theme-docs/" }}
    secondaryAction={{ label: "Learn More", href: "/about/" }}
    layout="stacked"
  />
</SurfaceBox>

Rounded Card CTA

Demonstrates the rounded prop for card-style call-to-action blocks.

Show code
<SurfaceBox background="contrast" class="rounded-xl">
  <CallToAction
    heading="Rounded Card CTA"
    body="Demonstrates the rounded prop for card-style call-to-action blocks."
    primaryAction={{ label: "Get Started", href: "/theme-docs/" }}
    layout="stacked"
  />
</SurfaceBox>

Need a More Visual CTA?

Split CTA renders content and media side by side on medium+ viewports.

Show code
<SurfaceBox background="contrast" class="py-xl">
  <CallToAction
    heading="Need a More Visual CTA?"
    body="Split CTA renders content and media side by side on medium+ viewports."
    primaryAction={{ label: "View Examples", href: "/theme-docs/showcase/" }}
    media={{ src: heroImage, alt: "CTA media sample" }}
    layout="split"
  />
</SurfaceBox>

Split Layout Without Media

This case should collapse to stacked presentation per C5 contract.

Show code
{/* Split without media collapses to stacked */}
<SurfaceBox background="inverted" class="py-xl">
  <CallToAction
    heading="Split Layout Without Media"
    body="This case should collapse to stacked presentation per C5 contract."
    primaryAction={{ label: "Verify Behavior", href: "/theme-docs/" }}
    layout="split"
  />
</SurfaceBox>

Split: Actions Start

With layout='split-actions-start', buttons appear on the left with content on the right.

Show code
<SurfaceBox background="soft" class="py-xl">
  <CallToAction
    heading="Split: Actions Start"
    body="With layout='split-actions-start', buttons appear on the left with content on the right."
    primaryAction={{ label: "Left Action", href: "/theme-docs/" }}
    secondaryAction={{ label: "Secondary", href: "/about/" }}
    layout="split-actions-start"
  />
</SurfaceBox>

Split: Actions End

With layout='split-actions-end', content appears on the left with buttons on the right.

Show code
<SurfaceBox background="contrast" class="py-xl">
  <CallToAction
    heading="Split: Actions End"
    body="With layout='split-actions-end', content appears on the left with buttons on the right."
    primaryAction={{ label: "Right Action", href: "/theme-docs/" }}
    secondaryAction={{ label: "Secondary", href: "/about/" }}
    layout="split-actions-end"
  />
</SurfaceBox>

Search

Search across pages and articles. Use arrow keys to navigate results.

Search across pages and articles.

Loading search...

Search is unavailable. Please try again later.

    No results for ""

    Try different keywords or fewer words.