JSFiddle - React, Tailwind, and code Playground

HTML

<label class="switch">
  <input type="checkbox" id="togBtn" name="active" checked="checked">
  <div class="slider round">
    <span class="on">ON</span>
    <span class="off">OFF</span>
  </div>
</label>

CSS

.switch {
      position: relative;
      display: block;
      width: 60px;
      height: 34px;
    }
    .switch input {display:none;}
    .slider {
      position: absolute;
      cursor: pointer;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: #d9534f;
      -webkit-transition: .4s;
      -moz-transition: .4s;
      -o-transition: .4s;
      -ms-transition: .4s;
      transition: .4s;
    }
    .slider:before {
      position: absolute;
      content: "";
      height: 26px;
      width: 26px;
      left: 4px;
      bottom: 4px;
      background-color: white;
      -webkit-transition: .4s;
      -moz-transition: .4s;
      -o-transition: .4s;
      -ms-transition: .4s;
      transition: .4s;
    }
    input:checked + .slider {
      background-color: #5cb85c;
    }
    input:focus + .slider {
      box-shadow: 0 0 1px #5cb85c;
    }
    input:checked + .slider:before {
      -webkit-transform: translateX(26px);
      -moz-transform: translateX(26px);
      -o-transform: translateX(26px);
      -ms-transform: translateX(26px);
      transform: translateX(26px);
    }
    .slider.round {
      border-radius: 34px;
    }
    .slider.round:before {
      border-radius: 50%;
    }
    .on{
      display: none;
    }

    .on, .off{
      color: white;
      position: absolute;
      transform: translate(-50%,-50%);
      top: 50%;
      left: 50%;
      font-size: 10px;
      font-family: Verdana, sans-serif;
    }

    input:checked+ .slider .on{display: block;}

    input:checked + .slider .off{display: none;}