amis/scss/components/form/_switch.scss
吴多益 d640afd1f6
样式细节调整 (#1764)
* 样式细节调整,通过 gap 可以设置更多间距;radios 和 checkbox 默认 inline

* 统一一下命名

* 改回之前的写法

* 补充漏下的

* 恢复几个之前的大小

* 尝试修复跳转到示例有时候不生效问题
2021-04-08 23:19:23 +08:00

98 lines
1.8 KiB
SCSS

.#{$ns}Switch {
cursor: pointer;
position: relative;
display: inline-block;
height: var(--Switch-height);
min-width: var(--Switch-width);
overflow: hidden;
border-radius: px2rem(30px);
background: var(--Switch-bgColor);
margin: 0;
vertical-align: middle;
text-align: left;
&.is-disabled {
cursor: not-allowed;
opacity: 0.4;
}
.text {
margin: 0 px2rem(7px) 0 px2rem(25px);
color: var(--Switch-valueColor);
text-indent: calc(var(--Switch-width) / 2);
text-transform: uppercase;
font-size: var(--fontSizeSm);
line-height: var(--Switch-height);
font-style: normal;
font-weight: bold;
transition: all var(--animation-duration);
}
.slider {
&:before {
content: '';
position: absolute;
background: var(--white);
width: calc(var(--Switch-height) - #{px2rem(2px)});
top: px2rem(1px);
bottom: px2rem(1px);
left: px2rem(1px);
border-radius: 50%;
transition: margin-left var(--animation-duration);
}
}
&.is-checked {
background: var(--Switch-onActive-bgColor);
.slider::before {
left: auto;
right: px2rem(1px);
border-width: 0;
}
.text {
margin: 0 25px 0 7px;
color: var(--white);
text-indent: var(--gap-xs); // todo
}
}
&.is-checked.is-disabled {
.slider:before {
color: var(--Switch-onDisabled-color);
}
.text {
color: var(--Switch-onDisabled-color);
}
}
input {
position: absolute;
opacity: 0;
}
}
.#{$ns}Switch-option {
vertical-align: middle;
margin-left: var(--Switch-gap);
&:first-child {
margin-left: 0;
margin-right: var(--Switch-gap);
}
&:empty {
display: none;
}
}
.#{$ns}SwitchControl {
padding-top: calc((var(--Form-input-height) - var(--Switch-height)) / 2);
&.is-inline {
display: inline-block;
}
}