JSFiddle - React, Tailwind, and code Playground

by Sambora

HTML

<div class="main">

	<div class="view second-effect">
		<img src="http://i.imgur.com/nbynS1m.jpg" />
        <div class="mask">
			<a href="#" class="info" title="Full Image">Full Image</a>
		</div>
	</div>

	<div class="view second-effect">
		<img src="http://i.imgur.com/nbynS1m.jpg" />
		<div class="mask">
			<a href="#" class="info" title="Full Image">Full Image</a>
		</div>
	</div>	

	<div class="view second-effect">
		<img src="http://i.imgur.com/nbynS1m.jpg" />
		<div class="mask">
			<a href="#" class="info" title="Full Image">Full Image</a>
		</div>
	</div>

	<div class="view second-effect">
		<img src="http://i.imgur.com/nbynS1m.jpg" />
		<div class="mask">
			<a href="#" class="info" title="Full Image">Full Image</a>
		</div>
	</div>

</div>

CSS

.view {
   width: 122px;
   height: 160px;
   margin: 10px;
   float: left;
   border: 5px solid #fff;
   overflow: hidden;
   position: relative;
   text-align: center;
   box-shadow: 0px 0px 5px #aaa;
   cursor: default;
}
.view .mask, .view .content {
   width: 122px;
   height: 160px;
   position: absolute;
   overflow: hidden;
   top: 0;
   left: 0;
}
.view img {
   display: block;
   position: relative;
}
.view a.info {
   background:url('http://www.alessioatzeni.com/wp-content/tutorials/html-css/CSS3-Hover-Effects/img/link.png') center no-repeat;
   display: inline-block;
   text-decoration: none;
   padding:0;
   text-indent:-9999px;
   width:20px;
   height:20px;
}
/* CSS3 EFFECTS */

/* SECOND EFFECTS */

.second-effect .mask {
   opacity: 0;
   overflow:visible;
   border:0px solid rgba(0,0,0,0.7);
   -moz-box-sizing:border-box;
   -webkit-box-sizing:border-box;
   box-sizing:border-box;
   -webkit-transition: all 0.4s ease-in-out;
   -moz-transition: all 0.4s ease-in-out;
   -o-transition: all 0.4s ease-in-out;
   -ms-transition: all 0.4s ease-in-out;
   transition: all 0.4s ease-in-out;
}
.second-effect a.info {
	position:relative;
	top:-30px;
    right:50px;
	opacity:0;
   -moz-transform:scale(0,0);
   -webkit-transform:scale(0,0);
   -o-transform:scale(0,0);
   -ms-transform:scale(0,0);
   transform:scale(0,0);
   -webkit-transition: -webkit-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   -moz-transition: -moz-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   -o-transition: -o-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   -ms-transition: -ms-transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
   transition: transform 0.2s 0.1s ease-in, opacity 0.1s ease-in-out;
}
.second-effect:hover .mask {
   opacity: 1;
   border:100px solid rgba(0,0,0,0.7);
}
.second-effect:hover a.info...