component :: Section
The .section component is the workhorse wrapper marketing pages are made of: a full-width band with vertical rhythm, an optional eyebrow/title/lede header, and background variants.
Why mCSS
Everything is a section
Stack a few of these and you have a landing page.
Section content goes here.
| File | Description | Source |
|---|---|---|
component.section.css |
All section styles | Github |
Section.astro |
The Astro component | Github |
--section-* block in default theme |
Theme tokens (see table below) | Github |
Depends on .wrap (global.wrap.css), part of the mCSS core: children align to the same content column as the rest of the page, and the wide preset lets grids escape the reading column.
Playground
Why mCSS
Everything is a section
Stack a few of these and you have a landing page.
Section content goes here.
Variation
Layout
Content
<section class="section wrap">
<header class="section_header">
<p class="section_eyebrow">Why mCSS</p>
<h2 class="section_title">Everything is a section</h2>
<p class="section_lede">Stack a few of these and you have a landing page.</p>
</header>
<p class="text-center">Section content goes here.</p>
</section>HTML
<section class="section wrap section-filled"> <header class="section_header"> <p class="section_eyebrow">Why mCSS</p> <h2 class="section_title">Everything is a section</h2> <p class="section_lede">Stack a few of these and you have a landing page.</p> </header> <!-- content: paragraphs, grids, cards… --></section>Available modifiers
| Class | Description |
|---|---|
.section |
Default. Transparent background, --section-spacing vertical padding. |
.section + .section-filled |
Subtle filled band. |
.section + .section-primary |
Primary-colored band; text and links switch to the inverted colors. |
.section + .section-wide |
Widens the content column to --section-wide-width. |
Elements
| Class | Description |
|---|---|
.section_header |
Centered eyebrow/title/lede block. |
.section_eyebrow |
Small uppercase kicker. |
.section_title |
The h2. |
.section_lede |
Intro paragraph. |
.section_actions |
Centered, wrapping button row (see the closing-CTA recipe below). |
Custom properties
The following custom properties are available in the default theme:
| Property | Description |
|---|---|
--section-spacing |
Vertical padding of the band. |
--section-header-spacing |
Space between the header and content. |
--section-wide-width |
Content column width of the wide preset. |
--section-eyebrow-color |
Eyebrow text color. |
--section-lede-color |
Lede text color. |
--section-filled-background-color |
Background of the filled variant. |
--section-primary-background-color |
Background of the primary variant. |
--section-primary-text-color |
Text color on the primary variant. |
--section-primary-link-color |
Link color on the primary variant. |
--section-primary-link-color-hover |
Link hover color on the primary variant. |
--section-primary-eyebrow-color |
Eyebrow color on the primary variant. |
--section-primary-lede-color |
Lede color on the primary variant. |
Astro component
| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow |
string |
undefined |
Small uppercase kicker above the title. |
title |
string |
undefined |
The section’s h2. |
lede |
string |
undefined |
Intro paragraph under the title. |
variant |
string |
undefined |
filled, primary. |
width |
string |
undefined |
wide. |
class |
string |
undefined |
Additional CSS classes, useful for helper classes. |
Any other attribute is passed through to the root <section> element (handy for id anchors). The default slot is the section content.
Examples
Pricing
Primary band
Text and links flip to the inverted palette.
---import Section from "../components/Section.astro";---<Section eyebrow="Pricing" title="Primary band" variant="primary"><p>Text and <a href="/docs">links</a> flip to the inverted palette.</p></Section>Wide section
123<Section title="Wide section" width="wide" variant="filled"><div class="grid" col="3">…</div></Section>The closing CTA every marketing page ends on is not a separate component; it is a Section with a
.section_actionsrow:Ready to own your CSS?
Copy the framework, edit the tokens, ship the site.
<Section title="Ready to own your CSS?" lede="Copy the framework, edit the tokens, ship the site." variant="primary"><div class="section_actions"><a class="bt bt-lg bt-outline-white" href="/docs/start">Get started</a></div></Section>