Creative Animated Button
by Hemant Sharma
HTML
<a href="#">
<span></span>
<span></span>
<span></span>
<span></span>
Button
</a>
SCSS
* {
margin: 0;
padding: 0;
background: #0c002b;
font-family: sans-serif;
}
a {
padding: 30px 60px;
color: #1670f0;
font-size: 30px;
outline: none;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
cursor: pointer;
letter-spacing: 3px;
text-decoration: none;
text-transform: uppercase;
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
overflow: hidden;
&::before {
content: "";
position: absolute;
top: 2px;
left: 2px;
bottom: 2px;
width: 50%;
background: rgba(255, 255, 255, 0.05);
}
span:nth-child(1) {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 2px;
background: linear-gradient(to right, #0c002b, #1779ff);
animation: animation1 2s linear infinite;
}
@keyframes animation1 {
0%{ transform: translateX(-100%); }
100%{ transform: translateX(100%); }
}
span:nth-child(2) {
position: absolute;
right: 0;
top: 0;
width: 2px;
height: 100%;
background: linear-gradient(to bottom, #0c002b, #1779ff);
animation: animation2 2s linear infinite;
animation-delay: 1s;
}
@keyframes animation2 {
0%{ transform: translateY(-100%); }
100%{ transform: translateY(100%); }
}
span:nth-child(3) {
position: absolute;
right: 0;
bottom: 0;
width: 100%;
height: 2px;
background: linear-gradient(to left, #0c002b, #1779ff);
animation: animation3 2s linear infinite;
}
@keyframes animation3 {
0%{ transform: translateX(100%); }
100%{ transform: translateX(-100%); }
}
span:nth-child(4) {
position: absolute;
left: 0;
bottom: 0;
width: 2px;
height: 100%;
background: linear-gradient(to top, #0c002b, #1779ff);
animation: animation4 2s linear 1s infinite;
}
@keyframes animation4 {
0%{ transform: translateY(100%); }
100%{ transform: translateY(-100%); }
}
}