hovertile
Version:
A port of Mary Lou's hover tiles to React
128 lines (107 loc) • 2.51 kB
CSS
figure.terry {
background: #34495e;
}
figure.terry figcaption {
padding: 1em;
}
figure.terry figcaption::before,
figure.terry figcaption::after {
position: absolute;
width: 200%;
height: 200%;
border-style: solid;
border-color: #101010;
content: '';
-webkit-transition: -webkit-transform 0.35s;
transition: transform 0.35s;
}
figure.terry figcaption::before {
right: 0;
bottom: 0;
border-width: 0 70px 60px 0;
-webkit-transform: translate3d(70px,60px,0);
transform: translate3d(70px,60px,0);
}
figure.terry figcaption::after {
top: 0;
left: 0;
border-width: 15px 0 0 15px;
-webkit-transform: translate3d(-15px,-15px,0);
transform: translate3d(-15px,-15px,0);
}
figure.terry img,
figure.terry .hoverContent a {
-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
transition: opacity 0.35s, transform 0.35s;
}
figure.terry img {
opacity: 0.85;
}
figure.terry .content {
position: absolute;
bottom: 0;
left: 0;
padding: 0.4em 10px;
width: 50%;
-webkit-transition: -webkit-transform 0.35s;
transition: transform 0.35s;
-webkit-transform: translate3d(100%,0,0);
transform: translate3d(100%,0,0);
}
@media screen and (max-width: 920px) {
figure.terry .content {
padding: 0.75em 10px;
font-size: 120%;
}
}
figure.terry .hoverContent {
float: right;
clear: both;
text-align: left;
text-transform: none;
font-size: 111%;
}
figure.terry .hoverContent > * {
display: block;
margin-bottom: 1em;
color: #fff;
opacity: 0;
-webkit-transform: translate3d(90px,0,0);
transform: translate3d(90px,0,0);
}
figure.terry .hoverContent > *:hover,
figure.terry .hoverContent > *:focus {
color: #f3cf3f;
}
figure.terry:hover figcaption::before,
figure.terry:hover figcaption::after {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
figure.terry:hover img {
opacity: 0.6;
}
figure.terry:hover .content,
figure.terry:hover .hoverContent > * {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
figure.terry:hover .hoverContent > * {
opacity: 1;
}
figure.terry:hover .hoverContent > *:first-child {
-webkit-transition-delay: 0.025s;
transition-delay: 0.025s;
}
figure.terry:hover .hoverContent > *:nth-child(2) {
-webkit-transition-delay: 0.05s;
transition-delay: 0.05s;
}
figure.terry:hover .hoverContent > *:nth-child(3) {
-webkit-transition-delay: 0.075s;
transition-delay: 0.075s;
}
figure.terry:hover .hoverContent > *:nth-child(4) {
-webkit-transition-delay: 0.1s;
transition-delay: 0.1s;
}