Switch has type="button" (#192)useId() hook returning undefined on the clientdisabled not working when inside a disabled fieldset (#202)active MenuItem is scrolled into viewbeforeEnter, afterEnter, beforeLeave and afterLeave) (#57)static and unmount={true | false}) (#106)
div by default (unless you change this using the as={...} prop).ref anymore.unmount prop to the Transition and Transition.Child components.disabled prop to Listbox itself, instead of the Listbox.Button (#229)We changed the API of the Transition component to be more inline with the other API's of the various components. We now always render a div for the Transition and Transition.Child component. If you want to use a render function, then we still render a div. The render function also used do expose a ref prop, which is now not the case anymore.
You can still use the as prop to change the underlying div to another element or component.
// From
<Transition
show={true}
enter=".."
enterFrom=".."
enterTo=".."
leave=".."
leaveFrom=".."
leaveTo=".."
>
{ref => (
<div ref={ref} className="these classes always apply">
<span>Child</span>
</div>
)}
</Transition>
// To (option 1) - Hoist attributes from the first child `div` to the `Transition` itself
<Transition
show={true}
enter=".."
enterFrom=".."
enterTo=".."
leave=".."
leaveFrom=".."
leaveTo=".."
className="these classes always apply"
>
<span>Child</span>
</Transition>
// To (option 2) - Add `as={Fragment}` to the `Transition` component.
<Transition
as={React.Fragment}
show={true}
enter=".."
enterFrom=".."
enterTo=".."
leave=".."
leaveFrom=".."
leaveTo=".."
>
<div className="these classes always apply">
<span>Child</span>
</div>
</Transition>Fetched March 30, 2026