Skip to content
Layouts

App Shell

A full-page side-navigation layout: a fixed sidebar with logo, navigation, and footer beside a scrollable main region. On mobile the sidebar collapses into a drawer opened by AppShellSidebarTrigger. Use as the root layout for dashboard-style applications.

Structure Diagram

AppShellLogo

AppShellNavItem (active)

AppShellNavItem

AppShellNavItem

AppShellFooter

PageHeader

PageBody (scrollable)

AppShell Props

PropTypeDefaultDescription
classNamestringAdditional CSS classes to apply to the app shell container.

AppShellSidebar Props

PropTypeDefaultDescription
collapsedbooleanfalseWhether the sidebar is in collapsed state.
mobileTitlestring"Navigation"Accessible title for the mobile drawer, announced to screen readers.
classNamestringAdditional CSS classes to apply to the sidebar.

AppShellNavItem Props

PropTypeDefaultDescription
iconReact.ComponentType<{ className?: string }>Optional icon component rendered before the label.
activebooleanfalseWhether this item represents the current page.
hrefstringThe link destination for the navigation item.

Responsive Behavior

On md and larger the sidebar is a fixed column. Below md it is hidden and its contents are mirrored into a drawer. Render an AppShellSidebarTrigger somewhere always-visible on mobile (typically inside your PageHeader) to open it. The trigger is itself hidden on md+, so it never shows on desktop.

PropTypeDefaultDescription
classNamestringAdditional classes. The trigger is hidden on md+ by default (md:hidden).