.Checkbox { display: block; cursor: pointer; margin: 0; & input[type="checkbox"] { display: none; } } .Checkbox--switch { padding-left: 65px; margin: 5px 0; .Checkbox-display { float: left; margin-left: -65px; margin-top: -4px; .LoadingIndicator { display: inline-block; margin-left: 20px; } } } .Checkbox--switch .Checkbox-display { width: 50px; height: 28px; padding: 3px; position: relative; border-radius: 14px; background: @control-bg; .transition(background-color 0.2s); .on& { background: #58a400; } &:before { position: absolute; width: 22px; height: 22px; padding: 0; left: 3px; .transition(~"opacity 0.2s, left 0.2s"); .on& { left: 25px; } } &:before { content: " "; background: @body-bg; border-radius: 11px; box-shadow: 0 2px 4px @shadow-color; } } .Checkbox-display { font-size: 14px; .on & { color: #58a400; } .off & { color: #d0021b; } .disabled & { color: @muted-more-color !important; } } .Checkbox--switch.loading { color: @muted-more-color !important; &.on .Checkbox-display { background: fade(#58a400, 0.5); } &.off .Checkbox-display { background: fade(@control-bg, 0.5); } .LoadingIndicator { color: darken(@muted-color, 50%); } }