// Tutorial //

Add Material Ripples to Your Vue.js Components

Published on June 5, 2017 · Updated on April 16, 2020
Default avatar
By Joshua Bemenderfer
Developer and author at DigitalOcean.
Add Material Ripples to Your Vue.js Components

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking 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>

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?
Leave a comment