Simple hands-on mobile nested menu UI component in VueJs

A simple hands-on mobile nested menu UI component with a smooth slide animation.
vue-menu

Install

Install the plugin via Yarn / NPM

$ yarn add vue-nested-menu

main.js
import the plugin in your main.js file.

import VueNestedMenu from 'vue-nested-menu';
Vue.use(VueNestedMenu);



HTML

<div id="app">
  <vue-nested-menu :source="menu"></vue-nested-menu>
</div>

JS

import VueNestedMenu from 'vue-nested-menu';
 
Vue.use(VueNestedMenu)
 
new Vue({
  el: '#app',
  data: {
    menu: {
      title: '首頁',
      children: [
        {
          title: `Today's Deals`,
          link: `/today`,
          children: [],
        },
        {
          title: `Shop By Department`,
          children: [
            {
              title: `Amazon Music`,
              link: `/music`,
              children: [],
            },
            {
              title: `CDs and Vinyl`,
              link: `/cds`,
              children: [],
            },
          ],
        },
      ],
    },
  },
});



CSS

You can also customize the following default CSS and cange menu look and feel.

.Menu__header {
    display: flex;
    align-items: center;
    padding-left: 35px;
    height: 50px;
    color: #fff;
    font-size: 16px;
    background-color: #232f3e;
    cursor: pointer;
 
    .arrow {
        padding-top: 2px;
        fill: #fff;
        margin-right: 10px;
        width: 10px;
        height: 100%;
        display: flex;
        align-items: center;
    }
}
 
.Menu__list {
    list-style: none;
    padding-bottom: 2px;
 
    .separator {
        border-bottom: 1px solid #d5dbdb;
        padding: 2px 0 0 0;
        margin: 0;
    }
}
 
.Menu__item {
    color: #4a4a4a;
    padding-left: 35px;
    height: 45px;
    display: flex;
    align-items: center;
    cursor: pointer;
 
    a {
        color: #4a4a4a;
        text-decoration: none;
    }
 
    .arrow {
        padding-top: 2px;
        padding-left: 15px;
        display: flex;
        align-items: center;
        width: 10px;
        height: 100%;
    }
}

See live demo and download source code.

DEMO | DOWNLOAD

This awesome plugin is developed by guAnsunyata. Visit their official github repository for more information and follow for future updates.