123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- @import (reference) './variable.less';
- @switchPrefix: ant-switch;
- @keyframes loading-rotate {
- 100% {
- transform: rotate(1turn);
- }
- }
- .@{switchPrefix} {
- display: inline-block;
- vertical-align: middle;
- box-sizing: border-box;
- position: relative;
- align-self: center;
- min-width: @switch-width;
- height: @switch-height;
- border: @switch-border solid @COLOR_BORDER;
- border-radius: @switch-height * 0.5;
- background: @COLOR_WHITE;
- overflow: hidden;
- line-height: @switch-height;
- &-checked {
- background: @switch-fill;
- border-color: @switch-fill;
- .@{switchPrefix}-handle {
- left: calc(100% - (@switch-height - 2 * @switch-border));
- }
- .@{switchPrefix}-inner {
- color: @COLOR_WHITE;
- justify-content: flex-start;
- }
- }
- &-disabled {
- opacity: 0.4;
- pointer-events: none;
- }
- &-loading {
- pointer-events: none;
- }
- &-loading-icon {
- font-size: 20 * @rpx;
- animation: loading-rotate 1s linear infinite;
- color: @COLOR_BRAND1;
- }
- &-handle {
- display: flex;
- justify-content: center;
- align-items: center;
- width: @switch-height - 2 * @switch-border;
- height: @switch-height - 2 * @switch-border;
- border-radius: 50%;
- background: @COLOR_WHITE;
- position: absolute;
- top: 0;
- left: 0;
- transition: all 200ms;
- box-shadow: 0 0 2px 0 fade(@COLOR_WHITE_CHANGE_DARK, 20%),
- 0 2px 11.5px 0 fade(@COLOR_WHITE_CHANGE_DARK, 8%),
- -1px 2px 2px 0 fade(@COLOR_WHITE_CHANGE_DARK, 10%);
- }
- &-inner {
- position: relative;
- display: flex;
- justify-content: flex-end;
- align-items: center;
- height: 100%;
- color: @COLOR_TEXT_ASSIST;
- transition: margin 200ms;
- font-size: 30 * @rpx;
- padding: 0 14 * @rpx;
- min-width: 108 * @rpx;
- box-sizing: border-box;
- &:empty {
- display: none;
- }
- }
- &-small {
- min-width: @switch-width-small;
- height: @switch-height-small;
- border-radius: @switch-height-small * 0.5;
- .@{switchPrefix}-handle {
- width: @switch-height-small - 2 * @switch-border;
- height: @switch-height-small - 2 * @switch-border;
- }
- .@{switchPrefix}-inner {
- font-size: 16 * @rpx;
- padding: 0 10 * @rpx;
- min-width: 72 * @rpx;
- }
- }
- &-small&-checked {
- .@{switchPrefix}-handle {
- left: calc(100% - (@switch-height-small - 2 * @switch-border));
- }
- }
- &-x-small {
- min-width: @switch-width-x-small;
- height: @switch-height-x-small;
- border-radius: @switch-height-x-small * 0.5;
- .@{switchPrefix}-handle {
- width: @switch-height-x-small - 2 * @switch-border;
- height: @switch-height-x-small - 2 * @switch-border;
- }
- .@{switchPrefix}-inner {
- font-size: 10 * @rpx;
- padding: 0 6 * @rpx;
- min-width: 56 * @rpx;
- }
- }
- &-x-small&-checked {
- .@{switchPrefix}-handle {
- left: calc(100% - (@switch-height-x-small - 2 * @switch-border));
- }
- }
- }
|