UNPKG

@fesjs/fes-design

Version:
93 lines (92 loc) 2.01 kB
.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; }