meta-lightbox/src/scss/window.scss

276 lines
5.5 KiB
SCSS
Raw Normal View History

2021-08-18 21:11:59 +02:00
@import "variables";
$module-name: "meta-MetaWindow";
2022-02-28 12:19:25 +01:00
@keyframes fade {
0% {
opacity: 1;
2021-08-10 01:20:02 +02:00
2022-02-28 12:19:25 +01:00
filter: grayscale(0);
2021-08-18 21:11:59 +02:00
}
2021-08-10 01:20:02 +02:00
2022-02-28 12:19:25 +01:00
50% {
opacity: .5;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
filter: grayscale(1);
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
100% {
opacity: 1;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
filter: grayscale(0);
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
}
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
.#{$module-name} {
position: fixed;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
// lightbox inner elements
.meta-spinner--embed,
.meta-spinner,
.meta-error {
z-index: 2;
display: none;
text-align: center;
2021-08-10 01:20:02 +02:00
2022-02-28 12:19:25 +01:00
align-items: center;
justify-content: center;
2021-08-10 01:20:02 +02:00
}
2022-02-28 12:19:25 +01:00
.meta-spinner--embed,
.meta-spinner {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
2021-08-10 01:20:02 +02:00
2022-02-28 12:19:25 +01:00
@include spinner_style();
2021-08-10 01:20:02 +02:00
}
2022-02-28 12:19:25 +01:00
.meta-error {
font-size: 1.5em;
font-weight: bold;
color: $clr-red;
}
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
.meta-spinner--embed {
display: flex;
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
&-overlay {
position: fixed;
z-index: 98;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: none;
background: $meta-overlay-bg;
align-items: center;
justify-content: center;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
// meta states
&--open {
display: flex;
}
&--loading {
animation-name: fade;
animation-duration: 5s;
animation-iteration-count: infinite;
.meta-spinner {
display: flex;
}
}
&--error {
.meta-content {
justify-content: center;
}
.meta-error {
display: flex;
}
}
2021-08-10 01:20:02 +02:00
}
2022-02-28 12:19:25 +01:00
// navs
.meta-nav {
font-size: $meta-nav-size;
z-index: 2;
color: $meta-nav-color;
border: 0;
background: none;
text-shadow: $meta-nav-hover-shadow 0 0 .25em;
@include hover-focus() {
color: $meta-nav-color;
}
&:hover {
text-decoration: none;
color: $meta-nav-hover-color;
background: $meta-nav-hover-bg;
text-shadow: none;
}
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
.meta-nav-arrow {
font-size: $meta-nav-arrows-size;
position: absolute;
z-index: 2;
top: auto;
bottom: 0;
display: flex;
padding: $meta-nav-padding;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
align-items: center;
justify-content: center;
@include hover-focus() {
.fa,
.fas,
.far,
.fab {
transform: $meta-nav-hover-transform;
}
}
@media (min-width: map-get($grid-breakpoints, "lg")) {
top: 0;
bottom: 0;
}
&__next {
right: 0;
}
&__prev {
left: 0;
}
@media (min-width: map-get($grid-breakpoints, "lg")) {
&__next {
right: -($meta-nav-arrows-size + .5);
}
&__prev {
left: -($meta-nav-arrows-size + .5);
}
}
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
.meta-close {
position: absolute;
top: -3rem;
right: 0;
width: 1.25em;
&:hover {
.fa,
.fas,
.far,
.fab {
transform: $meta-nav-close-hover-transform;
}
}
@media (min-width: map-get($grid-breakpoints, "lg")) {
top: -($meta-nav-arrows-size + .5);
right: -($meta-nav-arrows-size + .5);
}
2021-08-18 21:11:59 +02:00
}
2021-08-10 01:20:02 +02:00
.meta-content {
2022-02-28 12:19:25 +01:00
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
width: 100%;
@media (min-width: map-get($grid-breakpoints, "md")) {
height: 80%;
}
@media (min-width: map-get($grid-breakpoints, "lg")) {
width: 90%;
width: calc(90% - 3rem);
height: 90%;
height: calc(90% - 3rem);
}
2021-08-18 21:11:59 +02:00
}
2021-08-10 01:20:02 +02:00
2021-08-18 21:11:59 +02:00
.meta-wrap {
2022-02-28 12:19:25 +01:00
display: flex;
overflow: auto;
width: 100%;
max-width: 100%;
height: 100%;
max-height: 100%;
margin: 0 auto;
word-break: break-word;
img {
max-width: 100%;
max-height: 100%;
object-fit: cover;
}
2021-08-10 01:20:02 +02:00
}
2022-02-28 12:19:25 +01:00
// Lightbox types
&--text {
.meta-content {
padding: $meta-text-wrapper-padding-height $meta-text-wrapper-padding-width;
padding-right: 0;
color: $meta-text-wrapper-color;
background: $meta-text-wrapper-bg;
}
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
.meta-wrap {
padding-right: $meta-text-wrapper-padding-width;
}
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
&--image,
&--video {
.typography,
.meta-wrap {
overflow: hidden;
min-height: 100%;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
align-items: center;
justify-content: center;
2021-08-18 21:11:59 +02:00
2022-02-28 12:19:25 +01:00
img {
margin: 0;
}
}
2021-08-18 21:11:59 +02:00
}
2022-02-28 12:19:25 +01:00
&--video,
&--embed {
@include responsive-ratio($meta-video-width, $meta-video-height, true);
a[rel="nofollow noreferrer noopener"] {
font-size: $meta-embed-loading-failed-size;
font-weight: $meta-embed-loading-failed-weight;
color: $meta-embed-loading-failed-color;
&:before {
display: block;
content: "Unable to load. Please follow the provided link: ";
}
}
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
2021-08-10 01:20:02 +02:00
}
}