diff --git a/.bundlewatch.config.json b/.bundlewatch.config.json index 5c04c131f2..5960b3bef5 100644 --- a/.bundlewatch.config.json +++ b/.bundlewatch.config.json @@ -26,11 +26,11 @@ }, { "path": "./dist/css/bootstrap.css", - "maxSize": "25.5 kB" + "maxSize": "26 kB" }, { "path": "./dist/css/bootstrap.min.css", - "maxSize": "23.25 kB" + "maxSize": "23.5 kB" }, { "path": "./dist/js/bootstrap.bundle.js", diff --git a/scss/_alert.scss b/scss/_alert.scss index 34f1e84edf..ed47806e27 100644 --- a/scss/_alert.scss +++ b/scss/_alert.scss @@ -3,11 +3,22 @@ // .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 @@ -47,6 +58,7 @@ $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)); } diff --git a/scss/mixins/_alert.scss b/scss/mixins/_alert.scss index f3eb59511d..eb84af1289 100644 --- a/scss/mixins/_alert.scss +++ b/scss/mixins/_alert.scss @@ -1,8 +1,12 @@ // 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%); diff --git a/site/content/docs/5.1/components/alerts.md b/site/content/docs/5.1/components/alerts.md index d54f7b9cee..97a9d4e3f4 100644 --- a/site/content/docs/5.1/components/alerts.md +++ b/site/content/docs/5.1/components/alerts.md @@ -156,19 +156,27 @@ You can see this in action with a live demo: 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 +Added in v5.2.0 + +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.