.md-typeset {

  /* Progress Bars */
  .progress-label {
    position: absolute;
    width: 100%;
    margin: 0;
    color: var(--md-text-color);
    font-weight: 700;
    line-height: px2rem(28px);
    white-space: nowrap;
    text-align: center;
    text-shadow:
      px2em(-1px) px2em(-1px) px2em(6px) var(--md-default-bg-color--light),
      px2em(1px) px2em(-1px) px2em(6px) var(--md-default-bg-color--light),
      px2em(-1px) px2em(1px) px2em(6px) var(--md-default-bg-color--light),
      px2em(1px) px2em(1px) px2em(6px) var(--md-default-bg-color--light);
  }

  .progress-bar {
    float: left;
    height: px2rem(24px);
    background-color: $clr-blue-a400;
  }

  /* Stripe animation */
  .candystripe-animate {
    .progress-bar{
      animation: animate-stripes 3s linear infinite;
    }
  }

  .progress {
    position: relative;
    display: block;
    width: 100%;
    height: px2rem(24px);
    margin: px2rem(10px) 0;
    background-color: var(--md-default-fg-color--lightest);

    &.thin {
      height: px2rem(8px);
      margin-top: px2rem(18px);

      .progress-label {
        margin-top: px2rem(-8px);
      }

      .progress-bar {
        height: px2rem(8px);
      }
    }

    &.candystripe .progress-bar {
      background-image:
        linear-gradient(
          135deg,
          var(--md-progress-stripe) 27%,
          transparent 27%,
          transparent 52%,
          var(--md-progress-stripe) 52%,
          var(--md-progress-stripe) 77%,
          transparent 77%,
          transparent
        );
      background-size: px2rem(40px) px2rem(40px);
    }
  }

  @each $percent, $color in (
    "100": var(--md-progress-100),
    "80": var(--md-progress-80),
    "60": var(--md-progress-60),
    "40": var(--md-progress-40),
    "20": var(--md-progress-20),
    "0": var(--md-progress-0)
  ) {
    .progress-#{$percent}plus {
      .progress-bar {
        background-color: $color;
      }
    }
  }

  @keyframes animate-stripes {
    0% {
      background-position: 0 0;
    }

    100% {
      background-position: px2rem(120px) 0;
    }
  }
}
