@import '../mixins/_color-scheme';

.q-switch-wrapper {
  user-select: none;
  position: relative;
  display: flex;
  width: $switch-width;
  height: $switch-height;
  margin: 0;

  .q-input {
    opacity: 0;
    width: 0;
    height: 0;
  }

  .q-label {
    margin-left: 46px;
    margin-top: 2px;
  }

  .q-switch-slider {
    position: absolute;
    cursor: pointer;
    border-radius: 23px;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: $dark-gray-two;
    -webkit-transition: .4s;
    transition: .4s;
  }

  .q-switch-slider:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 3px;
    bottom: 3px;
    background-color: $white;
    -webkit-transition: .3s;
    border-radius: 50%;
    transition: .4s;
  }

  .q-input:checked + .q-switch-slider {
    background-color: $primary;
  }

  .q-input:checked + .q-switch-slider:before {
    -webkit-transform: translateX(16px);
    -ms-transform: translateX(16px);
    transform: translateX(16px);
  }


  &.q-error {
    color: $red;

    .q-switch-slider {
      background-color: $red;
    }

    .q-input:checked + .q-switch-slider {
      background-color: $red;
    }

  }

  &.q-disabled {
    color: $dark-gray;

    .q-switch-slider {
      background-color: $dark-gray;
    }

    .q-switch-slider:before {
      background-color: $dark-gray-two;
    }

  }
}
