|
|
|
//
|
|
|
|
// Mixins: Custom Forms
|
|
|
|
//
|
|
|
|
|
|
|
|
// Custom Switch Variant
|
|
|
|
@mixin custom-switch-variant($name, $color) {
|
|
|
|
&.custom-switch-off-#{$name} {
|
|
|
|
& .custom-control-input ~ .custom-control-label::before {
|
|
|
|
background-color: #{$color};
|
|
|
|
border-color: darken($color, 20%);
|
|
|
|
}
|
|
|
|
|
|
|
|
& .custom-control-input:focus ~ .custom-control-label::before {
|
|
|
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
|
|
|
}
|
|
|
|
|
|
|
|
& .custom-control-input ~ .custom-control-label::after {
|
|
|
|
background-color: darken($color, 25%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&.custom-switch-on-#{$name} {
|
|
|
|
& .custom-control-input:checked ~ .custom-control-label::before {
|
|
|
|
background-color: #{$color};
|
|
|
|
border-color: darken($color, 20%);
|
|
|
|
}
|
|
|
|
|
|
|
|
& .custom-control-input:checked:focus ~ .custom-control-label::before {
|
|
|
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
|
|
|
}
|
|
|
|
|
|
|
|
& .custom-control-input:checked ~ .custom-control-label::after {
|
|
|
|
background-color: lighten($color, 30%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Custom Range Variant
|
|
|
|
@mixin custom-range-variant($name, $color) {
|
|
|
|
&.custom-range-#{$name} {
|
|
|
|
&:focus {
|
|
|
|
outline: none;
|
|
|
|
|
|
|
|
&::-webkit-slider-thumb {
|
|
|
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
|
|
|
}
|
|
|
|
|
|
|
|
&::-moz-range-thumb {
|
|
|
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
|
|
|
}
|
|
|
|
|
|
|
|
&::-ms-thumb {
|
|
|
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&::-webkit-slider-thumb {
|
|
|
|
background-color: $color;
|
|
|
|
|
|
|
|
&:active {
|
|
|
|
background-color: lighten($color, 35%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&::-moz-range-thumb {
|
|
|
|
background-color: $color;
|
|
|
|
|
|
|
|
&:active {
|
|
|
|
background-color: lighten($color, 35%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&::-ms-thumb {
|
|
|
|
background-color: $color;
|
|
|
|
|
|
|
|
&:active {
|
|
|
|
background-color: lighten($color, 35%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Custom Control Input Variant
|
|
|
|
@mixin custom-control-input-variant($name, $color) {
|
|
|
|
$custom-control-indicator-checked-color: $color;
|
|
|
|
$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23");
|
|
|
|
$custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E"), "#", "%23");
|
|
|
|
|
|
|
|
.custom-control-input-#{$name} {
|
|
|
|
&:checked ~ .custom-control-label::before {
|
|
|
|
border-color: $color;
|
|
|
|
@include gradient-bg($color);
|
|
|
|
}
|
|
|
|
|
|
|
|
&.custom-control-input-outline:checked {
|
|
|
|
&[type="checkbox"] ~ .custom-control-label::after {
|
|
|
|
background-image: $custom-checkbox-indicator-icon-checked !important;
|
|
|
|
}
|
|
|
|
&[type="radio"] ~ .custom-control-label::after {
|
|
|
|
background-image: $custom-radio-indicator-icon-checked !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:focus ~ .custom-control-label::before {
|
|
|
|
// the mixin is not used here to make sure there is feedback
|
|
|
|
@if $enable-shadows {
|
|
|
|
box-shadow: $input-box-shadow, 0 0 0 $input-btn-focus-width rgba($color, .25);
|
|
|
|
} @else {
|
|
|
|
box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .25);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&:focus:not(:checked) ~ .custom-control-label::before {
|
|
|
|
border-color: lighten($color, 25%);
|
|
|
|
}
|
|
|
|
|
|
|
|
&:not(:disabled):active ~ .custom-control-label::before {
|
|
|
|
background-color: lighten($color, 35%);
|
|
|
|
border-color: lighten($color, 35%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|