| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | //// 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%);    }  }}
 |