react-toolbox/components/radio/theme.css

104 lines
1.9 KiB
CSS

@import '../colors.css';
@import '../variables.css';
@import './config.css';
.radio {
border: calc(0.2 * var(--unit)) solid var(--radio-text-color);
border-radius: 50%;
cursor: pointer;
display: inline-block;
height: var(--radio-button-size);
position: relative;
vertical-align: top;
width: var(--radio-button-size);
@apply --reset;
&::before {
background-color: var(--radio-inner-color);
border-radius: 50%;
content: '';
height: 100%;
left: 0;
position: absolute;
top: 0;
transform: scale(0);
transition: transform 0.2s var(--animation-curve-default);
width: 100%;
}
& .ripple {
background-color: var(--radio-inner-color);
opacity: 0.3;
transition-duration: 650ms;
}
}
.radioChecked {
border: calc(0.2 * var(--unit)) solid var(--radio-inner-color);
composes: radio;
&::before {
transform: scale(0.65);
}
}
.field {
display: block;
height: var(--radio-button-size);
margin-bottom: var(--radio-field-margin-bottom);
position: relative;
white-space: nowrap;
}
.text {
color: var(--radio-text-color);
display: inline-block;
font-size: var(--radio-text-font-size);
line-height: var(--radio-button-size);
padding-left: var(--unit);
vertical-align: top;
white-space: nowrap;
}
.input {
appearance: none;
border: 0;
height: 0;
margin: 0;
opacity: 0;
padding: 0;
position: absolute;
width: 0;
&:focus ~ .radio {
box-shadow: 0 0 0 var(--unit) var(--radio-focus-color);
}
&:focus ~ .radioChecked {
box-shadow: 0 0 0 var(--unit) var(--radio-checked-focus-color);
}
}
.disabled {
composes: field;
& .text {
color: var(--radio-disabled-color);
}
& .radio {
border-color: var(--radio-disabled-color);
cursor: auto;
}
& .radioChecked {
border-color: var(--radio-disabled-color);
cursor: auto;
&::before {
background-color: var(--radio-disabled-color);
}
}
}