selfdefined/assets/css/base/_radio-buttons.scss

54 lines
1012 B
SCSS
Raw Permalink Normal View History

.radio-wrapper {
& + & {
margin-top: 0.25rem;
}
[type='radio'] {
opacity: 0;
position: absolute;
}
& label {
--inner-size: 0.25rem;
--outer-top: 0.33rem;
line-height: 1;
padding-left: 1.55rem;
position: relative;
&::after,
&::before {
border-radius: 50%;
content: '';
display: block;
position: absolute;
}
&::after {
border: var(--inner-size) solid var(--clr-foreground);
left: var(--inner-size);
opacity: 0;
top: calc(var(--inner-size) + var(--outer-top));
transition: opacity 0.12s ease-out;
}
&::before {
background: var(--clr-background);
border: 0.125rem solid var(--clr-foreground);
height: 1rem;
left: 0;
top: var(--outer-top);
width: 1rem;
}
}
[type='radio']:focus + label::before {
outline: 0.125rem solid var(--clr-foreground);
outline-offset: 0.125rem;
}
[type='radio']:checked + label::after {
opacity: 1;
}
}