* { box-sizing: border-box; } body { padding: 0; margin: 0; } input, button, .btn { border: 1px solid #aaa; padding: 0.3em 0.75em; font-family: inherit; font-size: inherit; line-height: 1.8; border-radius: 0.3em; min-width: 0; } button, .btn { display: inline-block; text-align: center; border-color: #26c; background: #26c; color: #fff; cursor: pointer; } button:hover, .btn:hover { border-color: #25a; background: #25a; } button:focus, .btn:focus, .toggle :focus + .btn { box-shadow: 0 0 0 .2rem rgba(38,143,255,.5); } button:active, .btn:active { border-color: #2b4d80; background: #2b4d80; } button:disabled, .toggle :disabled + .btn { border-color: #777; background: #777; color: #ccc; cursor: default; } .toggle .btn::before { content: ""; display: inline-block; vertical-align: text-top; margin-right: 0.5em; width: 1em; height: 1em; border-radius: 50%; background-color: #ccc; } .toggle :checked + .btn::before { background-color: #c12; } .toggle input { position: absolute; clip-path: inset(50%); }