unstale

npm / radix-ui

radix-ui

What changed in radix-ui 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.

4 breaking11 new APIs and options2 behavior and defaults22 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

radix-ui 139 changes

Breaking changes 4

  • Renamed to unstable_CollectionDict; unstable collection APIs are undocumented and may change without a major version bump.

    1.8.0release notes

  • Renamed to unstable_CollectionSlotProps; unstable collection APIs are undocumented and may change without a major version bump.

    1.8.0release notes

  • The viewport now renders active content inside the consumer's element alongside its existing children instead of discarding them.

    1.7.0release notes

  • The trigger now moves focus before the tab state changes, so a focused element inside Tabs.Content fires a blur event before the tab switches.

    1.7.0release notes

New APIs and options 11

  • The align prop can now be overridden on ContextMenu.Content.

    1.8.0release notes

  • The side prop can now be overridden on ContextMenu.Content.

    1.8.0release notes

  • The sideOffset prop can now be overridden on ContextMenu.Content.

    1.8.0release notes

  • Added to the functions returned from unstable_createCollection.

    1.8.0release notes

  • Choose automatic activation on hover or focus, or manual activation on click.

    1.7.0release notes

  • Controls whether clicking an already-open submenu trigger keeps it open or toggles it closed; the default preserves existing behavior.

    1.7.0release notes

  • Provides an accessible description for popover content.

    1.7.0release notes

  • Provides an accessible name for popover content.

    1.7.0release notes

  • Lets consumers own the wrapper element previously rendered implicitly by ScrollArea.Viewport.

    1.7.0release notes

  • Disable the viewport's implicit content element so consumers can render ScrollArea.Content themselves.

    1.7.0release notes

  • Prevents thumbs from crossing by constraining each thumb to its neighbors' values instead of swapping positions when dragged past them.

    1.7.0release notes

Behavior and default changes 2

  • The content element gets a data-state attribute when using NavigationMenu.Viewport, for consistency.

    1.8.0release notes

  • Choose automatic or manual activation; when omitted, the submenu inherits the root setting and can opt back into automatic activation.

    1.7.0release notes

Fixes and other changes 22

  • Fixed a type regression so callback props declared as methods accept handlers whose parameter is narrower than the prop's.

    1.8.1release notes

  • All optional types now allow explicit undefined for compatibility with TypeScript's exactOptionalPropertyTypes flag.

    1.8.0release notes

  • FocusScope no longer throws a TypeError in test environments after teardown.

    1.8.0release notes

  • User-driven changes in form-nested controls are no longer incorrectly treated as programmatic, which could prevent bubbled event handlers from being called.

    1.8.0release notes

  • aria-controls is no longer set on Popover.Trigger while the popover is closed.

    1.8.0release notes

  • Content alignment is corrected when all Select items are disabled.

    1.8.0release notes

  • Programmatic value updates inside a form no longer dispatch a click event from the hidden bubble select that propagates to ancestor onClick handlers.

    1.8.0release notes

  • Programmatic value updates inside a form no longer dispatch an input event that propagates to ancestor onInput handlers.

    1.8.0release notes

  • Slot no longer throws when an asChild child is a lazy reference whose resolved value is itself a lazy reference.

    1.8.0release notes

  • A bug caused by incorrect tree-shaking in SWC-minified code is fixed.

    1.8.0release notes

  • Toast.Viewport no longer forces a still-hydrating Suspense boundary to client-render.

    1.8.0release notes

  • Tबbing away from a focusable tooltip trigger in a modal popover moves focus to the next element in the popover instead of its root.

    1.8.0release notes

  • The collection context providers it returns now have corrected display names.

    1.8.0release notes

  • Collections no longer keep a stale item order when React moves items in the DOM without remounting them.

    1.8.0release notes

  • Timing bugs in useCallbackRef are fixed.

    1.8.0release notes

  • Id strings from a component and its child are merged, normalized, and deduplicated instead of one replacing the other.

    1.7.0release notes

  • Nested, portalled layers inside a modal Dialog no longer have interactions broken by the modal layer's focus trap and scroll restrictions.

    1.7.0release notes

  • A submenu's default value is no longer reset when an external element receives focus before the menu opens.

    1.7.0release notes

  • Compatibility issues with React Server Components were fixed.

    1.7.0release notes

  • The asChild prop now merges props onto the consumer's element rather than the implicit content element.

    1.7.0release notes

  • Internal event handlers are no longer called on disabled items.

    1.7.0release notes

  • A paused toast now auto-closes after its duration changes while the timer is paused.

    1.7.0release notes