JSFiddle - React, Tailwind, and code Playground
HTML
<div class="entry">
<div class="photo">
<center>
<div class="shadow">
<img src="https://40.media.tumblr.com/fdd926af3420367b603b70dc3fed196e/tumblr_mxrdbq86PY1r9a23uo1_500.jpg" />
</div>
</center>
</div>
<div class="button">
<div class="reblog"><a href=""><img src="http://static.tumblr.com/27apcde/xpBmrnwv5/rb.png"></a>
</div>
</div>
<div class="button">
<div class="permalink"><a href=""><img src="http://static.tumblr.com/27apcde/7yjmrnwpi/pl.png"></a>
</div>
</div>
</div>
CSS
.entry {
position:relative;
padding:10px;
}
.photo {
width:250px;
padding:10px;
background:#fff;
border:1px solid #ddd;
}
.photo img {
width:100%;
}
/*VIGNETTE*/
.shadow {
position:relative;
display:block;
-webkit-transition:all.5s linear;
}
.shadow img {
display:block;
-webkit-transition:all.5s linear;
}
.shadow::before {
-webkit-box-shadow:inset 0 0 0px #000;
-moz-box-shadow:inset 0 0 0px #000;
box-shadow:inset 0 0 0px #000;
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
content:"";
-webkit-transition:all.5s ease-out;
-moz-transition:all.5s ease-out;
transition:all.5s ease-out;
}
.shadow:hover::before {
-webkit-box-shadow:inset 0 0 250px #000;
-moz-box-shadow:inset 0 0 250px #000;
box-shadow:inset 0 0 250px #000;
-webkit-transition:all.8s ease-in;
-moz-transition:all.8s ease-in;
transition:all.8s ease-in;
}
/*BUTTONS*/
.button {
position:absolute;
background:#;
margin-left:21px;
margin-top:-33px;
}
.button, .button a {
cursor:pointer;
}
.reblog {
position:absolute;
opacity:0;
height:14px;
margin-top:-22px;
margin-left:180px;
border-radius:20px;
background:#;
border:2px solid #fff;
padding:8px;
-webkit-transition:all .5s ease-out;
-moz-transition:all .5s ease-out;
transition:all .5s ease-out;
}
.permalink {
position:absolute;
opacity:0;
height:14px;
margin-top:-22px;
margin-left:180px;
border-radius:20px;
background:#;
border:2px solid #fff;
padding:8px;
-webkit-transition:all .5s ease-out;
-moz-transition:all .5s ease-out;
transition:all .5s ease-out;
}
.entry:hover .reblog {
opacity:1;
margin-left:0px;
-webkit-transition:all .5s linear;
-moz-transition:all .5s linear;
transition:all .5s linear;
-webkit-transition-delay:.1s;
-moz-transition-delay:.1s;
...