Skip to content


hide() provides data to hide the floating element in applicable situations, usually when it's not within the same clipping context as the reference element.

Scroll up

In the above example, the floating element turns red once it has escaped the reference element's clipping context. Once the reference element is hidden, it hides itself.


import {computePosition, hide} from '@floating-ui/dom';
computePosition(referenceEl, floatingEl, {
  middleware: [hide()],
}).then(({middlewareData}) => {
  const {referenceHidden} = middlewareData.hide;
  Object.assign(, {
    visibility: referenceHidden ? 'hidden' : 'visible',


hide() should generally be placed at the end of your middleware array.


These are the options you can pass to hide().

interface Options extends DetectOverflowOptions {
  strategy?: 'referenceHidden' | 'escaped';


default: 'referenceHidden'

Specifies the type of hiding strategy to use.

hide({strategy: 'escaped'}); // 'referenceHidden' by default

If you'd like to use multiple strategies, call hide() multiple times in your middleware array with different options.


All of detectOverflow's options can be passed. For instance:

hide({padding: 5}); // 0 by default


interface Data {
  referenceHidden?: boolean;
  referenceHiddenOffsets?: SideObject;
  escaped?: boolean;
  escapedOffsets?: SideObject;

Depending on the strategy used, these options may exist in the data object.


Determines whether the reference element is fully clipped, and is therefore hidden from view.

Note that “hidden” means clipping, visibility and opacity styles are not considered.


A side object containing overflow offsets.


Determines whether the floating element has "escaped" the reference's clipping context and appears fully detached from it.


A side object containing overflow offsets.