Skip to content

Releases: mui/base-ui

v1.0.0-beta.2

30 Jul 14:59
2ccc866
Compare
Choose a tag to compare
v1.0.0-beta.2 Pre-release
Pre-release

General changes

  • Fix navigator checks and ensure safe platform retrieval (#2273) by @mo36924
  • Prevent Space key default on keydown (#2295) by @atomiks
  • Check for performance existence on server (#2316) by @atomiks

Accordion

Alert Dialog

Checkbox

Collapsible

Dialog

Field

Form

Menu

Menubar

Meter

Navigation Menu

  • Breaking change: Support inlined nesting.
    Ensure the popup's width is set to var(--popup-width) unconditionally (without the media query) on the .Popup class.
    (#2269) by @atomiks
  • Avoid double useRenderElement passes (#2256) by @atomiks
  • Add useButton integration to Trigger (#2296) by @atomiks
  • Fix popup size transitions on iOS (#2387) by @atomiks

Number Field

Popover

  • Support ShadowRoot containers (#2236) by @atomiks
  • Remove ancestor nodes from inside elements for outside press detection (#2339) by @atomiks
  • Improve outside press behavior with touch input (#2334) by @atomiks
  • Use click event for outside press dismissal (#2275) by @atomiks

Preview Card

Progress

Radio Group

Scroll Area

  • Disable user-select on scrollbar and non-main button interactions (#2338) by @atomiks

Select

Slider

Toast

Toggle

Toggle Group

Toolbar

Tooltip

All contributors of this release in alphabetical order: @aelfannir, @atomiks, @brijeshb42, @cgatian, @Janpot, @michaldudak, @mj12albert, @mo36924, @romgrk, @sai6855

v1.0.0-beta.1

01 Jul 10:31
27c13bb
Compare
Choose a tag to compare
v1.0.0-beta.1 Pre-release
Pre-release

Jul 1, 2025

General changes

Accordion

Checkbox

  • Breaking change: Support implicit Field.Label.
    If Field.Label encloses Switch/Checkbox/Radio, the htmlFor/id attributes are no longer explicitly set to associate them.
    (#2036) by @mj12albert
  • Refactor to useRenderElement (#2053) by @mj12albert
  • Always set id on the <input> element (#2115) by @mj12albert

Checkbox Group

  • Fix onCheckedChange not running when parent checkbox is present (#2155) by @mj12albert

Collapsible

Context Menu

  • Breaking change: Add SubmenuRoot part.
    Nested menus should be defined with Menu.SubmenuRoot instead of Menu.Root to to avoid ambiguity.
    (#2042) by @atomiks
  • Fix CheckboxItemIndicator export (#2009) by @aarongarciah

Dialog

Field

  • Breaking change: Support implicit Field.Label.
    If Field.Label encloses Switch/Checkbox/Radio, the htmlFor/id attributes are no longer explicitly set to associate them.
    (#2036) by @mj12albert
  • Enable custom validation based on other form values (#1941) by @mj12albert
  • Fix onValueChange value type (#2112) by @atomiks
  • Fix Field.Label focusing trigger (#2118) by @atomiks
  • Fix slider field label (#2154) by @mj12albert

Fieldset

Form

Input

Menu

  • Breaking change: Add SubmenuRoot part.
    Nested menus should be defined with Menu.SubmenuRoot instead of Menu.Root to to avoid ambiguity.
    (#2042) by @atomiks
  • Unset role from Trigger (#2047) by @atomiks
  • Emit close event on cancel-open (#2067) by @atomiks
  • Fix close toggle when rendering non-native button (#2071) by @atomiks
  • Add highlighted to item State (#2079) by @atomiks
  • Remove highlighted effect (#2162) by @atomiks
  • Cut out internal backdrop to allow interacting with triggers (#2141) by @michaldudak
  • Fix active index sync on hover (#2163) by @atomiks
  • Fix focus returning to root when submenus have exit transitions (#2163) by @atomiks

Menubar

Navigation Menu

Number Field

  • Ensure onValueChange is called with already-formatted parsed value (#1905) by @atomiks
  • Fix revalidation on change (#2174) by @atomiks

Popover

  • Fix close toggle when rendering non-native button (#2071) by @atomiks
  • Cut out internal backdrop to allow interacting with triggers (#2141) by @michaldudak

Radio Group

  • Breaking change: Support implicit Field.Label.
    If Field.Label encloses Radio, the htmlFor/id attributes are no longer explicitly set to associate them.
    (#2036) by @mj12albert
  • Refactor to useRenderElement (#2053) by @mj12albert

Scroll Area

  • Ignore data-scrolling during programmatic scroll (#1908) by @atomiks

Select

Slider

Switch

  • Breaking change: Support implicit Field.Label.
    If Field.Label encloses Switch, the htmlFor/id attributes are no longer explicitly set to associate them.
    (#2036) by @mj12albert

Tabs

Toolbar

  • Set disabled attr on toolbar button when focusableWhenDisabled={false} (#2176) by @mj12albert

useRender

All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @bernardobelchior, @brijeshb42, @Janpot, @juliomerisio, @lesha1201, @michaldudak, @mj12albert, @oliviertassinari, @romgrk

v1.0.0-beta.0

29 May 12:51
74975af
Compare
Choose a tag to compare
v1.0.0-beta.0 Pre-release
Pre-release

May 29, 2025

General changes

Accordion

  • Stop event propagation to allow composite components to be used within popups (#1871) by @atomiks

Alert Dialog

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Use basic scroll lock on iOS
    (#1890) by @atomiks

Checkbox

Checkbox Group

  • Breaking change: Enable submitting checkbox group value as one field.
    For parent checkboxes, use value instead of name on each Checkbox.Root part to link as the values.
    (#1948) by @mj12albert
  • Fix validate fn incorrectly running twice (#1959) by @mj12albert

Context Menu

Dialog

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Use basic scroll lock on iOS
    (#1890) by @atomiks

Field

  • Breaking change: Consolidate Field.Error forceShow into match prop.
    Use match={true} (or implicit boolean) instead of forceShow.
    (#1919) by @atomiks
  • Improve Label logic that prevents text selection on double click (#1784) by @atomiks
  • Fix validation inconsistency (#1779) by @atomiks
  • Fix integration of Base UI components (#1755) by @atomiks
  • Set valueMissing to false if only error and not dirtied (#1810) by @atomiks
  • validate with latest value on blur (#1850) by @atomiks
  • Revalidate only required on change (#1840) by @atomiks
  • Run validate function after native validations (#1926) by @mj12albert
  • Fix validate fn incorrectly running twice (#1959) by @mj12albert
  • Integrate range sliders with Form and Field (#1929) by @mj12albert

Form

Input

Menu

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Fix function dependency handling (#1787) by @atomiks
  • Add missing 'use client' to RadioGroup part (#1851) by @atomiks
  • Ensure null items are removed from composite lists (#1847) by @atomiks
  • Avoid :focus-visible style appearing (#1846) by @atomiks
  • Better handle dynamic and non-string items (#1861) by @atomiks
  • Add collisionAvoidance prop (#1849) by @atomiks
  • Add finalFocus and closeDelay props (#1918) by @atomiks
  • Use basic scroll lock on iOS
    (#1890) by @atomiks

Menubar

Navigation Menu

Number Field

  • validate with latest value on blur (#1850) by @atomiks
  • Move scrubbing logic to ScrubArea component (#1859) by @atomiks
  • Remove floating point errors when snapOnStep is disabled (#1857) by @atomiks
  • Stop event propagation to allow composite components to be used within popups (#1871) by @atomiks
  • Exclude number formatting from form value (#1957) by @mj12albert

Popover

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Fix function dependency handling (#1787) by @atomiks
  • Avoid prop getters when merging props (#1852) by @atomiks
  • Add collisionAvoidance prop (#1849) by @atomiks
  • Fix nested openOnHover (#1938) by @atomiks
  • Use basic scroll lock on iOS
    (#1890) by @atomiks

Preview Card

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Fix function dependency handling (#1787) by @atomiks
  • Add collisionAvoidance prop (#1849) by @atomiks

Radio Group

  • Fix composite focus of initially selected radio item (#1753) by @atomiks
  • Add inputRef props (#1683) by @atomiks
  • Stop event propagation to allow composite components to be used within popups (#1871) by @atomiks

Select

  • Breaking change: Move item anchoring prop to Positioner.
    Use <Select.Positioner alignItemWithTrigger={false}> instead of <Select.Root alignItemToTrigger={false}> (note the With instead of To).
    (#1713) by @atomiks
  • Breaking change: Defer mounting until typeahead is needed.
    The placeholder prop is now required. Previously, only SSR needed it to prevent a hydration flash, but client-side rendering now also requires it.
    (#1906) by @atomiks
  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Fix function dependency handling (#1787) by @atomiks
  • Add inputRef props (#1683) by @atomiks
  • Refactor to useRenderElement (#1797) by @atomiks
  • Ensure null items are removed from composite lists (#1847) by @atomiks
  • Fix id prop forwarding to hidden input (#1862) by @atomiks
  • Avoid :focus-visible style appearing (#1846) by @atomiks
  • Fix transitionStatus mapping on ItemIndicator (#1925) by @atomiks
  • Better handle dynamic and non-string items (#1861) by @atomiks
  • Use Select.ItemText ref to grab default text content (#1943) by @atomiks
  • Add collisionAvoidance prop (#1849) by @atomiks
  • Use basic scroll lock on iOS
    (#1890) by @atomiks

Slider

Toast

  • Breaking change: Add Portal part.
    Place <Toast.Viewport> inside of <Toast.Portal>.
    (#1962) by @atomiks
  • 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) by @atomiks
  • Fix swipe jump on iOS (#1785) by @atomiks

Toggle

  • Stop event propagation to allow composite components to be used within popups (#1871) by @atomiks

Toolbar

  • Stop event propagation to allow composite components to be used within popups (#1871) by @atomiks

Tooltip

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus.
    (#1782) by @atomiks
  • Fix function dependency handling (#1787) by @atomiks
  • Avoid prop getters when merging props (#1852) by @atomiks
  • Remove trackCursorAxis type from Positioner (#1895) by @atomiks
  • Apply pointer-events: none to Positioner when not hoverable (#1917) by @atomiks
  • Add collisionAvoidance prop (#1849) by @atomiks

useRender

  • Breaking change: Performance/refactor: useRender. An object with a renderElement property is no longer returned; instead, the hook returns the element directly (const element = useRender(...)). The refs option was also renamed to ref.
    (#1934) by @romgrk
  • Skip most of useRenderElement logic when unnecessary (#1967) by @michaldudak

All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @brijeshb42, @DarthSim, @flaviendelangle, @Janpot, @JCQuintas, @michaldudak, @mj12albert, @oliviertassinari, @romgrk, @Yonava, @ZeeshanTamboli

v1.0.0-alpha.8

17 Apr 12:10
4613c52
Compare
Choose a tag to compare
v1.0.0-alpha.8 Pre-release
Pre-release

Apr 17, 2025

Accordion

AlertDialog

  • Breaking change: Rename data-has-nested-dialogs to data-nested-dialog-open (#1686) @mj12albert
  • Fix onOpenChange types for event/reason passing (#1721) @atomiks
  • Use consistent inert attr and map [data-popup-open] back to open (#1650) @atomiks
  • Fix text selection & right-clicks (#1702) @mj12albert

CheckboxGroup

Collapsible

Dialog

  • Breaking change: Rename data-has-nested-dialogs to data-nested-dialog-open (#1686) @mj12albert
  • Breaking change: Add new trap-focus value to modal prop.
    Dialogs with modal=false no longer trap focus.
    (#1571) @atomiks
  • Fix onOpenChange types for event/reason passing (#1721) @atomiks
  • Use consistent inert attr and map [data-popup-open] back to open (#1650) @atomiks
  • Fix text selection & right-clicks (#1702) @mj12albert
  • Allow document to slide input into view on iOS when keyboard opens (#1735) @atomiks

Field

Menu

Meter

NumberField

Popover

Progress

  • Breaking change: Add Progress.Label and locale prop.
    The getAriaLabel prop was removed as Progress.Label should be used to provide an accessible name.
    (#1666) @mj12albert

Radio

ScrollArea

  • Breaking change: Add Content part.
    It is now required to include the ScrollArea.Content within ScrollArea.Viewport part when the content is horizontally scrollable.
    (#1607) @atomiks
  • Handle visibility change and nesting (#1598) @atomiks
  • Correct thumb sizing with scrollbar margins (#1606) @atomiks

Select

  • Breaking change: Improve item highlight performance.
    The highlighted state is now removed. It's not possible to customize the data-highlighted attribute anymore.
    (#1570) @atomiks
  • Avoid double commit on value change (#1597) @atomiks
  • Reset selectedIndex when set to null (#1596) @atomiks
  • Add missing item data attributes docs (#1691) @atomiks
  • Fix onOpenChange types for event/reason passing (#1721) @atomiks
  • Use consistent inert attr and map [data-popup-open] back to open (#1650) @atomiks
  • Fix text selection & right-clicks (#1702) @mj12albert

Slider

Toast

Tooltip

All contributors of this release in alphabetical order: @atomiks, @megos, @michaldudak, @mj12albert, @oliviertassinari, @sebinsua, @ZeeshanTamboli

v1.0.0-alpha.7

20 Mar 15:38
d389076
Compare
Choose a tag to compare
v1.0.0-alpha.7 Pre-release
Pre-release

Mar 20, 2025

Accordion

AlertDialog

Avatar

Collapsible

  • Update props destructuring to fix Trigger disabled state (#1469) @huijiewei

Dialog

Field

  • Fix FieldControl [data-filled] not reacting to external value changes (#1565) @atomiks

Menu

NumberField

Popover

PreviewCard

RadioGroup

Select

Slider

Tabs

Toolbar

Tooltip

useRender

Docs

Core

v1.0.0-alpha.6

06 Feb 09:36
ea32291
Compare
Choose a tag to compare
v1.0.0-alpha.6 Pre-release
Pre-release

Feb 6, 2025

AlertDialog

Avatar

Checkbox

  • Avoid applying hidden attr when keepMounted=true for indicators (#1329) @onehanddev

Dialog

Field

Form

  • Fix focusing of invalid field controls on errors prop change (#1364) @atomiks

Menu

Popover

PreviewCard

Progress

Radio

  • Avoid applying hidden attr when keepMounted=true for indicators (#1329) @onehanddev

Select

Slider

Tabs

Tooltip

v1.0.0-alpha.5

10 Jan 11:30
1147c18
Compare
Choose a tag to compare
v1.0.0-alpha.5 Pre-release
Pre-release

Jan 10, 2025

AlertDialog

  • Breaking change: Require Portal part.
    The AlertDialog must explicitly include the Portal part wrapping the Popup.
    The keepMounted prop was removed from the Popup.
    It's only present on the Portal part.
    #1222 @atomiks
  • Don't call onNestedDialogOpen when unmounting a closed nested dialog #1280 @mj12albert
  • Fix the nesting of different dialogs #1167 @mnajdova
  • Remove useFloating call from the Popup #1300 @michaldudak
  • Set pointer-events on InternalBackdrop based on open state #1221 @atomiks
  • Use internal backdrop for pointer modality #1161 @atomiks

Dialog

  • Breaking change: Require Portal part.
    The Dialog must explicitly include the Portal part wrapping the Popup.
    The keepMounted prop was removed from the Popup.
    It's only present on the Portal part.
    #1222 @atomiks
  • Don't call onNestedDialogOpen when unmounting a closed nested dialog #1280 @mj12albert
  • Fix the nesting of different dialogs #1167 @mnajdova
  • Remove useFloating call from the Popup #1300 @michaldudak
  • Set pointer-events on InternalBackdrop based on open state #1221 @atomiks
  • Use internal backdrop for pointer modality #1161 @atomiks

Menu

  • Breaking change: Require Portal part.
    The Menu must explicitly include the Portal part wrapping the Positioner.
    The keepMounted prop was removed from the Positioner.
    It's only present on the Portal part.
    #1222 @atomiks
  • Apply aria-hidden to Arrow parts #1196 @atomiks
  • Fix focusableWhenDisabled components #1313 @mj12albert
  • Fix openOnHover issues #1191 @atomiks
  • Fix closing the menu when clicking on checkboxitem/radioitem #1301 @michaldudak
  • Fix Enter key preventDefault when rendering links #1251 @mj12albert
  • Handle pseudo-element bounds in mouseup detection #1250 @atomiks
  • Set pointer-events on InternalBackdrop based on open state #1221 @atomiks
  • Use internal backdrop for pointer modality #1161 @atomiks

NumberField

Popover

  • Breaking change: Require Portal part.
    The Popover must explicitly include the Portal part wrapping the Positioner.
    The keepMounted prop was removed from the Positioner.
    It's only present on the Portal part.
    #1222 @atomiks
  • Apply aria-hidden to Arrow parts #1196 @atomiks
  • Fix PopoverTrigger and TooltipTrigger prop types #1209 @mnajdova

PreviewCard

  • Breaking change: Require Portal part.
    The PreviewCard must explicitly include the Portal part wrapping the Positioner.
    The keepMounted prop was removed from the Positioner.
    It's only present on the Portal part.
    #1222 @atomiks
  • Apply aria-hidden to Arrow parts #1196 @atomiks
  • Use FloatingPortalLite #1278 @atomiks

Progress

ScrollArea

Select

  • Breaking change: Require Portal part.
    The Select must explicitly include the Portal part wrapping the Positioner.
    The keepMounted prop was removed from the Positioner.
    It's only present on the Portal part.
    #1222 @atomiks
  • Allow id to be passed to trigger #1174 @atomiks
  • Fallback to standard positioning when pinch-zoomed in Safari #1139 @atomiks
  • Fix focusableWhenDisabled components #1313 @mj12albert
  • Fix highlight flash on Safari #1233 @atomiks
  • Handle pseudo-element bounds in mouseup detection #1250 @atomiks
  • Use internal backdrop for pointer modality #1161 @atomiks

Separator

Slider

Tabs

Tooltip

  • Breaking change: Require Portal part.
    The Tooltip must explicitly include the Portal part wrapping the Positioner.
    The keepMounted prop was removed from the Positioner.
    It's only present on the Portal part.
    #1222 @atomiks
  • Apply aria-hidden to Arrow parts #1196 @atomiks
  • Fix PopoverTrigger and TooltipTrigger prop types #1209 @mnajdova
  • Use FloatingPortalLite #1278 @atomiks

v1.0.0-alpha.4

17 Dec 13:48
97e2311
Compare
Choose a tag to compare
v1.0.0-alpha.4 Pre-release
Pre-release

Dec 17, 2024

Public alpha launch 🐣 Merry Xmas! 🎁

v1.0.0-alpha.3

07 Oct 09:07
29994ae
Compare
Choose a tag to compare
v1.0.0-alpha.3 Pre-release
Pre-release
Version 1.0.0-alpha.3

v1.0.0-alpha.2

20 Aug 10:22
e87832c
Compare
Choose a tag to compare
v1.0.0-alpha.2 Pre-release
Pre-release
Version 1.0.0-alpha.2