<form action="">
  <input type="radio" name="rdo" id="yes" checked />
  <input type="radio" name="rdo" id="no"/>
  <div class="switch">
    <label for="yes">Yes</label>
    <label for="no">No</label>
    <span></span>
  </div>
</form>
@import "nib"

$green = #4cd964
$red = #ff3b30

body
  font-family sans-serif
  font-weight 800

.switch
  position absolute
  top 50%
  left 50%
  width 150px
  height 50px
  text-align center
  margin -30px 0 0 -75px
  background $green
  transition all 0.2s ease
  border-radius 25px
  span
    position absolute
    width 20px
    height 4px
    top 50%
    left 50%
    margin -2px 0px 0px -4px
    background white
    display block
    transform rotate(-45deg)
    transition all .2s ease
    border-radius 2px
    &:after
      content ""
      display block
      position absolute
      width 4px
      height 12px
      margin-top -8px
      background white
      transition all .2s ease
      border-radius 2px

input[type=radio]
  display none

.switch label
  cursor pointer
  color rgba(#000, .2)
  width 60px
  line-height 50px
  transition all 0.2s ease

label[for=yes]
  position absolute
  left 0px
  height 20px

label[for=no]
  position absolute
  right 0px

#no:checked ~ .switch
    background $red

#no:checked ~ .switch span
    background white
    margin-left -8px
    &:after
      background white
      height 20px
      margin-top -8px
      margin-left 8px

#yes:checked ~ .switch label[for=yes]
  color white

#no:checked ~ .switch label[for=no]
  color white
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.