JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<div class="hole">
<div class="photo" style="background-image: url(http://iulianonofrei.com/images/sky/sky_8_t.jpg);">
<div>Sky 8</div>
</div>
</div>
</body>
CSS
body
{
background: url( http://iulianonofrei.com/images/background.png ) #181818;
}
.hole
{
position: relative;
display: inline-block;
width: 100px;
height: 100px;
top: 50px;
margin-left: 50px;
margin-bottom: 50px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
box-shadow: 0 0 20px rgba( 255 , 255 , 255 , 0.1 );
-webkit-box-shadow: 0 0 20px rgba( 255 , 255 , 255 , 0.1 );
overflow: hidden;
-webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
-moz-transition: box-shadow 0.4s ease-in-out , background-position 0.3s ease-in-out;
-webkit-transition: box-shadow 0.4s ease-in-out , background-position 0.3s ease-in-out;
}
.hole:hover
{
box-shadow: 0 0 20px rgba( 0 , 0 , 0 , 0.8 );
-webkit-box-shadow: 0 0 20px rgba( 0 , 0 , 0 , 0.8 );
}
.photo
{
position: absolute;
background-position: 0 0;
width: 100px;
height: 100px;
box-shadow: inset 0 0 10px 10px rgba( 0 , 0 , 0 , 0.8 );
-webkit-box-shadow: inset 0 0 10px 10px rgba( 0 , 0 , 0 , 0.8 );
-moz-transition: box-shadow 0.4s ease-in-out , background-position 0.2s ease-in-out;
-webkit-transition: box-shadow 0.4s ease-in-out , background-position 0.2s ease-in-out;
cursor: pointer;
}
.photo:hover
{
background-position: 100% 0;
box-shadow: inset 0 0 10px 10px rgba( 255 , 255 , 255 , 0.1 ) !important;
-webkit-box-shadow: inset 0 0 10px 10px rgba( 255 , 255 , 255 , 0.1 ) !important;
}
.photo div
{
position: absolute;
background-color: rgba( 0 , 0 , 0 , 0.4 );
width: 100px;
height: 20px;
bottom: -40px;
left: 0;
border-radius: 10px 10px 0 0;
color: #CCC;
text-align: center;
-moz-transition: bottom 0.4s ease-in-out;
-webkit-transition: bottom 0.2s ease-in-out;
cursor: default;
}
.photo:hover...