|
|
|
@import "variables";
|
|
|
|
@import "mixins";
|
|
|
|
|
|
|
|
/*=============================================*\
|
|
|
|
Some styles to show off masonry layout
|
|
|
|
\*=============================================*/
|
|
|
|
|
|
|
|
$pictureGutter: 24px;
|
|
|
|
$itemHeight: 220px;
|
|
|
|
.picture-item {
|
|
|
|
height: 220px;
|
|
|
|
margin-top: $pictureGutter;
|
|
|
|
margin-left: 0; /* shuffle items shouldn't have a left margin*/
|
|
|
|
|
|
|
|
img {
|
|
|
|
display: block;
|
|
|
|
width: 100%;
|
|
|
|
max-width: none;
|
|
|
|
height: 100%;
|
|
|
|
object-fit: cover;
|
|
|
|
}
|
|
|
|
|
|
|
|
.no-objectfit & img {
|
|
|
|
height: auto;
|
|
|
|
max-width: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item--h2 {
|
|
|
|
height: ($itemHeight * 2) + $pictureGutter; /* 2x the height + 1 gutter */
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__inner {
|
|
|
|
position: relative;
|
|
|
|
height: 100%;
|
|
|
|
overflow: hidden;
|
|
|
|
background: $clouds;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__blur {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__details,
|
|
|
|
.picture-item__description {
|
|
|
|
padding: 1em;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
.picture-item__description {
|
|
|
|
margin: 0;
|
|
|
|
padding-top: 0;
|
|
|
|
padding-right: 2em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__tags {
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
@include breakpoint(sm) {
|
|
|
|
|
|
|
|
.picture-item--overlay {
|
|
|
|
|
|
|
|
.picture-item__details {
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
left: 0;
|
|
|
|
width: 100%;
|
|
|
|
background-color: rgba(black, .6);
|
|
|
|
color: white;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__description {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@supports (filter: blur(1px)) and (clip-path: inset(0 0 0 0)) {
|
|
|
|
|
|
|
|
.picture-item--overlay {
|
|
|
|
|
|
|
|
.picture-item__blur {
|
|
|
|
position: absolute;
|
|
|
|
z-index: 1;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
display: block;
|
|
|
|
filter: blur(7px);
|
|
|
|
clip-path: inset(#{$itemHeight - 50px} 0 0 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__details {
|
|
|
|
background: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__tags,
|
|
|
|
.picture-item__title {
|
|
|
|
position: relative;
|
|
|
|
z-index: 2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
Shuffle needs either relative or absolute positioning on the container
|
|
|
|
It will set it for you, but it'll cause another style recalculation and layout.
|
|
|
|
AKA worse performance - so just set it here
|
|
|
|
*/
|
|
|
|
.my-shuffle-container {
|
|
|
|
position: relative;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.my-sizer-element {
|
|
|
|
position: absolute;
|
|
|
|
opacity: 0;
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Animate in styles */
|
|
|
|
.shuffle--animatein {
|
|
|
|
overflow: visible;
|
|
|
|
}
|
|
|
|
|
|
|
|
.shuffle--animatein .picture-item__inner {
|
|
|
|
opacity: 0;
|
|
|
|
transform: translate(0, 220px);
|
|
|
|
}
|
|
|
|
|
|
|
|
.shuffle--animatein .picture-item__inner--transition {
|
|
|
|
transition: all .6s ease;
|
|
|
|
}
|
|
|
|
|
|
|
|
.shuffle--animatein .picture-item.in .picture-item__inner {
|
|
|
|
opacity: 1;
|
|
|
|
transform: translate(0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@include breakpoint(sm, true) {
|
|
|
|
|
|
|
|
.picture-item {
|
|
|
|
height: auto;
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
|
|
&.picture-item--h2 {
|
|
|
|
height: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__details,
|
|
|
|
.picture-item__description {
|
|
|
|
font-size: .875em;
|
|
|
|
padding: .625em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.picture-item__description {
|
|
|
|
padding-right: .875em;
|
|
|
|
padding-bottom: 1.25em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.filter > .row,
|
|
|
|
.filter > .row > div {
|
|
|
|
margin: 10px 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.m-nofloat {
|
|
|
|
float: none;
|
|
|
|
}
|
|
|
|
}
|