Skip to content

Navigation Components

Navigation components provide consistent navigation patterns across the application, including vertical navigation menus, breadcrumbs, and navigation lists.

Vertical navigation menu with collapsible groups.

interface NavSectionVerticalProps {
data: NavListProps[];
sx?: SxProps;
}
interface NavListProps {
title: string;
path: string;
icon?: ReactElement;
info?: ReactElement;
caption?: string;
disabled?: boolean;
roles?: string[];
children?: NavListProps[];
}

Horizontal navigation menu for top bars.

interface NavSectionHorizontalProps {
data: NavListProps[];
sx?: SxProps;
}

Breadcrumb navigation trail.

interface BreadcrumbsProps {
links: Array<{
name: string;
href?: string;
icon?: ReactElement;
}>;
activeLast?: boolean;
}
import { NavSectionVertical } from 'src/components/nav-section';
const navConfig = [
{
title: 'Dashboard',
path: paths.home.main,
icon: <Icon icon="solar:home-bold-duotone" />,
},
{
title: 'Groups',
path: paths.home.group.main,
icon: <Icon icon="solar:users-group-rounded-bold-duotone" />,
children: [
{
title: 'My Groups',
path: paths.home.group.list,
},
{
title: 'Create Group',
path: paths.home.group.create,
},
],
},
];
function Sidebar() {
return <NavSectionVertical data={navConfig} />;
}
import { Breadcrumbs } from 'src/components/breadcrumbs';
function GroupDetailHeader() {
return (
<Breadcrumbs
links={[
{ name: 'Home', href: paths.home.main },
{ name: 'Groups', href: paths.home.group.list },
{ name: group.name },
]}
/>
);
}
  • Active state: Automatically highlights current route
  • Collapsible: Sub-menus expand/collapse on click
  • Responsive: Adapts to mobile with drawer component
  • Accessibility: Keyboard navigation and ARIA labels
it('should highlight active route', () => {
render(<NavSectionVertical data={navConfig} />);
expect(screen.getByText('Dashboard')).toHaveClass('active');
});