Migration guide

How to migrate to navigation system from the old Atlassian navigation, side navigation, and page layout packages.

Neutral selected states

When the platform-dst-tokens-finesse feature flag is enabled, this component uses the new neutral treatment for selected states.

Further guidance for Atlassians

This page covers the Design System visual primitives. For guidance on the broader platform components — such as the customisation modal, app switcher data, and user personalisation — see navigation resources (Atlassians only).

Page layout

Slots

OldNew
PageLayoutRoot
BannerBanner
TopNavigationTopNav
LeftSidebar, LeftSidebarWithoutResizeSideNav
LeftPanelNo equivalent. Use SideNav if it's navigation, or Panel if it's supplementary content.
Content, MainMain
RightPanelPanel
RightSidebarNo equivalent. Use Panel, or a custom two-column layout inside Main.

Hooks

OldNew
useCustomSkipLinkuseSkipLink — see custom skip links
useLeftSidebarFlyoutLockNo equivalent. Use useExpandSideNav() to force the side nav open.
usePageLayoutResizeNo equivalent. Use useExpandSideNav() to expand the side nav, or the onExpand and onCollapse callbacks on <SideNav> to track its state.
useGlobalThemeNo equivalent. Theme is applied automatically.

Constants

The legacy CSS variables are unsafe and encourage rigidity in the layout system. They should be removed:

  • LEFT_SIDEBAR_WIDTH
  • RIGHT_SIDEBAR_WIDTH
  • LEFT_PANEL_WIDTH
  • RIGHT_PANEL_WIDTH
  • BANNER_HEIGHT
  • TOP_NAVIGATION_HEIGHT

These will be temporarily available from the

@atlaskit/navigation-system/legacy/css-variables entrypoint.

Atlassian navigation

Top nav is for global, cross-app actions only. Items such as the app switcher, search, create, help, notifications, settings, and profile are consistent across every Atlassian product.

Layout

AtlassianNavigation is replaced by TopNav. The old render props (renderProductHome, renderAppSwitcher, renderCreate, etc.) are replaced by three layout slots:

  • TopNavStart — place the side nav toggle button, app logo, and app switcher here
  • TopNavMiddle — place search and create here
  • TopNavEnd — place help, notifications, settings, profile, and sign in here

HORIZONTAL_GLOBAL_NAV_HEIGHT has no equivalent. Any usage should be refactored out, or hardcoded if necessary.

Primary items

PrimaryButton and PrimaryDropdownButton have no equivalent. Primary nav links are app-specific and belong in the side nav. The product home and app switcher, previously also in this area, now live in TopNavStart.

useOverflowStatus was used to manage overflow of primary items and is no longer applicable.

OldNew
AppHome, CustomProductHome, ProductHomeAppLogo or CustomLogo inside <TopNavStart>
AppSwitcher, AppSwitcherNav4AppSwitcher inside <TopNavStart>

Secondary items

OldNew
SearchSearch inside <TopNavMiddle>
CreateCreateButton inside <TopNavMiddle>
HelpHelp inside <TopNavEnd>
NotificationsNotifications inside <TopNavEnd>
SettingsSettings inside <TopNavEnd>
ProfileProfile inside <TopNavEnd>
IconButtonEndItem inside <TopNavEnd>
SignInLogIn inside <TopNavEnd>

Custom theming

Legacy custom theming is supported with a new API. See custom theming for details.

Loading states

The skeleton loading components (NavigationSkeleton, SkeletonCreateButton, SkeletonIconButton, SkeletonPrimaryButton, SkeletonSwitcherButton) have no equivalent in the new navigation system.

Side navigation

Side nav is for app-specific navigation — use it to navigate within an app, between sections, projects, boards, spaces, and so on. The side nav is resizable, collapsible, and supports user customisation of menu items.

Side nav items are in the separate side nav items, (opens new window) package.

Layout

OldNew
SideNavigationSideNav
NavigationContentSideNavBody
NavigationHeaderSideNavHeader
HeaderNo equivalent. There is no opinionated presentation component for the header slot — build your own content inside SideNavHeader.
NavigationFooterSideNavFooter
FooterNo equivalent. There is no opinionated presentation component for the footer slot — build your own content inside SideNavFooter.

Sections and items

OldNew
LinkItemLinkMenuItem
ButtonItemButtonMenuItem
CustomItemNo equivalent. Use ButtonMenuItem or LinkMenuItem with custom content.
SectionMenuSection
HeadingItemMenuSectionHeading
SkeletonItem, SkeletonHeadingItem, LoadingItemsSee loading states

Nesting

The nested navigation pattern (NestingItem, NestableNavigationContent) has been replaced with expandable menu items, (opens new window). GoBackItem and useShouldNestedElementRender have no equivalent.

Was this page helpful?
We use this feedback to improve our documentation.
© 2026 AtlassianTrademark, (opens new window)Privacy, (opens new window)License