Releases
Changelogs for each Base UI release.
View as Markdownv1.0.0-beta.4
Oct 1, 2025
General changes
- Breaking change: Generic event details.
The main exported type is now 
BaseUIChangeEventDetails(with a pairedBaseUIGenericEventDetails), notBaseUIEventDetails. (#2796) - Update 
disabledprop of buttons when ref changes (#2756) - Refine event details (#2698)
 
Accordion
- Breaking change: Use 
useIdinstead of composite index as fallback value. Accordion items must have an explicitvalueset in order to be initially open. Inferring the value by their DOM index is no longer supported. (#2664) - Breaking change: Rename 
openMultipleprop tomultiple(#2764) 
Autocomplete
- Breaking change: 
onItemHighlightednow has areasonproperty instead oftypeto be consistent with theeventDetailsAPI. (#2796) - Breaking change: Rename 
colstogridprop. Specifygrid={true}instead ofcols={number}— the columns are automatically inferred from<Autocomplete.Row>(#2683) - Fix duplicate 
onOpenChangecalls and pass correct DOMevent. (#2682) - Fix controlled input value updates (#2707)
 - Fix input focus on close when clicking trigger. Fixes a jump to the bottom of the page in Safari (#2723)
 - Add 
alwaysSubmitOnEnterprop and allow form submission on Enter if no item is highlighted by default (#2700) - Use 
ReadonlyArraytype foritems(#2819) 
Collapsible
- Fix 
CollapsiblePaneltype to use its own state (#2697) - Respect user’s CSS 
displayproperty on panel (#2772) 
Combobox
- Breaking change: 
onItemHighlightednow has areasonproperty instead oftypeto be consistent with theeventDetailsAPI. (#2796) - Breaking change: Rename 
colstogridprop. Specifygrid={true}instead ofcols={number}— the columns are automatically inferred from<Combobox.Row>. (#2683) - Fix duplicate 
onOpenChangecalls and pass correct DOMevent. (#2682) - Fix initial closed typeahead (#2665)
 - Support 
autoHighlightprop (#2668) - Set default input value based on 
valueprop (#2680) - Fix controlled input value updates (#2707)
 - Fix input focus on close when clicking trigger. Fixes a jump to the bottom of the page in Safari (#2723)
 - Fix unexpected close with multiple selection and input inside popup (#2771)
 - Allow form submission on Enter if no item is highlighted by default (#2700)
 - Avoid refiltering with ending transition in multiple selection mode (#2681)
 - Support object values with 
isItemEqualToValueprop (#2704) - Use 
ReadonlyArraytype foritems(#2819) - Fix misleading 
item-pressreason inonInputValueChange(#2830) - Clear single-select value on input clear (#2860)
 - Fix 
focusoutof input not closing popup under certain conditions (#2864) 
Context Menu
- Ensure submenus close when parents close (#2768)
 - Fix 
onClickfiring twice on first click of item (#2849) 
Menu
- Ensure submenus close when parents close (#2768)
 - Allow non-nested portals across differing popup trees (#2818)
 
Menubar
- Fix Menubar not disabling child Menus (#2736)
 - Ensure submenus close when parents close (#2768)
 - Fix 
<CompositeList>not updating item order on reordering (#2675) 
Navigation Menu
- Make link close on click configurable (#2740)
 - Fix focus returning to trigger without animations (#2779)
 
Number Field
- Fix stuck virtual cursor after mouse tap (#2720)
 - Improve parsing logic (#2725)
 - Align value changes with 
Slider. AnonValueCommittedcallback has been added. (#2726) 
Popover
- Allow non-nested portals across differing popup trees (#2818)
 
Scroll Area
- Add overflow presence state attributes and CSS variables (#2478)
 - Fix RTL horizontal scrollbar on Safari (#2776)
 - Fix thumb size flicker (#2778)
 
Select
- Breaking change: Add 
<Select.List>component. It is now possible for<Select.ScrollArrow>to show when in fallback (alignItemWithTriggerdeactivated). As a result, if you want the scroll arrows to be hidden in this mode like before, change the styles to default todisplay: noneon.ScrollArrow, anddisplay: blockwhen[data-side="none"]. (#2596) - Block opening the popup when provided 
readOnly(#2717) - Add 
openstate for<Select.Icon>and fixreftype (#2714) - Support object values with 
isItemEqualToValueprop (#2704) - Use 
ReadonlyArraytype foritems(#2819) 
Slider
- Breaking change: 
onValueChangehasactiveThumbIndexas part of theeventDetailsobject as a second parameter, not third. (#2796) - Breaking change: Remove redundant hidden inputs.
The 
inputRefprop is moved from<Slider.Root>to<Slider.Thumb>. (#2631) - Fix pointer tracking bugs (#2688)
 - Fix input attributes (#2728)
 - Add 
thumbAlignmentprop (#2540) 
Switch
- Fix duplicate 
nameattribute (#2763) 
Toast
- Breaking change: Support variable height stacking.
Toasts that have varying heights no longer force a 
data-expandedexpanded state on the viewport. CSS should be amended to ensure larger toasts don’t overflow a small toast stacked at the front. See this diff for new styles, along with general improvements to stacking styles. (#2742) - Reduce stickiness of expanded state (#2770)
 - Ensure toast is frozen at its current visual transform while swiping (#2769)
 
Toggle Group
- Breaking change: Rename 
toggleMultipleprop tomultiple. (#2764) 
Toolbar
- Fix 
<CompositeList>not updating item order on reordering (#2675) 
useRender
- Add div as a 
defaultTagName(#2692) 
v1.0.0-beta.3
Sep 3, 2025
General changes
- Breaking change: Base UI event details.
Custom event callbacks provide BaseUIChangeEventDetails object as their second parameter.
This object contains the source event, reason and methods to customize the behavior (where applicable).
For example, 
onOpenChange(open, event, reason)becomesonOpenChange(open, eventDetails), whereeventDetailscontainseventandreasonproperties. (#2382) 
Alert Dialog
- Breaking change: Support 
initialFocusandfinalFocusfunctions. TheinitialFocusandfinalFocusprops can be functions that return DOM elements to focus. This is a new feature forfinalFocusand a breaking change forinitialFocusas the element must be returned directly (not as a ref). (#2536) 
Autocomplete
- New Autocomplete component (#2105)
 
Checkbox
- Fix missing validity attributes when wrapped in 
<Field>(#2572) 
Combobox
- New Combobox component (#2105)
 
Context Menu
- Fix default offsets when 
align="center"orsidediffers (#2601) 
Dialog
- Breaking change: Support 
initialFocusandfinalFocusfunctions. TheinitialFocusandfinalFocusprops can be functions that return DOM elements to focus. This is a new feature forfinalFocusand a breaking change forinitialFocusas the element must be returned directly (not as a ref). (#2536) - Restore focus to popup when focused element is removed (#2479)
 
Field
- Prevent defaultValue reset on focus for uncontrolled inputs (#2543)
 - Allow 
onValueChangeto fire whendefaultValue/valueare not set (#2600) 
Input
- Allow 
onValueChangeto fire whendefaultValue/valueare not set (#2600) 
Menu
- Breaking change: Fix 
closeParentOnEscdefault value. The default value ofcloseParentOnEscin Menu.SubmenuRoot is now false. When the Esc key is pressed in a Submenu, the Submenu closes, and the focus correctly moves to the SubmenuTrigger. (#2493) - Breaking change: Support 
initialFocusandfinalFocusfunctions. TheinitialFocusandfinalFocusprops can be functions that return DOM elements to focus. This is a new feature forfinalFocusand a breaking change forinitialFocusas the element must be returned directly (not as a ref). (#2536) - Fix menu not opening when inside context menu trigger (#2506)
 - Fix 
transform-originvariable calculation when PositionersideOffsetis a function (#2511) - Fix submenu events (#2483)
 - Fix 
limitShiftoffset based on arrow size (#2571) 
Navigation Menu
- Breaking change: Semantic element structure and 
activepage prop.<NavigationMenu.List>renders<ul>and<NavigationMenu.Item>renders<li>by default. (#2526) - Unshare 
AbortControllerinstance (#2441) - Close on link click by default (#2535)
 
Number Field
- Fix duplicate 
onValueChangecalls (#2591) 
Popover
- Breaking change: Support 
initialFocusandfinalFocusfunctions. TheinitialFocusandfinalFocusprops can be functions that return DOM elements to focus. This is a new feature forfinalFocusand a breaking change forinitialFocusas the element must be returned directly (not as a ref). (#2536) - Fix outside click after right clicking in popup (#2508)
 - Fix unexpected close when nested inside two popovers (#2481)
 - Fix 
transform-originvariable calculation when PositionersideOffsetis a function (#2511) - Restore focus to popup when focused element is removed (#2479)
 - Fix 
limitShiftoffset based on arrow size (#2571) 
Preview Card
- Fix 
transform-originvariable calculation when PositionersideOffsetis a function (#2511) - Fix 
limitShiftoffset based on arrow size (#2571) 
Radio Group
- Return null in form data when no option selected (#2473)
 
Scroll Area
- Prevent pointer events from sibling portals triggering hover (#2542)
 
Select
- Fix stale 
itemsprop (#2397) - Fix unexpected close when nested inside two popovers (#2481)
 - Fix 
onValueChangetype inference (#2372) - Fix 
transform-originvariable calculation when PositionersideOffsetis a function (#2511) - Reset state when selected item is removed (#2577)
 - Fix 
data-highlightedand DOM focus item desync (#2569) - Fix item click with 
defaultOpenprop (#2570) - Fix scroll arrows not propagating scroll fully to start/end of list (#2523)
 - Fix 
limitShiftoffset based on arrow size (#2571) 
Slider
- Breaking change: Instead of the thumb div, the 
input type="range"element receives focus. Focus styles that were targeting the thumb, should be updated. For example.Thumb:focus-visibleshould be replaced with.Thumb:has(:focus-visible). ThetabIndexprop is moved from Root to Thumb where it gets forwarded to the input. The thumb’srenderprop no longer contains the thirdinputPropsargument; the input element is instead merged with children. (#2578) - Reduce bundle size (#2551)
 - Fix thumb 
:focus-visiblewith mixed keyboard and pointer modality (#2584) - Add 
indexprop to<Slider.Thumb>(#2593) 
Tabs
Tooltip
- Fix 
transform-originvariable calculation when PositionersideOffsetis a function (#2511) - Fix 
limitShiftoffset based on arrow size (#2571) 
useRender
v1.0.0-beta.2
Jul 30, 2025
General changes
- Fix navigator checks and ensure safe platform retrieval (#2273)
 - Prevent Space key default on keydown (#2295)
 - Check for 
performanceexistence on server (#2316) 
Accordion
- Destructure 
renderprop (#2280) - Fix keyboard interactions with elements in the panel (#2321)
 - Fix open transitions in Safari/Firefox (#2327)
 
Alert Dialog
- Support 
ShadowRootcontainers (#2236) - Add 
forceRenderprop toBackdroppart (#2037) - Improve outside press behavior with touch input (#2334)
 
Checkbox
- Fix focusing form controls with 
inputRef(#2252) 
Collapsible
Dialog
- Support 
ShadowRootcontainers (#2236) - Add 
forceRenderprop toBackdroppart (#2037) - Improve outside press behavior with touch input (#2334)
 - Use 
clickevent for outside press dismissal (#2275) 
Field
- Deregister fields from 
Formwhen unmounting (#2231) 
Form
- Deregister fields from 
Formwhen unmounting (#2231) 
Menu
- Support 
ShadowRootcontainers (#2236) - Avoid double 
useRenderElementpasses (#2256) - Improve outside press behavior with touch input (#2334)
 - Close submenus when focus is lost by shift-tabbing (#2290)
 
Menubar
- Fix triggers role (#2317)
 
Meter
- Fix ARIA attributes and update docs (#2267)
 
Navigation Menu
- Breaking change: Support inlined nesting.
Ensure the popup’s 
widthis set tovar(--popup-width)unconditionally (without the media query) on the.Popupclass. (#2269) - Avoid double 
useRenderElementpasses (#2256) - Add 
useButtonintegration toTrigger(#2296) - Fix popup size transitions on iOS (#2387)
 
Number Field
Popover
- Support 
ShadowRootcontainers (#2236) - Remove ancestor nodes from inside elements for outside press detection (#2339)
 - Improve outside press behavior with touch input (#2334)
 - Use 
clickevent for outside press dismissal (#2275) 
Preview Card
- Support 
ShadowRootcontainers (#2236) 
Progress
- Fix ARIA attributes and update docs (#2267)
 
Radio Group
- Add aria-required attribute (#2227)
 - Extend state with 
FieldRoot.State(#2251) - Fix focusing form controls with 
inputRef(#2252) - Avoid double 
useRenderElementpasses (#2256) 
Scroll Area
- Disable 
user-selecton scrollbar and non-main button interactions (#2338) 
Select
- Support 
ShadowRootcontainers (#2236) - Add 
valueandreadOnlyto<Select.Trigger>state (#2237) - Add 
multipleprop (#2173) - Allow typeahead while open for 
multiplemode (#2274) - Ensure positionerElement is available in document mouseup (#2276)
 - Fix 
alignItemWithTriggerfallback scroll jump (#2241) - Support conditional 
multipleprop in types (#2369) - Fix multiple ARIA behavior on touch (#2333)
 - Improve outside press behavior with touch input (#2334)
 
Slider
- Fix focusing form controls with 
inputRef(#2252) 
Toast
- Fix 
promisemethod timeout option handling (#2294) - Make 
<Toast.Viewport>an announce container (#2246) 
Toggle
- Avoid double 
useRenderElementpasses (#2256) 
Toggle Group
- Avoid double 
useRenderElementpasses (#2256) 
Toolbar
- Avoid double 
useRenderElementpasses (#2256) 
Tooltip
- Support 
ShadowRootcontainers (#2236) - Memoize leftover object in tooltip (#2250)
 - Fix error when combining 
defaultOpenanddisabled(#2374) 
v1.0.0-beta.1
Jul 1, 2025
General changes
- Make error messages consistent (#2049)
 - Do not overwrite event handler when 
undefinedis passed explicitly (#2151) 
Accordion
- Allow content to resize naturally (#2043)
 - Fix transition status mapping (#2169)
 - Fix 
aria-controlsreference (#2170) - Fix test warning about mixed animation types (#2180)
 
Checkbox
- Breaking change: Support implicit 
<Field.Label>. If<Field.Label>encloses Switch/Checkbox/Radio, thehtmlFor/idattributes are no longer explicitly set to associate them. (#2036) - Refactor to 
useRenderElement(#2053) - Always set 
idon the<input>element (#2115) 
Checkbox Group
- Fix 
onCheckedChangenot running when parent checkbox is present (#2155) 
Collapsible
- Allow content to resize naturally (#2043)
 - Fix 
aria-controlsreference (#2170) - Fix test warning about mixed animation types (#2180)
 
Context Menu
- Breaking change: Add 
SubmenuRootpart. Nested menus should be defined with<Menu.SubmenuRoot>instead of<Menu.Root>to to avoid ambiguity. (#2042) - Fix CheckboxItemIndicator export (#2009)
 
Dialog
- Fix popup prop merging (#2119)
 
Field
- Breaking change: Support implicit 
<Field.Label>. If<Field.Label>encloses Switch/Checkbox/Radio, thehtmlFor/idattributes are no longer explicitly set to associate them. (#2036) - Enable custom validation based on other form values (#1941)
 - Fix 
onValueChangevaluetype (#2112) - Fix 
<Field.Label>focusing trigger (#2118) - Fix slider field label (#2154)
 
Fieldset
- Refactor to 
useRenderElement(#2053) 
Form
- Enable custom validation based on other form values (#1941)
 
Input
- Fix 
onValueChangevaluetype (#2112) 
Menu
- Breaking change: Add 
SubmenuRootpart. Nested menus should be defined with<Menu.SubmenuRoot>instead of<Menu.Root>to to avoid ambiguity. (#2042) - Unset 
rolefrom Trigger (#2047) - Emit 
closeevent oncancel-open(#2067) - Fix close toggle when rendering non-native button (#2071)
 - Add 
highlightedto itemState(#2079) - Remove highlighted effect (#2162)
 - Cut out internal backdrop to allow interacting with triggers (#2141)
 - Fix active index sync on hover (#2163)
 - Fix focus returning to root when submenus have exit transitions (#2171)
 
Menubar
- Fix 
closeOnClick: falsenot working in nested menus (#2094) 
Navigation Menu
- Breaking change: Handle layout resize while open (#2070).
For large scrollable content, add the 
max-heightstyle to.Contentin addition to.Popup. - Fix positioner height when opening menu using the keyboard arrows (#2060)
 
Number Field
- Ensure 
onValueChangeis called with already-formatted parsed value (#1905) - Fix revalidation on change (#2174)
 
Popover
- Fix close toggle when rendering non-native button (#2071)
 - Cut out internal backdrop to allow interacting with triggers (#2141)
 
Radio Group
- Breaking change: Support implicit 
<Field.Label>. If<Field.Label>encloses Radio, thehtmlFor/idattributes are no longer explicitly set to associate them. (#2036) - Refactor to 
useRenderElement(#2053) 
Scroll Area
- Ignore 
data-scrollingduring programmatic scroll (#1908) 
Select
- Breaking change: Print raw value in 
<Select.Value>.<Select.Value>now prints the raw value by default unless anitemsprop is specified on<Select.Root>. See https://base-ui.com/react/components/select#formatting-the-value for more information. (#2087) - Performance: avoid re-renders (#1961)
 - Fix close toggle when rendering non-native button (#2071)
 - Fix 
<Field.Label>focusing trigger (#2118) - Fix programmatic value changes and autofill handling (#2084)
 - Add 
highlightedto itemState(#2079) - Cut out internal backdrop to allow interacting with triggers (#2141)
 - Pass 
valueas state (#2153) - Extend 
FieldRoot.Statetype (#2192) 
Slider
Switch
- Breaking change: Support implicit 
<Field.Label>. If<Field.Label>encloses Switch, thehtmlFor/idattributes are no longer explicitly set to associate them. (#2036) 
Tabs
- Fix indicator positioning when TabsList overflows (#2093)
 - Fix focus going out of sync when selected value is changed externally (#2107)
 - Remove highlighted state (#2164)
 
Toolbar
- Set 
disabledattr on toolbar button whenfocusableWhenDisabled={false}(#2176) 
useRender
- Make useRender RSC-friendly (#2134)
 
v1.0.0-beta.0
May 29, 2025
General changes
- Remove proptypes (#1760)
 - Unify component export patterns (#1478)
 - Default 
tabIndexto0on<button>parts (#1939) 
Accordion
- Stop event propagation to allow composite components to be used within popups (#1871)
 
Alert Dialog
- Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Use basic scroll lock on iOS (#1890)
 
Checkbox
- Set 
aria-required, useuseButton(#1777) 
Checkbox Group
- Breaking change: Enable submitting checkbox group value as one field.
For parent checkboxes, use 
valueinstead ofnameon each<Checkbox.Root>part to link as the values. (#1948) - Fix 
validatefn incorrectly running twice (#1959) 
Context Menu
- New 
ContextMenucomponent (#1665) 
Dialog
- Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Use basic scroll lock on iOS (#1890)
 
Field
- Breaking change: Consolidate 
Field.ErrorforceShowintomatchprop. Usematch={true}(or implicit boolean) instead offorceShow. (#1919) - Improve 
Labellogic that prevents text selection on double click (#1784) - Fix validation inconsistency (#1779)
 - Fix integration of Base UI components (#1755)
 - Set 
valueMissingto false if only error and not dirtied (#1810) validatewith latest value on blur (#1850)- Revalidate only 
requiredon change (#1840) - Run validate function after native validations (#1926)
 - Fix 
validatefn incorrectly running twice (#1959) - Integrate range sliders with Form and Field (#1929)
 
Form
- Fix integration of Base UI components (#1755)
 - Select inputs on focus (#1858)
 - Exclude number formatting from form value (#1957)
 - Integrate range sliders with Form and Field (#1929)
 
Input
Menu
- Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
 - Add missing 
'use client'toRadioGrouppart (#1851) - Ensure 
nullitems are removed from composite lists (#1847) - Avoid 
:focus-visiblestyle appearing (#1846) - Better handle dynamic and non-string items (#1861)
 - Add 
collisionAvoidanceprop (#1849) - Add 
finalFocusandcloseDelayprops (#1918) - Use basic scroll lock on iOS (#1890)
 
Menubar
- New 
Menubarcomponent (#1684) 
Navigation Menu
- New 
NavigationMenucomponent (#1741) 
Number Field
validatewith latest value on blur (#1850)- Move scrubbing logic to 
ScrubAreacomponent (#1859) - Remove floating point errors when 
snapOnStepis disabled (#1857) - Stop event propagation to allow composite components to be used within popups (#1871)
 - Exclude number formatting from form value (#1957)
 
Popover
- Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
 - Avoid prop getters when merging props (#1852)
 - Add 
collisionAvoidanceprop (#1849) - Fix nested 
openOnHover(#1938) - Use basic scroll lock on iOS (#1890)
 
Preview Card
- Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
 - Add 
collisionAvoidanceprop (#1849) 
Radio Group
- Fix composite focus of initially selected radio item (#1753)
 - Add 
inputRefprops (#1683) - Stop event propagation to allow composite components to be used within popups (#1871)
 
Select
- Breaking change: Move item anchoring prop to 
Positioner. Use<Select.Positioner alignItemWithTrigger={false}>instead of<Select.Root alignItemToTrigger={false}>(note theWithinstead ofTo). (#1713) - Breaking change: Defer mounting until typeahead is needed.
The 
placeholderprop is now required. Previously, only SSR needed it to prevent a hydration flash, but client-side rendering now also requires it. (#1906) - Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
 - Add 
inputRefprops (#1683) - Refactor to 
useRenderElement(#1797) - Ensure 
nullitems are removed from composite lists (#1847) - Fix 
idprop forwarding to hidden input (#1862) - Avoid 
:focus-visiblestyle appearing (#1846) - Fix 
transitionStatusmapping onItemIndicator(#1925) - Better handle dynamic and non-string items (#1861)
 - Use 
<Select.ItemText>ref to grab default text content (#1943) - Add 
collisionAvoidanceprop (#1849) - Use basic scroll lock on iOS (#1890)
 
Slider
- Breaking change: Drop 
inputIdprop from Thumb. (#1914) - Position thumb based on value instead of pointer location when dragging (#1750)
 - Use 
useRenderElement(#1772) - Add 
inputRefprops (#1683) - Add 
localeprop (#1796) - Stop event propagation to allow composite components to be used within popups (#1871)
 - set 
data-draggingon touchstart and pointerdown (#1874) - Integrate range sliders with Form and Field (#1929)
 
Toast
- Breaking change: Add 
Portalpart. Place<Toast.Viewport>inside of<Toast.Portal>. (#1962) - Breaking change: Avoid removing limited toasts from the DOM.
The 
[data-limited]styles in the demos were updated to handle limited toasts remaining in the DOM. They should now be a standalone style as&[data-limited] { opacity: 0 }. (#1953) - Fix swipe jump on iOS (#1785)
 
Toggle
- Stop event propagation to allow composite components to be used within popups (#1871)
 
Toolbar
- Stop event propagation to allow composite components to be used within popups (#1871)
 
Tooltip
- Breaking change: Refine 
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
 - Avoid prop getters when merging props (#1852)
 - Remove 
trackCursorAxistype fromPositioner(#1895) - Apply 
pointer-events: nonetoPositionerwhen not hoverable (#1917) - Add 
collisionAvoidanceprop (#1849) 
useRender
- Breaking change: Performance/refactor: 
useRender. An object with arenderElementproperty is no longer returned; instead, the hook returns the element directly (const element = useRender(...)). Therefsoption was also renamed toref. (#1934) - Skip most of useRenderElement logic when unnecessary (#1967)
 
v1.0.0-alpha.8
Apr 17, 2025
Accordion
AlertDialog
- Breaking change: Rename 
data-has-nested-dialogstodata-nested-dialog-open(#1686) - Fix 
onOpenChangetypes forevent/reasonpassing (#1721) - Use consistent 
inertattr and map[data-popup-open]back toopen(#1650) - Fix text selection & right-clicks (#1702)
 
CheckboxGroup
- Parent checkbox/nested demos (#1610)
 
Collapsible
- Fix ForwardedRef type of CollapsiblePanel (#1595)
 - Recalculate panel dimensions on layout resize (#1704)
 - Rework animations and transitions (#1601)
 
Dialog
- Breaking change: Rename 
data-has-nested-dialogstodata-nested-dialog-open(#1686) - Breaking change: Add new 
trap-focusvalue tomodalprop. Dialogs withmodal=falseno longer trap focus. (#1571) - Fix 
onOpenChangetypes forevent/reasonpassing (#1721) - Use consistent 
inertattr and map[data-popup-open]back toopen(#1650) - Fix text selection & right-clicks (#1702)
 - Allow document to slide input into view on iOS when keyboard opens (#1735)
 
Field
- Fix forwarding of 
nameanddisabledprops (#1616) 
Menu
- Add missing item data attributes docs (#1691)
 - Fix 
inertprop compatibility in React <19 (#1618) - Fix stuck highlight on submenu trigger when submenu opens with keyboard (#1698)
 - Fix 
onOpenChangetypes forevent/reasonpassing (#1721) - Use consistent 
inertattr and map[data-popup-open]back toopen(#1650) - Fix text selection & right-clicks (#1702)
 
Meter
- New Meter component (#1435)
 
NumberField
Popover
- Breaking change: Add new 
trap-focusvalue tomodalprop (#1571) - Fix 
inertprop compatibility in React <19 (#1618) - Fix 
onOpenChangetypes forevent/reasonpassing (#1721) - Use consistent 
inertattr and map[data-popup-open]back toopen(#1650) - Fix text selection & right-clicks (#1702)
 
Progress
- Breaking change: Add 
Progress.Labelandlocaleprop. ThegetAriaLabelprop was removed as<Progress.Label>should be used to provide an accessible name. (#1666) 
Radio
- Fix value forwarding and null handling (#1697)
 
ScrollArea
- Breaking change: Add 
Contentpart. It is now required to include the<ScrollArea.Content>within<ScrollArea.Viewport>part when the content is horizontally scrollable. (#1607) - Handle visibility change and nesting (#1598)
 - Correct thumb sizing with scrollbar margins (#1606)
 
Select
- Breaking change: Improve item highlight performance.
The highlighted state is now removed. It’s not possible to customize the 
data-highlightedattribute anymore. (#1570) - Avoid double commit on value change (#1597)
 - Reset 
selectedIndexwhen set tonull(#1596) - Add missing item data attributes docs (#1691)
 - Fix 
onOpenChangetypes forevent/reasonpassing (#1721) - Use consistent 
inertattr and map[data-popup-open]back toopen(#1650) - Fix text selection & right-clicks (#1702)
 
Slider
- Correct thumb positioning when control has padding (#1661)
 - Prevent range slider thumbs from being dragged past each other (#1612)
 - Fix incorrect CSS position on vertical slider indicator (#1599)
 - Fix overlapping slider thumbs stuck at min or max (#1732)
 
Toast
- New Toast component (#1467)
 
Tooltip
- Avoid re-rendering unrelated consumers (#1677)
 - Add 
disabledprop (#1682) - Fix 
onOpenChangetypes forevent/reasonpassing (#1721) - Use consistent 
inertattr and map[data-popup-open]back toopen(#1650) - Fix text selection & right-clicks (#1702)
 
v1.0.0-alpha.7
Mar 20, 2025
Accordion
- Fix 
aria-labelledbyon accordion panel (#1544) 
AlertDialog
- Fix selection on outside press on Firefox with modal prop (#1573)
 - Fix non-interactive button disabled state (#1473)
 actionsRefprop (#1236)
Avatar
Collapsible
- Update props destructuring to fix Trigger disabled state (#1469)
 
Dialog
- Fix selection on outside press on Firefox with modal prop (#1573)
 - Fix non-interactive button disabled state (#1473)
 actionsRefprop (#1236)
Field
- Fix 
FieldControl[data-filled] not reacting to external value changes (#1565) 
Menu
- Ensure submenu triggers respond to clicks when 
openOnHover=false(#1583) - Ensure 
stickIfOpenis reset totruecorrectly (#1548) - Fix selection on outside press on Firefox with modal prop (#1573)
 - Reset 
hoverEnabledstate on close (#1461) - Fix prop merging issues (#1445)
 - Set 
pointer-events: nonestyle on backdrops when hoverable (#1351) actionsRefprop (#1236)
NumberField
- Fix ScrubArea on Safari ([#1584])(https://github.com/mui/base-ui/pull/1584/))
 - Fix 
large/smallStepgetting stuck (#1578) - Fix parse of numbers with spaces as thousands separators (#1577)
 - Prevent virtual cursor overlapping native one (#1491)
 - Fix disabled state on increment/decrement buttons (#1462)
 - Correct virtual cursor rendering (#1484)
 - Add 
localeprop (#1488) - Improve virtual cursor perf (#1485)
 
Popover
- Ensure 
stickIfOpenis reset totruecorrectly (#1548) - Fix selection on outside press on Firefox with modal prop (#1573)
 - Set 
pointer-events: nonestyle on backdrops when hoverable (#1351) - Fix non-interactive button disabled state (#1473)
 modalprop (#1459)actionsRefprop (#1236)
PreviewCard
RadioGroup
Select
- Fix selection on outside press on Firefox with modal prop (#1573)
 actionsRefprop (#1236)- Improve 
ScrollArrowbehavior (#1564) - Ensure switching controlled value to 
nullupdates<Select.Value>label (#1561) - Pass 
valueas second argument to function children<Select.Value>(#1562) - Fix focus jump while hovering while navigating with keyboard (#1563)
 - Fix disabled state changing (#1526)
 
Slider
- Fix thumb positioning when controlled value violates min/max/step (#1541)
 - Warn when 
minis not less thanmax(#1475) - Narrow the type of 
valuein callbacks (#1241) 
Tabs
Toolbar
- Add Toolbar components (#1349)
 
Tooltip
useRender
v1.0.0-alpha.6
Feb 6, 2025
AlertDialog
Avatar
- Add Avatar component (#1210)
 
Checkbox
- Avoid applying 
hiddenattr whenkeepMounted=truefor indicators (#1329) 
Dialog
- Remove 
modal={open}state (#1352) - Support multiple non-nested modal backdrops (#1327)
 - Fix missing 
ids on Title and Description (#1326) onOpenChangeCompleteprop (#1305)- Fix jump with 
scroll-behaviorstyle (#1343) 
Field
Form
- Fix focusing of invalid field controls on errors prop change (#1364)
 
Menu
- Avoid applying 
hiddenattr whenkeepMounted=truefor indicators (#1329) - Support submenus with 
openOnHoverprop (#1338) - Fix iPad detection when applying scroll lock (#1342)
 onOpenChangeCompleteprop (#1305)- Fix jump with 
scroll-behaviorstyle (#1343) - Add 
OffsetFunctionforsideOffsetandalignOffset(#1223) - Ensure 
keepMountedis a private param onPositioner(#1410) 
Popover
onOpenChangeCompleteprop (#1305)- Add 
OffsetFunctionforsideOffsetandalignOffset(#1223) - Ensure 
keepMountedis a private param onPositioner(#1410) 
PreviewCard
onOpenChangeCompleteprop (#1305)- Add 
OffsetFunctionforsideOffsetandalignOffset(#1223) - Ensure 
keepMountedis a private param onPositioner(#1410) 
Progress
- Add 
formatprop andValuecomponent (#1355) 
Radio
- Avoid applying 
hiddenattr whenkeepMounted=truefor indicators (#1329) 
Select
onOpenChangeCompleteprop (#1305)- Fix jump with 
scroll-behaviorstyle (#1343) - Add 
OffsetFunctionforsideOffsetandalignOffset(#1223) - Ensure 
keepMountedis a private param onPositioner(#1410) 
Slider
- Fix thumb positioning (#1411)
 
Tabs
- Fix being able to activate a disabled tab (#1359)
 - Fix tabs activating incorrectly on non-primary button clicks (#1318)
 
Tooltip
onOpenChangeCompleteprop (#1305)- Add 
OffsetFunctionforsideOffsetandalignOffset(#1223) - Ensure 
keepMountedis a private param onPositioner(#1410) 
v1.0.0-alpha.5
Jan 10, 2025
AlertDialog
- Breaking change: Require 
Portalpart. The AlertDialog must explicitly include the Portal part wrapping the Popup. ThekeepMountedprop was removed from the Popup. It’s only present on the Portal part. #1222 - Don’t call 
onNestedDialogOpenwhen unmounting a closed nested dialog #1280 - Fix the nesting of different dialogs #1167
 - Remove 
useFloatingcall from the Popup #1300 - Set 
pointer-eventsonInternalBackdropbased onopenstate #1221 - Use internal backdrop for pointer modality #1161
 
Dialog
- Breaking change: Require 
Portalpart. The Dialog must explicitly include the Portal part wrapping the Popup. ThekeepMountedprop was removed from the Popup. It’s only present on the Portal part. #1222 - Don’t call 
onNestedDialogOpenwhen unmounting a closed nested dialog #1280 - Fix the nesting of different dialogs #1167
 - Remove 
useFloatingcall from the Popup #1300 - Set 
pointer-eventsonInternalBackdropbased onopenstate #1221 - Use internal backdrop for pointer modality #1161
 
Menu
- Breaking change: Require 
Portalpart. The Menu must explicitly include the Portal part wrapping the Positioner. ThekeepMountedprop was removed from the Positioner. It’s only present on the Portal part. #1222 - Apply 
aria-hiddentoArrowparts #1196 - Fix 
focusableWhenDisabledcomponents #1313 - Fix 
openOnHoverissues #1191 - Fix closing the menu when clicking on checkboxitem/radioitem #1301
 - Fix Enter key preventDefault when rendering links #1251
 - Handle pseudo-element bounds in mouseup detection #1250
 - Set 
pointer-eventsonInternalBackdropbased onopenstate #1221 - Use internal backdrop for pointer modality #1161
 
NumberField
- Correctly handle quick touches #1294
 
Popover
- Breaking change: Require 
Portalpart. The Popover must explicitly include the Portal part wrapping the Positioner. ThekeepMountedprop was removed from the Positioner. It’s only present on the Portal part. #1222 - Apply 
aria-hiddentoArrowparts #1196 - Fix PopoverTrigger and TooltipTrigger prop types #1209
 
PreviewCard
- Breaking change: Require 
Portalpart. The PreviewCard must explicitly include the Portal part wrapping the Positioner. ThekeepMountedprop was removed from the Positioner. It’s only present on the Portal part. #1222 - Apply 
aria-hiddentoArrowparts #1196 - Use 
FloatingPortalLite#1278 
Progress
- Set zero width when value is zero #1204
 
ScrollArea
- Differentiate 
x/yorientationdata-scrolling#1188 - Read 
DirectionProviderand use logical positioning CSS props #1194 
Select
- Breaking change: Require 
Portalpart. The Select must explicitly include the Portal part wrapping the Positioner. ThekeepMountedprop was removed from the Positioner. It’s only present on the Portal part. #1222 - Allow 
idto be passed to trigger #1174 - Fallback to standard positioning when pinch-zoomed in Safari #1139
 - Fix 
focusableWhenDisabledcomponents #1313 - Fix highlight flash on Safari #1233
 - Handle pseudo-element bounds in mouseup detection #1250
 - Use internal backdrop for pointer modality #1161
 
Separator
- Support vertical orientation #1304
 
Slider
- Ensure 
onValueCommittedis called with the same value as latestonValueChange#1296 - Replace internal map with 
Compositemetadata #1082 - Set 
position: relativeon range slider indicator #1175 - Use un-rounded values to position thumbs #1219
 
Tabs
- Expose width/height state in tabs indicator #1288
 
Tooltip
- Breaking change: Require 
Portalpart. The Tooltip must explicitly include the Portal part wrapping the Positioner. ThekeepMountedprop was removed from the Positioner. It’s only present on the Portal part. #1222 - Apply 
aria-hiddentoArrowparts #1196 - Fix PopoverTrigger and TooltipTrigger prop types #1209
 - Use 
FloatingPortalLite#1278 
1.0.0-alpha.4
December 17, 2024
Public alpha launch 🐣 Merry Xmas! 🎁