Menu

A list of options to help users navigate, or perform actions.

Neutral selected states

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

11.0.4

Patch Changes

  • 6fa49845aae2e, (opens new window) - Cleanup feature_gate platform-dst-motion-uplift-list-item. List item hover, pressed and selected motion transitions are now applied unconditionally across breadcrumbs, calendar dates, links, menu items, select options and side navigation items.

11.0.3

Patch Changes

  • Updated dependencies

11.0.2

Patch Changes

  • Updated dependencies

11.0.1

Patch Changes

  • a65dbad408fc4, (opens new window) - CustomItem is now marked as deprecated. It will be removed in a future release. className props on menu items are also now marked as deprecated. Style overrides for menu items are not supported and these props will be removed in a future release.

11.0.0

Major Changes

Patch Changes

  • Updated dependencies

10.2.2

Patch Changes

  • Updated dependencies

10.2.1

Patch Changes

  • Updated dependencies

10.2.0

Minor Changes

Patch Changes

  • Updated dependencies

10.1.1

Patch Changes

10.1.0

Minor Changes

  • d82e6f76528ab, (opens new window) - Add direct subpath package exports as part of the linking-platform, search, media, and design-system barrel-removal (de-barrel) migration.

    These packages now expose their individual modules via explicit package.json exports subpaths so that consumers can import directly from the leaf module (e.g. @atlaskit/pkg/thing) instead of the package barrel/index. This adds new public entry points without changing or removing any existing exports, so it is a backwards-compatible additive change.

    No runtime behaviour changes; this is an API-surface (entry-point) addition to support tree-shaking and to unblock removal of the barrel index files.

Patch Changes

  • Updated dependencies

10.0.0

