Add Material Ripples to Your Vue.js Components


While this tutorial has content that we believe is of great benefit to our community, we have not yet tested or edited it to ensure you have an error-free learning experience. It's on our list, and we're working on it! You can help us out by using the "report an issue" button at the bottom of the tutorial.

Though it may appear that this week has been a fairly slow week for Vue.js news, at least one important, critical library has come into the light. That library is vue-ripple-directive! Once you’ve used it you’ll wonder how you ever lived without it. It provides your app with the ability to add Material Design Ripples to any component with a simple directive.

Ready to get started?


Install vue-ripple-directive via Yarn or NPM:

# Yarn
$ yarn add vue-ripple-directive

$ npm install vue-ripple-directive --save

Then register the directive:

import Vue from 'vue';
import Ripple from 'vue-ripple-directive';
import App from 'App.vue';

// Register the ripple directive.
Vue.directive('ripple', Ripple);

new Vue({
  el: '#app',
  render: h => h(App)

Adding Ripples

You can now add ripples to any component using the v-ripple directive:

<button v-ripple>Button Example</button>

And customize the color:

<button v-ripple="'rgba(200, 10, 10, 0.2)'">Creepy Red Button Example</button>

Change the transition speed:

<button v-ripple.200>ReallyFastButtonExample</button>

Or even trigger it on mouseover!

<button v-ripple.mouseover>C'mere mouse! (Example)</button>
Creative Commons License