@fesjs/fes-design
Version:
fes-design for PC
93 lines (92 loc) • 2.01 kB
CSS
.fes-switch {
position: relative;
display: inline-block;
box-sizing: border-box;
min-width: 48px;
height: 24px;
padding-left: 24px;
line-height: 24px;
vertical-align: middle;
background: var(--f-border-color-base);
border-radius: 12px;
outline: none;
cursor: pointer;
transition: background-color 0.2s cubic-bezier(0.9, 0, 0.3, 0.7);
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.fes-switch::after {
position: absolute;
top: 2px;
left: 2px;
display: block;
width: 20px;
height: 20px;
background-color: var(--f-white);
border-radius: 50%;
transition: all 0.2s cubic-bezier(0.9, 0, 0.3, 0.7);
content: '';
}
.fes-switch .fes-switch-inner {
display: block;
margin-right: var(--f-padding-xsmall);
margin-left: 2px;
color: var(--f-white);
font-size: var(--f-font-size-base);
}
.fes-switch .fes-switch-loading {
position: absolute;
top: 6px;
left: 6px;
z-index: 1;
color: var(--f-font-color-base);
font-size: 12px;
}
.fes-switch.is-checked {
padding-right: 24px;
padding-left: 0;
background: var(--f-primary-color);
}
.fes-switch.is-checked .fes-switch-inner {
margin-right: 2px;
margin-left: var(--f-padding-xsmall);
}
.fes-switch.is-checked .fes-switch-loading {
right: 6px;
left: auto;
color: var(--f-primary-color);
}
.fes-switch.is-checked::after {
left: calc(100% - 2px);
transform: translateX(-100%);
}
.fes-switch.is-disabled {
cursor: default;
opacity: 0.4;
}
.fes-switch-size-small {
min-width: 32px;
height: 16px;
padding-left: 16px;
line-height: 16px;
border-radius: 8px;
}
.fes-switch-size-small::after {
width: 12px;
height: 12px;
}
.fes-switch-size-small .fes-switch-inner {
font-size: calc(var(--f-font-size-base) - 2px);
}
.fes-switch-size-small .fes-switch-loading {
top: 4px;
left: 4px;
font-size: 8px;
}
.fes-switch-size-small.is-checked {
padding-right: 16px;
}
.fes-switch-size-small.is-checked .fes-switch-loading {
right: 4px;
}