@odyzeo/form-toggle
Version:
Odyzeo form toggle component with Vue
91 lines (71 loc) • 1.57 kB
text/less
@form-toggle-color--default: #bfcbd9;
@form-toggle-color--checked: #75c791;
@form-toggle-color--disabled: #ccc;
.form-toggle {
display: inline-flex;
align-items: center;
position: relative;
user-select: none;
font-size: 10px;
cursor: pointer;
&.is-disabled {
pointer-events: none;
opacity: 0.6;
}
}
.form-toggle__icon {
color: @form-toggle-color--default;
transition: color .3s;
.form-toggle.is-toggled & {
color: @form-toggle-color--checked;
}
.form-toggle.is-disabled & {
color: @form-toggle-color--default;
}
}
.form-toggle__input {
opacity: 0;
position: absolute;
width: 1px;
height: 1px;
}
.form-toggle__label {
position: absolute;
top: 0;
z-index: 1;
font-weight: 600;
display: block;
color: white;
&.is-left {
left: 10px;
}
&.is-right {
right: 10px;
}
}
.form-toggle__element {
display: block;
position: relative;
box-sizing: border-box;
outline: 0;
margin: 0;
transition: border-color .3s, background-color .3s;
user-select: none;
background-color: @form-toggle-color--default;
.form-toggle.is-toggled & {
background-color: @form-toggle-color--checked;
}
.form-toggle.is-disabled & {
background-color: @form-toggle-color--default;
}
}
.form-toggle__button {
display: block;
position: absolute;
overflow: hidden;
top: 0;
left: 0;
border-radius: 100%;
background-color: #ffffff;
z-index: 2;
}