UNPKG

vuestic-ui

Version:
224 lines 6.72 kB
:root, :host { --va-switch-display: inline-block; /* Checker */ --va-switch-checker-margin: auto; --va-switch-checker-transform: translateX(0.3rem); --va-switch-checker-height: 1.5rem; --va-switch-checker-width: 1.5rem; --va-switch-checker-active-background-color: #ffffff; --va-switch-checker-background-color: var(--va-secondary); --va-switch-checker-border-radius: 50%; --va-switch-checker-box-shadow: 0 0 0 var(--va-background-border); --va-switch-checker-transition: all 0.2s ease; /* Checker Wrapper */ --va-switch-checker-wrapper-transform: translateX(0); --va-switch-checker-wrapper-top: 0; --va-switch-checker-wrapper-left: 0; --va-switch-checker-wrapper-bottom: 0; --va-switch-checker-wrapper-right: 0; --va-switch-checker-wrapper-width: 100%; --va-switch-checker-wrapper-height: 100%; --va-switch-checker-wrapper-transition: all 0.2s ease; --va-switch-checker-wrapper-pointer-events: none; /* Label */ --va-switch-label-left-padding: 0.3rem; --va-switch-label-right-padding: 0.3rem; /* Track */ --va-switch-track-border-radius: 1rem; --va-switch-track-height: 100%; --va-switch-track-width: 100%; --va-switch-track-background: var(--va-background-element); --va-switch-track-box-shadow: inset 0 0 0 var(--va-shadow); --va-switch-track-transition: background-color 0.2s ease; /* Inner */ --va-switch-inner-cursor: pointer; --va-switch-inner-height: 2rem; --va-switch-inner-width: auto; --va-switch-inner-min-width: 4rem; --va-switch-inner-border-radius: 1rem; /* Small */ --va-switch-sm-inner-height: 1.5rem; --va-switch-sm-inner-width: auto; --va-switch-sm-inner-min-width: 3rem; /* Large */ --va-switch-lg-inner-height: 2.5rem; --va-switch-lg-inner-width: auto; --va-switch-lg-inner-min-width: 5rem; } .va-switch { line-height: 0; display: var(--va-switch-display); } .va-switch__container { display: inline-flex; align-items: center; width: 100%; } .va-switch:focus { outline: none; } .va-switch__inner { cursor: var(--va-switch-inner-cursor); display: inline-block; position: relative; height: var(--va-switch-inner-height); width: var(--va-switch-inner-width); min-width: var(--va-switch-inner-min-width); border-radius: var(--va-switch-inner-border-radius); } .va-switch__inner:focus { outline: 0; box-shadow: 0 0 0 0.3rem rgba(52, 144, 220, 0.5); } .va-switch--small .va-switch__inner { height: var(--va-switch-sm-inner-height); width: var(--va-switch-sm-inner-width); min-width: var(--va-switch-sm-inner-min-width); } .va-switch--small .va-switch__checker-circle { height: 1.1rem; width: 1.1rem; } .va-switch--large .va-switch__inner { height: var(--va-switch-lg-inner-height); width: var(--va-switch-lg-inner-width); min-width: var(--va-switch-lg-inner-min-width); } .va-switch--large .va-switch__checker-circle { height: 1.8rem; width: 1.8rem; } .va-switch--disabled { cursor: default; opacity: 0.4; -webkit-user-select: none; -moz-user-select: none; user-select: none; } .va-switch--readonly { cursor: default; pointer-events: none; } .va-switch--readonly .va-switch__label { cursor: initial; pointer-events: auto; } .va-switch--left-label .va-switch__container { flex-direction: row-reverse; justify-content: start; } .va-switch--left-label .va-switch__label { padding: 0 var(--va-switch-label-left-padding) 0 0; } .va-switch--indeterminate .va-switch__checker { margin: auto 0; transform: translateX(-50%); } .va-switch--indeterminate .va-switch__checker-wrapper { transform: translateX(50%); } .va-switch--checked .va-switch__checker { transform: translateX(calc(-100% - 0.3rem)); } .va-switch--checked .va-switch__checker-circle { background-color: var(--va-switch-checker-active-background-color); } .va-switch--checked .va-switch__checker-wrapper { transform: translateX(100%); } .va-switch--error .va-switch__track { border: 0.1rem solid; } .va-switch__label { cursor: pointer; text-align: left; padding: 0 0 0 var(--va-switch-label-right-padding); } .va-switch .va-switch__track { display: flex; overflow: hidden; border-radius: var(--va-switch-track-border-radius); height: var(--va-switch-track-height); width: var(--va-switch-track-width); background: var(--va-switch-track-background); box-shadow: var(--va-switch-track-box-shadow); transition: var(--va-switch-track-transition); } .va-switch--keyboard-focus.va-switch .va-switch__track { outline: 2px solid var(--va-focus) !important; border-radius: "inherit"; } .va-switch--small.va-switch .va-switch__track { border-radius: 0.75rem; } .va-switch--large.va-switch .va-switch__track { border-radius: 1.25rem; } .va-switch .va-switch__track-label { color: #ffffff; margin: auto 0.5rem auto 2rem; -webkit-user-select: none; -moz-user-select: none; user-select: none; width: 100%; } .va-switch--checked.va-switch .va-switch__track-label { margin: auto 2rem auto 0.5rem; } .va-switch--small.va-switch .va-switch__track-label { margin: auto 0.5rem auto 1.55rem; } .va-switch--checked.va-switch--small.va-switch .va-switch__track-label { margin: auto 1.55rem auto 0.5rem; } .va-switch--large.va-switch .va-switch__track-label { margin: auto 0.5rem auto 2.3rem; } .va-switch--checked.va-switch--large.va-switch .va-switch__track-label { margin: auto 2.3rem auto 0.5rem; } .va-switch__checker { position: absolute; top: 0; bottom: 0; margin: var(--va-switch-checker-margin); transform: var(--va-switch-checker-transform); box-shadow: var(--va-switch-checker-box-shadow); transition: var(--va-switch-checker-transition); display: flex; justify-content: center; align-items: center; } .va-switch__checker-circle { display: flex; align-items: center; justify-content: center; height: var(--va-switch-checker-height); width: var(--va-switch-checker-width); background-color: var(--va-switch-checker-background-color); border-radius: var(--va-switch-checker-border-radius); } .va-switch__checker-wrapper { position: absolute; margin: auto; transform: var(--va-switch-checker-wrapper-transform); top: var(--va-switch-checker-wrapper-top); left: var(--va-switch-checker-wrapper-left); bottom: var(--va-switch-checker-wrapper-bottom); right: var(--va-switch-checker-wrapper-right); width: var(--va-switch-checker-wrapper-width); height: var(--va-switch-checker-wrapper-height); transition: var(--va-switch-checker-wrapper-transition); pointer-events: var(--va-switch-checker-wrapper-pointer-events); } .va-switch__input { position: absolute; top: 0; left: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: inherit; }