Vertical side navigation panel with optional collapsing support.
Adapts to AppShell render modes (inline, drawer, topbar).
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
collapseBreakpoint = " none "
< SideNavHeading heading = " Silver " logo = { logo } subheading = " Workspace " />
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
< SideNavHeading heading = " Silver " logo = { logo } subheading = " Workspace " />
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
collapseBreakpoint = " none "
content: < Avatar name = " Ada Lovelace " size = " small " />,
< SideNavHeading heading = " Silver " logo = { logo } subheading = " Workspace " />
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
content: < Avatar name = " Ada Lovelace " size = " small " />,
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< div style = { {height: 420 } } >
content: < Avatar name = " Ada Lovelace " size = " small " />,
header = { < SideNavHeading heading = " Silver " logo = { logo } /> } >
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
function WithTopContent () {
const [ search , setSearch ] = useState ( '' );
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> }
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavItem icon = { Archive } isDisabled label = " Archive " />
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection endContent = { < Plus size = { 14 } /> } title = " Projects " >
endContent = { < Badge label = " 3 " /> }
endContent = { < Badge label = " 12 " /> }
< SideNavItem href = " /trash " icon = { Trash } label = " Trash " />
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Actions " >
< SideNavItem icon = { Home } isSelected label = " Home " onClick = { () => {} } />
< SideNavItem icon = { Search } label = " Search " onClick = { () => {} } />
< SideNavItem icon = { Settings } label = " Settings " onClick = { () => {} } />
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection isHeaderHidden title = " Primary " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavSection subtitle = " Personal files " title = " Documents " >
< SideNavItem href = " /files " icon = { File } label = " All files " />
< SideNavItem href = " /folders " icon = { Folder } label = " Folders " />
< SideNavItem href = " /starred " icon = { Star } label = " Starred " />
< SideNavSection title = " Team " >
< SideNavItem href = " /members " icon = { Users } label = " Members " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
headerEndContent = { < ChevronDown size = { 16 } /> }
subheading = " Design System "
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /settings " icon = { Settings } label = " Settings " />
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /inbox " icon = { Inbox } label = " Inbox " />
< SideNavItem icon = { Settings } isCollapsible label = " Settings " >
< SideNavItem href = " /general " label = " General " />
< SideNavItem href = " /security " label = " Security " />
< SideNavItem href = " /notifications " label = " Notifications " />
< div style = { {height: 420 } } >
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Main " >
< SideNavItem href = " / " icon = { Home } isSelected label = " Home " />
< SideNavItem href = " /general " label = " General " />
< SideNavItem href = " /security " label = " Security " />
< SideNavItem href = " /team " icon = { Users } isCollapsible label = " Team " >
< SideNavItem href = " /members " label = " Members " />
< SideNavItem href = " /roles " label = " Roles " />
< div style = { {height: 420 } } >
content: < SideNavItem icon = { Settings } label = " Settings " />,
header = { < SideNavHeading heading = " Silver " subheading = " Workspace " /> } >
< SideNavSection title = " Pages " >
{ Array . from ({length: 20 }, ( _ , i ) => (
Vertical side navigation panel with optional collapsing support.
Adapts to AppShell render modes (inline, drawer, topbar).
Prop Type Default Description children* ReactNode— Navigation item children rendered in the scrollable area. classNamestring— Additional CSS class names applied to the nav element. collapseBreakpoint"sm" | "md" | "lg" | "none"'lg'Breakpoint at or below which a collapsible nav starts collapsed. This is evaluated only when the nav first mounts. Use none to always start expanded. data-testidstring— Test ID applied to the nav element. footerSideNavFooter— Content and actions rendered in the sticky bottom section. headerReactNode— Content rendered at the top of the nav (e.g. a logo or title). isCollapsiblebooleanfalseWhether the nav can be collapsed to an icon-only toolbar. refRef<HTMLElement>— Ref forwarded to the nav element. styleCSSProperties— Inline styles applied to the nav element. topContentReactNode— Non-scrollable content rendered below the header.
Prop Type Default Description asLinkComponent— classNamestring— data-testidstring— headerEndContentReactNode— headingstring— headingHrefstring— hrefstring— logoReactNode— refRef<HTMLElement>— styleCSSProperties— subheadingstring— superheadingstring—
A single navigation item inside a SideNav. Renders as a link when
`href` is provided, or a button otherwise. Supports nested sub-items
via `children` with optional expand/collapse behavior.
Prop Type Default Description asLinkComponent— Custom link component used when href is set. childrenReactNode— Nested sub-items rendered below this item. classNamestring— Additional CSS class names applied to the item. data-testidstring— Test ID applied to the item. endContentReactNode— Content rendered at the end of the item (e.g. a badge). hrefstring— Link destination. When set, the item renders as a link. iconIconComponent— Icon rendered before the label. isCollapsiblebooleanfalseWhether the item can expand/collapse its children. isDefaultExpandedbooleantrueWhether the item's children are initially expanded. isDisabledbooleanfalseWhether the item is disabled. isSelectedbooleanfalseWhether the item is currently selected. label* string— Accessible item label, also used as visible text. onClickMouseEventHandler<HTMLElement>— Click handler for the item. refRef<HTMLElement>— Ref forwarded to the root element. styleCSSProperties— Inline styles applied to the item.
Prop Type Default Description children* ReactNode— classNamestring— data-testidstring— endContentReactNode— isHeaderHiddenboolean— refRef<HTMLDivElement>— styleCSSProperties— subtitlestring— title* string—