npm / @radix-ui/react-navigation-menu
@radix-ui/react-navigation-menu
What changed in @radix-ui/react-navigation-menu 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.
1 breaking4 new APIs and options1 performance1 tooling8 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@radix-ui/react-navigation-menu 115 changes
Breaking changes 1
Active content now renders inside the consumer's element alongside its existing children, rather than replacing them.
New APIs and options 4
Added a prop to choose automatic or manual trigger activation; automatic remains the default.
Added a prop to choose automatic or manual trigger activation; when omitted, the submenu inherits the parent root's value.
Added a prop controlling whether clicking an already-open submenu trigger keeps it open or toggles it closed; the default preserves existing behavior.
Added CSS custom properties for item indicators' translate values, allowing developers to use them in styling.
Performance 1
Bundlers can drop unused components more effectively, improving dead-code elimination.
Tooling 1
The package is republished through CI so it includes a provenance attestation, which developers can use when evaluating package provenance.
Fixes and other changes 8
Fixed a type regression so callback props declared as methods accept handlers whose parameter is narrower than the prop's.
The content element now has a data-state attribute when using NavigationMenu.Viewport.
Optional types now allow explicit undefined, making them compatible with TypeScript's exactOptionalPropertyTypes flag.
Fixed a bug where a submenu's defaultValue was reset when an external element was focused before the menu opened.
Reverted breaking changes that caused compatibility issues with React Server Components.
Fixed an infinite re-render loop in React 19 caused by unstable composed ref callback references.
Fixed errors that surfaced when consuming multiple packages together.
Triggers no longer reference a non-existent element via aria-controls when their content is removed from the DOM.