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 } } >
< 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 } } >
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 } } >
footer = { < 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 } } >
footer = { < 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. data-testidstring— Test ID applied to the nav element. footerReactNode— Content rendered in the sticky bottom section. footerIconsReactNode— Icon actions rendered alongside the footer. 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—