The closing ask — one heading, one sentence, one button, in a band. Bare it is neutral, drawn in the page's own ink; fill paints it. The accent fill is deliberately the loudest thing on a page, which is the argument for having exactly one of them.
These are full-width bands, so the specimens below are cramped by the documentation column. Use Full page preview on any example to see it own the viewport.
No fill — the complete neutral, drawn in the page's own ink. This is the band you get by asking for nothing, and it is finished, not an abstract waiting for a variant.
Start from a theme that already knows what a page is made of.
<section class="mk-section">
<div class="mk-container">
<div class="mk-cta text-center">
<div class="mk-measure mk-measure--inset">
<h2 class="mb-2">Ready to build something?</h2>
<p class="mb-0 text-body-secondary">Start from a theme that already knows what a page is made of.</p>
</div>
<div class="mt-4">
<a class="mk-btn mk-btn--inverse mk-btn--lg" href="#">Get started</a>
</div>
</div>
</div>
</section> title: Ready to build something?
body: Start from a theme that already knows what a page is made of.
cta_label: Get started
cta_href: # fill: primary — one step up, not a rescue. Deliberately the loudest thing on a page, which is the argument for having exactly one of them.
Start from a theme that already knows what a page is made of.
<section class="mk-section">
<div class="mk-container">
<div class="mk-cta mk-cta--primary text-center" data-bs-theme="dark">
<div class="mk-measure mk-measure--inset">
<h2 class="mb-2">Ready to build something?</h2>
<p style="opacity:.85" class="mb-0">Start from a theme that already knows what a page is made of.</p>
</div>
<div class="mt-4">
<a class="mk-btn mk-btn--inverse mk-btn--lg" href="#">Get started</a>
</div>
</div>
</div>
</section> fill: primary
title: Ready to build something?
body: Start from a theme that already knows what a page is made of.
cta_label: Get started
cta_href: # fill: muted with align: start — a wash of the page's own ink, reading as part of the page rather than a full stop. The shape for a band that sits mid-scroll.
Next step
Every partial here takes the same fields the CMS hands to editors.
<section class="mk-section">
<div class="mk-container">
<div class="mk-cta mk-cta--muted">
<div class="mk-row mk-row--weighted-left align-items-center" style="--mk-row-weighted:66">
<div>
<p class="mk-eyebrow text-uppercase fw-semibold mb-2">Next step</p>
<h2 class="mb-2">Bring your own content.</h2>
<p style="opacity:.85" class="mb-0">Every partial here takes the same fields the CMS hands to editors.</p>
</div>
<div class="text-lg-end">
<a class="mk-btn mk-btn--inverse mk-btn--lg" href="#">Read the docs</a>
</div>
</div>
</div>
</div>
</section> fill: muted
align: start
eyebrow: Next step
title: Bring your own content.
body: Every partial here takes the same fields the CMS hands to editors.
cta_label: Read the docs
cta_href: # | Field | Type | Notes |
|---|---|---|
padding |
text | Vertical rhythm. `mk-section` for the section rhythm; the default is kept while 25 callers still expect it |
fill |
text | empty (neutral outline), primary (accent gradient), or muted |
eyebrow |
text | |
title |
text | |
body |
textarea | |
cta_label |
text | |
cta_href |
url | |
cta_variant |
text | |
container |
text | |
align |
text | center or start |
shape_bottom |
group | Cuts the band's BOTTOM edge. The shape is painted in this band's own ground and hangs over the band below, so the band below declares nothing. |
shape_top |
group | The same, on the band's TOP edge — it hangs upward over the band above. |
class_names |
text |