@opensig/opendesign
Version:
133 lines (124 loc) • 4.26 kB
CSS
.o-radio {
--radio-text-size: var(--o-font_size-text1);
--radio-text-height: var(--o-line_height-text1);
--radio-align: center;
--radio-label-gap: 8px;
--radio-color: var(--o-color-info1);
--radio-color-disabled: var(--o-color-info4);
--radio-input-wrap-size: var(--o-control_size-s);
--radio-input-size: var(--o-control_size-xs);
--radio-input-bg-color: var(--o-color-control5-light);
--radio-input-bg-color-disabled: var(--o-color-control4-light);
--radio-input-bg-color-checked: var(--o-color-primary1);
--radio-input-bg-color-checked-hover: var(--o-color-primary2);
--radio-input-bg-color-checked-active: var(--o-color-primary3);
--radio-input-bg-color-checked-disabled: var(--o-color-primary4);
--radio-input-bd-color: var(--o-color-control1);
--radio-input-bd-color-hover: var(--o-color-primary2);
--radio-input-bd-color-active: var(--o-color-primary3);
--radio-input-bd-color-disabled: var(--o-color-control4);
--radio-input-bd-color-checked: var(--o-color-primary1);
--radio-input-bd-color-checked-hover: var(--o-color-primary2);
--radio-input-bd-color-checked-active: var(--o-color-primary3);
--radio-input-bd-color-checked-disabled: var(--o-color-primary4);
--radio-input-icon-size: calc(var(--radio-input-size) / 2);
--radio-input-icon-color: var(--o-color-fill2);
}
.o-radio {
color: var(--radio-color);
font-size: var(--radio-text-size);
line-height: var(--radio-text-height);
cursor: pointer;
}
@media (hover: hover) {
.o-radio:hover .o-radio-input {
border-color: var(--radio-input-bd-color-hover);
}
}
.o-radio:active .o-radio-input {
border-color: var(--radio-input-bd-color-active);
}
.o-radio-wrap {
position: relative;
display: flex;
align-items: var(--radio-align);
height: 100%;
}
.o-radio-wrap input[type=radio] {
position: absolute;
outline: none;
z-index: -1;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
}
.o-radio-input-wrap {
display: flex;
justify-content: center;
align-items: center;
width: var(--radio-input-wrap-size);
height: var(--radio-input-wrap-size);
}
.o-radio-input {
position: relative;
width: var(--radio-input-size);
height: var(--radio-input-size);
background-color: var(--radio-input-bg-color);
border: 1px solid var(--radio-input-bd-color);
border-radius: 50%;
flex-shrink: 0;
transition: all var(--o-duration-s) var(--o-easing-standard);
}
.o-radio-input::after {
content: "";
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: var(--radio-input-icon-size);
height: var(--radio-input-icon-size);
border-radius: 50%;
opacity: 0;
background-color: var(--radio-input-icon-color);
transition: opacity var(--o-duration-s) var(--o-easing-standard), opacity var(--o-duration-s) var(--o-easing-standard);
}
.o-radio-label {
margin-left: var(--radio-label-gap);
}
.o-radio-checked .o-radio-input {
background-color: var(--radio-input-bg-color-checked);
border-color: var(--radio-input-bd-color-checked);
}
.o-radio-checked .o-radio-input::after {
opacity: 1;
}
@media (hover: hover) {
.o-radio-checked:hover .o-radio-input {
background-color: var(--radio-input-bg-color-checked-hover);
border-color: var(--radio-input-bd-color-checked-hover);
}
}
.o-radio-checked:active .o-radio-input {
background-color: var(--radio-input-bg-color-checked-active);
border-color: var(--radio-input-bd-color-checked-active);
}
.o-radio-disabled, .o-radio-disabled:hover, .o-radio-disabled.active {
cursor: not-allowed;
color: var(--radio-color-disabled);
}
.o-radio-disabled .o-radio-input, .o-radio-disabled:hover .o-radio-input, .o-radio-disabled.active .o-radio-input {
background-color: var(--radio-input-bg-color-disabled);
border-color: var(--radio-input-bd-color-disabled);
}
.o-radio-checked.o-radio-disabled .o-radio-input, .o-radio-checked.o-radio-disabled:hover .o-radio-input, .o-radio-checked.o-radio-disabled.active .o-radio-input {
background-color: var(--radio-input-bg-color-checked-disabled);
border-color: var(--radio-input-bd-color-checked-disabled);
}
@media (max-width: 1680px) {
.o-radio {
--radio-text-size: var(--o-font_size-tip1);
--radio-text-height: var(--o-line_height-tip1);
}
}