Files
hugo-snap-gallery/assets/scss/snap-gallery.scss

205 lines
3.5 KiB
SCSS

$gap: var(--gap);
.snap-gallery-wrapper, .snap-slideshow-wrapper {
margin-bottom: $gap;
/* Create equal columns in flexbox */
.snap-image {
cursor: pointer;
/* Column amount and width are configurable by style variables */
width: calc(100% / var(--columns) - #{$gap});
min-width: var(--min-width);
img {
aspect-ratio: 16/10;
width: 100%;
object-fit: cover;
}
}
}
.snap-gallery-wrapper {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: $gap;
}
.snap-slideshow-wrapper {
// Hide all contained images except the first
.snap-image:not(:first-child) {
display: none;
}
}
.snap-lightbox {
/** Default lightbox to hidden */
display: none;
/** Position and style */
position: fixed;
z-index: 999;
width: 100%;
height: 100%;
text-align: center;
white-space: nowrap;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
/* keep lightbox in middle. TODO: hacky, and not realibly in middle */
&:before {
content: "";
display: inline-block;
vertical-align: middle;
width: 0;
/* adjust for white space between pseudo element and next sibling */
margin-right: -.25em;
/* stretch line height */
height: 100%;
}
}
// /* Click on the complete background closes the lightbox */
// /* Exception: arrow in gallery, they have higher z-index */
// a.snap-lightbox-close {
// position: fixed;
// z-index: 800;
// width: 100%;
// height: 100%;
// text-align: center;
// white-space: nowrap;
// top: 0;
// left: 0;
// }
/* Container for image */
.snap-lightbox-inner {
display: inline-block;
vertical-align: middle;
white-space: normal;
max-width: 90%;
max-height: 80%;
height: 100%;
/* Number text (1/3 etc) */
.numbertext {
color: #f2f2f2;
background-color: #000;
font-size: 12px;
padding: 8px 12px;
position: absolute;
top: 10%;
}
img {
max-height: 100%;
}
// TODO: Untested
p {
color: #fff;
z-index: 810;
position: relative;
}
}
// /* Caption text */
// .caption-container {
// text-align: center;
// background-color: black;
// padding: 2px 16px;
// color: white;
// }
/* prev/next arrows & close button */
.snap-lightbox-prev,
.snap-lightbox-next {
position: fixed;
z-index: 800;
width: 5%;
height: 100%;
text-align: center;
top: 0;
cursor: pointer;
.snap-lightbox-arrow {
display: inline-block;
position: fixed;
top: 50%;
z-index: 900;
border: solid #fff;
border-width: 0 7px 7px 0;
display: inline-block;
padding: 1%;
}
&:hover>.snap-lightbox-arrow {
border-color: #999;
transition: all 0.25s ease;
}
}
.snap-lightbox-prev {
left: 0;
.snap-lightbox-arrow {
left: 2%;
transform: rotate(135deg);
-webkit-transform: rotate(135deg);
}
}
.snap-lightbox-next {
right: 0;
.snap-lightbox-arrow {
right: 2%;
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
}
}
/* The Close Button */
.snap-close {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 15px;
right: 15px;
height: 50px;
width: 50px;
color: white;
font-size: 50px;
font-weight: bold;
z-index: 900;
&:hover,
&:focus {
color: #999;
text-decoration: none;
cursor: pointer;
}
}
@media screen and (max-width: 767px) {
.snap-lightbox-inner {
max-width: 80%;
}
.snap-lightbox-prev,
.snap-lightbox-next {
width: 10%;
}
.snap-lightbox-close-button {
width: 10%;
height: calc(10vw);
/* ~10% width */
}
}