diff options
Diffstat (limited to 'scss/forms/_form-check.scss')
| -rw-r--r-- | scss/forms/_form-check.scss | 65 |
1 files changed, 51 insertions, 14 deletions
diff --git a/scss/forms/_form-check.scss b/scss/forms/_form-check.scss index 6321b4100..8a1b639df 100644 --- a/scss/forms/_form-check.scss +++ b/scss/forms/_form-check.scss @@ -14,18 +14,34 @@ } } +.form-check-reverse { + padding-right: $form-check-padding-start; + padding-left: 0; + text-align: right; + + .form-check-input { + float: right; + margin-right: $form-check-padding-start * -1; + margin-left: 0; + } +} + .form-check-input { + --#{$prefix}form-check-bg: #{$form-check-input-bg}; + + flex-shrink: 0; width: $form-check-input-width; height: $form-check-input-width; margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height vertical-align: top; - background-color: $form-check-input-bg; + appearance: none; + background-color: var(--#{$prefix}form-check-bg); + background-image: var(--#{$prefix}form-check-bg-image); background-repeat: no-repeat; background-position: center; background-size: contain; border: $form-check-input-border; - appearance: none; - color-adjust: exact; // Keep themed appearance for print + print-color-adjust: exact; // Keep themed appearance for print @include transition($form-check-transition); &[type="checkbox"] { @@ -53,17 +69,17 @@ &[type="checkbox"] { @if $enable-gradients { - background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient); + --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)}, var(--#{$prefix}gradient); } @else { - background-image: escape-svg($form-check-input-checked-bg-image); + --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)}; } } &[type="radio"] { @if $enable-gradients { - background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient); + --#{$prefix}form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)}, var(--#{$prefix}gradient); } @else { - background-image: escape-svg($form-check-radio-checked-bg-image); + --#{$prefix}form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)}; } } } @@ -73,9 +89,9 @@ border-color: $form-check-input-indeterminate-border-color; @if $enable-gradients { - background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient); + --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)}, var(--#{$prefix}gradient); } @else { - background-image: escape-svg($form-check-input-indeterminate-bg-image); + --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)}; } } @@ -90,6 +106,7 @@ &[disabled], &:disabled { ~ .form-check-label { + cursor: default; opacity: $form-check-label-disabled-opacity; } } @@ -108,27 +125,39 @@ padding-left: $form-switch-padding-start; .form-check-input { + --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)}; + width: $form-switch-width; margin-left: $form-switch-padding-start * -1; - background-image: escape-svg($form-switch-bg-image); + background-image: var(--#{$prefix}form-switch-bg); background-position: left center; - @include border-radius($form-switch-border-radius); + @include border-radius($form-switch-border-radius, 0); @include transition($form-switch-transition); &:focus { - background-image: escape-svg($form-switch-focus-bg-image); + --#{$prefix}form-switch-bg: #{escape-svg($form-switch-focus-bg-image)}; } &:checked { background-position: $form-switch-checked-bg-position; @if $enable-gradients { - background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient); + --#{$prefix}form-switch-bg: #{escape-svg($form-switch-checked-bg-image)}, var(--#{$prefix}gradient); } @else { - background-image: escape-svg($form-switch-checked-bg-image); + --#{$prefix}form-switch-bg: #{escape-svg($form-switch-checked-bg-image)}; } } } + + &.form-check-reverse { + padding-right: $form-switch-padding-start; + padding-left: 0; + + .form-check-input { + margin-right: $form-switch-padding-start * -1; + margin-left: 0; + } + } } .form-check-inline { @@ -150,3 +179,11 @@ } } } + +@if $enable-dark-mode { + @include color-mode(dark) { + .form-switch .form-check-input:not(:checked):not(:focus) { + --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image-dark)}; + } + } +} |
