A set of completely unstyled, fully accessible UI components for Vue 3, designed to integrate beautifully with Tailwind CSS.
Last release 4 months ago
13 Apr 2026
Release timing varies
gaps range from 8 days to 4 months
Nearly every release is documented
notes for 47 of 49 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
761 releases · first in 2020
Release timeline
761 releases since 2020One column per quarter.
Releases
- 1.7.239 Sept 2024
Nothing published for this version
- 1.7.228 May 2024
- 1.7.2126 Apr 2024
- 1.7.2015 Apr 2024
Release notes
Open source →Fixed
- Expose
disabledstate onTabcomponent (#2918) - Prevent default behaviour when clicking outside of a
DialogPanel(#2919) - Don’t override explicit
disabledprop for components insideMenuItem(#2929) - Add
hiddenattribute to internalHiddencomponent when theFeatures.Hiddenfeature is used (#2955) - Allow setting custom
tabIndexon theSwitchcomponent (#2966) - Forward
disabledstate to hidden inputs in form-like components (#3004) - Respect
selectedIndexfor controlledTabcomponents (#3037)
- Expose
- 1.7.197 Feb 2024
- 1.7.182 Feb 2024
- 1.7.178 Jan 2024
Release notes
Open source →Fixed
- Don't call
Dialog'sonClosetwice on mobile devices (#2690) - Fix Portal SSR hydration mismatches (#2700)
- Ensure hidden
TabPanelcomponents are hidden from the accessibility tree (#2708) - Add support for
role="alertdialog"toDialogcomponent (#2709) - Ensure blurring the
ComboboxInputcomponent closes theCombobox(#2712) - Allow
buttonto be in nested components inPopoverButton(#2715) - Don't overwrite user-defined template refs when rendering (#2720)
- Fix missing
data-headlessui-stateattribute whenas="template"(#2787) - Fix VoiceOver bug for
Listboxcomponent in Chrome (#2824) - Fix outside click detection when component is mounted in the Shadow DOM (6846231)
- Fix CJS types (#2880)
- Fix error when transition classes contain new lines (#2871)
- Don't call
- 1.7.1617 Aug 2023
Release notes
Open source →Fixed
- Fix form elements for uncontrolled
<Listbox multiple>and<Combobox multiple>(#2626) - Use correct value when resetting
<Listbox multiple>and<Combobox multiple>(#2626) - Render
MainTreeNodeinPopoverGroupcomponent only (#2634) - Disable smooth scrolling when opening/closing
Dialogcomponents on iOS (#2635) - Don't assume
Tabcomponents are available when setting the next index (#2642) - Improve SSR of the
Disclosurecomponent (#2645) - Fix incorrectly focused
ComboboxInputcomponent on page load (#2654) - Improve resetting values when using the
nullableprop on theComboboxcomponent (#2660) - Prevent scrolling when focusing a tab (#2674)
- Fix form elements for uncontrolled
- 1.7.1527 Jul 2023
Release notes
Open source →Fixed
- Ensure the caret is in a consistent position when syncing the
Combobox.Inputvalue (#2568) - Improve "outside click" behaviour in combination with 3rd party libraries (#2572)
- Improve performance of
Comboboxcomponent (#2574) - Ensure IME works on Android devices (#2580)
- Calculate
aria-expandedpurely based on the open/closed state (#2610) - Submit form on
Entereven if no submit-like button was found (#2613)
- Ensure the caret is in a consistent position when syncing the
- 1.7.141 Jun 2023
Release notes
Open source →Fixed
- Fix memory leak in
Popovercomponent (#2430) - Ensure
FocusTrapis only active when the givenenabledvalue istrue(#2456) - Ensure the exposed
activeIndexis up to date for theComboboxcomponent (#2463) - Improve control over
MenuandListboxoptions while searching (#2471) - Consider clicks inside iframes to be "outside" (#2485)
- Ensure moving focus within a
Portalcomponent, does not close thePopovercomponent (#2492)
Changed
- Move
typescondition to the front (#2469)
- Fix memory leak in
- 1.7.1312 Apr 2023
Release notes
Open source →Fixed
- Fix focus styles showing up when using the mouse (#2347)
- Disable
ComboboxInputwhen itsComboboxis disabled (#2375) - Add
FocusTrapevent listeners once document has loaded (#2389) - Don't scroll-lock
Dialogwhen wrapping transition isn't showing (#2422) - Ensure DOM
refis properly handled in theRadioGroupcomponent (#2424) - Correctly handle IME composition in
Combobox.Input(#2426)
Added
- Add
formprop to form-like components such asRadioGroup,Switch,Listbox, andCombobox(#2356)
- 1.7.123 Mar 2023
Release notes
Open source →Fixed
- Enable native label behavior for
Switchwhere possible (#2265) - Allow root containers from the
Dialogcomponent in theFocusTrapcomponent (#2322) - Cleanup internal TypeScript types (#2329)
- Fix restore focus to buttons in Safari, when
Dialogcomponent closes (#2326) - Ensure hooks in the
FocusTrapcomponent only apply when mounted (#2331)
- Enable native label behavior for
- 1.7.1124 Feb 2023
- 1.7.1015 Feb 2023
Release notes
Open source →Fixed
- Don’t fire
afterLeaveevent more than once for a given transition (#2267) - Move
aria-multiselectableto[role=listbox]in theComboboxcomponent (#2271) - Re-focus
Combobox.Inputwhen aCombobox.Optionis selected (#2272) - Ensure we reset the
activeOptionIndexif the active option is unmounted (#2274) - Start cleanup phase of the
Dialogcomponent when going into theClosingstate (#2264)
- Don’t fire
- 1.7.93 Feb 2023
Release notes
Open source →Fixed
- Don't break overflow when multiple dialogs are open at the same time (#2215)
- 1.7.827 Jan 2023
Release notes
Open source →Changed
- Adjust SSR detection mechanism (#2102)
Fixed
- Ensure
disabled="false"is not incorrectly passed to the underlying DOM Node (#2138) - Fix arrow key handling in
Tab(after DOM order changes) (#2145) - Fix
Tabkey with non focusable elements inPopover.Panel(#2147) - Don’t overwrite classes during SSR when rendering fragments (#2173)
- Improve
Comboboxaccessibility (#2153) - Fix crash when reading
headlessuiFocusGuardofrelatedTargetin theFocusTrapcomponent (#2203) - Fix
FocusTrapinDialogwhen there is only 1 focusable element (#2172) - Improve
Tabswrapping around when controlling the component and overflowing theselectedIndex(#2213) - Fix
shadow-rootbug closingDialogcontainers (#2217)
Added
- Allow setting
tabIndexon theTab.Panel(#2214)
- 1.7.716 Dec 2022
- 1.7.615 Dec 2022
- 1.7.58 Dec 2022
Release notes
Open source →Fixed
- Reset form-like components when the parent
formresets (#2004) - Ensure Popover doesn't crash when
focusis going towindow(#2019) - Ensure
shift+homeandshift+endworks as expected in theComboboxInputcomponent (#2024) - Improve syncing of the
ComboboxInputvalue (#2042) - Fix crash when using
multiplemode withoutvalueprop (uncontrolled) forListboxandComboboxcomponents (#2058) - Allow passing in your own
idprop (#2060) - Add
nullas a valid type for Listbox and Combobox in Vue (#2064, #2067) - Improve SSR for Tabs in Vue (#2068)
- Ignore pointer events in Listbox, Menu, and Combobox when cursor hasn't moved (#2069)
- Allow clicks inside dialog panel when target is inside shadow root (#2079)
- Reset form-like components when the parent
- 1.7.43 Nov 2022
- 1.7.330 Sept 2022
- 1.7.215 Sept 2022
- 1.7.112 Sept 2022
- 1.7.06 Sept 2022
Release notes
Open source →Added
- Add
byprop forListbox,ComboboxandRadioGroup(#1482, #1717, #1814, #1815) - Make form components uncontrollable (#1683)
- Add
@headlessui/tailwindcssplugin (#1487)
Fixed
- Fixed SSR support on Deno (#1671)
- Don’t close dialog when opened during mouse up event (#1667)
- Don’t close dialog when drag ends outside dialog (#1667)
- Fix outside clicks to close dialog when nested, unopened dialogs are present (#1667)
- Close
Menucomponent when usingtabkey (#1673) - Resync input when display value changes (#1679, #1755)
- Ensure controlled
Tabsdon't change automagically (#1680) - Improve outside click on Safari iOS (#1712)
- Improve event handler merging (#1715)
- Fix incorrect scrolling to the bottom when opening a
Dialog(#1716) - Don't overwrite
element.focus()onPopoverPanel(#1719) - Improve
Comboboxre-opening keyboard issue on mobile (#1732) - Only select the active option when using "singular" mode when pressing
tabin theComboboxcomponent (#1750) - Only restore focus to the
MenuButtonif necessary when activating aMenuOption(#1782) - Don't scroll when wrapping around in focus trap (#1789)
- Improve accessibility when announcing
ListboxOptionandComboboxOptioncomponents (#1812) - Expose the
valuefrom theComboboxandListboxcomponents slot (#1822) - Improve
scroll lockon iOS (#1824)
- Add
- 1.6.712 Jul 2022
- 1.6.67 Jul 2022
- 1.6.520 Jun 2022
Release notes
Open source →Fixed
- Support
slotchildren when usingas="template"(#1548) - Improve outside click of
Dialogcomponent (#1546) - Detect outside clicks from within
iframeelements (#1552) - Only render the
Dialogon the client (#1566) - Improve Combobox input cursor position (#1574)
- Fix scrolling issue in
Tabcomponent when using arrow keys (#1584) - Fix missing
aria-expandedforComboboxInputcomponent (#1605)
- Support
- 1.6.429 May 2022
- 1.6.325 May 2022
- 1.6.219 May 2022
Release notes
Open source →Fixed
- Ensure
DialogPanelexposes its ref (#1404) - Ignore
Escapewhen event got prevented inDialogcomponent (#1424) - Improve
FocusTrapbehaviour (#1432) - Simplify
PopoverTab logic by using sentinel nodes instead of keydown event interception (#1440) - Ensure the
PopoverPanelis clickable without closing thePopover(#1443) - Improve "Scroll lock" scrollbar width for
Dialogcomponent (#1457) - Don't throw when SSR rendering internal portals in Vue (#1459)
- Ensure
- 1.6.13 May 2022
- 1.6.025 Apr 2022
Release notes
Open source →Fixed
- Make sure that the input syncs when the combobox closes (#1137)
- Ensure that you can close the
Comboboxinitially (#1148) - Fix
Dialogusage inTabcomponent (#1149) - Ensure links are triggered inside
PopoverPanelcomponents (#1153) - Fix
hoverscroll issue inListbox,ComboboxandMenucomponents (#1161) - Guarantee DOM sort order when performing
Listbox,ComboboxandMenuactions (#1168) - Improve outside click support (#1175)
- Reset
ComboboxInputwhen the value gets reset (#1181) - Adjust active
item/optionindex onListbox,ComboboxandMenucomponents (#1184) - Fix re-focusing element after close (#1186)
- Fix
Dialogcycling (#553) - Only activate the
Tabon mouseup (#1192) - Ignore "outside click" on removed elements (#1193)
- Remove
focus()fromListbox.Option(#1218) - Improve some internal code (#1221)
- Don't drop initial character when searching in Combobox (#1223)
- Use
ownerDocumentinstead ofdocument(#1158) - Fix, re-expose
elfrom each component (#1230) - Ensure focus trapping plays well with the
TabandDialogcomponents (#1231) - Improve syncing of
ComboboxInputvalue (#1248) - Fix tree-shaking support (#1247)
- Stop propagation on the
PopoverButton(#1263) - Fix incorrect closing while interacting with third party libraries in
Dialogcomponent (#1268) - Mimic browser select on focus when navigating via
Tab(#1272) - Resolve
initialFocusRefcorrectly (#1276) - Ensure that there is always an active option in the
Combobox(#1279, #1281) - Support classic form submissions in
RadioGroup,SwitchandComboboxcomponents (#1285) - Fix
nullableprop for Vue (2b109548b1a94a30858cf58c8f525554a1c12cbb) - Prefer incoming
openprop over OpenClosed state (#1360)
Added
- 1.5.017 Feb 2022
Release notes
Open source →Fixed
- Ensure correct order when conditionally rendering
MenuItem,ListboxOptionandRadioGroupOption(#1045) - Improve typeahead search logic (#1051)
- Improve overal codebase, use modern tech like
esbuildand TypeScript 4! (#1055) - Improve build files (#1078)
- Ensure typeahead stays on same item if it still matches (#1098)
Added
- Ensure correct order when conditionally rendering
- 1.4.314 Jan 2022
- 1.4.28 Nov 2021
- 1.4.130 Aug 2021
- 1.4.029 Jul 2021
- 1.3.021 Jun 2021
Release notes
Open source →Added
- Ensure that you can use
TransitionChildwhen using implicit Transitions (#503) - Add new
enteredprop forTransitionandTransitionChildcomponents (#504)
Fixes
- Ensure that you can use
- 1.2.010 May 2021
Release notes
Open source →Added
- Introduce Open/Closed state, to simplify component communication (#466)
- 1.2.0-ece9e8710 Jun 2021pre-release
Nothing published for this version
- 1.2.0-2279cd912 May 2021pre-release
Nothing published for this version
- 1.2.0-21157da12 May 2021pre-release
Nothing published for this version
- 1.2.0-10506815 Jun 2021pre-release
Nothing published for this version
- 1.1.128 Apr 2021
- 1.1.1-ab928113 May 2021pre-release
Nothing published for this version
- 1.1.026 Apr 2021
Release notes
Open source →Fixes
- Improve search, make searching case insensitive (#385)
- Fix unreachable
RadioGroup(#401) - Fix
RadioGroupOptionvalue type (#400) - Fix closing nested
Dialogcomponents when pressingEscape(#430)
Added
- 1.0.014 Apr 2021
Release notes
Open source →Fixes
Added
- Add
SwitchDescriptioncomponent, which adds thearia-describedbyto the actual Switch (#220) - Add
Disclosure,DisclosureButton,DisclosurePanelcomponents (#282) - Add
Dialog,DialogOverlay,DialogTitleandDialogDescriptioncomponents (#282) - Add
PortalandPortalGroupcomponents (#282) - Add
FocusTrapcomponent (#282) - Add
Popover,PopoverButton,PopoverOverlay,PopoverPanelandPopoverGroupcomponents (#282) - Add
RadioGroup,RadioGroupOption,RadioGroupLabelandRadioGroupDescriptioncomponents (#282) - Add
TransitionRootandTransitionChildcomponents (#326)
- Add
- 1.0.0-ef31bbe21 Apr 2021pre-release
Nothing published for this version
- 1.0.0-ce8d7f519 Apr 2021pre-release
Nothing published for this version
- 1.0.0-be833ba16 Apr 2021pre-release
Nothing published for this version
- 1.0.0-43d527022 Apr 2021pre-release
Nothing published for this version
- 0.3.12 Apr 2021
- 0.3.1-d9501469 Apr 2021pre-release
Nothing published for this version
- 0.3.1-cdfeeac8 Apr 2021pre-release
Nothing published for this version
- 0.3.1-acbc4d79 Apr 2021pre-release
Nothing published for this version
- 0.3.1-a02c8188 Apr 2021pre-release
Nothing published for this version
- 0.3.1-8feec8c7 Apr 2021pre-release
Nothing published for this version
- 0.3.1-6fa6c459 Apr 2021pre-release
Nothing published for this version
- 0.3.1-5ff52256 Apr 2021pre-release
Nothing published for this version
- 0.3.1-2aa95f28 Apr 2021pre-release
Nothing published for this version