]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Convert alerts to CSS variables (#35401)
authorMark Otto <markd.otto@gmail.com>
Fri, 17 Dec 2021 05:16:24 +0000 (21:16 -0800)
committerGitHub <noreply@github.com>
Fri, 17 Dec 2021 05:16:24 +0000 (07:16 +0200)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
.bundlewatch.config.json
scss/_alert.scss
scss/mixins/_alert.scss
site/content/docs/5.1/components/alerts.md

index 5c04c131f22ae3037c5750043a30d3a92f6cdc13..5960b3bef571502031c3e5a6cad2628030181662 100644 (file)
     },
     {
       "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",
index 34f1e84edf2aad9df97936539fd3882290ca376f..ed47806e27ad65b7616221803b452754bb020959 100644 (file)
@@ -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));
   }
index f3eb59511da6cac0f35147f853c81fd8af0a87fb..eb84af12895a3f68080e541f384e07916e331f00 100644 (file)
@@ -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%);
index d54f7b9cee4568593a59a82cbc5664a4b7aee18b..97a9d4e3f431e73deab1fe6a68a7867e2e38c374 100644 (file)
@@ -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
 
+<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.