* { box-sizing: border-box; } body { margin: 0; --primary: #28b9be; --gray: #eee; --lighter-gray: #eee; --border-width: 1px; } h1, h2, h3, h4, h5, h6, p { margin: 0; } h2 { font-size: 1.2em; font-weight: inherit; } button { padding: 0; width: 100%; border: none; padding: .75em; cursor: pointer; border-radius: .5em; } img { max-width: 100%; } img, svg { vertical-align: middle; } select, input, textarea, form button { display: block; padding: .75em; width: 100%; border-radius: .5em; border: 1px solid #eee; } button { color: inherit; } button, input, textarea { font: inherit; } textarea { resize: vertical; } .input-group { display: flex; input { flex: 1 1 auto; } input:not(:last-child) { border-right: none; border-top-right-radius: 0; border-bottom-right-radius: 0; } button:not(:first-child) { border-left: none; border-top-left-radius: 0; border-bottom-left-radius: 0; } button { flex: 1; padding: 0 .75em; svg { width: 1.5em; height: 1.5em; } } } input[type="checkbox"][role="switch"] { padding: 0; width: 4em; height: 2em; cursor: pointer; appearance: none; position: relative; border-radius: 50em; box-sizing: content-box; border: var(--border-width) solid var(--gray); background-color: var(--lighter-gray); transition: border .3s, background-color .3s; &::before { width: 2em; height: 2em; content: ''; display: block; background: #fff; position: absolute; border-radius: 100%; transition: transform .3s; } &:checked { border-color: var(--primary); background-color: var(--primary); &::before { transform: translateX(2em); } } }