:local {
  .base {
    border-radius: 4px;
    border: none;
    color: white;
    cursor: pointer;

    font-size: 14px;
    font-weight: 400;

    height: 42px;
    letter-spacing: 0.3px;
    line-height: 19px;
    min-width: 100px;
    outline: none;
    padding: 5px 10px;

    &:disabled {
      opacity: 0.4;
      cursor: not-allowed;
    }

    span {
      margin: 0 5px;
      display: inline-block;
      vertical-align: middle;
    }
  }

  a.base {
    color: white;
    text-align: center;
    text-decoration: none;
    padding: 10px;
  }

  .default {
    composes: base;
    background: linear-gradient(180deg, #20BCA1 0%, #159777 100%);
    background-size: 100% 200%;
    transition: background .3s ease;

    &:hover:enabled,
    &:focus {
      background-position: 100%;
    }
  }

  .secondary {
    composes: default;
    background-image: linear-gradient(180deg, #CCD2D6 0%, #a4adb3 100%);
  }

  .destroy,
  .danger {
    composes: default;
    background-image: linear-gradient(0deg, #DE293C 0%, #FF7272 100%)
  }

  .gold {
    composes: default;
    background-image: linear-gradient(-1deg, #FF8C00 0%, #F3C200 100%);
  }

  .blue {
    composes: default;
    background-image: linear-gradient(-1deg, #30A0EE 0%, #2583C4 100%);
  }

  .outlineDanger {
    $color: #FA6D7C;

    composes: base;
    background: white;
    border: 1px solid #b9c5cd;
    color: $color;
    transition: all .3s ease;
    transition-property: color, border, background;

    &:hover:enabled {
      background: #f8fafc;
      color: darken($color, 25%);
    }

    &:focus,
    &:active {
      border: 1px solid $color;
      color: $color;
    }
  }

  .outline {
    composes: base;
    background: white;
    border: 1px solid #b9c5cd;
    color: #aab5bd;
    transition: all .3s ease;
    transition-property: color, border, background;

    &:hover:enabled {
      background: #f8fafc;
      color: #8f9da8;
    }

    &:focus,
    &:active {
      border: 1px solid #2eae8f;
      color: #2eae8f;
    }
  }

  // white is a keyword, so we use whiteBtn
  .whiteBtn {
    composes: base;

    background: white;
    box-shadow: 0px 2px 6px 0px rgba(56,59,60,0.18);
    border-radius: 4px;
    color: #26B093;

    transition: all .3s ease;
    transition-property: text, background, box-shadow;
    &:hover:enabled,
    &:focus:enabled {
      box-shadow: 0px 5px 9px 0px rgba(56,59,60,0.22);
    }

    &.danger,
    &.destroy {
      color: #eb5565;
    }
  }

  /** SIZES **/

  .mini {
    min-width: 80px;
    font-size: 13px;
    height: 28px;
  }

  .small {
    min-width: 80px;
    font-size: 13px;
    height: 36px;
  }

  .large {
    height: 50px;
    font-size: 16px;
    padding: 0 20px;
  }

  .jumbo {
    height: 65px;
    font-size: 18px;
    padding: 0 20px;
  }

  .block {
    width: 100%;
  }

}
