@import "../mixins/index";
@btn-prefix-cls: ~"@{css-prefix}btn";

// Button styles
// -----------------------------
.@{btn-prefix-cls} {
  .btn;
  .btn-default;

  &-primary {
    .btn-primary;

    .@{btn-prefix-cls}-group &:not(:first-child):not(:last-child) {
      border-right-color: @btn-group-border;
      border-left-color: @btn-group-border;
    }

    .@{btn-prefix-cls}-group &:first-child {
      &:not(:last-child) {
        border-right-color: @btn-group-border;
      }
    }

    .@{btn-prefix-cls}-group &:last-child:not(:first-child) {
      border-left-color: @btn-group-border;
    }

    .@{btn-prefix-cls}-group & + .@{btn-prefix-cls} {
      border-left-color: @btn-group-border;
    }
  }

  &-ghost {
    .btn-ghost;
  }

  &-dashed {
    .btn-dashed;
  }

  &-circle,
  &-circle-outline {
    .btn-circle(@btn-prefix-cls);
  }

  &-circle-outline {
    .btn-circle-outline;
  }

  &:after {
    font-family: anticon;
    content: "\e6a1";
    position: absolute;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease;
  }

  &&-loading {
    padding-left: 29px;
    pointer-events: none;
    opacity: 0.75;
    &:after {
      .animation(loadingCircle 1s infinite linear);
      height: 12px;
      line-height: 12px;
      left: 10px;
      top: 50%;
      margin-top: -6px;
      opacity: 1;
      visibility: visible;
    }
    > .anticon {
      display: none;
      & + span {
        margin-left: 0;
      }
    }
  }

  &-sm&-loading {
    padding-left: 24px;
    &:after {
      left: 7px;
    }
  }

  &-group {
    .btn-group(@btn-prefix-cls);
  }

  // To ensure that a space will be placed between character and `Icon`.
  > .@{iconfont-css-prefix} + span,
  > span + .@{iconfont-css-prefix} {
    margin-left: 0.5em;
  }
}
