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

162 lines
4.6 KiB
SCSS

@import "../utilities/mixins";
$message-background-color: getVar("background") !default;
$message-radius: getVar("radius") !default;
$message-header-background-color: getVar("text") !default;
$message-header-color: getVar("text-invert") !default;
$message-header-weight: getVar("weight-bold") !default;
$message-header-padding: 0.75em 1em !default;
$message-header-radius: getVar("radius") !default;
$message-body-border-color: getVar("border") !default;
$message-body-border-width: 0 0 0 4px !default;
$message-body-color: getVar("text") !default;
$message-body-padding: 1.25em 1.5em !default;
$message-body-radius: getVar("radius") !default;
$message-body-pre-background-color: getVar("scheme-main") !default;
$message-body-pre-code-background-color: transparent !default;
$message-header-body-border-width: 0 !default;
$message-colors: $colors !default;
:root {
@include register-vars(
(
message-background-color: #{$message-background-color},
message-radius: #{$message-radius},
message-header-background-color: #{$message-header-background-color},
message-header-color: #{$message-header-color},
message-header-weight: #{$message-header-weight},
message-header-padding: #{$message-header-padding},
message-header-radius: #{$message-header-radius},
message-body-border-color: #{$message-body-border-color},
message-body-border-width: #{$message-body-border-width},
message-body-color: #{$message-body-color},
message-body-padding: #{$message-body-padding},
message-body-radius: #{$message-body-radius},
message-body-pre-background-color: #{$message-body-pre-background-color},
message-body-pre-code-background-color: #{$message-body-pre-code-background-color},
message-header-body-border-width: #{$message-header-body-border-width},
)
);
}
.#{$class-prefix}message {
@extend %block;
background-color: getVar("message-background-color");
border-radius: getVar("message-radius");
font-size: getVar("size-normal");
strong {
color: currentColor;
}
a:not(.#{$class-prefix}button):not(.#{$class-prefix}tag):not(.#{$class-prefix}dropdown-item) {
color: currentColor;
text-decoration: underline;
}
// Sizes
&.is-small {
font-size: getVar("size-small");
}
&.is-medium {
font-size: getVar("size-medium");
}
&.is-large {
font-size: getVar("size-large");
}
// Colors
// TODO
@each $name, $components in $message-colors {
$color: nth($components, 1);
$color-invert: nth($components, 2);
$color-light: null;
$color-dark: null;
@if length($components) >= 3 {
$color-light: nth($components, 3);
@if length($components) >= 4 {
$color-dark: nth($components, 4);
} @else {
$color-luminance: colorLuminance($color);
$darken-percentage: $color-luminance * 70%;
$desaturate-percentage: $color-luminance * 30%;
$color-dark: desaturate(
darken($color, $darken-percentage),
$desaturate-percentage
);
}
} @else {
$color-lightning: max(100% - lightness($color) - 2%, 0%);
$color-light: lighten($color, $color-lightning);
}
&.is-#{$name} {
background-color: $color-light;
.#{$class-prefix}message-header {
background-color: $color;
color: $color-invert;
}
.#{$class-prefix}message-body {
border-color: $color;
color: $color-dark;
}
}
}
}
.#{$class-prefix}message-header {
align-items: center;
background-color: getVar("message-header-background-color");
border-radius: getVar("message-header-radius") getVar("message-header-radius")
0 0;
color: getVar("message-header-color");
display: flex;
font-weight: getVar("message-header-weight");
justify-content: space-between;
line-height: 1.25;
padding: getVar("message-header-padding");
position: relative;
.#{$class-prefix}delete {
flex-grow: 0;
flex-shrink: 0;
@include ltr-property("margin", 0.75em, false);
}
& + .#{$class-prefix}message-body {
border-width: getVar("message-header-body-border-width");
border-top-left-radius: 0;
border-top-right-radius: 0;
}
}
.#{$class-prefix}message-body {
border-color: getVar("message-body-border-color");
border-radius: getVar("message-body-radius");
border-style: solid;
border-width: getVar("message-body-border-width");
color: getVar("message-body-color");
padding: getVar("message-body-padding");
code,
pre {
background-color: getVar("message-body-pre-background-color");
}
pre code {
background-color: getVar("message-body-pre-code-background-color");
}
}