viewy 2.0.6

A web UI toolkit that combine the advantages of a design system and an ui library.
.checkbox {
  display: flex;
  flex-direction: row;
  align-items: center;

  &--checkbox {
    input[type="checkbox"] {
      -webkit-appearance: none;
      appearance: none;
      width: sp(16);
      height: sp(16);
      border: sp(2) solid var(--color-border);
      border-radius: sp($border-radius / 2);
      transition: background 150ms ease, border 150ms ease;

      &::after {
        @include font-stack;
        content: "✓";
        display: block;
        color: white;
        width: 100%;
        height: 100%;
        line-height: 100%;
        text-align: center;
        font-weight: bold;
        opacity: 0;
        transition: opacity 150ms ease;
      }

      &:hover {
        border-color: var(--color-border-hover);
        background-color: var(--color-hover);
      }

      &:checked {
        border-color: var(--color-accent);
        background-color: var(--color-accent);

        &::after {
          opacity: 1;
        }
      }
    }
  }

  &--switch {
    input[type="checkbox"] {
      -webkit-appearance: none;
      appearance: none;
      width: sp(40);
      min-width: sp(40);
      height: sp(24);
      min-height: sp(24);
      border: none;
      background: var(--color-border);
      border-radius: sp(12);
      box-sizing: border-box;
      position: relative;
      transition: background-color 150ms ease;
      cursor: pointer;

      &::after {
        content: "";
        display: block;
        width: sp(24);
        height: sp(24);
        border: sp(2) solid var(--color-border);
        background: var(--background);
        border-radius: sp(12);
        box-sizing: border-box;
        transition: border 150ms ease, margin-left 150ms ease;
      }
      &:checked {
        background: var(--color-accent);

        &::after {
          margin-left: sp(16);
          border-color: var(--color-accent);
        }
      }
    }
  }

}