JSFiddle - React, Tailwind, and code Playground

HTML

<div id="milestone-table">
    <p>Checkbox</p>
    <label>
        <input type="checkbox"/>
        <div class="checkbox"/>
    </label>
</div>

CSS

label {
    display: inline-block;
}

#milestone-table input[type="checkbox"] + .checkbox {
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    display: inline-block;    
    -webkit-appearance: none;
          -moz-appearance: none;
        appearance: none;
        background-color: #fafafa;
        border: 1px solid lightgrey;
        border-radius: 26px;

        -webkit-box-shadow: inset 0 0 0 1px lightgrey;
        box-shadow: inset 0 0 0 1px lightgrey;
        cursor: pointer;
        height: 28px;
        position: relative;

        -webkit-transition: border .25s .15s, box-shadow .25s .3s, padding .25s;
        -moz-transition: border .25s .15s, box-shadow .25s .3s, padding .25s;
        -o-transition: border .25s .15s, box-shadow .25s .3s, padding .25s;
        -ms-transition: border .25s .15s, box-shadow .25s .3s, padding .25s;
        transition: border .25s .15s, box-shadow .25s .3s, padding .25s;
        width: 54px;
        vertical-align: top;
        outline: none;
    margin: 0;
    padding: 0;
}

#milestone-table .controls input[type="checkbox"] + .checkbox {
        margin-top: 10px;
}

#add-milestone {
        position: relative;
        top: 7px;
        left: 90%;
}

#milestone-table {
        margin-top: -20px;
}

#milestone-table input[type="checkbox"] + .checkbox:after {
        background-color: white;
        border: 1px solid lightgrey;
        border-radius: 24px;

        -webkit-box-shadow: inset 0 -3px 3px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.15), 0 4px 4px rgba(0, 0, 0, 0.1);
        box-shadow: inset 0 -3px 3px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.15), 0 4px 4px rgba(0, 0, 0, 0.1);
        content: '';
        display: block;
        height: 24px;
        left: 0;
        position: absolute;
        right: 26px;
        top: 0;

        -webkit-transition: border .25s .15s, left .25s .1s, right .15s .175s;
        -moz-transition: border .25s .15s, left...