JSFiddle - React, Tailwind, and code Playground

HTML

<div id='app'>


<button @click='btnCount'>
+++++
</button>

<span class='myAnimSpan'>{{myCount}}</span>

</div>

CSS

span:hover {
  animation: shake 0.5s;
}

@keyframes shake {
  0% { transform: translate(1px, 1px) rotate(0deg); }
  10% { transform: translate(-1px, -2px) rotate(-1deg); }
  20% { transform: translate(-3px, 0px) rotate(1deg); }
  30% { transform: translate(3px, 2px) rotate(0deg); }
  40% { transform: translate(1px, -1px) rotate(1deg); }
  50% { transform: translate(-1px, 2px) rotate(-1deg); }
  60% { transform: translate(-3px, 1px) rotate(0deg); }
  70% { transform: translate(3px, 1px) rotate(-1deg); }
  80% { transform: translate(-1px, -1px) rotate(1deg); }
  90% { transform: translate(1px, 2px) rotate(0deg); }
  100% { transform: translate(1px, -2px) rotate(-1deg); }
}

JavaScript

var app=new Vue({
		el: "#app",
    data: {
           myCount:0
     }
,
     methods: {
            btnCount() {
              this.myCount+=1
              }
     
     }
     
})