///
/// Paradigm Shift by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Gallery */
@include keyframes('gallery-modal-spinner') {
0% {
@include vendor('transform', 'rotate(0deg)');
}
100% {
@include vendor('transform', 'rotate(360deg)');
}
}
.gallery {
$gutter: _size(gallery-gutter);
display: flex;
flex-wrap: wrap;
margin: ($gutter * -1) 0 0 ($gutter * -1);
width: calc(100% + #{$gutter});
a {
border-bottom: 0;
display: block;
margin: $gutter 0 0 $gutter;
outline: 0;
position: relative;
width: calc(50% - #{$gutter});
img {
display: block;
height: 25vw;
min-height: 18rem;
object-fit: cover;
object-position: center;
width: 100%;
}
&.landscape {
width: 100%;
img {
height: 30vw;
}
}
&.portrait {
img {
height: 30vw;
}
}
}
.modal {
@include vendor('display', 'flex');
@include vendor('align-items', 'center');
@include vendor('justify-content', 'center');
@include vendor('pointer-events', 'none');
@include vendor('user-select', 'none');
@include vendor('transition', (
'opacity #{_duration(gallery-lightbox-fadein)} ease',
'visibility #{_duration(gallery-lightbox-fadein)}',
'z-index #{_duration(gallery-lightbox-fadein)}'
));
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
background-color: transparentize(_palette(bg), 1 - _misc(gallery-lightbox-opacity));
height: 100%;
left: 0;
opacity: 0;
outline: 0;
position: fixed;
top: 0;
visibility: none;
width: 100%;
z-index: 0;
&:before {
@include vendor('animation', 'gallery-modal-spinner 1s infinite linear');
@include vendor('transition', 'opacity #{_duration(gallery-lightbox-fadein) * 0.5} ease');
@include vendor('transition-delay', '#{_duration(gallery-lightbox-fadein)}');
background-image: svg-url('');
background-position: center;
background-repeat: no-repeat;
background-size: 4rem;
content: '';
display: block;
height: 4rem;
left: 50%;
margin: -2rem 0 0 -2rem;
opacity: 0;
position: absolute;
top: 50%;
width: 4rem;
}
&:after {
background-image: svg-url('');
background-position: center;
background-repeat: no-repeat;
background-size: 3rem;
content: '';
cursor: pointer;
display: block;
height: 4rem;
position: absolute;
right: 0.5rem;
top: 0.5rem;
width: 4rem;
}
.inner {
@include vendor('transform', 'translateY(0.75rem)');
@include vendor('transition', (
'opacity #{_duration(gallery-lightbox-fadein) * 0.5} ease',
'transform #{_duration(gallery-lightbox-fadein) * 0.5} ease'
));
opacity: 0;
img {
box-shadow: 0 1rem 3rem 0 rgba(0, 0, 0, 0.35);
display: block;
max-height: 90vh;
max-width: 90vw;
}
}
&.visible {
@include vendor('pointer-events', 'auto');
opacity: 1;
visibility: visible;
z-index: _misc(z-index-base) + 1000;
&:before {
opacity: 1;
}
}
&.loaded {
.inner {
@include vendor('transform', 'translateY(0)');
@include vendor('transition', (
'opacity #{_duration(gallery-lightbox-fadein)} ease',
'transform #{_duration(gallery-lightbox-fadein)} ease'
));
opacity: 1;
}
&:before {
@include vendor('transition-delay', '0s');
opacity: 0;
}
}
}
@include breakpoint('<=medium') {
a {
img {
height: 20rem;
}
&.landscape {
img {
height: 25rem;
}
}
&.portrait {
img {
height: 25rem;
}
}
}
.modal {
.inner {
img {
max-width: 100vw;
}
}
}
}
@include breakpoint('<=small') {
$gutter: (_size(gallery-gutter) * 0.5);
margin: ($gutter * -1) 0 0 ($gutter * -1);
width: calc(100% + #{$gutter});
a {
margin: $gutter 0 0 $gutter;
width: calc(50% - #{$gutter});
img {
height: 20rem;
}
&.landscape {
img {
height: 20rem;
}
}
&.portrait {
img {
height: 30rem;
}
}
}
}
@include breakpoint('<=xsmall') {
a {
img {
height: 12rem;
min-height: 0;
}
&.landscape {
img {
height: 12rem;
}
}
&.portrait {
img {
height: 14rem;
}
}
}
}
}