live preview
<div class="toggleswitch-row">
  <label class="toggleswitch-switch">
    <input type="checkbox" class="toggleswitch-input">
    <span class="toggleswitch-track"><span class="toggleswitch-knob"></span></span>
  </label>
  <span class="toggleswitch-status">Off</span>
</div>
.toggleswitch-row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: system-ui, -apple-system, sans-serif;
}
.toggleswitch-switch {
  position: relative;
  display: inline-block;
  width: 46px;
  height: 26px;
  cursor: pointer;
}
.toggleswitch-input {
  opacity: 0;
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}
.toggleswitch-track {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #d1d5db;
  border-radius: 999px;
  transition: background-color 0.2s ease;
}
.toggleswitch-knob {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background-color: #ffffff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.3);
  transition: transform 0.2s ease;
}
.toggleswitch-input:checked + .toggleswitch-track {
  background-color: #3b82f6;
}
.toggleswitch-input:checked + .toggleswitch-track .toggleswitch-knob {
  transform: translateX(20px);
}
.toggleswitch-status {
  font-size: 14px;
  font-weight: 600;
  color: #374151;
}
var toggleswitchInput = document.querySelector('.toggleswitch-input');
var toggleswitchStatus = document.querySelector('.toggleswitch-status');
toggleswitchInput.addEventListener('change', function () {
  toggleswitchStatus.textContent = toggleswitchInput.checked ? 'On' : 'Off';
});