.ui-switcher {
  background-color: #bdc1c2;
  display: inline-block;
  height: 30px;         /* 20px × 1.5 */
  width: 72px;          /* 48px × 1.5 */
  border-radius: 15px;  /* 10px × 1.5 */
  box-sizing: border-box;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  transition: border-color 0.25s;
  box-shadow: inset 1.5px 1.5px 1.5px rgba(0, 0, 0, 0.15);
}

.ui-switcher:before {
  font-family: sans-serif;
  font-size: 15px;        /* 10px × 1.5 */
  font-weight: 400;
  color: #ffffff;
  line-height: 1;
  display: inline-block;
  position: absolute;
  top: 9px;               /* 6px × 1.5 */
  height: 18px;           /* 12px × 1.5 */
  width: 30px;            /* 20px × 1.5 */
  text-align: center;
}

.ui-switcher[aria-checked=false]:before {
  content: 'OFF';
  right: 10.5px;           /* 7px × 1.5 */
}

.ui-switcher[aria-checked=true]:before {
  content: 'ON';
  left: 10.5px;            /* 7px × 1.5 */
}

.ui-switcher[aria-checked=true] {
  background-color: #25ba9a;
}

.ui-switcher:after {
  background-color: #ffffff;
  content: '\0020';
  display: inline-block;
  position: absolute;
  top: 3px;                /* 2px × 1.5 */
  height: 24px;            /* 16px × 1.5 */
  width: 24px;             /* 16px × 1.5 */
  border-radius: 50%;
  transition: left 0.25s;
}

.ui-switcher[aria-checked=false]:after {
  left: 3px;               /* 2px × 1.5 */
}

.ui-switcher[aria-checked=true]:after {
  left: 45px;              /* 30px × 1.5 */
}
