vue3-popper is a lightweight and flexible popover component for Vue 3 applications, leveraging PopperJS v2 for accurate positioning. Currently at version 1.5.0, it follows semantic versioning strictly since its 1.0.0 release. The library offers features like configurable placement, offsets, hover triggers, arrows, and manual control of visibility. It is designed to be highly customizable, supporting both simple string content via props and complex HTML structures through slots. Recent updates have focused on improving SSR compatibility (especially with Nuxt 3), refactoring to modern Vue 3 `script setup` syntax, and enhancing type definitions. Its key differentiators include its tight integration with Vue 3's reactive system and its commitment to providing a robust wrapper around the proven PopperJS library, making it a reliable choice for tooltips and popovers in the Vue ecosystem.
npm install vue3-popperVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates `vue3-popper` with simple string content, complex slot content with hover trigger and arrow, and a manually controlled popover, all within a Vue 3 `<script setup>` context.
Replace `offsetX` with `offsetSkid` and `offsetY` with `offsetDistance` in your component usage.
Review custom click-away logic or direct manipulation of internal directive behavior. Ensure your Vue 3 project is up-to-date and using modern composition API practices.
Upgrade to `vue3-popper@1.4.2` or higher to resolve the SSR `window` undefined error in Nuxt 3.
Always check release notes for breaking changes when upgrading major versions (e.g., v1.x.x to v2.x.x) or when upgrading from pre-1.0.0 versions.
Upgrade `vue3-popper` to version 1.4.2 or higher, which includes a fix for this specific SSR issue. If using an older version is unavoidable, consider dynamically importing the component or rendering it only on the client-side.
Ensure you are using `import Popper from 'vue3-popper';` (default import) and registering it correctly in your Vue component's `components` option or directly in `<script setup>`.