Page Nav
Full-width sub-navigation row for page chrome, placed below breadcrumbs and outside PageHeader.
Loading...
'use client'
import { useState } from 'react'
import { NavMenu, NavMenuItem } from 'ui'
import { PageNav } from 'ui-patterns/PageNav'
const pages = [
{ id: 'overview', label: 'Overview' },
{ id: 'logs', label: 'Logs' },
{ id: 'settings', label: 'Settings' },
] as const
export function PageNavDemo() {
const [activePage, setActivePage] = useState<(typeof pages)[number]['id']>('overview')
return (
<div className="w-full">
<PageNav>
<NavMenu>
{pages.map((page) => (
<NavMenuItem key={page.id} active={activePage === page.id}>
<button
type="button"
aria-pressed={activePage === page.id}
className="h-full cursor-pointer appearance-none bg-transparent text-inherit"
onClick={() => setActivePage(page.id)}
>
{page.label}
</button>
</NavMenuItem>
))}
</NavMenu>
</PageNav>
</div>
)
}Usage
import { NavMenu, NavMenuItem } from 'ui'
import { PageNav } from 'ui-patterns/PageNav'<PageNav>
<NavMenu>
<NavMenuItem active>Overview</NavMenuItem>
<NavMenuItem>Logs</NavMenuItem>
</NavMenu>
</PageNav>Sub-components
PageNav— bordered, full-width container forNavMenutab navigation
PageNav uses PageContainer with size="full" for width and padding. It does not depend on PageHeader.
Place it directly below PageBreadcrumbs and outside PageHeader. For legacy pages, PageHeaderNavigationTabs remains available on PageHeader.