Floating UI is a JavaScript library that positions floating elements such as tooltips, popovers, and dropdowns while keeping them visible and anchored to other UI elements.
The library solves the challenge of positioning absolutely-positioned elements that must remain anchored to a reference element while staying within the viewport. It handles collision detection and automatic repositioning when a floating element would be obscured by viewport edges. For React users, it additionally provides hooks and components to manage the complex accessibility concerns that arise when building interactive floating UI components. The core positioning engine works across all platforms, while React-specific features are available through dedicated bindings.
Floating UI suits projects that need robust, accessible floating UI components without building positioning logic from scratch. The library supports vanilla JavaScript, React DOM, React Native, and Vue, with extensibility for other platforms through custom platform implementations. Developers working with Canvas, WebGL, or non-standard rendering targets can create their own platform adapters. The project evolved from Popper, with migration documentation available for users of the earlier version.
The project is maintained as a TypeScript monorepo using pnpm workspaces, with the website built on Next.js and Tailwind CSS. Development follows a structured contribution process documented in the repository, with clear setup instructions for building and testing. The project maintains active sponsorship relationships and accepts community support through Open Collective.