JSFiddle - React, Tailwind, and code Playground
by budyniowski
HTML
<div class="btn-animated-container">
<div class="btn-animated-grp">
<div class="btn-animated-background"></div>
<button class="btn-animated">
<span>
Submit
<i class="fa fa-long-arrow-right m-l-7" aria-hidden="true"></i>
</span>
</button>
</div>
</div>
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box
}
button {
outline: none !important;
border: none;
background: 0 0
}
button:hover {
cursor: pointer
}
.btn-animated-container {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
flex-wrap: wrap;
justify-content: center;
padding-top: 13px
}
.btn-animated-grp {
width: 100%;
display: block;
position: relative;
z-index: 1;
border-radius: 25px;
overflow: hidden;
margin: 0 auto;
}
.btn-animated-background {
position: absolute;
z-index: -1;
width: 300%;
height: 100%;
background: #a64bf4;
background: -webkit-linear-gradient(left, #00dbde, #fc00ff, #00dbde, #fc00ff);
background: -o-linear-gradient(left, #00dbde, #fc00ff, #00dbde, #fc00ff);
background: -moz-linear-gradient(left, #00dbde, #fc00ff, #00dbde, #fc00ff);
background: linear-gradient(left, #00dbde, #fc00ff, #00dbde, #fc00ff);
top: 0;
left: -100%;
-webkit-transition: all .4s;
-o-transition: all .4s;
-moz-transition: all .4s;
transition: all .4s
}
.btn-animated {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
justify-content: center;
align-items: center;
padding: 0 20px;
width: 100%;
height: 50px;
font-family: Poppins-Medium;
font-size: 16px;
color: #fff;
line-height: 1.2
}
.btn-animated-grp:hover .btn-animated-background {
left: 0
}
.btn-animated i {
-webkit-transition: all .4s;
-o-transition: all .4s;
-moz-transition: all .4s;
transition: all .4s
}
.btn-animated:hover i {
-webkit-transform: translateX(10px);
-moz-transform: translateX(10px);
-ms-transform: translateX(10px);
-o-transform: translateX(10px);
transform: translateX(10px)
}