Skip to content

Commit

Permalink
Convert toasts to CSS variables
Browse files Browse the repository at this point in the history
  • Loading branch information
mdo committed Mar 17, 2022
1 parent 71582ea commit 99695b1
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 15 deletions.
44 changes: 30 additions & 14 deletions scss/_toasts.scss
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
.toast {
width: $toast-max-width;
// scss-docs-start toast-css-vars
--#{$prefix}toast-padding-x: #{$toast-padding-x};
--#{$prefix}toast-padding-y: #{$toast-padding-y};
--#{$prefix}toast-max-width: #{$toast-max-width};
@include rfs($toast-font-size, --#{$prefix}toast-font-size);
--#{$prefix}toast-color: #{$toast-color}; // stylelint-disable-line custom-property-empty-line-before
--#{$prefix}toast-bg: #{$toast-background-color};
--#{$prefix}toast-border-width: #{$toast-border-width};
--#{$prefix}toast-border-color: #{$toast-border-color};
--#{$prefix}toast-border-radius: #{$toast-border-radius};
--#{$prefix}toast-box-shadow: #{$toast-box-shadow};
--#{$prefix}toast-header-color: #{$toast-header-color};
--#{$prefix}toast-header-bg: #{$toast-header-background-color};
--#{$prefix}toast-header-border-color: #{$toast-header-border-color};
// scss-docs-end toast-css-vars

width: var(--#{$prefix}toast-max-width);
max-width: 100%;
@include font-size($toast-font-size);
color: $toast-color;
color: var(--#{$prefix}toast-color);
pointer-events: auto;
background-color: $toast-background-color;
background-color: var(--#{$prefix}toast-bg);
background-clip: padding-box;
border: $toast-border-width solid $toast-border-color;
box-shadow: $toast-box-shadow;
@include border-radius($toast-border-radius);
border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);
box-shadow: var(--#{$prefix}toast-box-shadow);
@include border-radius(var(--#{$prefix}toast-border-radius));

&.showing {
opacity: 0;
Expand All @@ -34,20 +50,20 @@
.toast-header {
display: flex;
align-items: center;
padding: $toast-padding-y $toast-padding-x;
color: $toast-header-color;
background-color: $toast-header-background-color;
padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);
color: var(--#{$prefix}toast-header-color);
background-color: var(--#{$prefix}toast-header-bg);
background-clip: padding-box;
border-bottom: $toast-border-width solid $toast-header-border-color;
@include border-top-radius(subtract($toast-border-radius, $toast-border-width));
border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);
@include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));

.btn-close {
margin-right: $toast-padding-x * -.5;
margin-left: $toast-padding-x;
margin-right: calc(var(--#{$prefix}toast-padding-x) * -.5); // stylelint-disable-line function-disallowed-list
margin-left: var(--#{$prefix}toast-padding-x);
}
}

.toast-body {
padding: $toast-padding-x; // apply to both vertical and horizontal
padding: var(--#{$prefix}toast-padding-x);
word-wrap: break-word;
}
10 changes: 9 additions & 1 deletion site/content/docs/5.1/components/toasts.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,10 +324,18 @@ When using `autohide: false`, you must add a close button to allow users to dism

While technically it's possible to add focusable/actionable controls (such as additional buttons or links) in your toast, you should avoid doing this for autohiding toasts. Even if you give the toast a long [`delay` timeout](#options), keyboard and assistive technology users may find it difficult to reach the toast in time to take action (since toasts don't receive focus when they are displayed). If you absolutely must have further controls, we recommend using a toast with `autohide: false`.

## Sass
## CSS

### Variables

{{< added-in "5.2.0" >}}

As part of Bootstrap's evolving CSS variables approach, toasts now use local CSS variables on `.toast` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.

{{< scss-docs name="toast-css-vars" file="scss/_toasts.scss" >}}

### Sass variables

{{< scss-docs name="toast-variables" file="scss/_variables.scss" >}}

## Usage
Expand Down

0 comments on commit 99695b1

Please sign in to comment.