//
// 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;
  overflow: hidden; // force rounded corners by cropping it
}
.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($progress-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;
}
.progress[value]::-webkit-progress-value {
  background-color: $progress-bar-color;
}

// Unfilled portion of the bar
.progress[value]::-webkit-progress-bar {
  background-color: $progress-bg;
  @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 box-shadow($progress-box-shadow);
}


//
// 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;
}


//
// 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;
}


//
// 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);
}