.Switcher { position: relative; display: inline-flex; align-items: center; margin: 0; &.disabled { pointer-events: none; opacity: 0.5; } &.inactive { pointer-events: none; } body.no-page-transitions &, &.no-animation { .widget, .widget::after { transition: none !important; } .widget:active:after { width: 1.125rem; } } input { position: absolute; z-index: var(--z-below); width: 0; height: 0; visibility: hidden; opacity: 0; } .widget { cursor: var(--custom-cursor, pointer); position: relative; display: inline-block; width: 2.125rem; height: 0.875rem; border-radius: 0.5rem; text-indent: -999px; background-color: var(--color-gray); transition: background-color 150ms; } .widget:after { content: ""; position: absolute; top: -0.125rem; left: 0; width: 1.125rem; height: 1.125rem; border: 0.125rem solid var(--color-gray); border-radius: 0.75rem; background-color: var(--color-background); transition: transform 200ms; } input:checked + .widget { background: var(--color-primary); } input:checked + .widget:after { transform: translateX(100%); border-color: var(--color-primary); } }