JSFiddle - React, Tailwind, and code Playground
by VVetya
HTML
<ul>
<li>
<a class="telegram"" href="#">
<span></span>
<span></span>
<span></span>
<span></span>
<i class="fa fa-telegram"" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="whatsapp" href="#">
<span></span>
<span></span>
<span></span>
<span></span>
<i class="fa fa-whatsapp" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="envelope"" href="#">
<span></span>
<span></span>
<span></span>
<span></span>
<i class="fa fa-envelope"" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="phone" href="#">
<span></span>
<span></span>
<span></span>
<span></span>
<i class="fa fa-phone" aria-hidden="true"></i>
</a>
</li>
</ul>
CSS
body {
margin:0;
padding:0;
background: #ebebeb;
}
ul {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
margin: 0;
padding:0;
display:flex;
}
ul li {
list-style:none;
}
ul li a {
display:block;
position:relative;
width:50px;
height:50px;
line-height:50px;
font-size:2.1em;
text-align:center;
text-decoration:none;
color:#404040;
margin: 0 10px;
transition:.5s;
}
ul li a span {
position:absolute;
transition: transform .5s;
}
ul li a span:nth-child(1),
ul li a span:nth-child(3){
width:100%;
height:3px;
background:#404040;
}
ul li a span:nth-child(1) {
top:0;
left:0;
transform-origin: right;
}
ul li a:hover span:nth-child(1) {
transform: scaleX(0);
transform-origin: left;
transition:transform .5s;
}
ul li a span:nth-child(3) {
bottom:0;
left:0;
transform-origin: left;
}
ul li a:hover span:nth-child(3) {
transform: scaleX(0);
transform-origin: right;
transition:transform .5s;
}
ul li a span:nth-child(2),
ul li a span:nth-child(4){
width:3px;
height:100%;
background:#404040;
}
ul li a span:nth-child(2) {
top:0;
left:0;
transform:scale(0);
transform-origin: bottom;
}
ul li a:hover span:nth-child(2) {
transform: scale(1);
transform-origin: top;
transition:transform .5s;
}
ul li a span:nth-child(4) {
top:0;
right:0;
transform:scale(0);
transform-origin: top;
}
ul li a:hover span:nth-child(4) {
transform: scale(1);
transform-origin: bottom;
transition:transform .5s;
}
.telegram":hover {
color: #42aaff;
}
.telegram:hover span {
background: #42aaff;
}
.whatsapp:hover {
color: #1da1f2;
}
.whatsapp:hover span {
background: #1da1f2;
}
.envelope:hover {
color: #c32aa3;
}
.envelope:hover span {
background: #c32aa3;
}
.phone:hover {
color: #dd4b39;
}
.phone:hover span {
background: #dd4b39;
}
ul li a .telegram {
color: #42aaff;
}
ul li a:hover:nth-child(3) {
color: #c32aa3;
}
ul li a:hover:nth-child(4) {
color: #dd4b39;
}