Section
Page section surface with an optional heading and subtitle above a slotted body.
Use when you need to label a major region of a page with an accessible level-2 heading and optional subtitle above its content —
<r-section>provides the header row and body surface.
Quick Start
Basic Usage
Body content goes in the default slot.
<r-section heading="Section heading" subtitle="A short line describing this section.">
<p>Body content goes in the default slot.</p>
</r-section>API Reference
Properties
| Property | Type | Default | Description |
|---|---|---|---|
heading | string | '' | Section heading, rendered as an ARIA level-2 heading |
subtitle | string | '' | Supporting line below the heading |
sheet | string | '' | CSS injected into the section's shadow DOM |
The header row (heading + subtitle) is hidden entirely when both heading and subtitle are empty.
Heading heading
The section heading, rendered as an ARIA level-2 heading (role="heading", aria-level="2"). Hidden when empty.
Body content.
<r-section heading="Only a heading">
<p>Body content.</p>
</r-section>Subtitle subtitle
A supporting line below the heading. Hidden when empty.
Body content.
<r-section heading="Heading" subtitle="Supporting subtitle text.">
<p>Body content.</p>
</r-section>Shadow CSS sheet
CSS injected into the section's shadow DOM — the same sheet convention used by every other ranui component.
Body content.
<r-section heading="Themed section" sheet=".ran-section-heading { color: #006bff; }">
<p>Body content.</p>
</r-section>Slots
| Slot | Description |
|---|---|
| (default) | Body content, rendered below the header row. |
CSS Parts
| Part | Description |
|---|---|
header | The header row wrapping heading + subtitle |
heading | The ARIA level-2 heading element |
subtitle | The supporting subtitle line |
body | The body wrapper around the default slot |
CSS variables exposed: --ran-section-border-color, --ran-section-radius, --ran-section-background, --ran-section-shadow, --ran-section-padding, --ran-section-heading-color, --ran-section-heading-font-size, --ran-section-heading-font-weight, --ran-section-subtitle-color.
r-section {
--ran-section-background: var(--surface-1);
--ran-section-padding: 32px;
--ran-section-heading-color: var(--text-strong);
}
r-section::part(subtitle) {
max-width: 48ch;
}Best Practices
- Section titles: Set
headingto label each major region of a page. - Context: Use
subtitlefor a short supporting line; omit both to render a plain surface with no header row. - Accessibility: The heading is exposed as an ARIA level-2 heading, so it participates in the document outline — keep headings meaningful.
- Theming: Prefer the
--ran-section-*CSS variables or::part()selectors over thesheetattribute for reusable styling.