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 initradix-ui 139 changes
Breaking changes 4
Renamed to unstable_CollectionDict; unstable collection APIs are undocumented and may change without a major version bump.
Renamed to unstable_CollectionSlotProps; unstable collection APIs are undocumented and may change without a major version bump.
The viewport now renders active content inside the consumer's element alongside its existing children instead of discarding them.
The trigger now moves focus before the tab state changes, so a focused element inside
Tabs.Contentfires a blur event before the tab switches.
New APIs and options 11
The align prop can now be overridden on ContextMenu.Content.
The side prop can now be overridden on ContextMenu.Content.
The sideOffset prop can now be overridden on ContextMenu.Content.
Added to the functions returned from unstable_createCollection.
Choose automatic activation on hover or focus, or manual activation on click.
Controls whether clicking an already-open submenu trigger keeps it open or toggles it closed; the default preserves existing behavior.
Provides an accessible description for popover content.
Provides an accessible name for popover content.
Lets consumers own the wrapper element previously rendered implicitly by
ScrollArea.Viewport.Disable the viewport's implicit content element so consumers can render
ScrollArea.Contentthemselves.Prevents thumbs from crossing by constraining each thumb to its neighbors' values instead of swapping positions when dragged past them.
Behavior and default changes 2
The content element gets a data-state attribute when using NavigationMenu.Viewport, for consistency.
Choose automatic or manual activation; when omitted, the submenu inherits the root setting and can opt back into automatic activation.
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.
All optional types now allow explicit undefined for compatibility with TypeScript's exactOptionalPropertyTypes flag.
FocusScope no longer throws a TypeError in test environments after teardown.
User-driven changes in form-nested controls are no longer incorrectly treated as programmatic, which could prevent bubbled event handlers from being called.
aria-controls is no longer set on Popover.Trigger while the popover is closed.
Content alignment is corrected when all Select items are disabled.
Programmatic value updates inside a form no longer dispatch a click event from the hidden bubble select that propagates to ancestor onClick handlers.
Programmatic value updates inside a form no longer dispatch an input event that propagates to ancestor onInput handlers.
Slot no longer throws when an asChild child is a lazy reference whose resolved value is itself a lazy reference.
A bug caused by incorrect tree-shaking in SWC-minified code is fixed.
Toast.Viewport no longer forces a still-hydrating Suspense boundary to client-render.
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.
The collection context providers it returns now have corrected display names.
Collections no longer keep a stale item order when React moves items in the DOM without remounting them.
Timing bugs in useCallbackRef are fixed.
Id strings from a component and its child are merged, normalized, and deduplicated instead of one replacing the other.
Nested, portalled layers inside a modal Dialog no longer have interactions broken by the modal layer's focus trap and scroll restrictions.
A submenu's default value is no longer reset when an external element receives focus before the menu opens.
Compatibility issues with React Server Components were fixed.
The
asChildprop now merges props onto the consumer's element rather than the implicit content element.Internal event handlers are no longer called on disabled items.
A paused toast now auto-closes after its duration changes while the timer is paused.