Page Breadcrumbs
Full-width breadcrumb row for page chrome, placed above PageHeader and page content.
Loading...
import Link from 'next/link'
import {
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
Button,
} from 'ui'
import { PageBreadcrumbs, PageBreadcrumbsActions } from 'ui-patterns/PageBreadcrumbs'
export function PageBreadcrumbsDemo() {
return (
<div className="w-full">
<PageBreadcrumbs
actions={
<PageBreadcrumbsActions>
<Button type="primary" size="tiny">
Create
</Button>
</PageBreadcrumbsActions>
}
>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink asChild>
<Link href="/project/demo">Project</Link>
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Database</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</PageBreadcrumbs>
</div>
)
}Usage
import { PageBreadcrumbs, PageBreadcrumbsActions } from 'ui-patterns/PageBreadcrumbs'<PageBreadcrumbs
actions={
<PageBreadcrumbsActions>
<Button type="primary" size="tiny">
Create
</Button>
</PageBreadcrumbsActions>
}
>
<BreadcrumbList>{/* … */}</BreadcrumbList>
</PageBreadcrumbs>Sub-components
PageBreadcrumbs— bordered, full-width breadcrumb bar (wraps shadcnBreadcrumb)PageBreadcrumbsActions— actions on the right of the breadcrumb row (pass viaactionsprop)
PageBreadcrumbs uses PageContainer with size="full" for width and padding. It does not depend on PageHeader.
Place it as a sibling above PageHeader and page content, not inside PageHeader. For legacy pages that still nest breadcrumbs inside PageHeader, use PageHeaderBreadcrumb instead.