hovertile
Version:
A port of Mary Lou's hover tiles to React
98 lines (83 loc) • 2.1 kB
CSS
figure.winston {
background: #162633;
text-align: left;
}
figure.winston img {
-webkit-transition: opacity 0.45s;
transition: opacity 0.45s;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
figure.winston figcaption::before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url(./triangle.svg) no-repeat center center;
background-size: 100% 100%;
content: '';
-webkit-transition: opacity 0.45s, -webkit-transform 0.45s;
transition: opacity 0.45s, transform 0.45s;
-webkit-transform: rotate3d(0,0,1,45deg);
transform: rotate3d(0,0,1,45deg);
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
}
figure.winston .content {
-webkit-transition: -webkit-transform 0.35s;
transition: transform 0.35s;
-webkit-transform: translate3d(0,20px,0);
transform: translate3d(0,20px,0);
}
figure.winston .hoverContent {
position: absolute;
right: 0;
bottom: 0;
padding: 0 1.5em 7% 0;
}
figure.winston > * {
margin: 0 10px;
color: #5d504f;
font-size: 170%;
}
figure.winston a:hover,
figure.winston a:focus {
color: #cc6055;
}
figure.winston .hoverContent > * {
opacity: 0;
-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
-webkit-transform: translate3d(0,50px,0);
transform: translate3d(0,50px,0);
}
figure.winston:hover img {
opacity: 0.6;
}
figure.winston:hover .content {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
figure.winston:hover figcaption::before {
opacity: 0.7;
-webkit-transform: rotate3d(0,0,1,20deg);
transform: rotate3d(0,0,1,20deg);
}
figure.winston:hover .hoverContent > * {
opacity: 1;
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
figure.winston:hover .hoverContent > *:nth-child(3) {
-webkit-transition-delay: 0.05s;
transition-delay: 0.05s;
}
figure.winston:hover .hoverContent > *:nth-child(2) {
-webkit-transition-delay: 0.1s;
transition-delay: 0.1s;
}
figure.winston:hover .hoverContent > *:first-child {
-webkit-transition-delay: 0.15s;
transition-delay: 0.15s;
}