Files
spot/src/styles/_lightbox.scss
2026-05-03 18:31:53 +02:00

270 lines
4.6 KiB
SCSS

@use "@styles/common";
@use "@styles/var";
@use "@styles/color";
body.lb-disable-scrolling {
overflow: hidden;
}
.lightboxOverlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 9999;
background-color: black;
opacity: 0.8;
display: none;
outline: none;
}
.lightbox {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 10000;
outline: none;
width: 100%;
height: 100%;
overflow: hidden;
&.vertical {
flex-direction: column;
.lb-dataContainer {
width: 100%;
.lb-data {
flex-direction: row;
.lb-details {
flex: 1 1 auto;
.lb-caption {
.lb-caption-line {
padding-right: var.$block-spacing;
line-height: 1.33333333333em; //icon height
overflow: hidden;
&.comment {
max-width: 50%;
@include common.no-text-overflow();
}
}
}
}
.lb-closeContainer {
.lb-close {
text-align: right;
}
}
}
}
}
&.horizontal {
flex-direction: row;
.lb-dataContainer {
height: 100%;
.lb-data {
flex-direction: column;
.lb-caption-line {
display: block;
margin-top: var.$block-spacing;
line-height: 1.33333333em;
&.comment {
.spot-icon {
vertical-align: center;
}
.comment-text {
display: inline-block;
width: calc(100% - 1.25em*1.33333333333 - var.$elem-spacing);
vertical-align: top;
}
}
}
.lb-closeContainer .lb-close {
margin-top: calc(1em/1.33333333);
float: none;
}
}
}
}
.lb-outerContainer {
position: relative;
width: 250px;
height: 250px;
margin: 0;
border-radius:0;
background-color: color.$default-bg-trans;
&:after {
content: "";
display: table;
clear: both;
}
.lb-container {
overflow: hidden;
&.moveable {
cursor: grab;
}
&.moving {
cursor: grabbing;
}
.lb-image {
display: block;
height: auto;
max-width: inherit;
max-height: none;
border-radius: 0;
border: none;
image-orientation: from-image;
--translate-x: 0;
--translate-y: 0;
--scale: 1;
transform:
translateX(var(--translate-x, 0))
translateY(var(--translate-y, 0))
scale(var(--scale, 1));
}
.lb-video {
box-sizing: content-box;
}
&.lb-video-nav .lb-nav {
top: 100px;
height: calc(100% - 200px); //Leave space for video progress bar
}
.lb-nav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
.lb-prev-area, .lb-next-area {
position: absolute;
top: 0;
height: 100%;
width: 50%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
&.lb-next-area {
right: 0;
}
&:hover a.lb-prev, &:hover a.lb-next {
opacity: 1;
}
}
a.lb-prev, a.lb-next {
cursor: pointer;
color: color.$over-img;
text-decoration: none;
filter: drop-shadow(0px 1px 1px color.$over-img-shadow);
width: 150px;
height: 150px;
position: absolute;
top: 50%;
transform: translateY(-50%);
transition: opacity 0.3s, color 0.3s;
opacity: 0;
outline: none;
font-size: 2em;
&:hover {
color: color.$over-img-hover;
}
.spot-icon {
vertical-align: inherit;
top: 50%;
transform: translate(-50%, -50%);
position: relative;
left: 50%;
}
}
a.lb-prev {
left: 0;
}
a.lb-next {
right: 0;
}
}
.lb-loader {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
width: 100%;
text-align: center;
line-height: 0;
.lb-cancel {
@extend .flicker;
font-size: 2em;
color: color.$default;
text-decoration: none;
}
}
}
}
.lb-dataContainer {
margin: 0;
padding: 0;
width: 100%;
flex: 0 0 auto;
overflow: hidden;
.lb-data {
text-align: left;
padding: var.$elem-spacing;
display: flex;
color: color.$default-inv;
.lb-details {
float: none;
.lb-caption-line:first-child {
margin-top: 0;
}
}
.lb-closeContainer .lb-close {
@extend .clickable;
height: auto;
font-size: 1.3333333333em;
line-height: 1em;
text-align: center;
width: 1.25em;
color: color.$default-inv;
&:hover {
color: color.$default-inv-hover;
}
}
}
}
}