//
.alert {
+ // scss-docs-start alert-css-vars
+ --#{$variable-prefix}alert-bg: transparent;
+ --#{$variable-prefix}alert-padding: #{$alert-padding-y $alert-padding-x};
+ --#{$variable-prefix}alert-margin-bottom: #{$alert-margin-bottom};
+ --#{$variable-prefix}alert-color: #{$alert-padding-y $alert-padding-x};
+ --#{$variable-prefix}alert-border-color: transparent;
+ --#{$variable-prefix}alert-border: #{$alert-border-width} solid var(--#{$variable-prefix}alert-border-color);
+ --#{$variable-prefix}alert-border-radius: #{$alert-border-radius};
+ // scss-docs-end alert-css-vars
+
position: relative;
- padding: $alert-padding-y $alert-padding-x;
- margin-bottom: $alert-margin-bottom;
- border: $alert-border-width solid transparent;
- @include border-radius($alert-border-radius);
+ padding: var(--#{$variable-prefix}alert-padding);
+ margin-bottom: var(--#{$variable-prefix}alert-margin-bottom);
+ background-color: var(--#{$variable-prefix}alert-bg);
+ border: var(--#{$variable-prefix}alert-border);
+ border-radius: var(--#{$variable-prefix}alert-border-radius, 0); // stylelint-disable-line property-disallowed-list
}
// Headings for larger alerts
$alert-background: shift-color($value, $alert-bg-scale);
$alert-border: shift-color($value, $alert-border-scale);
$alert-color: shift-color($value, $alert-color-scale);
+
@if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
$alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
}
// scss-docs-start alert-variant-mixin
@mixin alert-variant($background, $border, $color) {
- color: $color;
- @include gradient-bg($background);
- border-color: $border;
+ --#{$variable-prefix}alert-color: #{$color};
+ --#{$variable-prefix}alert-bg: #{$background};
+ --#{$variable-prefix}alert-border-color: #{$border};
+
+ @if $enable-gradients {
+ background-image: var(--#{$variable-prefix}gradient);
+ }
.alert-link {
color: shade-color($color, 20%);
When an alert is dismissed, the element is completely removed from the page structure. If a keyboard user dismisses the alert using the close button, their focus will suddenly be lost and, depending on the browser, reset to the start of the page/document. For this reason, we recommend including additional JavaScript that listens for the `closed.bs.alert` event and programmatically sets `focus()` to the most appropriate location in the page. If you're planning to move focus to a non-interactive element that normally does not receive focus, make sure to add `tabindex="-1"` to the element.
{{< /callout >}}
-## Sass
+## CSS
### Variables
+<small class="d-inline-flex px-2 py-1 font-monospace text-muted border rounded-3">Added in v5.2.0</small>
+
+As part of Bootstrap's evolving CSS variables approach, buttons now use local CSS variables on `.alert` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
+
+{{< scss-docs name="alert-css-vars" file="scss/_alert.scss" >}}
+
+### Sass variables
+
{{< scss-docs name="alert-variables" file="scss/_variables.scss" >}}
-### Variant mixin
+### Sass mixin
Used in combination with `$theme-colors` to create contextual modifier classes for our alerts.
{{< scss-docs name="alert-variant-mixin" file="scss/mixins/_alert.scss" >}}
-### Loop
+### Sass loop
Loop that generates the modifier classes with the `alert-variant()` mixin.