@atlaskit/navigation-system
Version:
The latest navigation system for Atlassian apps.
151 lines (94 loc) • 4.72 kB
text/mdx
---
title: Layout
description: Layout components define a page's structure and the areas for navigation and content.
order: 3
props:
packageName: '/navigation-system'
exports:
- Root
- Banner
- TopNav
- TopNavStart
- TopNavMiddle
- TopNavEnd
- SideNav
- SideNavHeader
- SideNavBody
- SideNavFooter
- Main
- MainStickyHeader
- PanelLayout
- Panel
- PanelSplitter
- SideNavToggleButton
---
import SectionMessage from '@atlaskit/section-message';
## Props
### Root
The root component of the navigation system, wrapping the entire view.
<TSMorphProps exportName="Root" packageName="@atlaskit/navigation-system" />
### Banner
The banner layout area. It will always be displayed at the top of the screen.
<TSMorphProps exportName="Banner" packageName="@atlaskit/navigation-system" />
### TopNav
The top nav layout area. It will display at the top of the screen, below the banner if one is
present.
<TSMorphProps exportName="TopNav" packageName="@atlaskit/navigation-system" />
### TopNavStart
Wrapper for the top navigation actions on the inline-start (left) side of the top navigation.
<TSMorphProps exportName="TopNavStart" packageName="@atlaskit/navigation-system" />
### TopNavMiddle
Wrapper for the actions in the middle of the top navigation.
<TSMorphProps exportName="TopNavMiddle" packageName="@atlaskit/navigation-system" />
### TopNavEnd
Wrapper for the top navigation actions on the inline-end (right) side of the top navigation.
<TSMorphProps exportName="TopNavEnd" packageName="@atlaskit/navigation-system" />
### SideNav
Use the SideNav area to render side navigation items. It will show on the left (inline start) of the
screen.
<TSMorphProps exportName="SideNav" packageName="@atlaskit/navigation-system" />
{/* Not using level 4 heading for side nav layout areas as they won't be added to table of contents */}
### SideNavHeader
The top part of the side nav.
<TSMorphProps exportName="SideNavHeader" packageName="@atlaskit/navigation-system" />
### SideNavBody
The main content of the side nav, filling up the middle section. It acts as a scroll container.
<TSMorphProps exportName="SideNavBody" packageName="@atlaskit/navigation-system" />
### SideNavFooter
The bottom part of the side nav.
<TSMorphProps exportName="SideNavFooter" packageName="@atlaskit/navigation-system" />
### Main
Use the Main area for the main page content.
<TSMorphProps exportName="Main" packageName="@atlaskit/navigation-system" />
### MainStickyHeader
The sticky header of the main layout area.
<TSMorphProps exportName="MainStickyHeader" packageName="@atlaskit/navigation-system" />
### PanelLayout
Use `PanelLayout` to render a local panel beside page content inside `Main`. It manages responsive
inline and overlay positioning, sizing, and pointer and keyboard resizing. The caller supplies the
panel content and controls whether it is open; no panel-system provider is required.
```tsx
import { PanelLayout } from '@atlaskit/navigation-system/layout/panel-layout';
```
Mount one local-panel host per navigation `Root`, including closed `PanelLayout` and
`LayoutWithPanel` instances. Keep the host mounted and use `isPanelOpen` to open or close it so that
resized widths are retained. Switch content through the same host using `panel` and `panelKey`.
Use `defaultPanelWidth` for an initial width, or pair `panelWidth` with `onPanelWidthChange` to
control it. Available space can constrain the rendered width. Use `onResizeEnd` for persistence or
analytics after a completed resize, and provide localized `panelLabel` and `resizeLabel` values.
`PanelLayout` contains the layout and resizing responsibilities extracted from
`/panel-system`. That package's `LayoutWithPanel` remains an adapter that connects panel
state and routed content to `PanelLayout`.
The separate [`Panel`](#panel) component is a layout area rendered alongside `Main` under `Root`.
`PanelLayout` wraps content inside `Main` and includes its own resize control.
<TSMorphProps exportName="PanelLayout" packageName="@atlaskit/navigation-system" />
### Panel
The Panel layout area is rendered to the right (inline end) of the Main area. On small viewports,
the Panel slot will become an overlay.
<TSMorphProps exportName="Panel" packageName="@atlaskit/navigation-system" />
### Panel splitter
A component that allows the user to resize a layout area.
<TSMorphProps exportName="PanelSplitter" packageName="@atlaskit/navigation-system" />
### SideNavToggleButton
Button for toggling the side nav. It should be used in the top bar.
<TSMorphProps exportName="SideNavToggleButton" packageName="@atlaskit/navigation-system" />