@import '../style/functions.scss';
@import '../style/theme.scss';
@import '../style/mixins.scss';
$prefix-cls: 'dk-switch';

.#{$prefix-cls} {
  @include reset-component();
  position: relative;
  display: inline-block;
  min-width: 44px;
  height: $switch-height;
  line-height: $switch-height - 2px;
  vertical-align: middle;
  border-radius: 100px;
  border: 1px solid transparent;
  background-color: $switch-bg;
  transition: $switch-transition;
  user-select: none;
  box-sizing: border-box;
  cursor: pointer;

  &:focus,
  &.focus {
    outline: 0;
    box-shadow: $switch-focus-box-shadow;
  }

  &:after {
    content: '';
    position: absolute;
    width: $switch-height - 4px;
    height: $switch-height - 4px;
    left: 1px;
    top: 1px;
    border-radius: 50%;
    background-color: #fff;
    transition: all .2s ease;
    cursor: pointer;
  }

  &-inner {
    display: block;
    margin-left: $switch-height - 2px;
    margin-right: 6px;
    padding-left: 4px;
    padding-right: 4px;
    color: #fff;
    font-size: 12px;
    text-align: center;
  }

  &-checked {
    background-color: $switch-bg-checked;

    &:after {
      left: 100%;
      transform: translateX(-100%);
      margin-left: -1px;
    }
  }

  &-checked &-inner {
    margin-left: 6px;
    margin-right: $switch-height - 2px;
  }

  &-disabled {
    opacity: $switch-disabled-opacity;
    pointer-events: none;
  }

  &-small {
    height: $switch-height-sm;
    min-width: 28px;
    line-height: $switch-height-sm - 2px;

    &:after {
      width: $switch-height-sm - 4px;
      height: $switch-height-sm - 4px;
    }

    &.#{$prefix-cls}-checked {
      .#{$prefix-cls}-inner {
        margin-left: 3px;
        margin-right: $switch-height-sm - 2px;
      }
    }
  }

  &-small &-inner {
    margin-left: $switch-height-sm - 2px;
    margin-right: 3px;
    padding-left: 2px;
    padding-right: 2px;
    font-size: 10px;
  }

  &-large {
    height: $switch-height-lg;
    min-width: 60px;
    line-height: $switch-height-lg - 2px;

    &:after {
      width: $switch-height-lg - 4px;
      height: $switch-height-lg - 4px;
    }

    &.#{$prefix-cls}-checked {
      .#{$prefix-cls}-inner {
        margin-left: 8px;
        margin-right: $switch-height-lg - 2px;
      }
    }
  }

  &-large &-inner {
    margin-left: $switch-height-lg - 2px;
    margin-right: 8px;
    padding-left: 6px;
    padding-right: 6px;
    font-size: 14px;
  }
}
