.btn { color: #fff; text-decoration: none; background-color: dimgrey; width: 150px; padding: 30px 5px 30px 25px; cursor: pointer; margin: 50px auto 20px; } .btn:hover { animation: shake 0.2s linear infinite; -webkit-animation: shake 0.2s linear infinite; } @keyframes shake { 0% { transform: translate(3px, 2px) rotate(0deg); } 10% { transform: translate(-2px, -3px) rotate(-1deg); } 20% { transform: translate(-4px, 0px) rotate(1deg); } 30% { transform: translate(0px, 3px) rotate(0deg); } 40% { transform: translate(2px, -2px) rotate(1deg); } 50% { transform: translate(-2px, 3px) rotate(-1deg); } 60% { transform: translate(-4px, 2px) rotate(0deg); } 70% { transform: translate(3px, 2px) rotate(-1deg); } 80% { transform: translate(-2px, -2px) rotate(1deg); } 90% { transform: translate(2px, 4px) rotate(0deg); } 100% { transform: translate(2px, -3px) rotate(-1deg); } }