Major Changes

  • f0bf5f838abd5, (opens new window) - Apply Volt entry-point and barrel-removal standards across these packages. Public exports now resolve directly to ./src/* implementations instead of intermediate ./src/entry-points/* re-exports.

    Migration

    Prefer published subpaths over the package root or internal entry-point paths:

    import Calendar from '@atlaskit/calendar/calendar'; import Drawer from '@atlaskit/drawer/drawer'; import { WidthObserver } from '@atlaskit/width-detector/width-observer'; import { DocumentViewer } from '@atlaskit/media-document-viewer/document-viewer';

    If you imported through internal entry-point modules, switch to the public subpath:

    -import Calendar from '@atlaskit/calendar/entry-points/calendar'; +import Calendar from '@atlaskit/calendar/calendar'; -import WidthObserver from '@atlaskit/width-detector/src/WidthObserver'; +import { WidthObserver } from '@atlaskit/width-detector/width-observer';

Patch Changes

  • Updated dependencies

9.2.6

Patch Changes

  • f17fa33159689, (opens new window) - Fix aria-disabled on LinkItem and CustomItem to not emit aria-disabled="false" when the item is not disabled. Previously, aria-disabled={false} was always rendered which caused axe accessibility failures inside menu roles. Now it renders aria-disabled="true" when disabled and omits the attribute otherwise.

9.2.5

Patch Changes

  • 44cfa83f61092, (opens new window) - Correct the list item motion transition timing. A CSS transition is governed by the timing declared on the state being transitioned into, so the pressed timing (motion.listitem.pressed, 100ms) belongs on :active, not :hover. Declaring it on :hover made normal → hover (and selected → hover) animate at 100ms instead of the intended 50ms. The :hover state now uses motion.listitem.hovered (50ms) across all list item consumers so both hovering and unhovering animate at 50ms, while :active keeps motion.listitem.pressed (100ms) and selected variants rest at motion.listitem.selected (100ms). Behaviour remains behind the platform-dst-motion-uplift-list-item feature gate.

9.2.4

Patch Changes

  • 6490d22c0d837, (opens new window) - Fix list item pressed motion so the hover to pressed transition uses motion.listitem.pressed (100ms) instead of the hover timing (50ms). The pressed timing is now declared on the :hover state so the transition into the pressed state animates correctly. Behaviour remains behind the platform-dst-motion-uplift-list-item feature gate.

9.2.3

Patch Changes

  • Updated dependencies

9.2.2

Patch Changes

  • Updated dependencies

9.2.1

Patch Changes

  • Updated dependencies

9.2.0

Minor Changes

  • 92dd044d3bd44, (opens new window) - Add motion to select/dropdown-kind list items (hover, pressed, and selected interaction states) behind the platform-dst-motion-uplift-list-item feature gate. This covers the shared menu item primitive (@atlaskit/menu, which also drives Dropdown menu and the date/time picker menus) and the @atlaskit/select / @atlaskit/react-select options (including checkbox and radio options). Rendering is unchanged when the gate is off. Motion honours prefers-reduced-motion and focus rings remain immediate.

Patch Changes

  • Updated dependencies

9.1.0

Minor Changes

  • cd097a2111788, (opens new window) - Republish packages depending on @atlaskit/react-compiler-gating so their published dependency reference is updated to the renamed @atlaskit/react-compiler-gating scope.

    The earlier rename of @atlassian/react-compiler-gating to @atlaskit/react-compiler-gating only bumped the renamed package itself, so dependent packages were never republished and their published versions still referenced the old @atlassian/react-compiler-gating name, which is not available in the public npm registry. This minor bump republishes all affected packages with the corrected dependency.

Patch Changes

  • Updated dependencies

9.0.1

Patch Changes

9.0.0

Major Changes

  • f2dc9097319f0, (opens new window) - ### Dropped support for legacy Typescript 4 types. Typescript 5 is now the new minimum.

    Removes the typesVersions property and dist/types-ts4.5 directory from the dist.

    Types are now exclusively via the "types": "dist/types/index.d.ts" property.

    - "typesVersions": { - ">=4.5 <4.9": { - "*": [ - "dist/types-ts4.5/*", - "dist/types-ts4.5/index.d.ts" - ] - } - },

Patch Changes

  • Updated dependencies

8.5.0

Minor Changes

8.4.25

Patch Changes

  • Updated dependencies

8.4.24

Patch Changes

8.4.23

Patch Changes

  • Updated dependencies

8.4.22

Patch Changes

8.4.21

Patch Changes

8.4.20

Patch Changes

8.4.19

Patch Changes

8.4.18

Patch Changes

  • Updated dependencies

8.4.17

Patch Changes

  • Updated dependencies

8.4.16

Patch Changes

8.4.15

Patch Changes

  • Updated dependencies

8.4.14

Patch Changes

8.4.13

Patch Changes

  • Updated dependencies

8.4.12

Patch Changes

  • Updated dependencies

8.4.11

Patch Changes

8.4.10

Patch Changes

  • Updated dependencies

8.4.9

Patch Changes

  • Updated dependencies

8.4.8

Patch Changes

  • Updated dependencies

8.4.7

Patch Changes

  • Updated dependencies

8.4.6

Patch Changes

  • Updated dependencies

8.4.5

Patch Changes

  • Updated dependencies

8.4.4

Patch Changes

8.4.3

Patch Changes

8.4.2

Patch Changes

8.4.1

Patch Changes

  • Updated dependencies

8.4.0

Minor Changes

  • e2485470e4078, (opens new window) - ButtonItem will convey its selected state to screen readers when isSelected. This is done through the aria-current attribute.

    This change was previously behind a feature flag, which has been removed.

Patch Changes

  • Updated dependencies

8.3.3

Patch Changes

8.3.2

Patch Changes

8.3.1

Patch Changes

  • Updated dependencies

8.3.0

Minor Changes

8.2.0

Minor Changes

8.1.2

Patch Changes

  • Updated dependencies

8.1.1

Patch Changes

8.1.0

Minor Changes

8.0.9

Patch Changes

8.0.8

Patch Changes

8.0.7

Patch Changes

  • Updated dependencies

8.0.6

Patch Changes

  • Updated dependencies

8.0.5

Patch Changes

8.0.4

Patch Changes

  • Updated dependencies

8.0.3

Patch Changes

8.0.2

Patch Changes

  • Updated dependencies

8.0.1

Patch Changes

8.0.0

Major Changes

  • #157531, (opens new window) dd1068010784d, (opens new window) - Migrated SkeletonItem and SkeletonHeadingItem components from @emotion/react to @compiled/react in order toimprove performance, align with the rest of the Atlaskit techstack, and support React 18 StreamingSSR.

    Removed the cssFn prop from the SkeletonItem and SkeletonHeadingItem components. Customization can now be applied via the new xcss prop. This allows for safe/bounded style overrides.

    Removed the following types related to the cssFn prop: CSSFn, StatelessCSSFn, ItemState.

7.1.0

Minor Changes

Patch Changes

  • Updated dependencies

7.0.0

Major Changes

  • #156707, (opens new window) 84d702274b2dd, (opens new window) - Migrated HeadingItem and Section components from @emotion/react to @compiled/react in order to improve performance, align with the rest of the Atlaskit techstack, and support React 18 Streaming SSR.

    Removed the deprecated cssFn prop from the HeadingItem component, as this is not supported with @compiled/react.

6.0.0

Major Changes

  • #148607, (opens new window) 474e66c7b2f54, (opens new window) - Removed deprecated overrides prop from Section. Introduced isSideNavSection prop on Section which when true renders headings with reduced padding. This prop was added exclusively to support existing functionality in @atlaskit/side-navigation and will be removed once the new navigation system fully rolls out. It should not be used outside of the Side Navigation component. Removed deprecated Overrides and TitleOverrides types.

Patch Changes

  • Updated dependencies

5.0.1

Patch Changes

5.0.0

Major Changes

4.0.0

Major Changes

  • #141631, (opens new window) 064a20b174719, (opens new window) - - Migrated ButtonItem, LinkItem and CustomItem components from @emotion/react to @compiled/react in order to improve performance, align with the rest of the Atlaskit techstack, and support React 18 Streaming SSR.

    • Removed the deprecated cssFn prop from ButtonItem, LinkItem and CustomItem components.

    Please note, in order to use this version of @atlaskit/menu, you will need to ensure that your bundler is configured to handle .css imports correctly.

    Most bundlers come with built-in support for .css imports, so you may not need to do anything. If you are using a different bundler, please refer to the documentation for that bundler to understand how to handle .css imports. For more information on the migration, please refer to RFC-73 Migrating our components to Compiled CSS-in-JS, (opens new window).

3.2.0

Minor Changes

3.1.2

Patch Changes

3.1.1

Patch Changes

  • Updated dependencies

3.1.0

Minor Changes

3.0.0

Major Changes

Patch Changes

  • Updated dependencies

2.14.4

Patch Changes

  • Updated dependencies

2.14.3

Patch Changes

2.14.2

Patch Changes

  • Updated dependencies

2.14.1

Patch Changes

  • Updated dependencies

2.14.0

Minor Changes

Patch Changes

  • Updated dependencies

2.13.8

Patch Changes

  • Updated dependencies

2.13.7

Patch Changes

2.13.6

Patch Changes

2.13.5

Patch Changes

  • Updated dependencies

2.13.4

Patch Changes

2.13.3

Patch Changes

2.13.2

Patch Changes

  • Updated dependencies

2.13.1

Patch Changes

  • Updated dependencies

2.13.0

Minor Changes

2.12.7

Patch Changes

  • Updated dependencies

2.12.6

Patch Changes

2.12.5

Patch Changes

  • Updated dependencies

2.12.4

Patch Changes

2.12.3

Patch Changes

2.12.2

Patch Changes

2.12.1

Patch Changes

  • Updated dependencies

2.12.0

Minor Changes

2.11.0

Minor Changes

  • #127511, (opens new window) db30e29344013, (opens new window) - Widening range of react and react-dom peer dependencies from ^16.8.0 || ^17.0.0 || ~18.2.0 to the wider range of ``^16.8.0 || ^17.0.0 || ^18.0.0` (where applicable).

    This change has been done to enable usage of react@18.3 as well as to have a consistent peer dependency range for react and react-dom for /platform packages.

Patch Changes

  • Updated dependencies

2.10.1

Patch Changes

  • Updated dependencies

2.10.0

Minor Changes

2.9.0

Minor Changes

2.8.1

Patch Changes

2.8.0

Minor Changes

2.7.4

Patch Changes

2.7.3

Patch Changes

2.7.2

Patch Changes

  • Updated dependencies

2.7.1

Patch Changes

2.7.0

Minor Changes

2.6.2

Patch Changes

2.6.1

Patch Changes

  • Updated dependencies

2.6.0

Minor Changes

  • #115893, (opens new window) 78d9ff4de5251, (opens new window) - Updated LinkItem to conditionally render a router link if a link component is set in the app provider and the provided href prop is not an external link or a non-HTTP-based link (e.g. emails, phone numbers, hash links etc.). These changes are behind a feature flag and will be available in a later release if successful.

2.5.2

Patch Changes

  • Updated dependencies

2.5.1

Patch Changes

  • Updated dependencies

2.5.0

Minor Changes

Patch Changes

  • Updated dependencies

2.4.1

Patch Changes

  • Updated dependencies

2.4.0

Minor Changes

2.3.1

Patch Changes

2.3.0

Minor Changes

2.2.1

Patch Changes

  • Updated dependencies

2.2.0

Minor Changes

2.1.13

Patch Changes

2.1.12

Patch Changes

2.1.11

Patch Changes

2.1.10

Patch Changes

  • Updated dependencies

2.1.9

Patch Changes

2.1.8

Patch Changes

  • Updated dependencies

2.1.7

Patch Changes

  • Updated dependencies

2.1.6

Patch Changes

2.1.5

Patch Changes

  • Updated dependencies

2.1.4

Patch Changes

2.1.3

Patch Changes

2.1.2

Patch Changes

2.1.1

Patch Changes

2.1.0

Minor Changes

2.0.1

Patch Changes

2.0.0

Major Changes

  • #41355, (opens new window) cd1c813da18, (opens new window) - Menu items now have a secondary selected state (border or notch), this was previously feature flagged for Atlassian experiences and is now available for everyone.

    This change makes all menu items are now relatively positioned, if you had any child elements that leaned on this behaviour your experiences will now be broken!

    For example the below code code previously the div would be positioned relatively to the menu group element. Now, it is positioned relatively to the button item element.

    <MenuGroup> <ButtonItem> <div style={{ position: 'absolute', top: '100%' }} /> </ButtonItem> </MenuGroup>

    As a path forward you should not be leaning on this behaviour. If you need a popup experience use @atlaskit/dropdown-menu or @atlaskit/popup.

1.11.1

Patch Changes

1.11.0

Minor Changes

1.10.1

Patch Changes

1.10.0

Minor Changes

1.9.8

Patch Changes

1.9.7

Patch Changes

1.9.6

Patch Changes

1.9.5

Patch Changes

1.9.4

Patch Changes

  • Updated dependencies

1.9.3

Patch Changes

  • Updated dependencies

1.9.2

Patch Changes

1.9.1

Patch Changes

  • Updated dependencies

1.9.0

Minor Changes

1.8.1

Patch Changes

  • Updated dependencies

1.8.0

Minor Changes

Patch Changes

  • Updated dependencies

1.7.9

Patch Changes

  • Updated dependencies

1.7.8

Patch Changes

  • Updated dependencies

1.7.7

Patch Changes

  • Updated dependencies

1.7.6

Patch Changes

1.7.5

Patch Changes

1.7.4

Patch Changes

1.7.3

Patch Changes

1.7.2

Patch Changes

1.7.1

Patch Changes

1.7.0

Minor Changes

1.6.1

Patch Changes

1.6.0

Minor Changes

Patch Changes

  • Updated dependencies

1.5.8

Patch Changes

1.5.7

Patch Changes

  • Updated dependencies

1.5.6

Patch Changes

  • Updated dependencies

1.5.5

Patch Changes

  • Updated dependencies

1.5.4

Patch Changes

  • Updated dependencies

1.5.3

Patch Changes

1.5.2

Patch Changes

1.5.1

Patch Changes

1.5.0

Minor Changes

  • #30362, (opens new window) 93d761786d6, (opens new window) - [ux] Default spacing for all menu items has been changed from 20px inline padding to 16px.

    Adds a new spacing prop to on MenuGroup. The prop can be used to control the content density of the component and its children.

    Adds a new internal export SpacingContext. This should not be used directly.

1.4.10

Patch Changes

1.4.9

Patch Changes

  • Updated dependencies

1.4.8

Patch Changes

1.4.7

Patch Changes

1.4.6

Patch Changes

  • Updated dependencies

1.4.5

Patch Changes

1.4.4

Patch Changes

1.4.3

Patch Changes

  • Updated dependencies

1.4.2

Patch Changes

  • Updated dependencies

1.4.1

Patch Changes

  • Updated dependencies

1.4.0

Minor Changes

Patch Changes

  • Updated dependencies

1.3.12

Patch Changes

1.3.11

Patch Changes

1.3.10

Patch Changes

1.3.9

Patch Changes

1.3.8

Patch Changes

1.3.7

Patch Changes

1.3.6

Patch Changes

1.3.5

Patch Changes

1.3.4

Patch Changes

  • Updated dependencies

1.3.3

Patch Changes

1.3.2

Patch Changes

  • Updated dependencies

1.3.1

Patch Changes

1.3.0

Minor Changes

Patch Changes

  • Updated dependencies

1.2.6

Patch Changes

1.2.5

Patch Changes

  • 19d72473dfb, (opens new window) - The no-unsafe-design-token-usage eslint rule now respects the new token naming conventions when auto-fixing by correctly formatting token ids.
  • 19d72473dfb, (opens new window) - The no-unsafe-design-token-usage eslint rule now respects the new token naming conventions when auto-fixing by correctly formatting token ids.
  • Updated dependencies

1.2.4

Patch Changes

  • Updated dependencies

1.2.3

Patch Changes

1.2.2

Patch Changes

  • #16405, (opens new window) 2eeb5c46710, (opens new window) - Menu items can take data-testid directly again however we recommend to still use the officially supported testId prop instead. The data-testid prop was unintentionally removed in a previous version however will be removed as a breaking change in a later major version and remains not officially typed.

1.2.1

Patch Changes

1.2.0

Minor Changes

  • #14777, (opens new window) 213bfd77e61, (opens new window) - The DOM structure of menu item components has been flattened. If you used CSS hacks (via className or cssFn) that targetted specific DOM nodes you may be broken.

    Previously the structure looked like:

    <button> <div> // <-- this intermediate div has been removed <span> <span /> </span> </div> </button>

    Now it looks like:

    <button> <span> <span /> </span> </button>
  • 63888b03b49, (opens new window) - Internal refactor to align style declarations to common techstack.

Patch Changes

  • Updated dependencies

1.1.4

Patch Changes

1.1.3

Patch Changes

1.1.2

Patch Changes

  • Updated dependencies

1.1.1

Patch Changes

  • Updated dependencies

1.1.0

Minor Changes

Patch Changes

1.0.4

Patch Changes

1.0.3

Patch Changes

1.0.2

Patch Changes

1.0.1

Patch Changes

1.0.0

Major Changes

0.7.6

Patch Changes

0.7.5

Patch Changes

0.7.4

Patch Changes

0.7.3

Patch Changes

0.7.2

Patch Changes

0.7.1

Patch Changes

0.7.0

Minor Changes

  • #6194, (opens new window) 79a40dec30, (opens new window) - Breaking Adjusts the API of the cssFn prop used in both menu and side-navigation. The prop now no longer exposes the currentStyles to the user in the callback and instead only provides the current state. Users no longer need to spread the currentStyles into their components when overriding. This change also resolves a bug where cssFn overrides did not always take precedence correctly over the default component styles.

0.6.5

Patch Changes

0.6.4

Patch Changes

0.6.3

Patch Changes

  • Updated dependencies

0.6.2

Patch Changes

0.6.1

Patch Changes

0.6.0

Minor Changes

0.5.2

Patch Changes

0.5.1

Patch Changes

0.5.0

Minor Changes

Patch Changes

  • Updated dependencies

0.4.7

Patch Changes

0.4.6

Patch Changes

0.4.5

Patch Changes

  • #2537, (opens new window) d674e203b3, (opens new window) - Previously Menu items controlled their own margin spacing which caused issues when trying to use them outside of Menu. Now we have moved Menu item margin styles into the Section component so now the Section dictates the spacing around child items. We had to update Side Navigation to control its child item margins as well.

0.4.4

Patch Changes

0.4.3

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.0

Minor Changes

Patch Changes

0.3.1

Patch Changes

0.3.0

Minor Changes

Patch Changes

0.2.7

Patch Changes

  • [patch]1f9c4f974a, (opens new window):

    Updates to @atlaskit/menu to support better custom components

    • The description prop on items has been updated to take either string or JSX.Element allowing custom components such as links to be rendered
    • A stateless CSSFn type has been exported to override styles in static components (such as <HeadingItem />)- Updated dependencies 0603860c07, (opens new window):
    • @atlaskit/icon@20.0.2

0.2.6

Patch Changes

  • [patch]6548261c9a, (opens new window):

    Remove namespace imports from React, ReactDom, and PropTypes- Updated dependencies 6548261c9a, (opens new window):

    • @atlaskit/docs@8.3.2
    • @atlaskit/visual-regression@0.1.9
    • @atlaskit/avatar@17.1.7
    • @atlaskit/button@13.3.7
    • @atlaskit/icon-file-type@5.0.2
    • @atlaskit/icon-object@5.0.2
    • @atlaskit/icon@20.0.1
    • @atlaskit/theme@9.5.1

0.2.5

Patch Changes

0.2.4

Patch Changes

0.2.3

Patch Changes

0.2.2

Patch Changes

  • [patch]911d58c568, (opens new window):
    • Fixes spacing between sections and items
    • Introduces new props on MenuGroup to control min/max width and height.
    • Introduces new PopupMenuGroup component which is variant of MenuGroup with sensible defaults.

0.2.1

Patch Changes

0.2.0

Minor Changes

  • [minor]795a9503da, (opens new window):

    Menu has had few styling fixes:

    • BREAKING: Height for all Item components when there is no description defined now equals 40px.
    • BREAKING: SkeletonHeadingItem & SkeletonItem now match the real components dimensions, this means they will no longer move things around when swapping them in & out.
    • SkeletonHeadingItem has had its width slightly increased.
    • Skeleton items now have a shimmer effect that you can opt into with the isShimmering prop.
    • HeadingItem now has the correct font-weight.
    • Item components description now has the correct font-size.

Patch Changes

0.1.3

Patch Changes

0.1.2

Patch Changes

0.1.1

Patch Changes

  • [patch]ac6ba9b837, (opens new window):

    Fix bug where Skeleton width wasn't being picked up. Allow skeleton heading width to be configurable to make API consistent with skeleton item

0.1.0

Minor Changes

0.0.2

Patch Changes

0.0.1

Patch Changes

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