Skip to content

vueuse/gesture

Repository files navigation

๐Ÿ•น @vueuse/gesture

npm npm Netlify Status

Vue Composables making your app interactive

  • ๐Ÿš€ Plug & play
  • ๐Ÿ•น Mouse & Touch support
  • ๐ŸŽฎ Directives support (v-drag, v-pinch, v-move...)
  • โœจ Written in TypeScript
  • โœ… Supports Vue 2 & 3 using vue-demi
  • ๐Ÿคน Plays well with vueuse/motion or any other animation solution

๐ŸŒ Documentation

๐Ÿ‘€ Demos

Quick Start

Let's get started quickly by installing the package and adding the plugin.

From your terminal:

pnpm add @vueuse/gesture

In your Vue app entry file:

import { createApp } from 'vue'
import { GesturePlugin } from '@vueuse/gesture'
import App from './App.vue'

const app = createApp(App)

app.use(GesturePlugin)

app.mount('#app')

You can now interact with any of your component, HTML or SVG elements using v-drag or any other directive.

<template>
  <div v-drag="dragHandler" />
</template>

<script lang="ts">
const dragHandler = (dragState) => {
  // Do something with dragState
}
</script>

To see more about the gestures events data, check out Gesture State.

To see more about the gestures options, check out Gesture Options.

Also, here is a list of the available gestures:

Credits

This package is a fork react-use-gesture by pmndrs.

If you like this package, consider following me on GitHub and on Twitter.

๐Ÿ‘‹