The title block of a page: breadcrumb or eyebrow, the page's one h1 in the display font, description, status meta, actions and sub-tabs. Server-compatible; the automatic breadcrumb reads the App shell's active trail.
Content
Posts
128 posts · 6 scheduled for this week. Drafts older than 90 days are archived automatically.
Installation
The whole kit as one package — get updates by bumping the version. Add the styles to globals.css: @import "@vamos-ui/react/styles.css";
Usage
import { PageHeader, Button } from "@vamos-ui/react";
<PageHeader
eyebrow="Content"
title="Posts"
description="128 posts · 6 scheduled"
actions={<Button variant="primary">New post</Button>}
/>Examples
Record page
back links up a level; meta sits next to the title; menu puts secondary actions in a “⋯” dropdown.
Hannah Lindqvist
With sub-tabs
tabs attaches route tabs to the header's bottom edge.
People
Payroll · November 2026
42 employees · due Nov 28
Sizes
lg 40px for dashboards, md 30px for lists, sm 22px for records — scaled by the font preset. <em> follows the preset (italic in serif headings).
Monday, November 10
Good morning, Ada.
What happened on your site in the last 30 days.
Contacts
2,418 people · 312 added this month
Leave request #1042
Loading
loading keeps the h1 in place with a skeleton line.
Loading company…
API
PageHeader
| Prop | Type | Default |
|---|---|---|
titleThe page's one <h1>. | ReactNode | — |
eyebrowSmall line above the title. Not uppercased with CSS (Turkish i/İ). | ReactNode | — |
breadcrumb"auto": built from the App shell trail. | ReactNode | "auto" | — |
back“← Contacts” link above the title. | { href: string; label: string } | — |
descriptionOne or two lines under the title. | ReactNode | — |
metaBadges, “Updated 2h ago” — next to the title. | ReactNode | — |
actionsButtons; wrap under the title on narrow screens. | ReactNode | — |
menuSecondary actions in a “⋯” menu. | MenuEntry[] | — |
tabsSub-navigation on the bottom edge. | ReactNode | — |
size22 / 30 / 40 px × --display-scale. | "sm" | "md" | "lg" | "md" |
alignCentered for empty pages and onboarding. | "start" | "center" | "start" |
stickySticks under the top bar on the bar surface. | boolean | false |
loadingSkeleton in the h1 (aria-busy). | boolean | false |
PageHeaderTitle · PageHeaderEyebrow · PageHeaderDescription · PageHeaderActions · PageHeaderTabs
| Prop | Type | Default |
|---|---|---|
sizePageHeaderTitle only. | "sm" | "md" | "lg" | — |
classNameParts for custom layouts. | string | — |