Skip to main content
Vuetify0 is now in alpha!
Vuetify0 Logo
Theme
Mode
Palettes
Accessibility
Vuetify One
Sign in to Vuetify One

Access premium tools across the Vuetify ecosystem — Bin, Play, Studio, and more.

Not a subscriber? See what's included

useClickOutside API

API reference for the useClickOutside composable.

Explore these related pages for additional context and usage patterns.

PageCategory
useClickOutsideSystem
useEventListenerSystem

Functions

useClickOutside

(target: MaybeArray<ClickOutsideTarget>, handler: (event: PointerEvent | FocusEvent) => void, options?: UseClickOutsideOptions) => UseClickOutsideReturn

Detects clicks outside of the specified element(s). Uses two-phase detection (pointerdown → pointerup) to prevent false positives when users drag from inside to outside an element.

Options

capture

boolean | undefined

Use capture phase for event listeners. Ensures detection works even when inner elements call stopPropagation.

Default: true

touchScrollThreshold

number | undefined

Touch movement threshold in pixels. If finger moves more than this distance, it's treated as a scroll, not a tap. Only applies to touch interactions.

Default: 30

detectIframe

boolean | undefined

Detect focus moving to iframes as an outside click. Useful when iframes are outside the target elements.

Default: false

ignore

MaybeRefOrGetter<ClickOutsideIgnoreTarget[]> | undefined

Elements to ignore when detecting outside clicks. Accepts element refs, getters, or CSS selector strings. Clicks on these elements (or their descendants) won't trigger the handler. Note: CSS selectors cannot match across Shadow DOM boundaries due to browser limitations. Use element refs instead when ignoring shadow hosts.

bounds

boolean | undefined

Use bounding rect instead of DOM containment to detect outside clicks. When true, checks if click coordinates are outside the element's bounding box. Useful for native <dialog> elements where backdrop clicks have the dialog as target.

Default: false

Properties

isActive

Readonly<Ref<boolean, boolean>>

Whether the listener is currently active

isPaused

Readonly<Ref<boolean, boolean>>

Whether the listener is currently paused

Methods

pause

() => void

Pause listening (stops detection but keeps state)

resume

() => void

Resume listening

stop

() => void

Stop listening and clean up

Was this page helpful?

Ctrl+/