note

This rune is part of @refrakt-md/marketing. Install with npm install @refrakt-md/marketing and add "@refrakt-md/marketing" to the packages array in your refrakt.config.json.

Hero

Full-width intro section for the top of a page. Headings and paragraphs become the header, links become action buttons, and code fences become copyable command blocks. The first link is styled as a primary button. For smaller, focused action blocks that can appear anywhere, use CTA instead.

Basic usage

A centered hero section with headline, description, and action buttons.

{% hero %}

Whats new [Version 1.0](#)

# Build with refrakt.md

A content framework that turns Markdown into rich, semantic pages. Write standard Markdown — runes decide how it's interpreted.

- [Get started](/docs/getting-started)
- [View on GitHub](https://github.com/refrakt-md/refrakt)
{% /hero %}
<section data-field="content-section" data-rune="hero">
  <meta content="center" data-field="align">
  <meta content="stacked" data-field="layout">
  <div data-name="content">
    <header>
      <p data-name="eyebrow">
        Whats new
        <a href="#">Version 1.0</a>
      </p>
      <h1 id="build-with-refrakt.md" data-name="headline">Build with refrakt.md</h1>
      <p data-name="blurb">A content framework that turns Markdown into rich, semantic pages. Write standard Markdown — runes decide how it's interpreted.</p>
    </header>
    <div data-name="actions">
      <ul>
        <li data-name="action">
          <a href="/docs/getting-started">
            <span>Get started</span>
          </a>
        </li>
        <li data-name="action">
          <a href="https://github.com/refrakt-md/refrakt">
            <span>View on GitHub</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</section>

Whats new Version 1.0

Build with refrakt.md

A content framework that turns Markdown into rich, semantic pages. Write standard Markdown — runes decide how it's interpreted.

<section data-field="content-section" class="rf-hero rf-hero--stacked rf-hero--center rf-hero--full" data-layout="stacked" data-align="center" data-ratio="1 1" data-valign="top" data-gap="default" data-width="full" data-rune="hero" data-density="full" style="--split-ratio: 1fr 1fr; --split-valign: start; --split-gap: var(--rf-spacing-md)">
  <div data-name="content" class="rf-hero__content">
    <header data-name="preamble" class="rf-hero__preamble" data-section="preamble">
      <p data-name="eyebrow" class="rf-hero__eyebrow">
        Whats new 
        <a href="#">Version 1.0</a>
      </p>
      <h1 id="build-with-refrakt.md" data-name="headline" class="rf-hero__headline" data-section="title">Build with refrakt.md</h1>
      <p data-name="blurb" class="rf-hero__blurb" data-section="description">A content framework that turns Markdown into rich, semantic pages. Write standard Markdown — runes decide how it's interpreted.</p>
    </header>
    <div data-name="actions" class="rf-hero__actions">
      <ul>
        <li data-name="action">
          <a href="/docs/getting-started">
            <span>Get started</span>
          </a>
        </li>
        <li data-name="action">
          <a href="https://github.com/refrakt-md/refrakt">
            <span>View on GitHub</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</section>

With command block

Code fences inside a hero become copyable command blocks — great for install commands on landing pages.

{% hero %}
# Get started in seconds

Scaffold a project and start writing.

```shell
npm create refrakt
```

- [Documentation](/docs/getting-started)
{% /hero %}
<section data-field="content-section" data-rune="hero">
  <meta content="center" data-field="align">
  <meta content="stacked" data-field="layout">
  <div data-name="content">
    <header>
      <h1 id="get-started-in-seconds" data-name="headline">Get started in seconds</h1>
      <p data-name="blurb">Scaffold a project and start writing.</p>
    </header>
    <div data-name="actions">
      <div data-name="command">
        <div class="rf-codeblock" data-name="command">
          <pre data-language="shell">
            <code data-language="shell">npm create refrakt
</code>
          </pre>
        </div>
      </div>
      <ul>
        <li data-name="action">
          <a href="/docs/getting-started">
            <span>Documentation</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</section>

Get started in seconds

Scaffold a project and start writing.

npm create refrakt
<section data-field="content-section" class="rf-hero rf-hero--stacked rf-hero--center rf-hero--full" data-layout="stacked" data-align="center" data-ratio="1 1" data-valign="top" data-gap="default" data-width="full" data-rune="hero" data-density="full" style="--split-ratio: 1fr 1fr; --split-valign: start; --split-gap: var(--rf-spacing-md)">
  <div data-name="content" class="rf-hero__content">
    <header data-name="preamble" class="rf-hero__preamble" data-section="preamble">
      <h1 id="get-started-in-seconds" data-name="headline" class="rf-hero__headline" data-section="title">Get started in seconds</h1>
      <p data-name="blurb" class="rf-hero__blurb" data-section="description">Scaffold a project and start writing.</p>
    </header>
    <div data-name="actions" class="rf-hero__actions">
      <div data-name="command" class="rf-hero__command">
        <div class="rf-hero__command rf-codeblock" data-name="command">
          <pre data-language="shell"><code data-language="shell">npm create refrakt
</code></pre>
        </div>
      </div>
      <ul>
        <li data-name="action">
          <a href="/docs/getting-started">
            <span>Documentation</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</section>

Left-aligned

Use align="left" for a more editorial feel.

{% hero align="left" %}
# Documentation that writes itself

Semantic runes transform your Markdown into structured, accessible content.

- [Quick start](/docs/getting-started)
{% /hero %}
<section data-field="content-section" data-rune="hero">
  <meta content="left" data-field="align">
  <meta content="stacked" data-field="layout">
  <div data-name="content">
    <header>
      <h1 id="documentation-that-writes-itself" data-name="headline">Documentation that writes itself</h1>
      <p data-name="blurb">Semantic runes transform your Markdown into structured, accessible content.</p>
    </header>
    <div data-name="actions">
      <ul>
        <li data-name="action">
          <a href="/docs/getting-started">
            <span>Quick start</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</section>

Documentation that writes itself

Semantic runes transform your Markdown into structured, accessible content.

<section data-field="content-section" class="rf-hero rf-hero--stacked rf-hero--left rf-hero--full" data-layout="stacked" data-align="left" data-ratio="1 1" data-valign="top" data-gap="default" data-width="full" data-rune="hero" data-density="full" style="--split-ratio: 1fr 1fr; --split-valign: start; --split-gap: var(--rf-spacing-md)">
  <div data-name="content" class="rf-hero__content">
    <header data-name="preamble" class="rf-hero__preamble" data-section="preamble">
      <h1 id="documentation-that-writes-itself" data-name="headline" class="rf-hero__headline" data-section="title">Documentation that writes itself</h1>
      <p data-name="blurb" class="rf-hero__blurb" data-section="description">Semantic runes transform your Markdown into structured, accessible content.</p>
    </header>
    <div data-name="actions" class="rf-hero__actions">
      <ul>
        <li data-name="action">
          <a href="/docs/getting-started">
            <span>Quick start</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</section>

Attributes

AttributeTypeDefaultDescription
alignstringcenterContent alignment: left, center, or right
layoutstringstackedLayout mode: stacked, split, or split-reverse
ratiostring1 1Column width ratio in split layout (e.g., 2 1, 1 2)
valignstringtopVertical alignment in split layout: top, center, or bottom
gapstringdefaultGap between columns: none, tight, default, or loose
collapsestringCollapse to single column at breakpoint: sm, md, lg, or never

Section header

Hero supports an optional eyebrow, headline, and blurb above the headline and description. Place a short paragraph or heading before the main content to use them. See Page sections for the full syntax.

Common attributes

All block runes share these attributes for layout and theming.

AttributeTypeDefaultDescription
widthstringcontentPage grid width: content, wide, or full
spacingstringVertical spacing: flush, tight, default, loose, or breathe
insetstringHorizontal padding: flush, tight, default, loose, or breathe
tintstringNamed colour tint from theme configuration
tint-modestringautoColour scheme override: auto, dark, or light
bgstringNamed background preset from theme configuration