// Checkboxes

@fa-var-check: "\f00c";

.checkbox-variant(@parent, @color) {
  .@{parent} input[type="checkbox"]:checked + label {
    &::before {
      background-color: @color;
      border-color: @color;
    }
    &::after {
      color: #fff;
    }
  }
}


.checkbox{
  padding-left: 20px;

  > label{
    display: inline-block;
    position: relative;
    padding-left: 5px;

    &::before{
      content: ""; 
      display: inline-block;
      position: absolute;
      width: 17px;
      height: 17px;
      left: 0;
      margin-left: -20px;
      border: 1px solid @input-border;
      border-radius: 2px;
      background-color: #fff;
      .transition(~"border 0.15s ease-in-out, color 0.15s ease-in-out");
    }

    &::after{
      display: inline-block;
      position: absolute;
      width: 16px;
      height: 16px;
      line-height: 16px;
      left: 0;
      top: 0;
      margin-left: -20px;
      padding-left: 1px;
      padding-top: 1px;
      font-size: 15px;
      color: @gray;
    }
  }

  > input[type="checkbox"]{
    display: none;

    // &:checked + label::after{
    //   font-family: 'FontAwesome';
    //   content: @fa-var-check;
    // }

    &:checked + label::after{
      font-family: 'Material Design Iconic Font';
      content: "\f023";
      color: #fff;
    }

    &:checked + label::before{
      background: @blue-500;
      border-color: @blue-500;
    }

    &:disabled + label{
      opacity: 0.65;

      &::before{
        background-color: @gray-lighter;
        cursor: not-allowed;
      }
    }

  }

  &.checkbox-circle label::before{
    border-radius: 50%;
  }

  &.checkbox-inline{
    margin-top: 0;
  }
}

.checkbox-variant(checkbox-primary, @brand-primary);
.checkbox-variant(checkbox-danger, @brand-danger);
.checkbox-variant(checkbox-info, @brand-info);
.checkbox-variant(checkbox-warning, @brand-warning);
.checkbox-variant(checkbox-success, @brand-success);





// Radios

.radio-variant(@parent, @color) {
  .@{parent} input[type="radio"]{
    & + label{
      &::after{
        background-color: @color;
      }
    }
    &:checked + label{
      &::before {
        border-color: @color;
      }
      &::after{
        background-color: @color;
      }
    }
  }
}

.radio{
  padding-left: 20px;

  > label{
    display: inline-block;
    position: relative;
    padding-left: 5px;

    &::before{
      content: "";
      display: inline-block;
      position: absolute;
      width: 17px;
      height: 17px;
      left: 0;
      margin-left: -20px;
      border: 1px solid @input-border;
      border-radius: 50%;
      background-color: #fff;
      .transition(border 0.15s ease-in-out);
    }

    &::after{
      display: inline-block;
      position: absolute;
      content: " ";
      width: 11px;
      height: 11px;
      left: 3px;
      top: 3px;
      margin-left: -20px;
      border-radius: 50%;
      background-color: @gray;
      .scale(0, 0);

      .transition-transform(.1s cubic-bezier(.8,-0.33,.2,1.33));
      //curve - http://cubic-bezier.com/#.8,-0.33,.2,1.33
    }
  }

  > input[type="radio"]{
    display: none;

    &:checked + label::after{
      .scale(1, 1);
    }

    &:disabled + label{
      opacity: 0.65;

      &::before{
        cursor: not-allowed;
      }
    }

  }

  &.radio-inline{
    margin-top: 0;
  }
}

.radio-variant(radio-primary, @brand-primary);
.radio-variant(radio-danger, @brand-danger);
.radio-variant(radio-info, @brand-info);
.radio-variant(radio-warning, @brand-warning);
.radio-variant(radio-success, @brand-success);