npm / @headlessui/react
@headlessui/react
What changed in @headlessui/react 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-26.
12 breaking4 deprecations29 new APIs and options1 behavior and defaults13 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@headlessui/react 259 changes
Breaking changes 12
The default tag for ComboboxOption has changed.
The default tag for ComboboxOptions has changed.
Dialog is focused by default instead of focusing the first focusable element.
The deprecated DialogBackdrop component has been removed.
The deprecated DialogOverlay component has been removed.
Checkbox, Switch, and RadioGroup always render hidden form input fields.
Pressing enter on ListboxButton now attempts form submission.
The default tag for ListboxOption has changed.
The default tag for ListboxOptions has changed.
React 18 is now required.
The default tag for TabGroup has changed.
Transition components now default to Fragment instead of div.
Deprecations 4
The active prop is deprecated in favor of the focus prop.
Dot notation for components is deprecated.
The entered prop on Transition is deprecated.
RadioGroup.Option is deprecated in favor of the new Radio component.
New APIs and options 29
A new prop is available on Combobox, Listbox, Menu, and Popover.
Focusable components now accept an autoFocus prop.
A new Button component is available.
A CSS variable is available on ListboxOptions, MenuItems, and PopoverPanel.
A CSS variable is available on the ComboboxOptions component.
A new Checkbox component is available.
A new CloseButton component is available.
ComboboxOptions now has a frozen value.
New data attributes provide an alternative to the existing data-headlessui-state attribute.
A new DataInteractive component is available.
A new Description component is available.
A new Field component is available.
A new Fieldset component is available.
The Combobox can immediately open when its input receives focus.
A new Input component is available.
A CSS variable is available on the ComboboxOptions component.
A new Label component is available.
A new Legend component is available.
A new ListboxSelectedOption component is available.
A new MenuHeading component is available.
A new MenuSection component is available.
A new MenuSeparator component is available.
A new prop is available on Combobox, Listbox, Menu, and Popover.
The Combobox component now accepts an onClose prop.
A new prop is available on Combobox, Listbox, Menu, and Popover.
A new Select component is available.
A new Textarea component is available.
A new useClose hook is available.
The Combobox component now accepts a virtual prop.
Behavior and default changes 1
Combobox now allows a null value.
Fixes and other changes 13
Fixes an error when passing props on Fragment caused by Symbol(react.lazy).
A Portal is no longer rendered while hydrating.
Event cancellation is fixed when using disabled or aria-disabled attributes.
Focus handling in ComboboxInput is fixed.
Horizontal scrolling inside Dialog is fixed.
Event cancellation is fixed when using disabled or aria-disabled attributes.
The displayValue callback in ComboboxInput no longer executes unnecessarily.
Focus handling in ListboxOptions is fixed.
Focus handling in MenuItems is fixed.
Types for the multiple prop in Combobox are fixed.
Scroll-locking on iOS is fixed.
touchmove is no longer canceled on input elements inside a dialog.
Enter transitions in Transition are fixed.