vue3-popper
A Vue.js popover component based on PopperJS.
Install
NPM
npm install vue3-popper
Yarn
yarn add vue3-popper
Usage
Vue environment
<!-- If your content is only a simple string, you can use the content prop: -->
<template>
<Popper content="This is the Popper content">
<button>Trigger element</button>
</Popper>
</template>
<!-- If your content is more complex, you can use the content slot: -->
<template>
<Popper>
<button>Trigger element</button>
<template #content>
<div>This is the Popper content</div>
</template>
</Popper>
</template>
<script>
import { defineComponent } from "vue";
import Popper from "vue3-popper";
export default defineComponent({
components: {
Popper,
},
});
</script>
Props
Name |
Default |
Description |
placement |
bottom |
Preferred placement of the Popper |
disableClickAway |
false |
Disables automatically closing the Popper when the user clicks away from it |
offsetSkid |
0 |
Offset in pixels along the trigger element |
offsetDistance |
12 |
Offset in pixels away from the trigger element |
hover |
false |
Trigger the Popper on hover |
arrow |
false |
Display an arrow on the Popper |
arrowPadding |
0 |
Stop arrow from reaching the edge of the Popper (in pixels) |
disabled |
false |
Disables the Popper. If it was already open, it will be closed. |
openDelay |
0 |
Open the Popper after a delay (ms) |
closeDelay |
0 |
Close the Popper after a delay (ms) |
interactive |
true |
If the Popper should be interactive, it will close when clicked/hovered if false |
content |
null |
If your content is just a simple string, you can pass it as a prop |
Events
Name |
Description |
open:popper |
When the Popper is open |
close:popper |
When the Popper is hidden |
Slots
Name |
Description |
content |
For the Popper content |
Slot props
The content
slot gives you access to useful variables and functions.
Name |
Type |
Description |
close |
function |
A function to close the Popper |
isOpen |
boolean |
The open state of the Popper |
CSS variables
Popper
only comes with some barebones styling by default, but it also uses a list of predefined CSS variables. You can overwrite these variables to suit your needs.
CSS variable |
Example value |
--popper-theme-background-color |
#ffffff |
--popper-theme-background-color-hover |
#ffffff |
--popper-theme-text-color |
inherit |
--popper-theme-border-width |
1px |
--popper-theme-border-style |
solid |
--popper-theme-border-color |
#eeeeee |
--popper-theme-border-radius |
6px |
--popper-theme-padding |
16px |
--popper-theme-box-shadow |
0 6px 30px -6px rgba(0, 0, 0, 0.25) |