$button-size : 2rem;
$transition: .3s; // increase this to see the transformations in slow-motion

@mixin line {
    display: inline-block;
    width: $button-size;
    height: $button-size / 7;
    border-radius: $button-size / 14;
    transition: $transition;
}

.lines-button {
    display: inline-block;
    padding: $button-size / 4 $button-size / 4 $button-size / 2;
    transition: .3s;
    cursor: pointer;
    user-select: none;
    border-radius: $button-size / 5;
    position: absolute;
    z-index: 100002;
    top: 10px;

    background: transparent;

    &:hover {
        opacity: 1;
    }

    &:active {
        transition: none;
        background: rgba(0, 0, 0, .1);
    }
}

.lines {
    position: relative;
    @include line;

    /*create the upper and lower lines as pseudo-elements of the middle line*/
    &:before, &:after {

        @include line;
        position: absolute;
        left:0;
        content: '';
        transform-origin: $button-size / 14 center;
    }
    &:before { top: $button-size / 4; }
    &:after { top: -$button-size / 4; }
}

.sidebar-mobile-open .lines-button.x .lines {

    /*hide the middle line*/
    background: transparent !important;

    /*overlay the lines by setting both their top values to 0*/
    &:before, &:after{
        transform-origin: 50% 50%;
        top:0;
        width: $button-size;
    }

    // rotate the lines to form the x shape
    &:before{
        transform: rotate3d(0, 0, 1, 45deg);
    }
    &:after{
        transform: rotate3d(0, 0, 1, -45deg);
    }
}