Skip to main content
The DsPageHeading component displays a page title with optional subtitle content and action buttons. It features a full-width bottom border that spans the entire viewport.

Component Location

Props

Slots

Basic Usage

With Description

Without Border

Use :show-border="false" to disable the bottom border. This is useful when the page has its own border elements (like tabs with full-width borders):

With Action Buttons

Use the #actions slot to add buttons on the right side:

With Custom Content (Default Slot)

Use the default slot to add flexible content below the title. This can include text, Vue components, or any custom markup:

With Dynamic Content

With Vue Components

With Breadcrumb Navigation

When adding breadcrumb navigation to a page heading, you MUST use RouterLink with the as-child pattern. Never use the href attribute directly on BreadcrumbLink as it creates a regular <a> element that causes full page reloads.

With Breadcrumb and Actions

Full Example

Combining all features:

Styling

The component uses these key styles:
  • Title: 32px font size, medium weight, tight letter-spacing (text-[32px] tracking-[-0.79px] font-medium)
  • Description prop: Muted color (text-muted-foreground), tight gap from title (gap-1)
  • Default slot: Smaller text (text-sm), normal text color, spaced from title (gap-4)
  • Full-width border: Uses CSS pseudo-element (after:w-screen) to extend beyond container
  • Responsive layout: Stacks vertically on mobile, horizontal on lg breakpoint

Visual Hierarchy