Skip to content

PageHeader ​

The top of a page: breadcrumb, title, status, description and the page's main actions.

Open in Storybook to try every prop.

When to use ​

Every page inside AppShell, as the first thing in the page.

Anatomy ​

PartRequiredNotes
breadcrumbNoShown when there are two or more steps. Pass sidebarTrail(items).
titleYesThe page's h1.
badgeNoSlot after the title, e.g. a status Badge ("Draft").
descriptionNoA sentence under the title.
actionsNoSlot on the right, e.g. Buttons, an AvatarGroup. Wraps under the title on narrow screens.
belowNoDefault slot, under everything, e.g. an alert or tabs.

Properties ​

PropertyTypeDefaultDescription
titlestring—Required.
descriptionstring—Slot description for links or formatting.
breadcrumbBreadcrumbItem[]—Top level first, the current page last.
linkComponentstring | ComponentaFor breadcrumb steps with to.
ui—Extra classes per part.

Sizes ​

PartValue
Title24px / 32px, bold, wraps
Description14px / 20px, black 65%, up to 65 characters wide
Breadcrumb to title8px
Title to description4px
Title to badge8px
Title block to actions24px across, 12px when wrapped under
Between actions8px

Behaviour ​

SituationResult
Narrow screenActions wrap under the title
Long titleWraps onto more lines
One breadcrumb stepBreadcrumb hidden (the title says it)

Accessibility ​

PartAnnounced as
Titleheading level 1
Breadcrumbnavigation named "Breadcrumb"
Containerheader inside main, so not a banner landmark

Platform adaptation ​

PlatformImplementationDifferences
Web / desktop (Vue)PageHeader.vue—
iOS (SwiftUI)—navigationTitle and toolbar items.
Android (Compose)—Top app bar title and actions.

Tokens used ​

TokenUsed for
color blacktitle
color black (65%)description

Do / Don't ​

DoDon't
Put the page's one primary action herePut several primary buttons side by side
Use the badge for the page's statusPut long text in the badge

Released under the PolyForm Noncommercial License 1.0.0.