bulma/sass/components/modal.scss
Jeremy Thomas 69877a652c Init v1
2024-03-21 16:11:54 +00:00

165 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");
}