mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-29 11:24:18 +01:00
26a3ef1bcb
* Rework progress bar markup and styles Logically moves the various `role` and `aria-` attributes to the `.progress` element itself, leaving the `.progress-bar` to be used purely for the visual presentation. This fixes the problem #36736 that in certain browser/AT combinations, zero-value/zero-width progress bars are completely ignored and not announced. For multiple/stacked progress bars, this PR introduces a new wrapper and class `.progress-stacked`, to accommodate for the fact that with the more logical structure above, we need full `.progress` elements with child `.progress-bar` elements, and can't get away with the fudge we had before of having a single `.progress` with multiple `.progress-bar`s. Note that the old markup structures still work with this change, so this could be considered a non-breaking change - though one we definitely want to highlight as it's more accessible (as it now guarantees that zero-value/zero-width progress bars, whether on their own or as part of a multi/stacked bar, are actually announced) * Add a note about progress bar change in migration guide * Add notes with old markup examples and explanation * Fix bundlewatch * Update site/content/docs/5.2/components/progress.md Co-authored-by: Julien Déramond <julien.deramond@orange.com> * Reintroduce deleted styles Turns out they're needed for correct positioning of text inside progress bar * Move changes in markup to Migrationg guide, link to that from top of progress page, rewrite some content * Fix typo in callout * Clarify "Sizing" section * Remove redundant "now" Co-authored-by: Julien Déramond <julien.deramond@orange.com> Co-authored-by: Julien Déramond <juderamond@gmail.com> Co-authored-by: Mark Otto <markdotto@gmail.com> Co-authored-by: Mark Otto <markd.otto@gmail.com>
69 lines
2.0 KiB
SCSS
69 lines
2.0 KiB
SCSS
// Disable animation if transitions are disabled
|
|
|
|
// scss-docs-start progress-keyframes
|
|
@if $enable-transitions {
|
|
@keyframes progress-bar-stripes {
|
|
0% { background-position-x: $progress-height; }
|
|
}
|
|
}
|
|
// scss-docs-end progress-keyframes
|
|
|
|
.progress,
|
|
.progress-stacked {
|
|
// scss-docs-start progress-css-vars
|
|
--#{$prefix}progress-height: #{$progress-height};
|
|
@include rfs($progress-font-size, --#{$prefix}progress-font-size);
|
|
--#{$prefix}progress-bg: #{$progress-bg};
|
|
--#{$prefix}progress-border-radius: #{$progress-border-radius};
|
|
--#{$prefix}progress-box-shadow: #{$progress-box-shadow};
|
|
--#{$prefix}progress-bar-color: #{$progress-bar-color};
|
|
--#{$prefix}progress-bar-bg: #{$progress-bar-bg};
|
|
--#{$prefix}progress-bar-transition: #{$progress-bar-transition};
|
|
// scss-docs-end progress-css-vars
|
|
|
|
display: flex;
|
|
height: var(--#{$prefix}progress-height);
|
|
overflow: hidden; // force rounded corners by cropping it
|
|
@include font-size(var(--#{$prefix}progress-font-size));
|
|
background-color: var(--#{$prefix}progress-bg);
|
|
@include border-radius(var(--#{$prefix}progress-border-radius));
|
|
@include box-shadow(var(--#{$prefix}progress-box-shadow));
|
|
}
|
|
|
|
.progress-bar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
overflow: hidden;
|
|
color: var(--#{$prefix}progress-bar-color);
|
|
text-align: center;
|
|
white-space: nowrap;
|
|
background-color: var(--#{$prefix}progress-bar-bg);
|
|
@include transition(var(--#{$prefix}progress-bar-transition));
|
|
}
|
|
|
|
.progress-bar-striped {
|
|
@include gradient-striped();
|
|
background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
|
|
}
|
|
|
|
.progress-stacked > .progress {
|
|
overflow: visible;
|
|
}
|
|
|
|
.progress-stacked > .progress > .progress-bar {
|
|
width: 100%;
|
|
}
|
|
|
|
@if $enable-transitions {
|
|
.progress-bar-animated {
|
|
animation: $progress-bar-animation-timing progress-bar-stripes;
|
|
|
|
@if $enable-reduced-motion {
|
|
@media (prefers-reduced-motion: reduce) {
|
|
animation: none;
|
|
}
|
|
}
|
|
}
|
|
}
|