useClickOutside API
API reference for the useClickOutside composable.
Functions
useClickOutside
(target: MaybeArray<ClickOutsideTarget>, handler: (event: PointerEvent | FocusEvent) => void, options?: UseClickOutsideOptions) => UseClickOutsideReturnDetects 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
booleanUse capture phase for event listeners. Ensures detection works even when inner elements call stopPropagation.
Default: true
touchScrollThreshold
numberTouch 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
booleanDetect focus moving to iframes as an outside click. Useful when iframes are outside the target elements.
Default: false
ignore
MaybeRefOrGetter<ClickOutsideIgnoreTarget[]>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
booleanUse 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