Getting Started

Vue-popper-js is complete popper solution powered by @popperjs.

npm

CI

Features

  • Fully customizable popover with hook function
  • (Vue 3 only) Popper component, with built-in support for Component, Teleport, and Transition

Installation

Hook only

For vue@2 + @vue/composition-api

$ yarn add vue-use-popperjs@^1 @vue/composition-api

For vue@3:

$ yarn add vue-use-popperjs@^1

Hook + Component

For vue@3:

$ yarn add vue-use-popperjs
# $ yarn add vue-use-popperjs@^2

WARNING

vue-use-popperjs@^2 only works with vue@3.

Usage

Hook

<template>
  <button ref="button">Hover me!</button>
  <span ref="tooltip">Tooltip</span>
</template>

<script lang="ts">
import { defineComponent, ref } from "vue";
import { usePopperjs } from "vue-use-popperjs";

export default defineComponent({
  setup() {
    const button = ref();
    const tooltip = ref();
    usePopperjs(button, tooltip);

    return { button, tooltip };
  },
});
</script>

<style scoped>
.vue-use-popperjs-none {
  display: none;
}
</style>

TIP

Vue-use-popperjs automatically add .vue-use-popperjs-none class to popper when it is hidden, you can add following css to hide poppers:

.vue-use-popperjs-none {
  display: none;
}

Component

<template>
  <Popper reference-is="button" popper-is="span">
    <template #reference>Hover me!</template>
    Tooltip
  </Popper>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import { Popper } from "vue-use-popperjs";

export default defineComponent({
  components: {
    Popper,
  },
});
</script>