Gesso
Components

Page header

Top-of-panel heading bar. Title plus optional back, badge, subtitle, actions, and tabs.

A layout composition ported from Atlas. Baseline is min-h-[60px] with px-8 py-4. Title uses text-heading-4 font-display (or text-heading-3 via size). Subtitle is text-body-sm font-body text-fg-muted.

Slots are independent. breadcrumb wins over onBack. Action buttons should be default (medium) size, never sm. Pass a Chip or Badge into badge.

Projects

Active

12 open · last updated today

Wrap the header in Tabs and pass a TabsList into tabs so the list sits flush on the bottom edge (pb-0 on the header). Style the list as underlines if you want product nav rather than the default pill track.

Project atlas

Draft

Opened Jan 2026

Overview of the project.

Usage

import { Chip } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { PageHeader } from '@/components/ui/page-header';

<PageHeader
  title="Projects"
  badge={<Chip>Active</Chip>}
  subtitle="12 open"
  onBack={() => history.back()}
  actions={
    <>
      <Button variant="outline">Export</Button>
      <Button>New</Button>
    </>
  }
/>

Install

shadcn add @gesso/page-header

On this page