<Button>Touch Me</Button>
@import url('https://fonts.googleapis.com/css?family=Montserrat:700');

$color: black;

html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}

body {
  position: fixed;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  background: white;
}

button {
  position: relative;
  display: block;
  margin: 0 auto;
  background: $color;
  color: #fff;
  text-align: center;
  font-size: 16px;
  font-family: "Montserrat";
  font-weight: 700;
  padding: 20px 45px;
  letter-spacing: .25em;
  text-transform: uppercase;
  border: 0;
  overflow: hidden;
  border: 5px white solid;
  cursor: pointer;
  
  &:active,
  &:visited,
  &:focus {
    outline: 0;
    border: 0;
  }
}

/*  Ripple */
span {
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transform: scale(0);
  position: absolute;
  opacity: 1;
}
.rippleAnimation {
    animation: ripple .6s linear;
}

@keyframes ripple {
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
View Compiled
let btn = document.querySelector('button');

function ripple(e) {

  // Setup
  let posX = this.offsetLeft;
  let posY = this.offsetTop;
  let buttonWidth = this.offsetWidth;
  let buttonHeight =  this.offsetHeight;
  
  // Add the element
  let ripple = document.createElement('span');
  
  this.appendChild(ripple);

  
 // Make it round!
  if(buttonWidth >= buttonHeight) {
    buttonHeight = buttonWidth;
  } else {
    buttonWidth = buttonHeight; 
  }
  
  // Get the center of the element
  var x = e.pageX - posX - buttonWidth / 2;
  var y = e.pageY - posY - buttonHeight / 2;
  
 
  ripple.style.width = `${buttonWidth}px`;
  ripple.style.height = `${buttonHeight}px`;
  ripple.style.top = `${y}px`;
  ripple.style.left = `${x}px`;
  
  ripple.classList.add('rippleAnimation');
  
  setTimeout(() => {
    this.removeChild(ripple);
  }, 1000);

}

btn.addEventListener('click', ripple);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js