Skip to content

Page header ​

Breadcrumb, title, description and actions, with a pin for the current route.

Open in demo
Open in demo

Usage ​

Every page layout renders this header, so a page rarely reaches for it directly. Use it on its own where you want the header without the body a layout imposes.

title is the convenience; the #title slot wins when both are given.

The pin ​

The pin toggles the current route in the pinned list, which is what fills the sidebar's Pinned section. It writes usePinnedPages, stores the route's name, path and title, and it is the title you pass that gets pinned, falling back to meta.title and then to the path.

The pin carries sa-no-print, so it never appears on a printed page.

The print button ​

A route flagged meta.printable gets a print button in the actions area, before your own.

Do not set it on a list page. DataTable's toolbar ships its own print, so a printable list page shows two. Keep it for the printables that are not tables: an invoice, a report, a detail page.

Examples ​

A composed title ​

API ​

Source: src/shared/components/common/PageHeader.vue

Props ​

PropTypeDefaultDescription
titlestring—The heading. The #title slot wins over it.

Emits ​

None.

Slots ​

SlotDescription
breadcrumbAbove the title. Usually SmartBreadcrumb.
titleReplaces title.
descriptionUnder the title, in muted text.
actionsAt the end of the header row, after the print button if there is one.

Accessibility ​

  • The title is the page's <h1>.
  • The pin is named "Pin this page" or "Unpin this page" as its state changes.
  • The header stacks on a phone and becomes a row from the sm breakpoint, so the actions never crush the title.