bootstrap5/scss/_alert.scss
2026-09-19 16:49:53 +08:00

82 lines
2.8 KiB
SCSS

//
// Base styles
//
.alert {
// scss-docs-start alert-css-vars
--#{$prefix}alert-bg: transparent;
--#{$prefix}alert-padding-x: #{$alert-padding-x};
--#{$prefix}alert-padding-y: #{$alert-padding-y};
--#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
--#{$prefix}alert-color: inherit;
--#{$prefix}alert-border-color: transparent;
--#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
--#{$prefix}alert-border-radius: #{$alert-border-radius};
--#{$prefix}alert-link-color: inherit;
// scss-docs-end alert-css-vars
position: relative;
padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
margin-bottom: var(--#{$prefix}alert-margin-bottom);
color: var(--#{$prefix}alert-color);
background-color: var(--#{$prefix}alert-bg);
border: var(--#{$prefix}alert-border);
@include border-radius(var(--#{$prefix}alert-border-radius));
}
// Headings for larger alerts
.alert-heading {
// Specified to prevent conflicts of changing $headings-color
color: inherit;
}
// Provide class for links that match alerts
.alert-link {
font-weight: $alert-link-font-weight;
color: var(--#{$prefix}alert-link-color);
text-decoration: underline;
}
// Dismissible alerts
//
// Expand the right padding and account for the close button's positioning.
.alert-dismissible {
padding-right: $alert-dismissible-padding-r;
// Adjust close link position
.btn-close {
position: absolute;
top: 0;
right: 0;
z-index: $stretched-link-z-index + 1;
padding: $alert-padding-y * 1.25 $alert-padding-x;
}
}
// scss-docs-start alert-modifiers
// Generate contextual modifier classes for colorizing the alert
//
// Customization: upstream v5.3 colors alerts with the pale `-bg-subtle` /
// `-border-subtle` / `-text-emphasis` color-mode variables. We keep the solid,
// fully saturated alerts this fork has always used — the equivalent of the
// v5.2 `$alert-bg-scale` / `$alert-border-scale` / `$alert-color-scale` all
// being set to `0%`, which those (now deprecated and unread) variables no
// longer control.
@each $state, $value in $theme-colors {
.alert-#{$state} {
--#{$prefix}alert-color: #{color-contrast($value)};
--#{$prefix}alert-bg: #{$value};
--#{$prefix}alert-border-color: #{$value};
// The link deliberately keeps the alert's own text color. These alerts are
// solid and saturated, so `--#{$prefix}alert-color` is already at maximum
// contrast against the fill; any shade or tint of it can only reduce
// contrast. (The previous `shade-color(color-contrast($value), 10%)` shaded
// *white* to #e6e6e6 on the six dark alerts, making links dimmer than the
// surrounding text.) Emphasis comes from weight and the underline instead.
--#{$prefix}alert-link-color: var(--#{$prefix}alert-color);
}
}
// scss-docs-end alert-modifiers