JSFiddle - React, Tailwind, and code Playground
HTML
<div class="service">
<a href="#">
<span class="service-icon icon-beaker"></span>
<div class="service-content">
<h2 class="service-main">Small Web Site</h2>
<p class="service-sub">Accusantium et dolorem veritatis architecto, eaque ipsa quae ab illo inventore veritatis perspiciatis.</p>
</div>
</a>
</div>
CSS
.service{
margin:20px 0;
overflow: hidden;
position: relative;
float: left;
border: 1px solid #e5e5e5;
width:100%;
padding:5px;
background: #fff;
-webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px;
-webkit-box-shadow: 0 8px 6px -6px #ccc;
-moz-box-shadow: 0 8px 6px -6px #ccc;
box-shadow: 0 8px 6px -6px #ccc;
/* For IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#cccccc')";
}
.service [class^="icon-"]:before, .service [class*=" icon-"]:before{ padding:0;}
.service a{
background:#f9f9f9;
width: 100%;
height: 100%;
display: block;
position: relative;
}
.service p{
margin:0; padding:20px; font-weight:300; color:inherit; border-top:5px solid #fff;
}
.service-icon{
font-size: 60px;
text-shadow: 1px 0px 1px rgba(255,255,255,0.7);
padding:15px 0px 15px;
width: 100%;
height: 50%;
text-align: center;
}
service-content{
width: 100%;
}
.service-main{
font-size:18px;
font-weight:600;
text-align: center;
margin-top: -15px;
}
.service-sub{
text-align:center;
font-size: 14px;
color: #666;
opacity: 0.8;
}
.service:hover{
background-color: #fff;
}
.service:hover .service-icon{
text-shadow: 0px 0px 20px #ccc;
color: transparent;
-webkit-animation: moveFromTop 400ms ease;
-moz-animation: moveFromTop 400ms ease;
-ms-animation: moveFromTop 400ms ease;
}
.service:hover .service-main{
color: #000;
-webkit-animation: moveFromTop 300ms ease;
-moz-animation: moveFromTop 300ms ease;
-ms-animation: moveFromTop 300ms ease;
}
.service:hover .service-sub{
color: #fff;
-webkit-animation: moveFromBottom 500ms ease;
-moz-animation: moveFromBottom 500ms ease;
-ms-animation: moveFromBottom 500ms ease;
}