mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
145 lines
3.4 KiB
SCSS
145 lines
3.4 KiB
SCSS
//
|
|
// Progress animations
|
|
//
|
|
|
|
@keyframes progress-bar-stripes {
|
|
from { background-position: $spacer-y 0; }
|
|
to { background-position: 0 0; }
|
|
}
|
|
|
|
|
|
//
|
|
// Basic progress bar
|
|
//
|
|
|
|
.progress {
|
|
display: block;
|
|
width: 100%;
|
|
height: $spacer-y; // todo: make a new var for this
|
|
margin-bottom: $spacer-y;
|
|
}
|
|
.progress[value] {
|
|
// Set overall background
|
|
background-color: $progress-bg;
|
|
// Remove Firefox and Opera border
|
|
border: 0;
|
|
// Reset the default appearance
|
|
appearance: none;
|
|
// Set overall border radius
|
|
@include border-radius($border-radius);
|
|
}
|
|
|
|
// Filled-in portion of the bar
|
|
.progress[value]::-ms-fill {
|
|
background-color: $progress-bar-color;
|
|
// Remove right-hand border of value bar from IE10+/Edge
|
|
border: 0;
|
|
}
|
|
.progress[value]::-moz-progress-bar {
|
|
background-color: $progress-bar-color;
|
|
@include border-left-radius($border-radius);
|
|
}
|
|
.progress[value]::-webkit-progress-value {
|
|
background-color: $progress-bar-color;
|
|
@include border-left-radius($border-radius);
|
|
}
|
|
// Tweaks for full progress bar
|
|
.progress[value="100"]::-moz-progress-bar {
|
|
@include border-right-radius($border-radius);
|
|
}
|
|
.progress[value="100"]::-webkit-progress-value {
|
|
@include border-right-radius($border-radius);
|
|
}
|
|
|
|
// Unfilled portion of the bar
|
|
.progress[value]::-webkit-progress-bar {
|
|
background-color: $progress-bg;
|
|
@include border-radius($border-radius);
|
|
@include box-shadow($progress-box-shadow);
|
|
}
|
|
base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make these styles Firefox-only
|
|
.progress[value] {
|
|
background-color: $progress-bg;
|
|
@include border-radius($border-radius);
|
|
@include box-shadow($progress-box-shadow);
|
|
}
|
|
|
|
// IE9 hacks to accompany custom markup. We don't need to scope this via media queries, but I feel better doing it anyway.
|
|
@media screen and (min-width:0\0) {
|
|
.progress {
|
|
background-color: $progress-bg;
|
|
@include border-radius($border-radius);
|
|
@include box-shadow($progress-box-shadow);
|
|
}
|
|
.progress-bar {
|
|
display: inline-block;
|
|
height: $spacer-y;
|
|
text-indent: -999rem; // Simulate hiding of value as in native `<progress>`
|
|
background-color: $progress-bar-color;
|
|
@include border-left-radius($border-radius);
|
|
}
|
|
.progress[width="100%"] {
|
|
@include border-right-radius($border-radius);
|
|
}
|
|
}
|
|
|
|
|
|
//
|
|
// Striped
|
|
//
|
|
|
|
.progress-striped[value]::-webkit-progress-value {
|
|
@include gradient-striped();
|
|
background-size: $spacer-y $spacer-y;
|
|
}
|
|
.progress-striped[value]::-moz-progress-bar {
|
|
@include gradient-striped();
|
|
background-size: $spacer-y $spacer-y;
|
|
}
|
|
.progress-striped[value]::-ms-fill {
|
|
@include gradient-striped();
|
|
background-size: $spacer-y $spacer-y;
|
|
}
|
|
// IE9
|
|
@media screen and (min-width:0\0) {
|
|
.progress-bar-striped {
|
|
@include gradient-striped();
|
|
background-size: $spacer-y $spacer-y;
|
|
}
|
|
}
|
|
|
|
|
|
//
|
|
// Animated
|
|
//
|
|
|
|
.progress-animated[value]::-webkit-progress-value {
|
|
animation: progress-bar-stripes 2s linear infinite;
|
|
}
|
|
.progress-animated[value]::-moz-progress-bar {
|
|
animation: progress-bar-stripes 2s linear infinite;
|
|
}
|
|
// IE9
|
|
@media screen and (min-width:0\0) {
|
|
.progress-animated .progress-bar-striped {
|
|
animation: progress-bar-stripes 2s linear infinite;
|
|
}
|
|
}
|
|
|
|
|
|
//
|
|
// Variations
|
|
//
|
|
|
|
.progress-success {
|
|
@include progress-variant($progress-bar-success-bg);
|
|
}
|
|
.progress-info {
|
|
@include progress-variant($progress-bar-info-bg);
|
|
}
|
|
.progress-warning {
|
|
@include progress-variant($progress-bar-warning-bg);
|
|
}
|
|
.progress-danger {
|
|
@include progress-variant($progress-bar-danger-bg);
|
|
}
|