164 lines
5.1 KiB
SCSS
164 lines
5.1 KiB
SCSS
@use "../utilities/css-variables" as cv;
|
|
@use "../utilities/derived-variables" as dv;
|
|
@use "../utilities/initial-variables" as iv;
|
|
@use "../utilities/extends";
|
|
@use "../utilities/mixins" as mx;
|
|
|
|
$modal-z: 40 !default;
|
|
|
|
$modal-background-background-color: hsla(
|
|
#{cv.getVar("scheme-h")},
|
|
#{cv.getVar("scheme-s")},
|
|
#{cv.getVar("scheme-invert-l")},
|
|
0.86
|
|
) !default;
|
|
|
|
$modal-content-width: 40rem !default;
|
|
$modal-content-margin-mobile: 1.25rem !default;
|
|
$modal-content-spacing-mobile: 10rem !default;
|
|
$modal-content-spacing-tablet: 2.5rem !default;
|
|
|
|
$modal-close-dimensions: 2.5rem !default;
|
|
$modal-close-right: 1.25rem !default;
|
|
$modal-close-top: 1.25rem !default;
|
|
|
|
$modal-card-spacing: 2.5rem !default;
|
|
|
|
$modal-card-head-background-color: cv.getVar("scheme-main") !default;
|
|
$modal-card-head-padding: 2rem !default;
|
|
$modal-card-head-radius: cv.getVar("radius-large") !default;
|
|
|
|
$modal-card-title-color: cv.getVar("text-strong") !default;
|
|
$modal-card-title-line-height: 1 !default;
|
|
$modal-card-title-size: cv.getVar("size-4") !default;
|
|
|
|
$modal-card-foot-background-color: cv.getVar("scheme-main-bis") !default;
|
|
$modal-card-foot-radius: cv.getVar("radius-large") !default;
|
|
|
|
$modal-card-body-background-color: cv.getVar("scheme-main") !default;
|
|
$modal-card-body-padding: 2rem !default;
|
|
|
|
$modal-breakpoint: iv.$tablet !default;
|
|
|
|
.#{iv.$class-prefix}modal {
|
|
@include cv.register-vars(
|
|
(
|
|
"modal-z": #{$modal-z},
|
|
"modal-background-background-color": #{$modal-background-background-color},
|
|
"modal-content-width": #{$modal-content-width},
|
|
"modal-content-margin-mobile": #{$modal-content-margin-mobile},
|
|
"modal-content-spacing-mobile": #{$modal-content-spacing-mobile},
|
|
"modal-content-spacing-tablet": #{$modal-content-spacing-tablet},
|
|
"modal-close-dimensions": #{$modal-close-dimensions},
|
|
"modal-close-right": #{$modal-close-right},
|
|
"modal-close-top": #{$modal-close-top},
|
|
"modal-card-spacing": #{$modal-card-spacing},
|
|
"modal-card-head-background-color": #{$modal-card-head-background-color},
|
|
"modal-card-head-padding": #{$modal-card-head-padding},
|
|
"modal-card-head-radius": #{$modal-card-head-radius},
|
|
"modal-card-title-color": #{$modal-card-title-color},
|
|
"modal-card-title-line-height": #{$modal-card-title-line-height},
|
|
"modal-card-title-size": #{$modal-card-title-size},
|
|
"modal-card-foot-background-color": #{$modal-card-foot-background-color},
|
|
"modal-card-foot-radius": #{$modal-card-foot-radius},
|
|
"modal-card-body-background-color": #{$modal-card-body-background-color},
|
|
"modal-card-body-padding": #{$modal-card-body-padding},
|
|
)
|
|
);
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal {
|
|
@extend %overlay;
|
|
|
|
align-items: center;
|
|
display: none;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
overflow: hidden;
|
|
position: fixed;
|
|
z-index: cv.getVar("modal-z");
|
|
|
|
// Modifiers
|
|
&.#{iv.$class-prefix}is-active {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-background {
|
|
@extend %overlay;
|
|
background-color: cv.getVar("modal-background-background-color");
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-content,
|
|
.#{iv.$class-prefix}modal-card {
|
|
margin: 0 cv.getVar("modal-content-margin-mobile");
|
|
max-height: calc(100vh - #{cv.getVar("modal-content-spacing-mobile")});
|
|
overflow: auto;
|
|
position: relative;
|
|
width: 100%;
|
|
|
|
// Responsiveness
|
|
@include mx.from($modal-breakpoint) {
|
|
margin: 0 auto;
|
|
max-height: calc(100vh - #{cv.getVar("modal-content-spacing-tablet")});
|
|
width: cv.getVar("modal-content-width");
|
|
}
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-close {
|
|
@extend %delete;
|
|
background: none;
|
|
height: cv.getVar("modal-close-dimensions");
|
|
inset-inline-end: cv.getVar("modal-close-right");
|
|
position: fixed;
|
|
top: cv.getVar("modal-close-top");
|
|
width: cv.getVar("modal-close-dimensions");
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-height: calc(100vh - #{cv.getVar("modal-card-spacing")});
|
|
overflow: hidden;
|
|
overflow-y: visible;
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-card-head,
|
|
.#{iv.$class-prefix}modal-card-foot {
|
|
align-items: center;
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
justify-content: flex-start;
|
|
padding: cv.getVar("modal-card-head-padding");
|
|
position: relative;
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-card-head {
|
|
background-color: cv.getVar("modal-card-head-background-color");
|
|
border-start-start-radius: cv.getVar("modal-card-head-radius");
|
|
border-start-end-radius: cv.getVar("modal-card-head-radius");
|
|
box-shadow: cv.getVar("shadow");
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-card-title {
|
|
color: cv.getVar("modal-card-title-color");
|
|
flex-grow: 1;
|
|
flex-shrink: 0;
|
|
font-size: cv.getVar("modal-card-title-size");
|
|
line-height: cv.getVar("modal-card-title-line-height");
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-card-foot {
|
|
background-color: cv.getVar("modal-card-foot-background-color");
|
|
border-end-start-radius: cv.getVar("modal-card-foot-radius");
|
|
border-end-end-radius: cv.getVar("modal-card-foot-radius");
|
|
}
|
|
|
|
.#{iv.$class-prefix}modal-card-body {
|
|
@include mx.overflow-touch;
|
|
background-color: cv.getVar("modal-card-body-background-color");
|
|
flex-grow: 1;
|
|
flex-shrink: 1;
|
|
overflow: auto;
|
|
padding: cv.getVar("modal-card-body-padding");
|
|
}
|