@meleon/uni-ui
Version:
A uniapp components library written in vue3 and typescript
115 lines (113 loc) • 2.34 kB
text/less
/* ml-components/lib/&/index.wxss */
@prefix: ~'ml-checkbox';
.ml-checkbox {
display: inline-flex;
align-items: center;
justify-content: flex-start;
&__input {
position: relative;
margin-right: 5px;
border-radius: 2px;
border: solid 1px rgba(0, 0, 0, 0.2);
&::before {
content: '';
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 6px;
height: 2px;
background-color: #ffffff;
transform: translateX(-50%) translateY(-50%) scaleY(0);
}
&::after {
content: '';
box-sizing: content-box;
position: absolute;
top: 3px;
left: 6px;
width: 3px;
height: 7px;
border: 1px solid #fff;
border-left: 0;
border-top: 0;
transform-origin: center;
transform: rotate(45deg) scaleY(0);
transition: transform 0.15s ease-in 0.05s;
}
&-checked {
border-color: var(--primary-color-6);
background-color: var(--primary-color-6);
}
&-checked::after {
transform: rotate(45deg) scaleY(1);
}
&-indeterminate {
border-color: var(--primary-color-6);
background-color: var(--primary-color-6);
}
&-indeterminate::before {
transform: translateX(-50%) translateY(-50%) scaleY(1);
}
}
&__label {
font-size: 14px;
color: var(--info-color-7);
}
}
.@{prefix}-disabled {
.ml-checkbox__input {
border-color: #dcdfe6;
background-color: #edf2fc;
}
.ml-checkbox__label {
color: #c0c4cc;
}
}
.@{prefix}-underGroup {
margin-right: 8px;
}
.@{prefix}-only-input {
.ml-checkbox__input {
margin-right: 0;
}
}
.@{prefix}-mini {
.@{prefix}__input {
width: 12px;
height: 12px;
&::before {
width: 4px;
height: 1px;
}
&::after {
top: 2px;
left: 4.5px;
width: 2px;
height: 6px;
}
}
}
.@{prefix}-small {
.@{prefix}__input {
width: 15px;
height: 15px;
}
}
.@{prefix}-medium,
.@{prefix}-large {
.@{prefix}__input {
width: 18px;
height: 18px;
&::before {
width: 9px;
height: 3px;
}
&::after {
top: 3px;
left: 6px;
width: 4px;
height: 9px;
}
}
}