assets/css/bs3/less/base/progress-bars.less
//
// Progress bars
// --------------------------------------------------


// Bar animations
// -------------------------

@keyframes progress-bar-stripes {
  from  { background-position: 40px 0; }
  to    { background-position: 0 0; }
}



// Bar itself
// -------------------------

// Outer container
.progress {
  overflow: hidden;
  height: @computedLineHeight;
  margin-bottom: @computedLineHeight;
  background-color: @progress-bg;
  border-radius: @radius;
  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));

  // Bar of progress
  .bar {
    float: left;
    width: 0%;
    height: 100%;
    font-size: @fontSizeSmall;
    line-height: @computedLineHeight;
    color: @progress-bar-color;
    text-align: center;
    background-color: @progress-bar-bg;
    .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
    .transition(width .6s ease);
  }
}

// Striped bars
.progress-striped .bar {
  #gradient > .striped();
  background-size: 40px 40px;
}

// Call animation for the active one
.progress.active .bar {
  .animation(progress-bar-stripes 2s linear infinite);
}

// Account for lower percentages
.progress .bar {
  &[aria-valuenow="1"],
  &[aria-valuenow="2"] {
    min-width: 30px;
  }

  &[aria-valuenow="0"] {
    color: @grayLight;
    min-width: 30px;
    background-color: transparent;
    background-image: none;
    box-shadow: none;
  }
}



// Variations
// -------------------------

.progress{
  .bar-success {
    .progress-bar-variant(@progress-bar-success-bg);
  }

  .bar-info {
    .progress-bar-variant(@progress-bar-info-bg);
  }

  .bar-warning {
    .progress-bar-variant(@progress-bar-warning-bg);
  }

  .bar-danger {
    .progress-bar-variant(@progress-bar-danger-bg);
  }
}
