Pure CSS Liquid Button Animation Effects
Pure CSS Liquid Button Animation Effects
by Ying Chor Ding
HTML
<body>
<a href="#">
<span>Button</span>
<div class="liquid"></div>
</a>
</body>
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #0c0c0c;
}
a {
position: relative;
padding: 20px 50px;
text-decoration: none;
text-transform: uppercase;
width: 200px;
overflow: hidden;
}
a span {
position: relative;
z-index: 1;
color: #fff;
font-size: 20px;
letter-spacing: 8px;
}
a:hover .liquid {
top: -120px;
}
a .liquid {
position: absolute;
left: 0;
top: -80px;
width: 200px;
height: 200px;
background: #4973ff;
box-shadow: inset 0 0 50px rgba(0, 0, 0, .5);
transition: 0.5s;
}
a .liquid::before,
a .liquid::after{
content: '';
position: absolute;
width: 200%;
height: 200%;
top: 0;
left: 50%;
transform: translate(-50%, -75%);
}
a .liquid::before {
border-radius: 45%;
background: rgba(20,20,20,1);
animation: animate 5s linear infinite;
}
a .liquid::after{
border-radius: 40%;
background: rgba(20,20,20,0.5);
animation: animate 5s linear infinite;
}
@keyframes animate {
0% {
transform: translate(-50%, -75%) rotate(0deg);
}
100% {
transform: translate(-50%, -75%) rotate(360deg);
}
}