Simple radial menu for vue2 apps.


npm i vue-radial-menu --save

Basic usage

For something like this :


  <div id="app">
      style="margin: auto; margin-top: 300px; background-color: white"
          v-for="(item, index) in items" 
          style="background-color: white" 
          @click="() => handleClick(item)">
      <div style="color: rgba(0,0,0,0.6); margin-top: 16px;">{{ lastClicked }}</div>

import { RadialMenu,  RadialMenuItem } from 'vue-radial-menu'

export default {
  name: 'app',
  components: {
  data () {
    return {
      items: ['foo', 'bar', 'hello', 'world', 'more', 'items'],
      lastClicked: 'click on something!'
  methods: {
    handleClick (item) {
      this.lastClicked = item;


RadialMenu props

Note that no prop is actually required.
Also take note that no color is given to the menu by default, you would do well to add your own class for these kind of things.

Name Type Default Value Description
angle-restriction Number 180 The maximum angle in a circle for the items to be displayed in. A value of 90 would represent the quarter of a circle, 180 half a circle and so on.
size Number 50px The size in pixels of the main button to open the menu.
itemSize Number 36px The size in pixels of menu items.
rotate Number 0 An angle value to rotate the menu. Positive values will rotate the menu counter clockwise.
radius Number 100 The radius of the circle to form with the items.

RadialMenu events

Name Params Description
open none Triggered when the menu is opened.
close none Triggered when the menu is closed.


This component has no props that should be assigned by the user.
This component only supports basic events.