v1.0.0-beta.5
Nov 17, 2025
View as MarkdownGeneral changes
- Breaking change: Replace
trackAnchorwithdisableAnchorTracking.
If you were usingtrackAnchor={false}, be sure to update your usage todisableAnchorTrackinginstead. (#3188) - Breaking change: Rename
looptoloopFocus(#3186) - Fix type portability (#2912)
- Accept a function for the
styleprop (#3038) - Create portal elements inside React (#2889)
- Avoid applying
hiddenattribute to indicator elements when they specifykeepMountedand are invisible (#3228) - Fix crash in Next.js 16 when accessing
render.props.ref(#3231)
Accordion
- Breaking change: Change
multipleprop to be false by default and add a demo (#3141) - Fix flaky exit transition (#3101)
Alert Dialog
- Fix
initialFocusas function being called on close (#2949) - Support detached triggers (#2974)
- Place
overflow: hiddenon<body>for overlay scrollbars by default. Avoids sticky elements shifting if<body>has anoverflowstyle specified. (#3083) - Add
<AlertDialog.Viewport>part (#2808)
Autocomplete
- Breaking change: Refactor
alwaysSubmitOnEntertosubmitOnItemClickprop.
If you were usingalwaysSubmitOnEnter, be sure to update your usage tosubmitOnItemClickinstead. (#3018) - Prevent blocking filtering while composing text on Android (#2944)
- Add empty state to
List.State(#2934) - Fix
initialFocusas function being called on close (#2949) - Add
role="combobox"to<Autocomplete.Trigger>if<Autocomplete.Input>is inside Popup (#2973) - Fix stale
onItemHighlighteddata when filtering withautoHighlight(#2829) - Add empty and side styling attributes on
<Autocomplete.Input>(#2926) - Fix
<Autocomplete.Value>component return type for React 17 (#3050) - Support
autoHighlight: "always", and addkeepHighlight,highlightItemOnHoverprops (#2976) - Keep focus on input when pressing list element (#3092)
- Allow Esc to bubble if
<Autocomplete.Empty>is not used (#2935) - Add
dialogrole to popup when input is inside (#3213)
Button
- New
<Button>component (#2363)
Checkbox
- Breaking change: Render root as
<span>instead of<button>(#3205)
Collapsible
- Fix
starting-stylestate (#2985)
Combobox
- Take into account
isItemEqualToValuewhen selecting an option in multiple mode (#2893) - Move
CompositeListtoListcomponent to makeInputwork with composites (#2883) - Fix
onValueChangetype inference whenvalueis unspecified (#2897) - Fix
requiredform submission with multiple values (#2925) - Fix Home/End Input scroll in Chrome/Safari (#2928)
- Prevent blocking filtering while composing text on Android (#2944)
- Add empty state to
List.State(#2934) - Fix
initialFocusas function being called on close (#2949) - Add
role="combobox"to<Combobox.Trigger>if<Combobox.Input>is inside Popup (#2973) - Fix Field control ref when input is inside popup (#2971)
- Fix stale
onItemHighlighteddata when filtering withautoHighlight(#2829) - Add empty and side styling attributes on
<Combobox.Input>(#2926) - Fix
<Combobox.Value>component return type for React 17 (#3050) - Fix input value derivation on
valueanditemsprop updates (#3067) - Support
autoHighlight: "always", and addkeepHighlight,highlightItemOnHoverprops (#2976) - Keep focus on input when pressing list element (#3092)
- Fix support of dialog + combobox pattern (#3049)
- Support drag-to-select (#3167)
- Allow Esc to bubble if
<Combobox.Empty>is not used (#2935) - Fix stuck filtering with differing stringifiers (#3201)
- Add
dialogrole to popup when input is inside (#3213)
Context Menu
- Add
openstate to<ContextMenu.Trigger>(#3195) - Fix ignored
anchorprop on<ContextMenu.Positioner>(#3202)
Dialog
- Breaking change: Replace
dismissiblewithdisablePointerDismissal.
If you were usingdismissible={false}, replace it withdisablePointerDismissal. (#3190) - Fix
initialFocusas function being called on close (#2949) - Support detached triggers (#2974)
- Place
overflow: hiddenon<body>for overlay scrollbars by default. Avoids sticky elements shifting if<body>has anoverflowstyle specified. (#3083) - Add
<Dialog.Viewport>part and scrollable demos on docs (#2808)
Field
- Breaking change: Add
onSubmitvalidation mode and make it the default overonBlur.
Fields that use non-requiredattribute validation no longer validate the control on blur. Instead, validation first occursonSubmit, and afterwards revalidation occursonChange. (#3013) - Add
dirtyandtouchedprops (#2950) - New
<Field.Item>part (#2810) - Fix
validationMode="onChange"not clearing custom error state (#3048) - Fix external
onChangevalidation mode errors (#3137)
Form
- Breaking change: The
onClearErrorsprop has been removed.
Errors from theerrorsprop are always cleared when the value changes. (#3136) - Add
onSubmitvalidation mode.
Additionally,validationModecan be set on<Form>. (#3013) - Add
onFormSubmitcallback (#3131)
Menu
- Breaking change: Support detached triggers.
openOnHover,delay, andcloseDelayprops have been moved from<Menu.Root>to<Menu.Trigger>.
Additionally, menus now must have at least one<Menu.Trigger>element. (#3170) - Ignore disabled item on initial focusing (#2604)
- Fix stealing focus from dialogs on close (#2920)
- Place
overflow: hiddenon<body>for overlay scrollbars by default. Avoids sticky elements shifting if<body>has anoverflowstyle specified. (#3083)
Navigation Menu
Number Field
- Granular change reasons (#3132)
Popover
- Breaking change: Support detached triggers and multiple triggers per popover.
openOnHover,delay, andcloseDelayprops have been moved from<Popover.Root>to<Popover.Trigger>. (#2336) - Fix
initialFocusas function being called on close (#2949) - Fix swiping or scrolling on nested popup dismissing popover on touch (#3011)
- Place
overflow: hiddenon<body>for overlay scrollbars by default. Avoids sticky elements shifting if<body>has anoverflowstyle specified. (#3083)
Preview Card
- Breaking change: Move delay props to trigger.
If you were usingdelayorcloseDelayprops, be sure to move them to from<PreviewCard.Root>to the<PreviewCard.Trigger>component. (#3182)
Radio Group
- Breaking change: Render root as
<span>instead of<button>(#3205)
Scroll Area
- Breaking change: Improve CSS vars performance.
The CSS variables are now on the<ScrollArea.Viewport>part, not<ScrollArea.Root>, and inheritance is disabled for all child elements (or pseudo-elements). Children must manually opt in using--scroll-area-[variable-name]: inherit. (#3156)
Select
- Breaking change: Make the trigger native button by default.
The trigger now renders a<button>element, be sure to adjust your code if necessary. (#3177) - Add
openstate type onSelect.Iconinterface (#2919) - Fix
onValueChangetype inference whenvalueis unspecified (#2897) - Fix
requiredform submission with multiple values (#2925) - Avoid re-rendering on popup height expansion (#2972)
- Place
overflow: hiddenon<body>for overlay scrollbars by default. Avoids sticky elements shifting if<body>has anoverflowstyle specified. (#3083) - Add
data-placeholderattribute (#2737)
Slider
- Breaking change: Add
thumbCollisionBehaviorprop.
In range sliders, moving a thumb with a pointer will now push other thumbs it collides with to avoid blocking drag movements by default (the default value ispush).
The valueswapwas also added, which allows thumbs to be dragged past each other when they collide.
Lastly, the valuenoneis the same as the previous behavior, where thumbs can’t be dragged past one another.
Keyboard interactions always usenonebehavior. (#2856) - Granular change reasons (#3132)
Switch
- Breaking change: Render root as
<span>instead of<button>(#3205)
Tabs
- Breaking change: Fix selected/active state naming consistency.
- Renamed
[data-selected]to[data-active]in<Tabs.Tab> - Removed
[data-highlighted](:focus-visiblewas already the recommendation in styles) selectedTabPosition/selectedTabSizeare nowactiveTabPosition/activeTabSizeinTabs.Indicator.State(#3024)
- Renamed
- Breaking change: Change
activateOnFocusto false.
If you need your Tabs to activate on focus, be sure to addactivateOnFocusprop. (#3176) - Fix Next.js 16 error from
Math.randomid generation (#3051) - Fix indicator sizing and offsets (#3214)
Toast
- Allow
React.ReactNodefortitle/descriptionproperties (#2929) - Add ability to anchor to an element (#3096)
Toolbar
- Breaking change: The
colsprop has been removed.
This prop was not supposed to be exposed. (#3133)
Tooltip
- Breaking change: Support detached triggers.
delayandcloseDelayprops have been moved from<Tooltip.Root>to<Tooltip.Trigger>. (#3071) - Breaking change: Change
hoverabletodisableHoverablePopup.
In case you need to disable the hoverable popup behavior, be sure to add thedisableHoverablePopupprop. (#3178) - Fix
data-instantending transition of same tooltip (#2962)