Skip to content

Browser support ​

The components use the platform first: the native element or API when the browser has it, a script fallback when it does not. The detection is done once (getSupport()), feature by feature, never by browser name.

FeatureUsed byNative when availableFallback
<dialog> and showModal()Modal, Dialog, Drawerfocus trap, Escape, inert page, top layer, ::backdropa role="dialog" with its own focus trap, Escape, backdrop and scroll lock
closedby on <dialog>Modal, Dialog, Drawerlight dismiss without codea click handler on the backdrop
Popover APITooltip, Popover, Dropdown, Combobox, DatePicker, toaststop layer, light dismiss, Escape, focus returnhidden toggle with outside click and Escape handlers
<details name>Accordionexclusive group without codethe accordion closes the others itself
hidden="until-found"Tabs panelsthe page search reveals a hidden panelthe panel stays hidden until selected
<search>DataTable filterslandmark without a rolea div with role="search"
<progress>, <meter>Progress, Ratingbuilt-in role and valuealways available
Invoker commandsModal, Drawer, Dropdown triggerscommandfor and command on a buttona click handler
CSS anchor positioningfloating elementsdetected, see belowposition computed in script (placement, flip, shift)
View TransitionsCarousel, Tabsanimated change of panelno animation
Clipboard APICodeBlock, Terminal copy buttonsnavigator.clipboard.writeTextdocument.execCommand('copy') on a hidden textarea
input.showPicker()DatePicker, TimePicker, ColorPickeropen the native pickerthe custom panel
Intldates, numbers, plurals, listsalways usednone needed

Forcing a fallback ​

For tests, for an old browser you support, or to avoid a bug:

ts
app.use(VueComponentsPlugin, { support: { popover: false, dialog: false } })

detectSupport(env) is a pure function of the environment, so every combination can be tested without a browser.

Documentation of 1.4.4 , built from 8e9b054 on 1.4.4 by pipeline #2989941079 on 2026-10-26.