Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
// Embedded icons from Open Iconic.// Released under MIT and copyright 2014 Waybury.// https://useiconic.com/open// Checkboxes and radios//// Base class takes care of all the key behavioral aspects..custom-control {position: relative;z-index: 1;display: block;min-width: 30px;min-height: 16px;line-height: 21px;padding-left: 8px;padding-right: 0;margin-right: 10px;print-color-adjust: exact; // Keep themed appearance for print// Mod Glossary.simplesearchform & {margin: 10px 16px;}}.custom-control--xs {.custom-control-label {font-size: 0.688rem;line-height: 2;color: $body-color-light;.theme-dark & {color: $dm-body-color-light;}}}.custom-control-inline {display: inline-flex;margin-right: $custom-control-spacer-x;input[type="radio"] {margin: 0;}}.custom-control-input {position: absolute;left: 0;z-index: -1; // Put the input behind the label so it doesn't overlay textwidth: $custom-control-indicator-size;height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * 0.5;opacity: 0;&.custom-control-input--xs {width: 25px;height: 16px;}&:checked ~ .custom-control-label::before {color: $custom-control-indicator-checked-color;border-color: $custom-control-indicator-checked-color;background-color: rgba($custom-control-indicator-checked-color, .3);@include box-shadow($custom-control-indicator-checked-box-shadow);}&: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, $custom-control-indicator-focus-box-shadow;} @else {box-shadow: $custom-control-indicator-focus-box-shadow;}}&:focus:not(:checked) ~ .custom-control-label::before {border-color: $custom-control-indicator-focus-border-color;}&:not(:disabled):active ~ .custom-control-label::before {color: $custom-control-indicator-active-color;background-color: $custom-control-indicator-active-bg;border-color: $custom-control-indicator-active-border-color;@include box-shadow($custom-control-indicator-active-box-shadow);}// Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247&[disabled],&:disabled {~ .custom-control-label {color: $custom-control-label-disabled-color;.theme-dark & {color: $dm-custom-control-label-disabled-color;}&::before {background-color: $custom-control-indicator-disabled-bg;border-color: $custom-control-indicator-disabled-bg;.theme-dark & {background-color: $dm-custom-control-indicator-disabled-bg;border-color: $dm-custom-control-indicator-disabled-bg;}}}}}// Custom control indicators//// Build the custom controls out of pseudo-elements..custom-control-label {position: relative;margin-bottom: 0;max-width: 280px;color: $custom-control-label-color;vertical-align: top;cursor: $custom-control-cursor;font-size: $font-size-sm;// Background-color and (when enabled) gradient&::before {position: absolute;top: 0;left: -30px;display: block;width: $custom-control-indicator-size;height: $custom-control-indicator-size;pointer-events: none;content: "";background-color: transparent;border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;@include box-shadow($custom-control-indicator-box-shadow);.theme-dark & {border-color: $dm-custom-control-indicator-border-color;}}// Foreground (icon)&::after {position: absolute;top: 0;left: -30px;display: block;width: $custom-control-indicator-size;height: $custom-control-indicator-size;content: "";background: 50% / #{$custom-control-indicator-bg-size} no-repeat;}}.custom-switch.custom-control--xs .custom-control-label::after {width: 8px;height: 8px;top: 7px;left: -28px;}.custom-switch.custom-control--xs .custom-control-label::before {width: 22px;height: 16px;top: 3px;left: -32px;}.custom-switch .custom-control-input.custom-control-input--xs:checked ~ .custom-control-label::after {transform: translateX(6px);}.dir-rtl .custom-switch .custom-control-input.custom-control-input--xs:checked~.custom-control-label::after {transform: translateX(-6px);}.custom-switch.custom-control--xs {padding-left: 37px;}// Checkboxes//// Tweak just a few things for checkboxes..custom-checkbox {.custom-control-label::before {@include border-radius($custom-checkbox-indicator-border-radius);}.custom-control-input:checked ~ .custom-control-label {&::after {background-image: escape-svg($custom-checkbox-indicator-icon-checked);}}.custom-control-input:indeterminate ~ .custom-control-label {&::before {border-color: $custom-checkbox-indicator-indeterminate-border-color;@include gradient-bg($custom-checkbox-indicator-indeterminate-bg);@include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);}&::after {background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);}}.custom-control-input:disabled {&:checked ~ .custom-control-label::before {@include gradient-bg($custom-control-indicator-checked-disabled-bg);.theme-dark & {@include gradient-bg($dm-custom-control-indicator-checked-disabled-bg!important);}}&:indeterminate ~ .custom-control-label::before {@include gradient-bg($custom-control-indicator-checked-disabled-bg);.theme-dark & {@include gradient-bg($dm-custom-control-indicator-checked-disabled-bg!important);}}}}// Radios//// Tweak just a few things for radios..custom-radio {margin: 5px 0;.custom-control-label::before {// stylelint-disable-next-line property-disallowed-listborder-radius: $custom-radio-indicator-border-radius;}.custom-control-input:checked ~ .custom-control-label {&::after {background-image: escape-svg($custom-radio-indicator-icon-checked);}}.custom-control-input:disabled {&:checked ~ .custom-control-label::before {@include gradient-bg($custom-control-indicator-checked-disabled-bg);.theme-dark & {@include gradient-bg($dm-custom-control-indicator-checked-disabled-bg);}}}}// switches//// Tweak a few things for switches.custom-switch {padding-left: $custom-switch-width + $custom-control-gutter;.custom-control-input {width: 35px;height: 20px;}.custom-control-label {&::before {left: -($custom-switch-width + $custom-control-gutter);width: $custom-switch-width;pointer-events: all;// stylelint-disable-next-line property-disallowed-listborder-radius: $custom-switch-indicator-border-radius;}&::after {top: calc(0.125rem + 2px);left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);width: $custom-switch-indicator-size;height: $custom-switch-indicator-size;background-color: $custom-control-indicator-color;// stylelint-disable-next-line property-disallowed-listborder-radius: $custom-switch-indicator-border-radius - 2px;@include transition(transform .15s ease-in-out, $custom-forms-transition);}}.custom-control-input:checked ~ .custom-control-label {&::after {background-color: $custom-control-indicator-bg;transform: translateX($custom-switch-width - $custom-control-indicator-size);#admin-closecustomalert &,#admin-hideforgotpassword &,#admin-hidecourseindexnav &,#admin-turnoffdashboardlink &,#admin-hidedetails &,[id^="admin-turnoffsidebar"] & {background-color: #f81212;}}&::before {background-color: $custom-control-indicator-checked-color;#admin-closecustomalert &,#admin-hideforgotpassword &,#admin-hidecourseindexnav &,#admin-turnoffdashboardlink &,#admin-hidedetails &,[id^="admin-turnoffsidebar"] & {background-color: #ffb7b7;border-color: #ffb7b7;}}}.custom-control-input:disabled {&:checked ~ .custom-control-label::before {@include gradient-bg($custom-control-indicator-checked-disabled-bg);.theme-dark & {@include gradient-bg($dm-custom-control-indicator-checked-disabled-bg);}}~ .custom-control-label::after {background-color: $custom-control-label-disabled-color;.theme-dark & {background-color: $dm-custom-control-label-disabled-color;}}&:checked ~ .custom-control-label::after {background-color: $custom-control-indicator-checked-disabled-color;}}// Reset styles for feedbkack form#page-mod-feedback-print &,#feedback_complete_form & {width: auto;.custom-control-input {opacity: 1;z-index: 1;}.custom-control-label::before,.custom-control-label:after {display: none;}}}// Select//// Replaces the browser default select with a custom one, mostly pulled from// https://primer.github.io/.//.custom-select,select.quickgrade {display: inline-block;width: 100%;font-family: $custom-select-font-family;font-weight: $custom-select-font-weight;line-height: $custom-select-line-height;color: $custom-select-color;vertical-align: middle;background: $custom-select-bg $custom-select-background;border: $custom-select-border-width solid $custom-select-border-color;@include border-radius($custom-select-border-radius, 0);@include box-shadow($custom-select-box-shadow);appearance: none;@include media-breakpoint-up(md) {max-width: 220px;height: $custom-select-height;padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;@include font-size($custom-select-font-size);}@include media-breakpoint-between(xs, sm) {padding: 9px 22px 9px 14px;font-size: $font-size-xs;}.modal .fdate_time_selector & {height: 36px;padding-top: 6px;padding-bottom: 6px;padding-left: 12px;padding-right: 22px;font-size: $font-size-xs;}.theme-dark & {color: $dm-custom-select-color;background: $dm-custom-select-bg $dm-custom-select-background;border-color: $dm-custom-select-border-color;}&:focus {border-color: $custom-select-focus-border-color;outline: 0;@if $enable-shadows {@include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);} @else {// Avoid using mixin so we can pass custom focus shadow properlybox-shadow: $custom-select-focus-box-shadow;}&::-ms-value {// For visual consistency with other platforms/browsers,// suppress the default white text on blue background highlight given to// the selected option text when the (still closed) <select> receives focus// in IE and (under certain conditions) Edge.// See https://github.com/twbs/bootstrap/issues/19398.color: $input-color;background-color: $input-bg;.theme-dark & {color: $dm-input-color;background-color: $dm-input-bg;}}}&[multiple],&[size]:not([size="1"]) {height: auto;padding-right: $custom-select-padding-x;background-image: none;}&:disabled {color: $custom-select-disabled-color;background-color: $custom-select-disabled-bg;.theme-dark & {color: $dm-custom-select-disabled-color;background-color: $dm-custom-select-disabled-bg;}}// Hides the default caret in IE11&::-ms-expand {display: none;}// Remove outline from select box in FF&:-moz-focusring {color: transparent;text-shadow: 0 0 0 $custom-select-color;}}.custom-select-sm {height: 36px;padding-top: 5px;padding-bottom: 5px;padding-left: 1rem;font-size: $font-size-xs;@include font-size($custom-select-font-size-sm);}.custom-select-lg {height: $custom-select-height-lg;padding-top: $custom-select-padding-y-lg;padding-bottom: $custom-select-padding-y-lg;padding-left: $custom-select-padding-x-lg;@include font-size($custom-select-font-size-lg);}// File//// Custom file input..custom-file {position: relative;display: inline-block;width: 100%;height: $custom-file-height;margin-bottom: 0;}.custom-file-input {position: relative;z-index: 2;width: 100%;height: $custom-file-height;margin: 0;overflow: hidden;opacity: 0;&:focus ~ .custom-file-label {border-color: $custom-file-focus-border-color;box-shadow: $custom-file-focus-box-shadow;.theme-dark & {border-color: $dm-custom-file-focus-border-color;}}// Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247&[disabled] ~ .custom-file-label,&:disabled ~ .custom-file-label {background-color: $custom-file-disabled-bg;.theme-dark & {background-color: $dm-custom-file-disabled-bg;}}@each $lang, $value in $custom-file-text {&:lang(#{$lang}) ~ .custom-file-label::after {content: $value;}}~ .custom-file-label[data-browse]::after {content: attr(data-browse);}}.custom-file-label {position: absolute;top: 0;right: 0;left: 0;z-index: 1;height: $custom-file-height;padding: $custom-file-padding-y $custom-file-padding-x;overflow: hidden;font-family: $custom-file-font-family;font-weight: $custom-file-font-weight;line-height: $custom-file-line-height;color: $custom-file-color;background-color: $custom-file-bg;border: $custom-file-border-width solid $custom-file-border-color;@include border-radius($custom-file-border-radius);@include box-shadow($custom-file-box-shadow);.theme-dark & {color: $dm-custom-file-color;background-color: $dm-custom-file-bg;}&::after {position: absolute;top: 0;right: 0;bottom: 0;z-index: 3;display: block;height: $custom-file-height-inner;padding: $custom-file-padding-y $custom-file-padding-x;line-height: $custom-file-line-height;color: $custom-file-button-color;content: "Browse";@include gradient-bg($custom-file-button-bg);border-left: inherit;@include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);.theme-dark & {color: $dm-custom-file-button-color;}}}// Range//// Style range inputs the same across browsers. Vendor-specific rules for pseudo// elements cannot be mixed. As such, there are no shared styles for focus or// active states on prefixed selectors..custom-range {width: 100%;height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);padding: 0; // Need to reset paddingbackground-color: transparent;appearance: none;&:focus {outline: 0;// Pseudo-elements must be split across multiple rulesets to have an effect.// No box-shadow() mixin for focus accessibility.&::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }&::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }&::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }}&::-moz-focus-outer {border: 0;}&::-webkit-slider-thumb {width: $custom-range-thumb-width;height: $custom-range-thumb-height;margin-top: ($custom-range-track-height - $custom-range-thumb-height) * 0.5; // Webkit specific@include gradient-bg($custom-range-thumb-bg);border: $custom-range-thumb-border;@include border-radius($custom-range-thumb-border-radius);@include box-shadow($custom-range-thumb-box-shadow);@include transition($custom-forms-transition);appearance: none;&:active {@include gradient-bg($custom-range-thumb-active-bg);}}&::-webkit-slider-runnable-track {width: $custom-range-track-width;height: $custom-range-track-height;color: transparent; // Why?cursor: $custom-range-track-cursor;background-color: $custom-range-track-bg;border-color: transparent;@include border-radius($custom-range-track-border-radius);@include box-shadow($custom-range-track-box-shadow);.theme-dark & {background-color: $dm-custom-range-track-bg;}}&::-moz-range-thumb {width: $custom-range-thumb-width;height: $custom-range-thumb-height;@include gradient-bg($custom-range-thumb-bg);border: $custom-range-thumb-border;@include border-radius($custom-range-thumb-border-radius);@include box-shadow($custom-range-thumb-box-shadow);@include transition($custom-forms-transition);appearance: none;&:active {@include gradient-bg($custom-range-thumb-active-bg);}}&::-moz-range-track {width: $custom-range-track-width;height: $custom-range-track-height;color: transparent;cursor: $custom-range-track-cursor;background-color: $custom-range-track-bg;border-color: transparent; // Firefox specific?@include border-radius($custom-range-track-border-radius);@include box-shadow($custom-range-track-box-shadow);.theme-dark & {background-color: $dm-custom-range-track-bg;}}&::-ms-thumb {width: $custom-range-thumb-width;height: $custom-range-thumb-height;margin-top: 0; // Edge specificmargin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.@include gradient-bg($custom-range-thumb-bg);border: $custom-range-thumb-border;@include border-radius($custom-range-thumb-border-radius);@include box-shadow($custom-range-thumb-box-shadow);@include transition($custom-forms-transition);appearance: none;&:active {@include gradient-bg($custom-range-thumb-active-bg);}}&::-ms-track {width: $custom-range-track-width;height: $custom-range-track-height;color: transparent;cursor: $custom-range-track-cursor;background-color: transparent;border-color: transparent;border-width: $custom-range-thumb-height * 0.5;@include box-shadow($custom-range-track-box-shadow);}&::-ms-fill-lower {background-color: $custom-range-track-bg;@include border-radius($custom-range-track-border-radius);.theme-dark & {background-color: $dm-custom-range-track-bg;}}&::-ms-fill-upper {margin-right: 15px; // arbitrary?background-color: $custom-range-track-bg;@include border-radius($custom-range-track-border-radius);.theme-dark & {background-color: $dm-custom-range-track-bg;}}&:disabled {&::-webkit-slider-thumb {background-color: $custom-range-thumb-disabled-bg;.theme-dark & {background-color: $dm-custom-range-thumb-disabled-bg;}}&::-webkit-slider-runnable-track {cursor: default;}&::-moz-range-thumb {background-color: $custom-range-thumb-disabled-bg;.theme-dark & {background-color: $dm-custom-range-thumb-disabled-bg;}}&::-moz-range-track {cursor: default;}&::-ms-thumb {background-color: $custom-range-thumb-disabled-bg;.theme-dark & {background-color: $dm-custom-range-thumb-disabled-bg;}}}}.custom-control-label::before,.custom-file-label,.custom-select {@include transition($custom-forms-transition);}