@import "../settings/variables";

$switch-track-height: 20px;
$switch-track-width: 36px;
$switch-toggle-size: 16px;

.switch {
  position: relative;
  display: inline-block;
  width: $switch-track-width;
  height: $switch-track-height;

  input {
    display: none;
  }

  &__slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: $switch-track-background-color;
    transition: $switch-transition;
    border-radius: $switch-track-height;
    box-shadow: shadow(20);

    &:before {
      position: absolute;
      content: "";
      height: $switch-toggle-size;
      width: $switch-toggle-size;
      left: 2px;
      bottom: 2px;
      background-color: $switch-toggle-background-color;
      transition: $switch-transition;
      border-radius: 50%;
      box-shadow: shadow(20);
    }
  }

  input:checked + &__slider {
    background-color: $switch-track-checked-background-color;

    &:before {
      transform: translateX(spacing(lg));
    }
  }

  &--disabled > &__slider {
    cursor: default;
    background-color: $switch-track-disabled-background-color;
  }

  &--disabled > input:checked + &__slider {
    cursor: default;
    background-color: $switch-track-checked-disabled-background-color;
  }
}
