.sp-switch {
    width: fit-content;
    display: flex;
    align-items: center;
    height: 20px;
    border-radius: 10px;
    background-color: #dcdfed;
    cursor: pointer;
    vertical-align: middle;
    border: 1px solid #dcdfed;
    box-sizing: border-box;
    position: relative;
    transition: all .3s, border 0s;

    &-icon {
        width: 16px;
        height: 16px;
        display: flex;
        background-color: #fff;
        border-radius: 50%;
        position: absolute;
        top: 1px;
        left: 1px;
        transition: left .3s;

        &.sp-icon-loading {
            background-color: transparent;
        }
    }

    &-text {
        font-size: 14px;
        transform: translateX(3px);

        &.enter {
            transition: transform .3s;
        }
    }

    &.small {
        height: 16px;

        .sp-switch-icon {
            width: 12px;
            height: 12px;
            font-size: 12px;
        }

        .sp-switch-text {
            font-size: 12px;
        }
    }

    &.is-disabled {
        cursor: not-allowed;
        opacity: 0.4;
    }
}