///
/// Ethereal by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Gallery */
$pad: _size(pad);
$pad-small-tb: _size(pad-small-tb);
$pad-small-lr: _size(pad-small-lr);
@include keyframes('gallery-modal-spinner') {
0% {
@include vendor('transform', 'rotate(0deg)');
}
100% {
@include vendor('transform', 'rotate(360deg)');
}
}
.gallery {
@include vendor('align-items', 'stretch');
@include vendor('display', 'flex');
height: 100%;
> * {
width: 20rem;
height: 100%;
}
.image {
display: block;
position: relative;
border-bottom: 0;
overflow: hidden;
img {
@include vendor('transition', 'transform #{_duration(transition)} ease-in-out');
}
&:after {
@include vendor('transition', 'opacity #{_duration(transition)} ease-in-out');
}
&:hover {
img {
@include vendor('transform', 'scale(1.025)');
}
&:after {
opacity: 0;
}
}
}
.group {
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
> * {
height: 50%;
}
}
.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);
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: transparentize(_palette(bg), 1 - _misc(gallery-lightbox-opacity));
opacity: 0;
outline: 0;
visibility: none;
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)}');
content: '';
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 4rem;
height: 4rem;
margin: -2rem 0 0 -2rem;
background-image: svg-url('');
background-position: center;
background-repeat: no-repeat;
background-size: 4rem;
opacity: 0;
}
&:after {
content: '';
display: block;
position: absolute;
top: 0.5rem;
right: 0.5rem;
width: 4rem;
height: 4rem;
background-image: svg-url('');
background-position: center;
background-repeat: no-repeat;
background-size: 3rem;
cursor: pointer;
}
.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 {
display: block;
max-width: 90vw;
max-height: 85vh;
box-shadow: 0 1rem 3rem 0 rgba(0, 0, 0, 0.35);
}
}
&.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) {
.gallery {
.modal {
.inner {
img {
max-width: 100vw;
}
}
}
}
}
@include breakpoint(small) {
.gallery {
@include vendor('flex-direction', 'column');
height: auto;
> * {
height: auto;
width: 100%;
}
.image {
width: 100%;
height: 40rem;
}
.group {
@include spans(33.33333%);
.image {
height: 20rem;
}
}
}
}
@include breakpoint(xsmall) {
.gallery {
.image {
height: 30rem;
}
.group {
.image {
height: 12.5rem;
}
}
}
}