$switch-border-radius: 1rem; $switch-width: 3.5rem; $switch-height: 1.5rem; /* ============================================================ SWITCH 3 - YES NO ============================================================ */ .gf-form-switch { position: relative; max-width: 4.5rem; flex-grow: 1; min-width: 4.0rem; margin-right: $gf-form-margin; input { position: absolute; margin-left: -9999px; visibility: hidden; display: none; } input + label { display: block; position: relative; cursor: pointer; outline: none; user-select: none; width: 100%; height: 2.65rem; background-color: $page-bg; } input + label::before, input + label::after { @include buttonBackground($input-bg, $input-bg); display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; color: #fff; font-size: $font-size-sm; text-align: center; font-size: 150%; display: flex; flex-direction: column; justify-content: center; } &:hover { input + label::before { @include buttonBackground($input-bg, lighten($input-bg, 5%)); color: $text-color; text-shadow: $text-shadow-faint; } input + label::after { @include buttonBackground($input-bg, lighten($input-bg, 5%)); color: lighten($orange, 10%); text-shadow: $text-shadow-strong; } } input + label::before { font-family: 'FontAwesome'; content: "\f096"; // square-o color: $text-color-weak; transition: transform 0.4s; backface-visibility: hidden; text-shadow: $text-shadow-faint; } input + label::after { content: "\f046"; // check-square-o color: $orange; text-shadow: $text-shadow-strong; font-family: 'FontAwesome'; transition: transform 0.4s; transform: rotateY(180deg); backface-visibility: hidden; } input:checked + label::before { transform: rotateY(180deg); } input:checked + label::after { transform: rotateY(0); } &--table-cell { margin-bottom: 0; margin-right: 0; input + label { height: 3.6rem; } } } gf-form-switch[disabled] { .gf-form-label, .gf-form-switch input + label { cursor: default; pointer-events: none !important; &::before { color: $text-color-faint; text-shadow: none; } } }