LinkStack/assets/scss/_switchers.scss

409 lines
8.3 KiB
SCSS
Raw Normal View History

/*===== SWITCHERS =====*/
input[type=checkbox],
input[type=radio] {
box-sizing: border-box;
padding: 0;
}
.switch {
position: relative;
display: inline-block;
vertical-align: top;
width: 64px;
height: 30px;
background-color: transparent;
cursor: pointer;
.switch-input {
position: absolute;
top: 0;
left: 0;
opacity: 0;
display: none;
visibility: hidden;
}
.switch-label {
position: relative;
display: block;
height: inherit;
font-size: 0.625rem;
font-weight: 600;
text-transform: uppercase;
background-color: #fff;
border: 1px solid #c2cfd6;
border-radius: 4px;
transition: opacity background-color .3s 0.3s ease-out;
}
.switch-handle {
position: absolute;
top: 3px;
left: 3px;
width: 24px;
height: 24px;
background: #fff;
border: 1px solid #c2cfd6;
border-radius: 1px;
transition: left .3s ease-out;
}
}
.switch .switch-input:checked~.switch-handle {
left: 37px;
}
/* Switch context properties */
.switch-primary {
>.switch-input:checked~.switch-label {
background-color: $primary !important;
border-color: $primary;
}
>.switch-input:checked~.switch-handle {
border-color: transparent;
}
}
.switch-secondary {
>.switch-input:checked~.switch-label {
background-color: $secondary !important;
border-color: $secondary;
}
>.switch-input:checked~.switch-handle {
border-color: transparent;
}
}
.switch-success {
>.switch-input:checked~.switch-label {
background-color: $success !important;
border-color: $success;
}
>.switch-input:checked~.switch-handle {
border-color: transparent;
}
}
.switch-info {
>.switch-input:checked~.switch-label {
background-color: $info !important;
border-color: $info;
}
>.switch-input:checked~.switch-handle {
border-color: transparent;
}
}
.switch-warning {
>.switch-input:checked~.switch-label {
background-color: $warning !important;
border-color: $warning;
}
>.switch-input:checked~.switch-handle {
border-color: transparent;
}
}
.switch-danger {
>.switch-input:checked~.switch-label {
background-color: $danger !important;
border-color: $danger;
}
>.switch-input:checked~.switch-handle {
border-color: transparent;
}
}
/* Switch Pill */
.switch-pill .switch-handle,
.switch-pill .switch-label {
border-radius: 50px !important;
}
/* Switch Outline */
.switch-outline-primary {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $primary;
}
.switch-input:checked~.switch-label:after {
color: $primary;
}
>.switch-input:checked~.switch-handle {
border-color: $primary;
}
}
.switch-outline-secondary {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $secondary;
}
.switch-input:checked~.switch-label:after {
color: $secondary;
}
>.switch-input:checked~.switch-handle {
border-color: $secondary;
}
}
.switch-outline-success {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $success;
}
.switch-input:checked~.switch-label:after {
color: $success;
}
>.switch-input:checked~.switch-handle {
border-color: $success;
}
}
.switch-outline-info {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $info;
}
.switch-input:checked~.switch-label:after {
color: $info;
}
>.switch-input:checked~.switch-handle {
border-color: $info;
}
}
.switch-outline-warning {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $warning;
}
>.switch-input:checked~.switch-label:after {
color: $warning;
}
>.switch-input:checked~.switch-handle {
border-color: $warning;
}
}
.switch-outline-danger {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $danger;
}
>.switch-input:checked~.switch-label:after {
color: $danger;
}
>.switch-input:checked~.switch-handle {
border-color: $danger;
}
}
/* Switch Outline Alternative */
.switch-outline-alt-primary {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $primary;
}
.switch-input:checked~.switch-label:after {
color: $primary;
}
>.switch-input:checked~.switch-handle {
background-color: $primary;
border-color: $primary;
}
}
.switch-outline-alt-secondary {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $secondary;
}
>.switch-input:checked~.switch-label:after {
color: $secondary;
}
>.switch-input:checked~.switch-handle {
background-color: $secondary;
border-color: $secondary;
}
}
.switch-outline-alt-success {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $success;
}
>.switch-input:checked~.switch-label:after {
color: $success;
}
>.switch-input:checked~.switch-handle {
background-color: $success;
border-color: $success;
}
}
.switch-outline-alt-info {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $info;
}
>.switch-input:checked~.switch-label:after {
color: $info;
}
>.switch-input:checked~.switch-handle {
background-color: $info;
border-color: $info;
}
}
.switch-outline-alt-warning {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $warning;
}
>.switch-input:checked~.switch-label:after {
color: $warning;
}
>.switch-input:checked~.switch-handle {
background-color: $warning;
border-color: $warning;
}
}
.switch-outline-alt-danger {
>.switch-input:checked~.switch-label {
background-color: $white !important;
border-color: $danger;
}
>.switch-input:checked~.switch-label:after {
color: $danger;
}
>.switch-input:checked~.switch-handle {
background-color: $danger;
border-color: $danger;
}
}
/* Switch With Text */
.switch.switch-text,
.switch.switch-icon {
position: relative;
display: inline-block;
vertical-align: top;
width: 64px;
height: 30px;
background-color: transparent;
cursor: pointer;
.switch-input {
position: absolute;
top: 0;
left: 0;
opacity: 0;
}
.switch-label {
position: relative;
display: block;
height: inherit;
font-size: 0.625rem;
font-weight: 600;
text-transform: uppercase;
background-color: $white;
border: 1px solid #c2cfd6;
border-radius: 2px;
transition: opacity background .3s ease-out;
}
.switch-handle {
position: absolute;
top: 3px;
left: 3px;
width: 24px;
height: 24px;
background: #fff;
border: 1px solid #c2cfd6;
border-radius: .06rem;
transition: left .3s ease-out;
}
}
.switch.switch-text {
.switch-label:after,
.switch-label:before {
position: absolute;
top: 50%;
width: 50%;
margin-top: -0.31rem;
line-height: 1;
font-size: 12px;
font-weight: 400;
font-family: $font-family-base;
text-align: center;
transition: inherit;
}
.switch-label:before {
right: 1px;
color: #c2cfd6;
content: attr(data-off);
}
.switch-label:after {
left: 1px;
color: #fff;
content: attr(data-on);
opacity: 0;
}
}
.switch.switch-text .switch-input:checked~.switch-label:before {
opacity: 0;
}
.switch.switch-text .switch-input:checked~.switch-label:after {
opacity: 1;
}
.switch.switch-text .switch-input:checked~.switch-handle {
left: 37px;
}
/* Switch With Icon */
.switch.switch-icon {
.switch-label:after,
.switch-label:before {
position: absolute;
top: 50%;
width: 50%;
margin-top: -8px;
line-height: 1;
font-size: 1rem;
font-weight: 400;
font-family: $font-family-icon;
text-align: center;
transition: inherit;
}
.switch-label:before {
right: 1px;
color: #c2cfd6;
content: '\f156';
}
.switch-label:after {
left: 1px;
color: #fff;
content: '\f12c';
opacity: 0;
}
}
.switch.switch-icon .switch-input:checked~.switch-label:before {
opacity: 0;
}
.switch.switch-icon .switch-input:checked~.switch-label:after {
opacity: 1;
}
.switch.switch-icon .switch-input:checked~.switch-handle {
left: 37px;
}