Files
bulma/sass/components/modal.scss
2022-12-06 00:47:43 +00:00

167 lines
4.9 KiB
SCSS

@import "../utilities/mixins";
$modal-z: 40 !default;
$modal-background-background-color: bulmaRgba($scheme-invert, 0.86) !default;
$modal-content-width: 640px !default;
$modal-content-margin-mobile: 20px !default;
$modal-content-spacing-mobile: 160px !default;
$modal-content-spacing-tablet: 40px !default;
$modal-close-dimensions: 40px !default;
$modal-close-right: 20px !default;
$modal-close-top: 20px !default;
$modal-card-spacing: 40px !default;
$modal-card-head-background-color: getVar("background") !default;
$modal-card-head-border-bottom: 1px solid getVar("border") !default;
$modal-card-head-padding: 20px !default;
$modal-card-head-radius: getVar("radius-large") !default;
$modal-card-title-color: getVar("text-strong") !default;
$modal-card-title-line-height: 1 !default;
$modal-card-title-size: getVar("size-4") !default;
$modal-card-foot-radius: getVar("radius-large") !default;
$modal-card-foot-border-top: 1px solid getVar("border") !default;
$modal-card-body-background-color: getVar("scheme-main") !default;
$modal-card-body-padding: 20px !default;
$modal-breakpoint: $tablet !default;
:root {
@include 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-border-bottom: #{$modal-card-head-border-bottom},
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-radius: #{$modal-card-foot-radius},
modal-card-foot-border-top: #{$modal-card-foot-border-top},
modal-card-body-background-color: #{$modal-card-body-background-color},
modal-card-body-padding: #{$modal-card-body-padding},
)
);
}
.#{$class-prefix}modal {
@extend %overlay;
align-items: center;
display: none;
flex-direction: column;
justify-content: center;
overflow: hidden;
position: fixed;
z-index: getVar("modal-z");
// Modifiers
&.is-active {
display: flex;
}
}
.#{$class-prefix}modal-background {
@extend %overlay;
background-color: getVar("modal-background-background-color");
}
.#{$class-prefix}modal-content,
.#{$class-prefix}modal-card {
margin: 0 getVar("modal-content-margin-mobile");
max-height: calc(100vh - #{getVar("modal-content-spacing-mobile")});
overflow: auto;
position: relative;
width: 100%;
// Responsiveness
@include from($modal-breakpoint) {
margin: 0 auto;
max-height: calc(100vh - #{getVar("modal-content-spacing-tablet")});
width: getVar("modal-content-width");
}
}
.#{$class-prefix}modal-close {
@extend %delete;
background: none;
height: getVar("modal-close-dimensions");
position: fixed;
@include ltr-position(getVar("modal-close-right"));
top: getVar("modal-close-top");
width: getVar("modal-close-dimensions");
}
.#{$class-prefix}modal-card {
display: flex;
flex-direction: column;
max-height: calc(100vh - #{getVar("modal-card-spacing")});
overflow: hidden;
-ms-overflow-y: visible;
}
.#{$class-prefix}modal-card-head,
.#{$class-prefix}modal-card-foot {
align-items: center;
background-color: getVar("modal-card-head-background-color");
display: flex;
flex-shrink: 0;
justify-content: flex-start;
padding: getVar("modal-card-head-padding");
position: relative;
}
.#{$class-prefix}modal-card-head {
border-bottom: getVar("modal-card-head-border-bottom");
border-top-left-radius: getVar("modal-card-head-radius");
border-top-right-radius: getVar("modal-card-head-radius");
}
.#{$class-prefix}modal-card-title {
color: getVar("modal-card-title-color");
flex-grow: 1;
flex-shrink: 0;
font-size: getVar("modal-card-title-size");
line-height: getVar("modal-card-title-line-height");
}
.#{$class-prefix}modal-card-foot {
border-bottom-left-radius: getVar("modal-card-foot-radius");
border-bottom-right-radius: getVar("modal-card-foot-radius");
border-top: getVar("modal-card-foot-border-top");
.#{$class-prefix}button {
&:not(:last-child) {
@include ltr-property("margin", 0.5em);
}
}
}
.#{$class-prefix}modal-card-body {
@include overflow-touch;
background-color: getVar("modal-card-body-background-color");
flex-grow: 1;
flex-shrink: 1;
overflow: auto;
padding: getVar("modal-card-body-padding");
}