@opensig/opendesign
Version:
<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>
144 lines (134 loc) • 5.1 kB
CSS
.o-checkbox {
--checkbox-text-size: var(--o-font_size-text1);
--checkbox-text-height: var(--o-line_height-text1);
--checkbox-label-gap: 8px;
--checkbox-align: center;
--checkbox-color: var(--o-color-info1);
--checkbox-color-disabled: var(--o-color-info4);
--checkbox-radius: var(--o-radius_control-xs);
--checkbox-input-wrap-size: var(--o-control_size-s);
--checkbox-input-size: var(--o-control_size-xs);
--checkbox-input-bg-color: var(--o-color-control-light);
--checkbox-input-bg-color-disabled: var(--o-color-control4-light);
--checkbox-input-bg-color-checked: var(--o-color-primary1);
--checkbox-input-bg-color-checked-hover: var(--o-color-primary2);
--checkbox-input-bg-color-checked-active: var(--o-color-primary3);
--checkbox-input-bg-color-checked-disabled: var(--o-color-primary4);
--checkbox-input-bd-color: var(--o-color-control1);
--checkbox-input-bd-color-hover: var(--o-color-primary2);
--checkbox-input-bd-color-active: var(--o-color-primary3);
--checkbox-input-bd-color-disabled: var(--o-color-control4);
--checkbox-input-bd-color-checked: var(--o-color-primary1);
--checkbox-input-bd-color-checked-hover: var(--o-color-primary2);
--checkbox-input-bd-color-checked-active: var(--o-color-primary3);
--checkbox-input-bd-color-checked-disabled: var(--o-color-primary4);
--checkbox-input-icon-size: calc(var(--checkbox-input-size) / 2);
--checkbox-input-icon-color: var(--o-color-white);
}
.o-checkbox {
color: var(--checkbox-color);
font-size: var(--checkbox-text-size);
line-height: var(--checkbox-text-height);
cursor: pointer;
}
@media (hover: hover) {
.o-checkbox:hover .o-checkbox-input {
border-color: var(--checkbox-input-bd-color-hover);
}
}
.o-checkbox:active .o-checkbox-input {
border-color: var(--checkbox-input-bd-color-active);
}
.o-checkbox-wrap {
display: flex;
align-items: var(--checkbox-align);
position: relative;
height: 100%;
}
.o-checkbox-wrap input[type=checkbox] {
position: absolute;
outline: none;
z-index: -1;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
}
.o-checkbox-input-wrap {
display: flex;
justify-content: center;
align-items: center;
width: var(--checkbox-input-wrap-size);
height: var(--checkbox-input-wrap-size);
}
.o-checkbox-input {
display: flex;
justify-content: center;
align-items: center;
position: relative;
width: var(--checkbox-input-size);
height: var(--checkbox-input-size);
background-color: var(--checkbox-input-bg-color);
font-size: calc(var(--checkbox-input-icon-size) * 2);
border: 1px solid var(--checkbox-input-bd-color);
border-radius: var(--checkbox-radius);
flex-shrink: 0;
transition: border-color var(--o-duration-s) var(--o-easing-standard), background-color var(--o-duration-s) var(--o-easing-standard);
}
.o-checkbox-input svg {
width: 24px;
height: 24px;
color: var(--checkbox-input-icon-color);
}
.o-checkbox-label {
margin-left: var(--checkbox-label-gap);
}
.o-checkbox-checked .o-checkbox-input,
.o-checkbox-indeterminate .o-checkbox-input {
background-color: var(--checkbox-input-bg-color-checked);
border-color: var(--checkbox-input-bd-color-checked);
}
@media (hover: hover) {
.o-checkbox-checked:hover .o-checkbox-input,
.o-checkbox-indeterminate:hover .o-checkbox-input {
background-color: var(--checkbox-input-bg-color-checked-hover);
border-color: var(--checkbox-input-bd-color-checked-hover);
}
}
.o-checkbox-checked:active .o-checkbox-input,
.o-checkbox-indeterminate:active .o-checkbox-input {
background-color: var(--checkbox-input-bg-color-checked-active);
border-color: var(--checkbox-input-bd-color-checked-active);
}
.o-checkbox-input-icon-indeterminate {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: var(--checkbox-input-icon-size);
height: var(--checkbox-input-icon-size);
background-color: var(--checkbox-input-icon-color);
border-radius: calc(var(--checkbox-input-icon-size) / 4);
}
.o-checkbox-disabled, .o-checkbox-disabled:hover, .o-checkbox-disabled.active {
cursor: not-allowed;
color: var(--checkbox-color-disabled);
}
.o-checkbox-disabled .o-checkbox-input, .o-checkbox-disabled:hover .o-checkbox-input, .o-checkbox-disabled.active .o-checkbox-input {
background-color: var(--checkbox-input-bg-color-disabled);
border-color: var(--checkbox-input-bd-color-disabled);
}
.o-checkbox-checked.o-checkbox-disabled .o-checkbox-input, .o-checkbox-checked.o-checkbox-disabled:hover .o-checkbox-input, .o-checkbox-checked.o-checkbox-disabled.active .o-checkbox-input,
.o-checkbox-indeterminate.o-checkbox-disabled .o-checkbox-input,
.o-checkbox-indeterminate.o-checkbox-disabled:hover .o-checkbox-input,
.o-checkbox-indeterminate.o-checkbox-disabled.active .o-checkbox-input {
background-color: var(--checkbox-input-bg-color-checked-disabled);
border-color: var(--checkbox-input-bd-color-checked-disabled);
}
@media (max-width: 1440px) {
.o-checkbox {
--checkbox-text-size: var(--o-font_size-tip1);
--checkbox-text-height: var(--o-line_height-tip1);
}
}