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

234 lines
3.8 KiB
SCSS
Raw Normal View History

$gap: var(--gap);
.snap-gallery,
.snap-slideshow {
2024-02-01 23:12:08 +01:00
display: flex;
justify-content: center;
align-items: center;
position: relative;
2024-02-01 23:57:42 +01:00
margin-bottom: 15px;
2020-03-09 13:20:20 +01:00
/* Create equal columns in flexbox */
.snap-image {
2024-02-01 23:12:08 +01:00
cursor: zoom-in;
/* Column amount and width are configurable by style variables */
width: calc(100% / var(--columns) - #{$gap});
min-width: var(--min-width);
2019-10-20 22:27:27 +02:00
img {
aspect-ratio: 16/10;
width: 100%;
object-fit: cover;
}
}
2020-03-09 13:20:20 +01:00
}
.snap-gallery {
flex-wrap: wrap;
gap: $gap;
}
.snap-slideshow {
// Hide all contained images except the first
.snap-image:not(:first-child) {
display: none;
}
}
// Animation
.snap-slideshow .snap-image,
.snap-lightbox .snap-lightbox-inner {
animation: 1s fade;
@keyframes fade {
from {
opacity: .4
}
to {
opacity: 1
}
}
}
2024-01-30 22:47:35 +01:00
.snap-lightbox {
/** Default lightbox to hidden */
2020-03-09 13:20:20 +01:00
display: none;
2024-01-30 22:47:35 +01:00
/** Position and style */
2020-03-09 13:20:20 +01:00
position: fixed;
2024-01-30 22:47:35 +01:00
z-index: 999;
2024-01-30 12:18:28 +01:00
width: 100%;
2024-01-30 22:47:35 +01:00
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%;
}
2020-03-09 13:20:20 +01:00
}
2024-01-30 22:47:35 +01:00
// /* 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%;
img {
max-height: 100%;
}
2020-03-09 13:20:20 +01:00
2024-01-30 22:47:35 +01:00
// TODO: Untested
p {
color: #fff;
z-index: 810;
position: relative;
}
2024-02-01 23:12:08 +01:00
@media screen and (max-width: 767px) {
max-width: 80%;
}
2020-03-09 13:20:20 +01:00
}
/* Number text (1/3 etc) */
.snap-lightbox,
.snap-slideshow {
2024-02-01 23:12:08 +01:00
user-select: none;
.numbertext {
color: #f2f2f2;
background-color: #000;
font-size: 12px;
padding: 8px 12px;
position: absolute;
}
}
2024-01-30 22:47:35 +01:00
// /* Caption text */
// .caption-container {
// text-align: center;
// background-color: black;
// padding: 2px 16px;
// color: white;
// }
2024-01-30 22:47:35 +01:00
/* prev/next arrows & close button */
2024-02-01 23:12:08 +01:00
.snap-prev,
.snap-next {
color: #fff;
text-decoration: none !important;
font-size: 30px;
position: absolute;
height: 100%;
2024-01-30 22:47:35 +01:00
z-index: 800;
width: 5%;
2024-02-01 15:10:17 +01:00
cursor: pointer;
2024-02-01 23:12:08 +01:00
// Slideshow specifics
.snap-slideshow & {
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.7);
height: 15%;
width: 10%;
min-height: 50px;
min-width: 50px;
&:hover {
background-color: rgba(0, 0, 0, 0.8);
transition: all 0.25s ease;
}
}
2024-02-01 23:12:08 +01:00
// Lightbox-specifics
.snap-lightbox & {
@media screen and (max-width: 767px) {
width: 10%;
}
}
// Item containing arrow
span {
padding: 1%;
// Lightbox specifics
.snap-lightbox & {
position: fixed;
top: 50%;
}
2024-01-30 22:47:35 +01:00
}
2020-03-09 13:20:20 +01:00
}
2024-02-01 23:12:08 +01:00
// Position arrows for left/right
.snap-prev {
2024-01-30 22:47:35 +01:00
left: 0;
2024-02-01 23:12:08 +01:00
.snap-lightbox & span {
left: 0.5%;
2024-01-30 22:47:35 +01:00
}
2024-01-30 12:18:28 +01:00
}
2024-02-01 23:12:08 +01:00
.snap-next {
2024-01-30 12:18:28 +01:00
right: 0;
2024-02-01 23:12:08 +01:00
.snap-lightbox & span {
right: 0.5%;
2024-01-30 22:47:35 +01:00
}
2020-03-09 13:20:20 +01:00
}
2024-01-30 22:47:35 +01:00
/* The Close Button */
.snap-close {
display: flex;
justify-content: center;
align-items: center;
2024-01-30 12:18:28 +01:00
position: absolute;
2024-01-30 22:47:35 +01:00
top: 15px;
right: 15px;
height: 50px;
width: 50px;
2024-01-30 12:18:28 +01:00
color: white;
2024-01-30 22:47:35 +01:00
font-size: 50px;
font-weight: bold;
z-index: 900;
2020-03-09 13:20:20 +01:00
2024-01-30 22:47:35 +01:00
&:hover,
&:focus {
color: #999;
text-decoration: none;
cursor: pointer;
}
2020-03-09 13:20:20 +01:00
}