// Name: Progress
//
// Component: `progress`
//
// Modifiers: `progress-bar-indicating`
// `progress-skill`
// `progress-lg`
// `progress-sm`
// `progress-xs`
// `progress-square`
// `progress-circle`
// `contextual-progress`
//
// Markup:
//
//
//
//
// ========================================================================
// Variables
// ========================================================================
$progress-bar-height: 15px !default;
$progress-bar-xs-height: 4px !default;
$progress-bar-sm-height: 10px !default;
$progress-bar-lg-height: $line-height-computed !default;
$progress-vertical-bar-width: 15px !default;
$progress-vertical-bar-xs-width: 4px !default;
$progress-vertical-bar-sm-width: 10px !default;
$progress-vertical-bar-lg-width: 25px !default;
$progress-bar-indicating-active-bg: $inverse !default;
$progress-round: 1000px !default;
$progress-vertical-min-height: 250px !default;
$progress-vertical-margin-right: 30px !default;
$progress-skill-color: $subtitle-color !default;
// Component: Progress
// ========================================================================
// Outer container
.progress {
overflow: hidden;
height: $progress-bar-height;
margin-bottom: $line-height-computed;
background-color: $progress-bg;
border-radius: $progress-border-radius;
}
// Bar of progress
.progress-bar {
float: left;
width: 0%;
height: 100%;
font-size: $font-size-sm;
line-height: $progress-bar-height;
color: $progress-bar-color;
text-align: center;
background-color: $progress-bar-bg;
transition: width .6s ease;
}
// Color Variations
// -------------------------
.progress-bar-success {
@include progress-bar-variant($progress-bar-success-bg);
}
.progress-bar-info {
@include progress-bar-variant($progress-bar-info-bg);
}
.progress-bar-warning {
@include progress-bar-variant($progress-bar-warning-bg);
}
.progress-bar-danger {
@include progress-bar-variant($progress-bar-danger-bg);
}
// Modifier: `.progress-striped or progress-bar-striped`
// ----------------------------------------------------
.progress-striped .progress-bar,
.progress-bar-striped {
@include gradient-striped;
background-size: 40px 40px;
}
// Modifier: `.progress.active or .progress-bar.active`
// -------------------------------------------------------------------------
// Call animation for the actived progress-striped
// .progress-animated .progress-bar,
.progress.active .progress-bar,
.progress-bar.active {
animation: progress-bar-stripes 2s linear infinite;
}
// Modifier: `progress-square`
// -------------------------
.progress-square {
border-radius: 0;
}
// Modifier: `progress-circle`
// -------------------------
.progress-circle {
border-radius: $progress-round;
}
// Vertical
// --------
.progress-vertical {
min-height: $progress-vertical-min-height;
height: $progress-vertical-min-height;
width: $progress-vertical-bar-width;
position: relative;
display: inline-block;
margin-bottom: 0;
margin-right: $progress-vertical-margin-right;
.progress-bar {
width: 100%;
}
}
// Modifier: `progress-bar-indicating`
// -------------------------
.progress-bar-indicating {
&.active {
position: relative;
animation:none;
&:before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: '';
background-color: $progress-bar-indicating-active-bg;
border-radius: inherit;
opacity: 0;
animation: progress-active 3s ease 0s infinite;
.progress-vertical & {
animation-name: progress-vertical-active;
}
}
}
}
// Modifier: `progress-skill`
// ========================================================================
.progress-skill {
position: relative;
.progress-bar {
> span {
position: absolute;
top: 0;
right: 10px;
color: $progress-skill-color;
}
}
}
// Size Modifier
// ========================================================================
.progress-lg {
height: $progress-bar-lg-height;
&.progress-vertical {
width: $progress-vertical-bar-lg-width;
}
.progress-bar {
line-height: $progress-bar-lg-height;
}
}
.progress-sm {
height: $progress-bar-sm-height;
&.progress-vertical {
width: $progress-vertical-bar-sm-width;
}
.progress-bar {
line-height: $progress-bar-sm-height;
}
}
.progress-xs {
height: $progress-bar-xs-height;
&.progress-vertical {
width: $progress-vertical-bar-xs-width;
}
border-radius: 1px;
.progress-bar {
line-height: $progress-bar-xs-height;
}
}
// Modifier: `contextual-progress`
// ========================================================================
.contextual-progress {
margin: 20px 0;
.progress-title {
float: left;
}
.progress-label {
position: relative;
float: right;
}
.progress {
height: 2px;
margin: 5px 0;
}
}
// Progress Animation
// ========================================================================
// Bar animations
// -------------------------
// WebKit
@-webkit-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Spec and IE10+
@keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
@-webkit-keyframes progress-active {
0% {
width: 0;
opacity: .4;
}
100% {
width: 100%;
opacity: 0;
}
}
@keyframes progress-active {
0% {
width: 0;
opacity: .4;
}
100% {
width: 100%;
opacity: 0;
}
}
@-webkit-keyframes progress-vertical-active {
0% {
top: 0;
opacity: 0;
}
100% {
top: 175px;
opacity: .4;
}
}
@keyframes progress-vertical-active {
0% {
top: 0;
opacity: 0;
}
100% {
top: 175px;
opacity: .4;
}
}