JSFiddle - React, Tailwind, and code Playground

by tuanderful

HTML

<input type="checkbox" id="foo" />
<label for="foo">
    <span class="onState">On</span>
    <span class="offState">Off</span>
</label>

CSS

input {
    display: none;
}

/* default span style */
label span {
    display: none
}
input ~ label .offState {
    display: inline;
}

/* styling for "on" state */
input:checked ~ label .onState {
    display: inline;
}
input:checked ~ label .offState {
    display: none;
}

/* beautify */
label {
  width: 30px;
  display: block;
  text-align: center;
  border: 1px solid black;
  padding: 5px;
}