`navigation="collapsed"` shows the 64 px icon rail. The toggle in the side navigation header switches between expanded (255 px) and collapsed; pair `navigation` with `onNavigationChange`, or use `defaultNavigation`.
Loading demo: app-shell-collapsed
Omit `sideNavigation` for pages that do not need it, such as the error pages. The content region keeps the canvas background and padding.
Loading demo: app-shell-header-only
With `dir="rtl"` the side navigation moves to the right, the header mirrors and every icon that has a direction flips.
Loading demo: app-shell-rtl
labels.navigationnavigation | "expanded" | "collapsed" | — | optional |
defaultNavigation | "expanded" | "collapsed" | "expanded" | optional |
onNavigationChange | (navigation) => void | — | optional |
menuOpen | boolean | — | optional |
onMenuOpenChange | (open: boolean) => void | — | optional |
contentClassName | string | — | optional |
labels | Partial<AppShellLabels> | { skipToContent: "Skip to main content" } | optional |
dir | "ltr" | "rtl" | — | optional |
children | ReactNode | — | optional |