form { // setting the font size here sizes everything within margin-bottom: 1rem; } fieldset { border-top: 1px solid $lbry-gray-1; margin-bottom: 1.5rem; position: relative; button, input { &:not([type="button"]):not([type="radio"]):not([type="submit"]) { padding-right: 1rem; padding-left: 1rem; transition: border 0.2s; &:not(:focus) { border-top-color: $lbry-black; border-right-color: transparent; border-bottom-color: $lbry-black; border-left-color: $lbry-black; } &:focus { border-top-color: $lbry-teal-5; border-right-color: transparent; border-bottom-color: $lbry-teal-5; border-left-color: $lbry-teal-5; } } &[type="button"], &[type="submit"] { color: $lbry-white; padding-right: 1.5rem; padding-left: 1.5rem; transition: all 0.2s; &:not(:hover) { background-color: $lbry-black; border-color: $lbry-black; } &:hover { background-color: $lbry-teal-3; border-color: $lbry-teal-5; } } } } legend { padding: 0.25rem 0.5rem; border: 1px solid $lbry-gray-1; margin-bottom: 1rem; pointer-events: none; } check { width: 1.5rem; height: 1.5rem; top: 0; left: 0; border: 2px solid; border-radius: 50%; display: block; position: relative; transition: border 0.2s; z-index: 5; &::before { width: 100%; height: 100%; top: 0; left: 0; border-radius: 50%; content: ""; display: block; position: absolute; transform: scale(0.6); transition: background-color 0.2s; } } radio { min-height: 2rem; align-items: center; display: inline-flex; flex-direction: row-reverse; margin-right: 1rem; margin-bottom: 1rem; position: relative; &:hover { label { color: $lbry-teal-4; } check { border-color: $lbry-teal-4; } } label { padding-left: 0.5rem; transition: color 0.2s; } input { &[type="radio"] { width: 0; height: 0; visibility: hidden; &:not(:checked) { + label + check::before { background-color: transparent; } } &:checked { + label { color: $lbry-teal-4; } + label + check::before { background-color: $lbry-teal-4; } } } } } .check { @extend check; } .fieldset { @extend fieldset; } .form { @extend form; } .radio-group { @extend radio; }