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;
}