@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; } }