Skip to content
llms.txt
llms.txt

Web

@floating-ui-plus/web owns controller state and interaction plugins while your renderer owns elements, markup, ARIA names, styles, and presence.

import { createFloating, click, dismiss } from "@floating-ui-plus/web";
const floating = createFloating(() => ({
open,
onBeforeClose: (_event, reason) => canClose(reason),
onOpenChange: setOpen,
})).pipe(click(), dismiss());

Use createFloatingTopLayer() for a native Popover or <dialog> without moving the element. Use createPortalBridge() only when a different DOM target is required. Use createFloatingPresenceStack() and bindPresenceStackPause() for bounded, pausable transient records such as toasts; adapters own the host box, while application CSS sizes --floating-presence-hit-span to the current stack.

See the usage recipes for controller and interaction composition examples, and the presence stack guide for the shared record contract.