UNPKG

vui-design

Version:

A high quality UI Toolkit based on Vue.js

184 lines (163 loc) 4.31 kB
@vui-switch: ~"@{vui}-switch"; @switch-input-size-sm: @switch-size-sm - 4px; @switch-input-size-md: @switch-size-md - 4px; @switch-input-size-lg: @switch-size-lg - 4px; @switch-input-spin-size-sm: @switch-input-size-sm - 4px; @switch-input-spin-size-md: @switch-input-size-md - 4px; @switch-input-spin-size-lg: @switch-input-size-lg - 4px; @keyframes vuiSwitchLoading { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } } .@{vui-switch} { position:relative; cursor:pointer; display:inline-block; border:none; background-color:@switch-background-color; vertical-align:middle; user-select:none; white-space:nowrap; color:@switch-font-color; text-align:right; transition:all @transition-duration @transition-timing-function; &-input { position:absolute; top:2px; left:2px; display:block; border-radius:50%; box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.35); background-color:@switch-input-background-color; transition:all @transition-duration @transition-timing-function; &-spin { content:""; display:block; border-width:1px; border-style:solid; border-color:transparent; border-radius:50%; margin:2px; animation:vuiSwitchLoading 1s infinite linear; } } &-label { display:flex; justify-content:center; align-items:center; height:100%; transition:all @transition-duration @transition-timing-function; } // loading &-loading { cursor:not-allowed; background-color:tint(@switch-background-color, 40%); } &-loading &-input { &-spin { border-bottom-color:tint(@switch-background-color, 40%); } } // checked &-checked { background-color:@switch-checked-background-color; } // disabled &-disabled { cursor:not-allowed; background-color:tint(@switch-background-color, 40%); } // loading && checked &-loading&-checked { background-color:tint(@switch-checked-background-color, 40%); } &-loading&-checked &-input { &-spin { border-bottom-color:tint(@switch-checked-background-color, 40%); } } // checked & disabled &-checked&-disabled { background-color:tint(@switch-checked-background-color, 40%); } // size &-small { min-width:@switch-input-size-sm * 2 + 4px; height:@switch-size-sm; border-radius:@switch-size-sm; font-size:@switch-font-size-sm; line-height:@switch-size-sm; } &-small &-input { width:@switch-input-size-sm; height:@switch-input-size-sm; &-spin { width:@switch-input-spin-size-sm; height:@switch-input-spin-size-sm; } } &-small &-label { padding-left:@switch-input-size-sm + 2px + 6px; padding-right:6px; } &-medium { min-width:@switch-input-size-md * 2 + 4px; height:@switch-size-md; border-radius:@switch-size-md; font-size:@switch-font-size-md; line-height:@switch-size-md; } &-medium &-input { width:@switch-input-size-md; height:@switch-input-size-md; &-spin { width:@switch-input-spin-size-md; height:@switch-input-spin-size-md; } } &-medium &-label { padding-left:@switch-input-size-md + 2px + 8px; padding-right:8px; } &-large { min-width:@switch-input-size-lg * 2 + 4px; height:@switch-size-lg; border-radius:@switch-size-lg; font-size:@switch-font-size-lg; line-height:@switch-size-lg; } &-large &-input { width:@switch-input-size-lg; height:@switch-input-size-lg; &-spin { width:@switch-input-spin-size-lg; height:@switch-input-spin-size-lg; } } &-large &-label { padding-left:@switch-input-size-lg + 2px + 10px; padding-right:10px; } // &-small&-checked &-input { left:calc(100% - @switch-input-size-sm - 2px); } &-small&-checked &-label { padding-left:6px; padding-right:@switch-input-size-sm + 2px + 6px; } &-medium&-checked &-input { left:calc(100% - @switch-input-size-md - 2px); } &-medium&-checked &-label { padding-left:8px; padding-right:@switch-input-size-md + 2px + 8px; } &-large&-checked &-input { left:calc(100% - @switch-input-size-lg - 2px); } &-large&-checked &-label { padding-left:10px; padding-right:@switch-input-size-lg + 2px + 10px; } }