hovertile
Version:
A port of Mary Lou's hover tiles to React
98 lines (83 loc) • 2.39 kB
CSS
figure.hera {
background: #303fa9;
}
figure.hera .content {
font-size: 158.75%;
}
figure.hera .content,
figure.hera p {
position: absolute;
top: 50%;
left: 50%;
-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
-webkit-transform: translate3d(-50%,-50%,0);
transform: translate3d(-50%,-50%,0);
-webkit-transform-origin: 50%;
transform-origin: 50%;
}
figure.hera figcaption::before {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
height: 200px;
border: 2px solid #fff;
content: '';
opacity: 0;
-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
-webkit-transform: translate3d(-50%,-50%,0) rotate3d(0,0,1,-45deg) scale3d(0,0,1);
transform: translate3d(-50%,-50%,0) rotate3d(0,0,1,-45deg) scale3d(0,0,1);
-webkit-transform-origin: 50%;
transform-origin: 50%;
}
figure.hera .hoverContent {
width: 100px;
text-transform: none;
font-size: 121%;
line-height: 2;
}
figure.hera .hoverContent a {
color: #fff;
}
figure.hera .hoverContent a:hover,
figure.hera .hoverContent a:focus {
opacity: 0.6;
}
figure.hera .hoverContent a i {
opacity: 0;
-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
}
figure.hera .hoverContent a:first-child i {
-webkit-transform: translate3d(-60px,-60px,0);
transform: translate3d(-60px,-60px,0);
}
figure.hera .hoverContent a:nth-child(2) i {
-webkit-transform: translate3d(60px,-60px,0);
transform: translate3d(60px,-60px,0);
}
figure.hera .hoverContent a:nth-child(3) i {
-webkit-transform: translate3d(-60px,60px,0);
transform: translate3d(-60px,60px,0);
}
figure.hera .hoverContent a:nth-child(4) i {
-webkit-transform: translate3d(60px,60px,0);
transform: translate3d(60px,60px,0);
}
figure.hera:hover figcaption::before {
opacity: 1;
-webkit-transform: translate3d(-50%,-50%,0) rotate3d(0,0,1,-45deg) scale3d(1,1,1);
transform: translate3d(-50%,-50%,0) rotate3d(0,0,1,-45deg) scale3d(1,1,1);
}
figure.hera:hover .content {
opacity: 0;
-webkit-transform: translate3d(-50%,-50%,0) scale3d(0.8,0.8,1);
transform: translate3d(-50%,-50%,0) scale3d(0.8,0.8,1);
}
figure.hera:hover .hoverContent i:empty {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0); /* just because it's stronger than nth-child */
opacity: 1;
}