Update bootstrap 4.6.1

This commit is contained in:
2023-02-07 09:05:37 -05:00
parent 4ba860a18a
commit ad8d157e64
87 changed files with 2798 additions and 2916 deletions
+1
View File
@@ -34,6 +34,7 @@
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
z-index: 2;
padding: $alert-padding-y $alert-padding-x; padding: $alert-padding-y $alert-padding-x;
color: inherit; color: inherit;
} }
+1 -1
View File
@@ -15,7 +15,7 @@
padding-left: $breadcrumb-item-padding; padding-left: $breadcrumb-item-padding;
&::before { &::before {
display: inline-block; // Suppress underlining of the separator in modern browsers float: left; // Suppress inline spacings and underlining of the separator
padding-right: $breadcrumb-item-padding; padding-right: $breadcrumb-item-padding;
color: $breadcrumb-divider-color; color: $breadcrumb-divider-color;
content: escape-svg($breadcrumb-divider); content: escape-svg($breadcrumb-divider);
+10 -7
View File
@@ -10,9 +10,9 @@
font-weight: $btn-font-weight; font-weight: $btn-font-weight;
color: $body-color; color: $body-color;
text-align: center; text-align: center;
text-decoration: if($link-decoration == none, null, none);
white-space: $btn-white-space; white-space: $btn-white-space;
vertical-align: middle; vertical-align: middle;
cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
user-select: none; user-select: none;
background-color: transparent; background-color: transparent;
border: $btn-border-width solid transparent; border: $btn-border-width solid transparent;
@@ -37,12 +37,16 @@
@include box-shadow(none); @include box-shadow(none);
} }
&:not(:disabled):not(.disabled):active, &:not(:disabled):not(.disabled) {
&:not(:disabled):not(.disabled).active { cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
@include box-shadow($btn-active-box-shadow);
&:focus { &:active,
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow); &.active {
@include box-shadow($btn-active-box-shadow);
&:focus {
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
}
} }
} }
} }
@@ -89,7 +93,6 @@ fieldset:disabled a.btn {
&:focus, &:focus,
&.focus { &.focus {
text-decoration: $link-hover-decoration; text-decoration: $link-hover-decoration;
box-shadow: none;
} }
&:disabled, &:disabled,
+30 -22
View File
@@ -19,16 +19,26 @@
margin-left: 0; margin-left: 0;
} }
> .list-group:first-child { > .list-group {
.list-group-item:first-child { border-top: inherit;
@include border-top-radius($card-border-radius); border-bottom: inherit;
&:first-child {
border-top-width: 0;
@include border-top-radius($card-inner-border-radius);
}
&:last-child {
border-bottom-width: 0;
@include border-bottom-radius($card-inner-border-radius);
} }
} }
> .list-group:last-child { // Due to specificity of the above selector (`.card > .list-group`), we must
.list-group-item:last-child { // use a child selector here to prevent double borders.
@include border-bottom-radius($card-border-radius); > .card-header + .list-group,
} > .list-group + .card-footer {
border-top: 0;
} }
} }
@@ -48,7 +58,7 @@
} }
.card-subtitle { .card-subtitle {
margin-top: -$card-spacer-y / 2; margin-top: -$card-spacer-y * .5;
margin-bottom: 0; margin-bottom: 0;
} }
@@ -80,16 +90,11 @@
&:first-child { &:first-child {
@include border-radius($card-inner-border-radius $card-inner-border-radius 0 0); @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
} }
+ .list-group {
.list-group-item:first-child {
border-top: 0;
}
}
} }
.card-footer { .card-footer {
padding: $card-spacer-y $card-spacer-x; padding: $card-spacer-y $card-spacer-x;
color: $card-cap-color;
background-color: $card-cap-bg; background-color: $card-cap-bg;
border-top: $card-border-width solid $card-border-color; border-top: $card-border-width solid $card-border-color;
@@ -104,15 +109,15 @@
// //
.card-header-tabs { .card-header-tabs {
margin-right: -$card-spacer-x / 2; margin-right: -$card-spacer-x * .5;
margin-bottom: -$card-spacer-y; margin-bottom: -$card-spacer-y;
margin-left: -$card-spacer-x / 2; margin-left: -$card-spacer-x * .5;
border-bottom: 0; border-bottom: 0;
} }
.card-header-pills { .card-header-pills {
margin-right: -$card-spacer-x / 2; margin-right: -$card-spacer-x * .5;
margin-left: -$card-spacer-x / 2; margin-left: -$card-spacer-x * .5;
} }
// Card image // Card image
@@ -123,6 +128,7 @@
bottom: 0; bottom: 0;
left: 0; left: 0;
padding: $card-img-overlay-padding; padding: $card-img-overlay-padding;
@include border-radius($card-inner-border-radius);
} }
.card-img, .card-img,
@@ -200,12 +206,12 @@
.card-img-top, .card-img-top,
.card-header { .card-header {
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.card-img-bottom, .card-img-bottom,
.card-footer { .card-footer {
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
} }
@@ -215,12 +221,12 @@
.card-img-top, .card-img-top,
.card-header { .card-header {
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.card-img-bottom, .card-img-bottom,
.card-footer { .card-footer {
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
} }
@@ -258,6 +264,8 @@
// //
.accordion { .accordion {
overflow-anchor: none;
> .card { > .card {
overflow: hidden; overflow: hidden;
+6 -3
View File
@@ -95,8 +95,11 @@
align-items: center; // 2. vertically center contents align-items: center; // 2. vertically center contents
justify-content: center; // 3. horizontally center contents justify-content: center; // 3. horizontally center contents
width: $carousel-control-width; width: $carousel-control-width;
padding: 0;
color: $carousel-control-color; color: $carousel-control-color;
text-align: center; text-align: center;
background: none;
border: 0;
opacity: $carousel-control-opacity; opacity: $carousel-control-opacity;
@include transition($carousel-control-transition); @include transition($carousel-control-transition);
@@ -127,7 +130,7 @@
display: inline-block; display: inline-block;
width: $carousel-control-icon-width; width: $carousel-control-icon-width;
height: $carousel-control-icon-width; height: $carousel-control-icon-width;
background: no-repeat 50% / 100% 100%; background: 50% / 100% 100% no-repeat;
} }
.carousel-control-prev-icon { .carousel-control-prev-icon {
background-image: escape-svg($carousel-control-prev-icon-bg); background-image: escape-svg($carousel-control-prev-icon-bg);
@@ -186,9 +189,9 @@
.carousel-caption { .carousel-caption {
position: absolute; position: absolute;
right: (100% - $carousel-caption-width) / 2; right: (100% - $carousel-caption-width) * .5;
bottom: 20px; bottom: 20px;
left: (100% - $carousel-caption-width) / 2; left: (100% - $carousel-caption-width) * .5;
z-index: 10; z-index: 10;
padding-top: 20px; padding-top: 20px;
padding-bottom: 20px; padding-bottom: 20px;
-1
View File
@@ -30,7 +30,6 @@ button.close {
padding: 0; padding: 0;
background-color: transparent; background-color: transparent;
border: 0; border: 0;
appearance: none;
} }
// Future-proof disabling of clicks on `<a>` elements // Future-proof disabling of clicks on `<a>` elements
+22 -17
View File
@@ -9,9 +9,11 @@
.custom-control { .custom-control {
position: relative; position: relative;
z-index: 1;
display: block; display: block;
min-height: $font-size-base * $line-height-base; min-height: $font-size-base * $line-height-base;
padding-left: $custom-control-gutter + $custom-control-indicator-size; padding-left: $custom-control-gutter + $custom-control-indicator-size;
color-adjust: exact; // Keep themed appearance for print
} }
.custom-control-inline { .custom-control-inline {
@@ -24,7 +26,7 @@
left: 0; left: 0;
z-index: -1; // Put the input behind the label so it doesn't overlay text z-index: -1; // Put the input behind the label so it doesn't overlay text
width: $custom-control-indicator-size; width: $custom-control-indicator-size;
height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2; height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;
opacity: 0; opacity: 0;
&:checked ~ .custom-control-label::before { &:checked ~ .custom-control-label::before {
@@ -37,7 +39,7 @@
&:focus ~ .custom-control-label::before { &:focus ~ .custom-control-label::before {
// the mixin is not used here to make sure there is feedback // the mixin is not used here to make sure there is feedback
@if $enable-shadows { @if $enable-shadows {
box-shadow: $input-box-shadow, $input-focus-box-shadow; box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;
} @else { } @else {
box-shadow: $custom-control-indicator-focus-box-shadow; box-shadow: $custom-control-indicator-focus-box-shadow;
} }
@@ -81,7 +83,7 @@
// Background-color and (when enabled) gradient // Background-color and (when enabled) gradient
&::before { &::before {
position: absolute; position: absolute;
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2; top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
left: -($custom-control-gutter + $custom-control-indicator-size); left: -($custom-control-gutter + $custom-control-indicator-size);
display: block; display: block;
width: $custom-control-indicator-size; width: $custom-control-indicator-size;
@@ -96,13 +98,13 @@
// Foreground (icon) // Foreground (icon)
&::after { &::after {
position: absolute; position: absolute;
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2; top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
left: -($custom-control-gutter + $custom-control-indicator-size); left: -($custom-control-gutter + $custom-control-indicator-size);
display: block; display: block;
width: $custom-control-indicator-size; width: $custom-control-indicator-size;
height: $custom-control-indicator-size; height: $custom-control-indicator-size;
content: ""; content: "";
background: no-repeat 50% / #{$custom-control-indicator-bg-size}; background: 50% / #{$custom-control-indicator-bg-size} no-repeat;
} }
} }
@@ -135,10 +137,10 @@
.custom-control-input:disabled { .custom-control-input:disabled {
&:checked ~ .custom-control-label::before { &:checked ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg; @include gradient-bg($custom-control-indicator-checked-disabled-bg);
} }
&:indeterminate ~ .custom-control-label::before { &:indeterminate ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg; @include gradient-bg($custom-control-indicator-checked-disabled-bg);
} }
} }
} }
@@ -149,7 +151,7 @@
.custom-radio { .custom-radio {
.custom-control-label::before { .custom-control-label::before {
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-radius: $custom-radio-indicator-border-radius; border-radius: $custom-radio-indicator-border-radius;
} }
@@ -161,7 +163,7 @@
.custom-control-input:disabled { .custom-control-input:disabled {
&:checked ~ .custom-control-label::before { &:checked ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg; @include gradient-bg($custom-control-indicator-checked-disabled-bg);
} }
} }
} }
@@ -179,17 +181,17 @@
left: -($custom-switch-width + $custom-control-gutter); left: -($custom-switch-width + $custom-control-gutter);
width: $custom-switch-width; width: $custom-switch-width;
pointer-events: all; pointer-events: all;
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-radius: $custom-switch-indicator-border-radius; border-radius: $custom-switch-indicator-border-radius;
} }
&::after { &::after {
top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2); top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);
left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2); left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);
width: $custom-switch-indicator-size; width: $custom-switch-indicator-size;
height: $custom-switch-indicator-size; height: $custom-switch-indicator-size;
background-color: $custom-control-indicator-border-color; background-color: $custom-control-indicator-border-color;
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-radius: $custom-switch-indicator-border-radius; border-radius: $custom-switch-indicator-border-radius;
@include transition(transform .15s ease-in-out, $custom-forms-transition); @include transition(transform .15s ease-in-out, $custom-forms-transition);
} }
@@ -204,7 +206,7 @@
.custom-control-input:disabled { .custom-control-input:disabled {
&:checked ~ .custom-control-label::before { &:checked ~ .custom-control-label::before {
background-color: $custom-control-indicator-checked-disabled-bg; @include gradient-bg($custom-control-indicator-checked-disabled-bg);
} }
} }
} }
@@ -237,8 +239,9 @@
border-color: $custom-select-focus-border-color; border-color: $custom-select-focus-border-color;
outline: 0; outline: 0;
@if $enable-shadows { @if $enable-shadows {
box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow; @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);
} @else { } @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $custom-select-focus-box-shadow; box-shadow: $custom-select-focus-box-shadow;
} }
@@ -312,6 +315,7 @@
width: 100%; width: 100%;
height: $custom-file-height; height: $custom-file-height;
margin: 0; margin: 0;
overflow: hidden;
opacity: 0; opacity: 0;
&:focus ~ .custom-file-label { &:focus ~ .custom-file-label {
@@ -344,6 +348,7 @@
z-index: 1; z-index: 1;
height: $custom-file-height; height: $custom-file-height;
padding: $custom-file-padding-y $custom-file-padding-x; padding: $custom-file-padding-y $custom-file-padding-x;
overflow: hidden;
font-family: $custom-file-font-family; font-family: $custom-file-font-family;
font-weight: $custom-file-font-weight; font-weight: $custom-file-font-weight;
line-height: $custom-file-line-height; line-height: $custom-file-line-height;
@@ -385,7 +390,7 @@
appearance: none; appearance: none;
&:focus { &:focus {
outline: none; outline: 0;
// Pseudo-elements must be split across multiple rulesets to have an effect. // Pseudo-elements must be split across multiple rulesets to have an effect.
// No box-shadow() mixin for focus accessibility. // No box-shadow() mixin for focus accessibility.
@@ -401,7 +406,7 @@
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
width: $custom-range-thumb-width; width: $custom-range-thumb-width;
height: $custom-range-thumb-height; height: $custom-range-thumb-height;
margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific
@include gradient-bg($custom-range-thumb-bg); @include gradient-bg($custom-range-thumb-bg);
border: $custom-range-thumb-border; border: $custom-range-thumb-border;
@include border-radius($custom-range-thumb-border-radius); @include border-radius($custom-range-thumb-border-radius);
@@ -476,7 +481,7 @@
cursor: $custom-range-track-cursor; cursor: $custom-range-track-cursor;
background-color: transparent; background-color: transparent;
border-color: transparent; border-color: transparent;
border-width: $custom-range-thumb-height / 2; border-width: $custom-range-thumb-height * .5;
@include box-shadow($custom-range-track-box-shadow); @include box-shadow($custom-range-track-box-shadow);
} }
+4 -3
View File
@@ -22,7 +22,7 @@
display: none; // none by default, but block on "open" of the menu display: none; // none by default, but block on "open" of the menu
float: left; float: left;
min-width: $dropdown-min-width; min-width: $dropdown-min-width;
padding: $dropdown-padding-y 0; padding: $dropdown-padding-y $dropdown-padding-x;
margin: $dropdown-spacer 0 0; // override default ul margin: $dropdown-spacer 0 0; // override default ul
@include font-size($dropdown-font-size); @include font-size($dropdown-font-size);
color: $dropdown-color; color: $dropdown-color;
@@ -100,7 +100,7 @@
} }
} }
// When enabled Popper.js, reset basic dropdown position // When Popper is enabled, reset the basic dropdown position
// stylelint-disable-next-line no-duplicate-selectors // stylelint-disable-next-line no-duplicate-selectors
.dropdown-menu { .dropdown-menu {
&[x-placement^="top"], &[x-placement^="top"],
@@ -128,6 +128,7 @@
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
color: $dropdown-link-color; color: $dropdown-link-color;
text-align: inherit; // For `<button>`s text-align: inherit; // For `<button>`s
text-decoration: if($link-decoration == none, null, none);
white-space: nowrap; // prevent links from randomly breaking onto new lines white-space: nowrap; // prevent links from randomly breaking onto new lines
background-color: transparent; // For `<button>`s background-color: transparent; // For `<button>`s
border: 0; // For `<button>`s border: 0; // For `<button>`s
@@ -176,7 +177,7 @@
// Dropdown section headers // Dropdown section headers
.dropdown-header { .dropdown-header {
display: block; display: block;
padding: $dropdown-padding-y $dropdown-item-padding-x; padding: $dropdown-header-padding;
margin-bottom: 0; // for use with heading elements margin-bottom: 0; // for use with heading elements
@include font-size($font-size-sm); @include font-size($font-size-sm);
color: $dropdown-header-color; color: $dropdown-header-color;
+19 -10
View File
@@ -30,12 +30,6 @@
border: 0; border: 0;
} }
// Remove select outline from select box in FF
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 $input-color;
}
// Customize the `:focus` state to imitate native WebKit styles. // Customize the `:focus` state to imitate native WebKit styles.
@include form-control-focus($ignore-warning: true); @include form-control-focus($ignore-warning: true);
@@ -59,7 +53,22 @@
} }
} }
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
&.form-control {
appearance: none; // Fix appearance for date inputs in Safari
}
}
select.form-control { select.form-control {
// Remove select outline from select box in FF
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 $input-color;
}
&:focus::-ms-value { &:focus::-ms-value {
// Suppress the nested default white text on blue background highlight given to // Suppress the nested default white text on blue background highlight given to
// the selected option text when the (still closed) <select> receives focus // the selected option text when the (still closed) <select> receives focus
@@ -190,13 +199,13 @@ textarea.form-control {
.form-row { .form-row {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-right: -$form-grid-gutter-width / 2; margin-right: -$form-grid-gutter-width * .5;
margin-left: -$form-grid-gutter-width / 2; margin-left: -$form-grid-gutter-width * .5;
> .col, > .col,
> [class*="col-"] { > [class*="col-"] {
padding-right: $form-grid-gutter-width / 2; padding-right: $form-grid-gutter-width * .5;
padding-left: $form-grid-gutter-width / 2; padding-left: $form-grid-gutter-width * .5;
} }
} }
+62 -6
View File
@@ -23,10 +23,12 @@
// Starts at zero // Starts at zero
// Used to ensure the min-width of the lowest breakpoint starts at 0. // Used to ensure the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") { @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
$values: map-values($map); @if length($map) > 0 {
$first-value: nth($values, 1); $values: map-values($map);
@if $first-value != 0 { $first-value: nth($values, 1);
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}."; @if $first-value != 0 {
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
}
} }
} }
@@ -49,10 +51,18 @@
} }
// See https://codepen.io/kevinweber/pen/dXWoRw // See https://codepen.io/kevinweber/pen/dXWoRw
//
// Requires the use of quotes around data URIs.
@function escape-svg($string) { @function escape-svg($string) {
@if str-index($string, "data:image/svg+xml") { @if str-index($string, "data:image/svg+xml") {
@each $char, $encoded in $escaped-characters { @each $char, $encoded in $escaped-characters {
$string: str-replace($string, $char, $encoded); // Do not escape the url brackets
@if str-index($string, "url(") == 1 {
$string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
} @else {
$string: str-replace($string, $char, $encoded);
}
} }
} }
@@ -65,7 +75,7 @@
$g: green($color); $g: green($color);
$b: blue($color); $b: blue($color);
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000; $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;
@if ($yiq >= $yiq-contrasted-threshold) { @if ($yiq >= $yiq-contrasted-threshold) {
@return $dark; @return $dark;
@@ -130,5 +140,51 @@
@return $value1 - $value2; @return $value1 - $value2;
} }
@if type-of($value2) != number {
$value2: unquote("(") + $value2 + unquote(")");
}
@return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2); @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
} }
@function divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
$dividend: abs($dividend);
$divisor: abs($divisor);
@if $dividend == 0 {
@return 0;
}
@if $divisor == 0 {
@error "Cannot divide by 0";
}
$remainder: $dividend;
$result: 0;
$factor: 10;
@while ($remainder > 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision < 0 and $remainder >= $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}
+10 -6
View File
@@ -4,11 +4,7 @@
@if $enable-grid-classes { @if $enable-grid-classes {
// Single container class with breakpoint max-widths // Single container class with breakpoint max-widths
.container { .container,
@include make-container();
@include make-container-max-widths();
}
// 100% wide container at all breakpoints // 100% wide container at all breakpoints
.container-fluid { .container-fluid {
@include make-container(); @include make-container();
@@ -25,11 +21,19 @@
max-width: $container-max-width; max-width: $container-max-width;
} }
// Extend each breakpoint which is smaller or equal to the current breakpoint
$extend-breakpoint: true;
@each $name, $width in $grid-breakpoints { @each $name, $width in $grid-breakpoints {
@if ($container-max-width > $width or $breakpoint == $name) { @if ($extend-breakpoint) {
.container#{breakpoint-infix($name, $grid-breakpoints)} { .container#{breakpoint-infix($name, $grid-breakpoints)} {
@extend %responsive-container-#{$breakpoint}; @extend %responsive-container-#{$breakpoint};
} }
// Once the current breakpoint is reached, stop extending
@if ($breakpoint == $name) {
$extend-breakpoint: false;
}
} }
} }
} }
+1 -1
View File
@@ -32,7 +32,7 @@
} }
.figure-img { .figure-img {
margin-bottom: $spacer / 2; margin-bottom: $spacer * .5;
line-height: 1; line-height: 1;
} }
+24 -4
View File
@@ -16,7 +16,8 @@
> .custom-select, > .custom-select,
> .custom-file { > .custom-file {
position: relative; // For focus state's z-index position: relative; // For focus state's z-index
flex: 1 1 0%; flex: 1 1 auto;
width: 1%;
min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
margin-bottom: 0; margin-bottom: 0;
@@ -41,7 +42,6 @@
> .form-control, > .form-control,
> .custom-select { > .custom-select {
&:not(:last-child) { @include border-right-radius(0); }
&:not(:first-child) { @include border-left-radius(0); } &:not(:first-child) { @include border-left-radius(0); }
} }
@@ -55,6 +55,24 @@
&:not(:last-child) .custom-file-label::after { @include border-right-radius(0); } &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
&:not(:first-child) .custom-file-label { @include border-left-radius(0); } &:not(:first-child) .custom-file-label { @include border-left-radius(0); }
} }
&:not(.has-validation) {
> .form-control:not(:last-child),
> .custom-select:not(:last-child),
> .custom-file:not(:last-child) .custom-file-label,
> .custom-file:not(:last-child) .custom-file-label::after {
@include border-right-radius(0);
}
}
&.has-validation {
> .form-control:nth-last-child(n + 3),
> .custom-select:nth-last-child(n + 3),
> .custom-file:nth-last-child(n + 3) .custom-file-label,
> .custom-file:nth-last-child(n + 3) .custom-file-label::after {
@include border-right-radius(0);
}
}
} }
@@ -174,8 +192,10 @@
.input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text, .input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn, .input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text, .input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
@include border-right-radius(0); @include border-right-radius(0);
+1 -1
View File
@@ -1,5 +1,5 @@
.jumbotron { .jumbotron {
padding: $jumbotron-padding ($jumbotron-padding / 2); padding: $jumbotron-padding ($jumbotron-padding * .5);
margin-bottom: $jumbotron-padding; margin-bottom: $jumbotron-padding;
color: $jumbotron-color; color: $jumbotron-color;
background-color: $jumbotron-bg; background-color: $jumbotron-bg;
+10 -14
View File
@@ -9,6 +9,7 @@
// No need to set list-style: none; since .list-group-item is block level // No need to set list-style: none; since .list-group-item is block level
padding-left: 0; // reset padding because ul and ol padding-left: 0; // reset padding because ul and ol
margin-bottom: 0; margin-bottom: 0;
@include border-radius($list-group-border-radius);
} }
@@ -46,15 +47,16 @@
display: block; display: block;
padding: $list-group-item-padding-y $list-group-item-padding-x; padding: $list-group-item-padding-y $list-group-item-padding-x;
color: $list-group-color; color: $list-group-color;
text-decoration: if($link-decoration == none, null, none);
background-color: $list-group-bg; background-color: $list-group-bg;
border: $list-group-border-width solid $list-group-border-color; border: $list-group-border-width solid $list-group-border-color;
&:first-child { &:first-child {
@include border-top-radius($list-group-border-radius); @include border-top-radius(inherit);
} }
&:last-child { &:last-child {
@include border-bottom-radius($list-group-border-radius); @include border-bottom-radius(inherit);
} }
&.disabled, &.disabled,
@@ -94,7 +96,7 @@
.list-group-horizontal#{$infix} { .list-group-horizontal#{$infix} {
flex-direction: row; flex-direction: row;
.list-group-item { > .list-group-item {
&:first-child { &:first-child {
@include border-bottom-left-radius($list-group-border-radius); @include border-bottom-left-radius($list-group-border-radius);
@include border-top-right-radius(0); @include border-top-right-radius(0);
@@ -109,7 +111,7 @@
margin-top: 0; margin-top: 0;
} }
& + .list-group-item { + .list-group-item {
border-top-width: $list-group-border-width; border-top-width: $list-group-border-width;
border-left-width: 0; border-left-width: 0;
@@ -130,18 +132,12 @@
// useful within other components (e.g., cards). // useful within other components (e.g., cards).
.list-group-flush { .list-group-flush {
.list-group-item { @include border-radius(0);
border-right-width: 0;
border-left-width: 0;
@include border-radius(0);
&:first-child { > .list-group-item {
border-top-width: 0; border-width: 0 0 $list-group-border-width;
}
}
&:last-child { &:last-child {
.list-group-item:last-child {
border-bottom-width: 0; border-bottom-width: 0;
} }
} }
+4 -3
View File
@@ -83,6 +83,7 @@
&::before { &::before {
display: block; // IE10 display: block; // IE10
height: subtract(100vh, $modal-dialog-margin * 2); height: subtract(100vh, $modal-dialog-margin * 2);
height: min-content; // Reset height to 0 except on IE
content: ""; content: "";
} }
@@ -174,16 +175,15 @@
flex-wrap: wrap; flex-wrap: wrap;
align-items: center; // vertically center align-items: center; // vertically center
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
padding: $modal-inner-padding - $modal-footer-margin-between / 2; padding: $modal-inner-padding - $modal-footer-margin-between * .5;
border-top: $modal-footer-border-width solid $modal-footer-border-color; border-top: $modal-footer-border-width solid $modal-footer-border-color;
@include border-bottom-radius($modal-content-inner-border-radius); @include border-bottom-radius($modal-content-inner-border-radius);
// Place margin between footer elements // Place margin between footer elements
// This solution is far from ideal because of the universal selector usage, // This solution is far from ideal because of the universal selector usage,
// but is needed to fix https://github.com/twbs/bootstrap/issues/24800 // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
// stylelint-disable-next-line selector-max-universal
> * { > * {
margin: $modal-footer-margin-between / 2; margin: $modal-footer-margin-between * .5;
} }
} }
@@ -217,6 +217,7 @@
&::before { &::before {
height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2); height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
height: min-content;
} }
} }
+4 -4
View File
@@ -14,6 +14,7 @@
.nav-link { .nav-link {
display: block; display: block;
padding: $nav-link-padding-y $nav-link-padding-x; padding: $nav-link-padding-y $nav-link-padding-x;
text-decoration: if($link-decoration == none, null, none);
@include hover-focus() { @include hover-focus() {
text-decoration: none; text-decoration: none;
@@ -34,11 +35,8 @@
.nav-tabs { .nav-tabs {
border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color; border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
.nav-item {
margin-bottom: -$nav-tabs-border-width;
}
.nav-link { .nav-link {
margin-bottom: -$nav-tabs-border-width;
border: $nav-tabs-border-width solid transparent; border: $nav-tabs-border-width solid transparent;
@include border-top-radius($nav-tabs-border-radius); @include border-top-radius($nav-tabs-border-radius);
@@ -91,6 +89,7 @@
// //
.nav-fill { .nav-fill {
> .nav-link,
.nav-item { .nav-item {
flex: 1 1 auto; flex: 1 1 auto;
text-align: center; text-align: center;
@@ -98,6 +97,7 @@
} }
.nav-justified { .nav-justified {
> .nav-link,
.nav-item { .nav-item {
flex-basis: 0; flex-basis: 0;
flex-grow: 1; flex-grow: 1;
+10 -2
View File
@@ -136,8 +136,12 @@
height: 1.5em; height: 1.5em;
vertical-align: middle; vertical-align: middle;
content: ""; content: "";
background: no-repeat center center; background: 50% / 100% 100% no-repeat;
background-size: 100% 100%; }
.navbar-nav-scroll {
max-height: $navbar-nav-scroll-max-height;
overflow-y: auto;
} }
// Generate series of `.navbar-expand-*` responsive classes for configuring // Generate series of `.navbar-expand-*` responsive classes for configuring
@@ -199,6 +203,10 @@
} }
} }
.navbar-nav-scroll {
overflow: visible;
}
.navbar-collapse { .navbar-collapse {
display: flex !important; // stylelint-disable-line declaration-no-important display: flex !important; // stylelint-disable-line declaration-no-important
+3 -2
View File
@@ -11,6 +11,7 @@
margin-left: -$pagination-border-width; margin-left: -$pagination-border-width;
line-height: $pagination-line-height; line-height: $pagination-line-height;
color: $pagination-color; color: $pagination-color;
text-decoration: if($link-decoration == none, null, none);
background-color: $pagination-bg; background-color: $pagination-bg;
border: $pagination-border-width solid $pagination-border-color; border: $pagination-border-width solid $pagination-border-color;
@@ -65,9 +66,9 @@
// //
.pagination-lg { .pagination-lg {
@include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg); @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $pagination-border-radius-lg);
} }
.pagination-sm { .pagination-sm {
@include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm); @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $pagination-border-radius-sm);
} }
+9 -9
View File
@@ -43,13 +43,13 @@
&::before { &::before {
bottom: 0; bottom: 0;
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0; border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
border-top-color: $popover-arrow-outer-color; border-top-color: $popover-arrow-outer-color;
} }
&::after { &::after {
bottom: $popover-border-width; bottom: $popover-border-width;
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0; border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
border-top-color: $popover-arrow-color; border-top-color: $popover-arrow-color;
} }
} }
@@ -66,13 +66,13 @@
&::before { &::before {
left: 0; left: 0;
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0; border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
border-right-color: $popover-arrow-outer-color; border-right-color: $popover-arrow-outer-color;
} }
&::after { &::after {
left: $popover-border-width; left: $popover-border-width;
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0; border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
border-right-color: $popover-arrow-color; border-right-color: $popover-arrow-color;
} }
} }
@@ -86,13 +86,13 @@
&::before { &::before {
top: 0; top: 0;
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2); border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
border-bottom-color: $popover-arrow-outer-color; border-bottom-color: $popover-arrow-outer-color;
} }
&::after { &::after {
top: $popover-border-width; top: $popover-border-width;
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2); border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
border-bottom-color: $popover-arrow-color; border-bottom-color: $popover-arrow-color;
} }
} }
@@ -104,7 +104,7 @@
left: 50%; left: 50%;
display: block; display: block;
width: $popover-arrow-width; width: $popover-arrow-width;
margin-left: -$popover-arrow-width / 2; margin-left: -$popover-arrow-width * .5;
content: ""; content: "";
border-bottom: $popover-border-width solid $popover-header-bg; border-bottom: $popover-border-width solid $popover-header-bg;
} }
@@ -121,13 +121,13 @@
&::before { &::before {
right: 0; right: 0;
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height; border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
border-left-color: $popover-arrow-outer-color; border-left-color: $popover-arrow-outer-color;
} }
&::after { &::after {
right: $popover-border-width; right: $popover-border-width;
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height; border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
border-left-color: $popover-arrow-color; border-left-color: $popover-arrow-color;
} }
} }
-9
View File
@@ -55,15 +55,6 @@
page-break-inside: avoid; page-break-inside: avoid;
} }
//
// Printing Tables:
// https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
//
thead {
display: table-header-group;
}
tr, tr,
img { img {
page-break-inside: avoid; page-break-inside: avoid;
+2 -1
View File
@@ -10,6 +10,7 @@
display: flex; display: flex;
height: $progress-height; height: $progress-height;
overflow: hidden; // force rounded corners by cropping it overflow: hidden; // force rounded corners by cropping it
line-height: 0;
@include font-size($progress-font-size); @include font-size($progress-font-size);
background-color: $progress-bg; background-color: $progress-bg;
@include border-radius($progress-border-radius); @include border-radius($progress-border-radius);
@@ -35,7 +36,7 @@
@if $enable-transitions { @if $enable-transitions {
.progress-bar-animated { .progress-bar-animated {
animation: progress-bar-stripes $progress-bar-animation-timing; animation: $progress-bar-animation-timing progress-bar-stripes;
@if $enable-prefers-reduced-motion-media-query { @if $enable-prefers-reduced-motion-media-query {
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
+27 -25
View File
@@ -1,4 +1,4 @@
// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix // stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
// Reboot // Reboot
// //
@@ -199,7 +199,7 @@ a {
// causes specificity issues in many other styles that are too complex to fix. // causes specificity issues in many other styles that are too complex to fix.
// See https://github.com/twbs/bootstrap/issues/19402 // See https://github.com/twbs/bootstrap/issues/19402
a:not([href]) { a:not([href]):not([class]) {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
@@ -229,6 +229,9 @@ pre {
margin-bottom: 1rem; margin-bottom: 1rem;
// Don't allow content to break outside // Don't allow content to break outside
overflow: auto; overflow: auto;
// Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,
// making it impossible to interact with the content
-ms-overflow-style: scrollbar;
} }
@@ -275,10 +278,14 @@ caption {
caption-side: bottom; caption-side: bottom;
} }
// 1. Removes font-weight bold by inheriting
// 2. Matches default `<td>` alignment by inheriting `text-align`.
// 3. Fix alignment for Safari
th { th {
// Matches default `<td>` alignment by inheriting from the `<body>`, or the font-weight: $table-th-font-weight; // 1
// closest parent with a set `text-align`. text-align: inherit; // 2
text-align: inherit; text-align: -webkit-match-parent; // 3
} }
@@ -296,17 +303,17 @@ label {
// //
// Details at https://github.com/twbs/bootstrap/issues/24093 // Details at https://github.com/twbs/bootstrap/issues/24093
button { button {
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-radius: 0; border-radius: 0;
} }
// Work around a Firefox/IE bug where the transparent `button` background // Explicitly remove focus outline in Chromium when it shouldn't be
// results in a loss of the default `button` focus styles. // visible (e.g. as result of mouse click or touch tap). It already
// // should be doing this automatically, but seems to currently be
// Credit: https://github.com/suitcss/base/ // confused and applies its very visible two-tone outline anyway.
button:focus {
outline: 1px dotted; button:focus:not(:focus-visible) {
outline: 5px auto -webkit-focus-ring-color; outline: 0;
} }
input, input,
@@ -330,6 +337,13 @@ select {
text-transform: none; // Remove the inheritance of text transform in Firefox text-transform: none; // Remove the inheritance of text transform in Firefox
} }
// Set the cursor for non-`<button>` buttons
//
// Details at https://github.com/twbs/bootstrap/pull/30562
[role="button"] {
cursor: pointer;
}
// Remove the inheritance of word-wrap in Safari. // Remove the inheritance of word-wrap in Safari.
// //
// Details at https://github.com/twbs/bootstrap/issues/24990 // Details at https://github.com/twbs/bootstrap/issues/24990
@@ -376,18 +390,6 @@ input[type="checkbox"] {
} }
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
// Remove the default appearance of temporal inputs to avoid a Mobile Safari
// bug where setting a custom line-height prevents text from being vertically
// centered within the input.
// See https://bugs.webkit.org/show_bug.cgi?id=139848
// and https://github.com/twbs/bootstrap/issues/11266
-webkit-appearance: listbox;
}
textarea { textarea {
overflow: auto; // Remove the default vertical scrollbar in IE. overflow: auto; // Remove the default vertical scrollbar in IE.
// Textareas should really only resize vertically so they don't break their (horizontal) containers. // Textareas should really only resize vertically so they don't break their (horizontal) containers.
-1
View File
@@ -1,4 +1,3 @@
// Do not forget to update getting-started/theming.md!
:root { :root {
// Custom variable values only support SassScript inside `#{}`. // Custom variable values only support SassScript inside `#{}`.
@each $color, $value in $colors { @each $color, $value in $colors {
+16 -6
View File
@@ -10,12 +10,12 @@
display: inline-block; display: inline-block;
width: $spinner-width; width: $spinner-width;
height: $spinner-height; height: $spinner-height;
vertical-align: text-bottom; vertical-align: $spinner-vertical-align;
border: $spinner-border-width solid currentColor; border: $spinner-border-width solid currentColor;
border-right-color: transparent; border-right-color: transparent;
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-radius: 50%; border-radius: 50%;
animation: spinner-border .75s linear infinite; animation: .75s linear infinite spinner-border;
} }
.spinner-border-sm { .spinner-border-sm {
@@ -34,6 +34,7 @@
} }
50% { 50% {
opacity: 1; opacity: 1;
transform: none;
} }
} }
@@ -41,15 +42,24 @@
display: inline-block; display: inline-block;
width: $spinner-width; width: $spinner-width;
height: $spinner-height; height: $spinner-height;
vertical-align: text-bottom; vertical-align: $spinner-vertical-align;
background-color: currentColor; background-color: currentColor;
// stylelint-disable-next-line property-blacklist // stylelint-disable-next-line property-disallowed-list
border-radius: 50%; border-radius: 50%;
opacity: 0; opacity: 0;
animation: spinner-grow .75s linear infinite; animation: .75s linear infinite spinner-grow;
} }
.spinner-grow-sm { .spinner-grow-sm {
width: $spinner-width-sm; width: $spinner-width-sm;
height: $spinner-height-sm; height: $spinner-height-sm;
} }
@if $enable-prefers-reduced-motion-media-query {
@media (prefers-reduced-motion: reduce) {
.spinner-border,
.spinner-grow {
animation-duration: 1.5s;
}
}
}
+4 -2
View File
@@ -1,13 +1,14 @@
.toast { .toast {
// Prevents from shrinking in IE11, when in a flex container
// See https://github.com/twbs/bootstrap/issues/28341
flex-basis: $toast-max-width;
max-width: $toast-max-width; max-width: $toast-max-width;
overflow: hidden; // cheap rounded corners on nested items
@include font-size($toast-font-size); @include font-size($toast-font-size);
color: $toast-color; color: $toast-color;
background-color: $toast-background-color; background-color: $toast-background-color;
background-clip: padding-box; background-clip: padding-box;
border: $toast-border-width solid $toast-border-color; border: $toast-border-width solid $toast-border-color;
box-shadow: $toast-box-shadow; box-shadow: $toast-box-shadow;
backdrop-filter: blur(10px);
opacity: 0; opacity: 0;
@include border-radius($toast-border-radius); @include border-radius($toast-border-radius);
@@ -37,6 +38,7 @@
background-color: $toast-header-background-color; background-color: $toast-header-background-color;
background-clip: padding-box; background-clip: padding-box;
border-bottom: $toast-border-width solid $toast-header-border-color; border-bottom: $toast-border-width solid $toast-header-border-color;
@include border-top-radius(subtract($toast-border-radius, $toast-border-width));
} }
.toast-body { .toast-body {
+4 -4
View File
@@ -37,7 +37,7 @@
&::before { &::before {
top: 0; top: 0;
border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0; border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
border-top-color: $tooltip-arrow-color; border-top-color: $tooltip-arrow-color;
} }
} }
@@ -53,7 +53,7 @@
&::before { &::before {
right: 0; right: 0;
border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0; border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
border-right-color: $tooltip-arrow-color; border-right-color: $tooltip-arrow-color;
} }
} }
@@ -67,7 +67,7 @@
&::before { &::before {
bottom: 0; bottom: 0;
border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height; border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
border-bottom-color: $tooltip-arrow-color; border-bottom-color: $tooltip-arrow-color;
} }
} }
@@ -83,7 +83,7 @@
&::before { &::before {
left: 0; left: 0;
border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height; border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
border-left-color: $tooltip-arrow-color; border-left-color: $tooltip-arrow-color;
} }
} }
+1 -1
View File
@@ -1,7 +1,7 @@
.fade { .fade {
@include transition($transition-fade); @include transition($transition-fade);
&:not(.show,.in) { &:not(.show) {
opacity: 0; opacity: 0;
} }
} }
+1 -1
View File
@@ -1,4 +1,4 @@
// stylelint-disable declaration-no-important, selector-list-comma-newline-after // stylelint-disable selector-list-comma-newline-after
// //
// Headings // Headings
+2 -1
View File
@@ -6,12 +6,13 @@
@import "utilities/embed"; @import "utilities/embed";
@import "utilities/flex"; @import "utilities/flex";
@import "utilities/float"; @import "utilities/float";
@import "utilities/interactions";
@import "utilities/overflow"; @import "utilities/overflow";
@import "utilities/position"; @import "utilities/position";
@import "utilities/screenreaders"; @import "utilities/screenreaders";
@import "utilities/shadows"; @import "utilities/shadows";
@import "utilities/sizing"; @import "utilities/sizing";
@import "utilities/stretched-link";
@import "utilities/spacing"; @import "utilities/spacing";
@import "utilities/stretched-link";
@import "utilities/text"; @import "utilities/text";
@import "utilities/visibility"; @import "utilities/visibility";
+32 -27
View File
@@ -18,7 +18,6 @@ $gray-900: #212529 !default;
$black: #000 !default; $black: #000 !default;
$grays: () !default; $grays: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$grays: map-merge( $grays: map-merge(
( (
"100": $gray-100, "100": $gray-100,
@@ -46,7 +45,6 @@ $teal: #20c997 !default;
$cyan: #17a2b8 !default; $cyan: #17a2b8 !default;
$colors: () !default; $colors: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$colors: map-merge( $colors: map-merge(
( (
"blue": $blue, "blue": $blue,
@@ -76,7 +74,6 @@ $light: $gray-100 !default;
$dark: $gray-800 !default; $dark: $gray-800 !default;
$theme-colors: () !default; $theme-colors: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$theme-colors: map-merge( $theme-colors: map-merge(
( (
"primary": $primary, "primary": $primary,
@@ -103,9 +100,11 @@ $yiq-text-light: $white !default;
// Characters which are escaped by the escape-svg function // Characters which are escaped by the escape-svg function
$escaped-characters: ( $escaped-characters: (
("<","%3c"), ("<", "%3c"),
(">","%3e"), (">", "%3e"),
("#","%23"), ("#", "%23"),
("(", "%28"),
(")", "%29"),
) !default; ) !default;
@@ -136,7 +135,6 @@ $enable-deprecation-messages: true !default;
$spacer: 1rem !default; $spacer: 1rem !default;
$spacers: () !default; $spacers: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$spacers: map-merge( $spacers: map-merge(
( (
0: 0, 0: 0,
@@ -151,7 +149,6 @@ $spacers: map-merge(
// This variable affects the `.h-*` and `.w-*` classes. // This variable affects the `.h-*` and `.w-*` classes.
$sizes: () !default; $sizes: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$sizes: map-merge( $sizes: map-merge(
( (
25: 25%, 25: 25%,
@@ -262,7 +259,6 @@ $transition-fade: opacity .15s linear !default;
$transition-collapse: height .35s ease !default; $transition-collapse: height .35s ease !default;
$embed-responsive-aspect-ratios: () !default; $embed-responsive-aspect-ratios: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$embed-responsive-aspect-ratios: join( $embed-responsive-aspect-ratios: join(
( (
(21 9), (21 9),
@@ -278,7 +274,7 @@ $embed-responsive-aspect-ratios: join(
// Font, line-height, and color for body text, headings, and more. // Font, line-height, and color for body text, headings, and more.
// stylelint-disable value-keyword-case // stylelint-disable value-keyword-case
$font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; $font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
$font-family-base: $font-family-sans-serif !default; $font-family-base: $font-family-sans-serif !default;
// stylelint-enable value-keyword-case // stylelint-enable value-keyword-case
@@ -303,7 +299,7 @@ $h4-font-size: $font-size-base * 1.5 !default;
$h5-font-size: $font-size-base * 1.25 !default; $h5-font-size: $font-size-base * 1.25 !default;
$h6-font-size: $font-size-base !default; $h6-font-size: $font-size-base !default;
$headings-margin-bottom: $spacer / 2 !default; $headings-margin-bottom: $spacer * .5 !default;
$headings-font-family: null !default; $headings-font-family: null !default;
$headings-font-weight: 500 !default; $headings-font-weight: 500 !default;
$headings-line-height: 1.2 !default; $headings-line-height: 1.2 !default;
@@ -367,6 +363,7 @@ $table-border-color: $border-color !default;
$table-head-bg: $gray-200 !default; $table-head-bg: $gray-200 !default;
$table-head-color: $gray-700 !default; $table-head-color: $gray-700 !default;
$table-th-font-weight: null !default;
$table-dark-color: $white !default; $table-dark-color: $white !default;
$table-dark-bg: $gray-800 !default; $table-dark-bg: $gray-800 !default;
@@ -498,7 +495,7 @@ $input-height-border: $input-border-width * 2 !default;
$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default; $input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default; $input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default; $input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default; $input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default; $input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
@@ -544,7 +541,7 @@ $custom-control-label-disabled-color: $gray-600 !default;
$custom-control-indicator-checked-color: $component-active-color !default; $custom-control-indicator-checked-color: $component-active-color !default;
$custom-control-indicator-checked-bg: $component-active-bg !default; $custom-control-indicator-checked-bg: $component-active-bg !default;
$custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default; $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
$custom-control-indicator-checked-box-shadow: none !default; $custom-control-indicator-checked-box-shadow: null !default;
$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default; $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default; $custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
@@ -552,7 +549,7 @@ $custom-control-indicator-focus-border-color: $input-focus-border-color !defau
$custom-control-indicator-active-color: $component-active-color !default; $custom-control-indicator-active-color: $component-active-color !default;
$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default; $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
$custom-control-indicator-active-box-shadow: none !default; $custom-control-indicator-active-box-shadow: null !default;
$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default; $custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
$custom-checkbox-indicator-border-radius: $border-radius !default; $custom-checkbox-indicator-border-radius: $border-radius !default;
@@ -561,14 +558,14 @@ $custom-checkbox-indicator-icon-checked: url("data:image/svg+xml,<svg xml
$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default; $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default; $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
$custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>") !default; $custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>") !default;
$custom-checkbox-indicator-indeterminate-box-shadow: none !default; $custom-checkbox-indicator-indeterminate-box-shadow: null !default;
$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default; $custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;
$custom-radio-indicator-border-radius: 50% !default; $custom-radio-indicator-border-radius: 50% !default;
$custom-radio-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>") !default; $custom-radio-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>") !default;
$custom-switch-width: $custom-control-indicator-size * 1.75 !default; $custom-switch-width: $custom-control-indicator-size * 1.75 !default;
$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default; $custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;
$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default; $custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;
$custom-select-padding-y: $input-padding-y !default; $custom-select-padding-y: $input-padding-y !default;
@@ -586,7 +583,7 @@ $custom-select-disabled-bg: $gray-200 !default;
$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions $custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
$custom-select-indicator-color: $gray-800 !default; $custom-select-indicator-color: $gray-800 !default;
$custom-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>") !default; $custom-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>") !default;
$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon) $custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default; $custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;
$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default; $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
@@ -666,7 +663,6 @@ $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
$form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default; $form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
$form-validation-states: () !default; $form-validation-states: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$form-validation-states: map-merge( $form-validation-states: map-merge(
( (
"valid": ( "valid": (
@@ -714,12 +710,12 @@ $nav-pills-link-active-color: $component-active-color !default;
$nav-pills-link-active-bg: $component-active-bg !default; $nav-pills-link-active-bg: $component-active-bg !default;
$nav-divider-color: $gray-200 !default; $nav-divider-color: $gray-200 !default;
$nav-divider-margin-y: $spacer / 2 !default; $nav-divider-margin-y: $spacer * .5 !default;
// Navbar // Navbar
$navbar-padding-y: $spacer / 2 !default; $navbar-padding-y: $spacer * .5 !default;
$navbar-padding-x: $spacer !default; $navbar-padding-x: $spacer !default;
$navbar-nav-link-padding-x: .5rem !default; $navbar-nav-link-padding-x: .5rem !default;
@@ -728,13 +724,15 @@ $navbar-brand-font-size: $font-size-lg !default;
// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default; $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default; $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default; $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
$navbar-toggler-padding-y: .25rem !default; $navbar-toggler-padding-y: .25rem !default;
$navbar-toggler-padding-x: .75rem !default; $navbar-toggler-padding-x: .75rem !default;
$navbar-toggler-font-size: $font-size-lg !default; $navbar-toggler-font-size: $font-size-lg !default;
$navbar-toggler-border-radius: $btn-border-radius !default; $navbar-toggler-border-radius: $btn-border-radius !default;
$navbar-nav-scroll-max-height: 75vh !default;
$navbar-dark-color: rgba($white, .5) !default; $navbar-dark-color: rgba($white, .5) !default;
$navbar-dark-hover-color: rgba($white, .75) !default; $navbar-dark-hover-color: rgba($white, .75) !default;
$navbar-dark-active-color: $white !default; $navbar-dark-active-color: $white !default;
@@ -760,6 +758,7 @@ $navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
// Dropdown menu container and contents. // Dropdown menu container and contents.
$dropdown-min-width: 10rem !default; $dropdown-min-width: 10rem !default;
$dropdown-padding-x: 0 !default;
$dropdown-padding-y: .5rem !default; $dropdown-padding-y: .5rem !default;
$dropdown-spacer: .125rem !default; $dropdown-spacer: .125rem !default;
$dropdown-font-size: $font-size-base !default; $dropdown-font-size: $font-size-base !default;
@@ -775,17 +774,18 @@ $dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
$dropdown-link-color: $gray-900 !default; $dropdown-link-color: $gray-900 !default;
$dropdown-link-hover-color: darken($gray-900, 5%) !default; $dropdown-link-hover-color: darken($gray-900, 5%) !default;
$dropdown-link-hover-bg: $gray-100 !default; $dropdown-link-hover-bg: $gray-200 !default;
$dropdown-link-active-color: $component-active-color !default; $dropdown-link-active-color: $component-active-color !default;
$dropdown-link-active-bg: $component-active-bg !default; $dropdown-link-active-bg: $component-active-bg !default;
$dropdown-link-disabled-color: $gray-600 !default; $dropdown-link-disabled-color: $gray-500 !default;
$dropdown-item-padding-y: .25rem !default; $dropdown-item-padding-y: .25rem !default;
$dropdown-item-padding-x: 1.5rem !default; $dropdown-item-padding-x: 1.5rem !default;
$dropdown-header-color: $gray-600 !default; $dropdown-header-color: $gray-600 !default;
$dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;
// Pagination // Pagination
@@ -818,6 +818,9 @@ $pagination-disabled-color: $gray-600 !default;
$pagination-disabled-bg: $white !default; $pagination-disabled-bg: $white !default;
$pagination-disabled-border-color: $gray-300 !default; $pagination-disabled-border-color: $gray-300 !default;
$pagination-border-radius-sm: $border-radius-sm !default;
$pagination-border-radius-lg: $border-radius-lg !default;
// Jumbotron // Jumbotron
@@ -842,7 +845,7 @@ $card-bg: $white !default;
$card-img-overlay-padding: 1.25rem !default; $card-img-overlay-padding: 1.25rem !default;
$card-group-margin: $grid-gutter-width / 2 !default; $card-group-margin: $grid-gutter-width * .5 !default;
$card-deck-margin: $card-group-margin !default; $card-deck-margin: $card-group-margin !default;
$card-columns-count: 3 !default; $card-columns-count: 3 !default;
@@ -1098,9 +1101,10 @@ $carousel-transition: transform $carousel-transition-duration eas
// Spinners // Spinners
$spinner-width: 2rem !default; $spinner-width: 2rem !default;
$spinner-height: $spinner-width !default; $spinner-height: $spinner-width !default;
$spinner-border-width: .25em !default; $spinner-vertical-align: -.125em !default;
$spinner-border-width: .25em !default;
$spinner-width-sm: 1rem !default; $spinner-width-sm: 1rem !default;
$spinner-height-sm: $spinner-width-sm !default; $spinner-height-sm: $spinner-width-sm !default;
@@ -1135,6 +1139,7 @@ $pre-scrollable-max-height: 340px !default;
$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default; $displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
$overflows: auto, hidden !default; $overflows: auto, hidden !default;
$positions: static, relative, absolute, fixed, sticky !default; $positions: static, relative, absolute, fixed, sticky !default;
$user-selects: all, auto, none !default;
// Printing // Printing
+5 -4
View File
@@ -1,8 +1,8 @@
/*! /*!
* Bootstrap Grid v4.4.1 (https://getbootstrap.com/) * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors * Copyright 2011-2021 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc. * Copyright 2011-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
html { html {
@@ -19,6 +19,7 @@ html {
@import "functions"; @import "functions";
@import "variables"; @import "variables";
@import "mixins/deprecate";
@import "mixins/breakpoints"; @import "mixins/breakpoints";
@import "mixins/grid-framework"; @import "mixins/grid-framework";
@import "mixins/grid"; @import "mixins/grid";
+4 -4
View File
@@ -1,8 +1,8 @@
/*! /*!
* Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) * Bootstrap Reboot v4.6.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors * Copyright 2011-2021 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc. * Copyright 2011-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/ */
+4 -4
View File
@@ -1,8 +1,8 @@
/*! /*!
* Bootstrap v4.4.1 (https://getbootstrap.com/) * Bootstrap v4.6.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors * Copyright 2011-2021 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc. * Copyright 2011-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@import "functions"; @import "functions";
@@ -15,8 +15,9 @@
@include deprecate("The `bg-variant` mixin", "v4.4.0", "v5", $ignore-warning); @include deprecate("The `bg-variant` mixin", "v4.4.0", "v5", $ignore-warning);
} }
@mixin bg-gradient-variant($parent, $color) { @mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {
#{$parent} { #{$parent} {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important; background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
} }
@include deprecate("The `bg-gradient-variant` mixin", "v4.5.0", "v5", $ignore-warning);
} }
@@ -1,9 +1,22 @@
// stylelint-disable property-blacklist // stylelint-disable property-disallowed-list
// Single side border-radius // Single side border-radius
// Helper function to replace negative values with 0
@function valid-radius($radius) {
$return: ();
@each $value in $radius {
@if type-of($value) == number {
$return: append($return, max($value, 0));
} @else {
$return: append($return, $value);
}
}
@return $return;
}
@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) { @mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
@if $enable-rounded { @if $enable-rounded {
border-radius: $radius; border-radius: valid-radius($radius);
} }
@else if $fallback-border-radius != false { @else if $fallback-border-radius != false {
border-radius: $fallback-border-radius; border-radius: $fallback-border-radius;
@@ -12,52 +25,52 @@
@mixin border-top-radius($radius) { @mixin border-top-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-top-left-radius: $radius; border-top-left-radius: valid-radius($radius);
border-top-right-radius: $radius; border-top-right-radius: valid-radius($radius);
} }
} }
@mixin border-right-radius($radius) { @mixin border-right-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-top-right-radius: $radius; border-top-right-radius: valid-radius($radius);
border-bottom-right-radius: $radius; border-bottom-right-radius: valid-radius($radius);
} }
} }
@mixin border-bottom-radius($radius) { @mixin border-bottom-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-bottom-right-radius: $radius; border-bottom-right-radius: valid-radius($radius);
border-bottom-left-radius: $radius; border-bottom-left-radius: valid-radius($radius);
} }
} }
@mixin border-left-radius($radius) { @mixin border-left-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-top-left-radius: $radius; border-top-left-radius: valid-radius($radius);
border-bottom-left-radius: $radius; border-bottom-left-radius: valid-radius($radius);
} }
} }
@mixin border-top-left-radius($radius) { @mixin border-top-left-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-top-left-radius: $radius; border-top-left-radius: valid-radius($radius);
} }
} }
@mixin border-top-right-radius($radius) { @mixin border-top-right-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-top-right-radius: $radius; border-top-right-radius: valid-radius($radius);
} }
} }
@mixin border-bottom-right-radius($radius) { @mixin border-bottom-right-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-bottom-right-radius: $radius; border-bottom-right-radius: valid-radius($radius);
} }
} }
@mixin border-bottom-left-radius($radius) { @mixin border-bottom-left-radius($radius) {
@if $enable-rounded { @if $enable-rounded {
border-bottom-left-radius: $radius; border-bottom-left-radius: valid-radius($radius);
} }
} }
@@ -20,10 +20,10 @@
color: color-yiq($hover-background); color: color-yiq($hover-background);
@include gradient-bg($hover-background); @include gradient-bg($hover-background);
border-color: $hover-border; border-color: $hover-border;
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows { @if $enable-shadows {
box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5); @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));
} @else { } @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5); box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
} }
} }
@@ -51,10 +51,10 @@
border-color: $active-border; border-color: $active-border;
&:focus { &:focus {
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows and $btn-active-box-shadow != none { @if $enable-shadows and $btn-active-box-shadow != none {
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5); @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));
} @else { } @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5); box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
} }
} }
@@ -90,10 +90,10 @@
border-color: $active-border; border-color: $active-border;
&:focus { &:focus {
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows and $btn-active-box-shadow != none { @if $enable-shadows and $btn-active-box-shadow != none {
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5); @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));
} @else { } @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: 0 0 0 $btn-focus-width rgba($color, .5); box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
} }
} }
+23 -5
View File
@@ -16,10 +16,10 @@
background-color: $input-focus-bg; background-color: $input-focus-bg;
border-color: $input-focus-border-color; border-color: $input-focus-border-color;
outline: 0; outline: 0;
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows { @if $enable-shadows {
box-shadow: $input-box-shadow, $input-focus-box-shadow; @include box-shadow($input-box-shadow, $input-focus-box-shadow);
} @else { } @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $input-focus-box-shadow; box-shadow: $input-focus-box-shadow;
} }
} }
@@ -53,6 +53,7 @@
.#{$state}-tooltip { .#{$state}-tooltip {
position: absolute; position: absolute;
top: 100%; top: 100%;
left: 0;
z-index: 5; z-index: 5;
display: none; display: none;
max-width: 100%; // Contain to parent when possible max-width: 100%; // Contain to parent when possible
@@ -63,6 +64,13 @@
color: color-yiq($color); color: color-yiq($color);
background-color: rgba($color, $form-feedback-tooltip-opacity); background-color: rgba($color, $form-feedback-tooltip-opacity);
@include border-radius($form-feedback-tooltip-border-radius); @include border-radius($form-feedback-tooltip-border-radius);
// See https://github.com/twbs/bootstrap/pull/31557
// Align tooltip to form elements
.form-row > .col > &,
.form-row > [class*="col-"] > & {
left: $form-grid-gutter-width * .5;
}
} }
@include form-validation-state-selector($state) { @include form-validation-state-selector($state) {
@@ -77,7 +85,7 @@
border-color: $color; border-color: $color;
@if $enable-validation-icons { @if $enable-validation-icons {
padding-right: $input-height-inner; padding-right: $input-height-inner !important; // stylelint-disable-line declaration-no-important
background-image: escape-svg($icon); background-image: escape-svg($icon);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right $input-height-inner-quarter center; background-position: right $input-height-inner-quarter center;
@@ -91,6 +99,16 @@
} }
} }
// stylelint-disable-next-line selector-no-qualifying-type
select.form-control {
@include form-validation-state-selector($state) {
@if $enable-validation-icons {
padding-right: $input-padding-x * 4 !important; // stylelint-disable-line declaration-no-important
background-position: right $input-padding-x * 2 center;
}
}
}
// stylelint-disable-next-line selector-no-qualifying-type // stylelint-disable-next-line selector-no-qualifying-type
textarea.form-control { textarea.form-control {
@include form-validation-state-selector($state) { @include form-validation-state-selector($state) {
@@ -106,8 +124,8 @@
border-color: $color; border-color: $color;
@if $enable-validation-icons { @if $enable-validation-icons {
padding-right: $custom-select-feedback-icon-padding-right; padding-right: $custom-select-feedback-icon-padding-right !important; // stylelint-disable-line declaration-no-important
background: $custom-select-background, escape-svg($icon) $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size; background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;
} }
&:focus { &:focus {
@@ -8,19 +8,22 @@
%grid-column { %grid-column {
position: relative; position: relative;
width: 100%; width: 100%;
padding-right: $gutter / 2; padding-right: $gutter * .5;
padding-left: $gutter / 2; padding-left: $gutter * .5;
} }
@each $breakpoint in map-keys($breakpoints) { @each $breakpoint in map-keys($breakpoints) {
$infix: breakpoint-infix($breakpoint, $breakpoints); $infix: breakpoint-infix($breakpoint, $breakpoints);
// Allow columns to stretch full width below their breakpoints @if $columns > 0 {
@for $i from 1 through $columns { // Allow columns to stretch full width below their breakpoints
.col#{$infix}-#{$i} { @for $i from 1 through $columns {
@extend %grid-column; .col#{$infix}-#{$i} {
@extend %grid-column;
}
} }
} }
.col#{$infix}, .col#{$infix},
.col#{$infix}-auto { .col#{$infix}-auto {
@extend %grid-column; @extend %grid-column;
@@ -34,9 +37,11 @@
max-width: 100%; max-width: 100%;
} }
@for $i from 1 through $grid-row-columns { @if $grid-row-columns > 0 {
.row-cols#{$infix}-#{$i} { @for $i from 1 through $grid-row-columns {
@include row-cols($i); .row-cols#{$infix}-#{$i} {
@include row-cols($i);
}
} }
} }
@@ -44,9 +49,11 @@
@include make-col-auto(); @include make-col-auto();
} }
@for $i from 1 through $columns { @if $columns > 0 {
.col#{$infix}-#{$i} { @for $i from 1 through $columns {
@include make-col($i, $columns); .col#{$infix}-#{$i} {
@include make-col($i, $columns);
}
} }
} }
@@ -58,11 +65,13 @@
.order#{$infix}-#{$i} { order: $i; } .order#{$infix}-#{$i} { order: $i; }
} }
// `$columns - 1` because offsetting by the width of an entire row isn't possible @if $columns > 0 {
@for $i from 0 through ($columns - 1) { // `$columns - 1` because offsetting by the width of an entire row isn't possible
@if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0 @for $i from 0 through ($columns - 1) {
.offset#{$infix}-#{$i} { @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
@include make-col-offset($i, $columns); .offset#{$infix}-#{$i} {
@include make-col-offset($i, $columns);
}
} }
} }
} }
+17 -17
View File
@@ -4,12 +4,18 @@
@mixin make-container($gutter: $grid-gutter-width) { @mixin make-container($gutter: $grid-gutter-width) {
width: 100%; width: 100%;
padding-right: $gutter / 2; padding-right: $gutter * .5;
padding-left: $gutter / 2; padding-left: $gutter * .5;
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
} }
@mixin make-row($gutter: $grid-gutter-width) {
display: flex;
flex-wrap: wrap;
margin-right: -$gutter * .5;
margin-left: -$gutter * .5;
}
// For each breakpoint, define the maximum width of the container in a media query // For each breakpoint, define the maximum width of the container in a media query
@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
@@ -18,13 +24,7 @@
max-width: $container-max-width; max-width: $container-max-width;
} }
} }
} @include deprecate("The `make-container-max-widths` mixin", "v4.5.2", "v5");
@mixin make-row($gutter: $grid-gutter-width) {
display: flex;
flex-wrap: wrap;
margin-right: -$gutter / 2;
margin-left: -$gutter / 2;
} }
@mixin make-col-ready($gutter: $grid-gutter-width) { @mixin make-col-ready($gutter: $grid-gutter-width) {
@@ -33,16 +33,16 @@
// always setting `width: 100%;`. This works because we use `flex` values // always setting `width: 100%;`. This works because we use `flex` values
// later on to override this initial width. // later on to override this initial width.
width: 100%; width: 100%;
padding-right: $gutter / 2; padding-right: $gutter * .5;
padding-left: $gutter / 2; padding-left: $gutter * .5;
} }
@mixin make-col($size, $columns: $grid-columns) { @mixin make-col($size, $columns: $grid-columns) {
flex: 0 0 percentage($size / $columns); flex: 0 0 percentage(divide($size, $columns));
// Add a `max-width` to ensure content within each column does not blow out // Add a `max-width` to ensure content within each column does not blow out
// the width of the column. Applies to IE10+ and Firefox. Chrome and Safari // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
// do not appear to require this. // do not appear to require this.
max-width: percentage($size / $columns); max-width: percentage(divide($size, $columns));
} }
@mixin make-col-auto() { @mixin make-col-auto() {
@@ -52,7 +52,7 @@
} }
@mixin make-col-offset($size, $columns: $grid-columns) { @mixin make-col-offset($size, $columns: $grid-columns) {
$num: $size / $columns; $num: divide($size, $columns);
margin-left: if($num == 0, 0, percentage($num)); margin-left: if($num == 0, 0, percentage($num));
} }
@@ -62,8 +62,8 @@
// numberof columns. Supports wrapping to new lines, but does not do a Masonry // numberof columns. Supports wrapping to new lines, but does not do a Masonry
// style grid. // style grid.
@mixin row-cols($count) { @mixin row-cols($count) {
& > * { > * {
flex: 0 0 100% / $count; flex: 0 0 divide(100%, $count);
max-width: 100% / $count; max-width: divide(100%, $count);
} }
} }
+1 -1
View File
@@ -26,7 +26,7 @@
// Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio, // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
// but doesn't convert dppx=>dpi. // but doesn't convert dppx=>dpi.
// There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
// Compatibility info: https://caniuse.com/#feat=css-media-resolution // Compatibility info: https://caniuse.com/css-media-resolution
@media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
only screen and (min-resolution: 2dppx) { // Standardized only screen and (min-resolution: 2dppx) { // Standardized
background-image: url($file-2x); background-image: url($file-2x);
@@ -1,7 +1,7 @@
// Only display content to screen readers // Only display content to screen readers
// //
// See: https://a11yproject.com/posts/how-to-hide-content/ // See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/ // See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
@mixin sr-only() { @mixin sr-only() {
position: absolute; position: absolute;
@@ -1,16 +1,26 @@
// stylelint-disable property-blacklist // stylelint-disable property-disallowed-list
@mixin transition($transition...) { @mixin transition($transition...) {
@if $enable-transitions { @if length($transition) == 0 {
@if length($transition) == 0 { $transition: $transition-base;
transition: $transition-base; }
} @else {
transition: $transition; @if length($transition) > 1 {
@each $value in $transition {
@if $value == null or $value == none {
@warn "The keyword 'none' or 'null' must be used as a single argument.";
}
} }
} }
@if $enable-prefers-reduced-motion-media-query { @if $enable-transitions {
@media (prefers-reduced-motion: reduce) { @if nth($transition, 1) != null {
transition: none; transition: $transition;
}
@if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {
@media (prefers-reduced-motion: reduce) {
transition: none;
}
} }
} }
} }
@@ -6,7 +6,7 @@
@if $enable-gradients { @if $enable-gradients {
@each $color, $value in $theme-colors { @each $color, $value in $theme-colors {
@include bg-gradient-variant(".bg-gradient-#{$color}", $value); @include bg-gradient-variant(".bg-gradient-#{$color}", $value, true);
} }
} }
@@ -1,4 +1,4 @@
// stylelint-disable property-blacklist, declaration-no-important // stylelint-disable property-disallowed-list, declaration-no-important
// //
// Border // Border
@@ -33,7 +33,7 @@
.embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} { .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {
&::before { &::before {
padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x); padding-top: percentage(divide($embed-responsive-aspect-ratio-y, $embed-responsive-aspect-ratio-x));
} }
} }
} }
@@ -0,0 +1,5 @@
// stylelint-disable declaration-no-important
@each $value in $user-selects {
.user-select-#{$value} { user-select: $value !important; }
}
@@ -30,7 +30,7 @@
// Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`) // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
@each $size, $length in $spacers { @each $size, $length in $spacers {
@if $size != 0 { @if "#{$size}" != "0" {
.m#{$infix}-n#{$size} { margin: -$length !important; } .m#{$infix}-n#{$size} { margin: -$length !important; }
.mt#{$infix}-n#{$size}, .mt#{$infix}-n#{$size},
.my#{$infix}-n#{$size} { .my#{$infix}-n#{$size} {
@@ -63,8 +63,8 @@
.text-decoration-none { text-decoration: none !important; } .text-decoration-none { text-decoration: none !important; }
.text-break { .text-break {
word-break: break-word !important; // IE & < Edge 18 word-break: break-word !important; // Deprecated, but avoids issues with flex containers
overflow-wrap: break-word !important; word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy
} }
// Reset // Reset
+126 -102
View File
@@ -2,9 +2,9 @@
// SCSS RFS mixin // SCSS RFS mixin
// //
// Automated font-resizing // Automated responsive font sizes
// //
// See https://github.com/twbs/rfs // Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)
// Configuration // Configuration
@@ -12,11 +12,19 @@
$rfs-base-font-size: 1.25rem !default; $rfs-base-font-size: 1.25rem !default;
$rfs-font-size-unit: rem !default; $rfs-font-size-unit: rem !default;
@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
}
// Breakpoint at where font-size starts decreasing if screen width is smaller // Breakpoint at where font-size starts decreasing if screen width is smaller
$rfs-breakpoint: 1200px !default; $rfs-breakpoint: 1200px !default;
$rfs-breakpoint-unit: px !default; $rfs-breakpoint-unit: px !default;
// Resize font-size based on screen height and width @if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
}
// Resize font size based on screen height and width
$rfs-two-dimensional: false !default; $rfs-two-dimensional: false !default;
// Factor of decrease // Factor of decrease
@@ -41,12 +49,54 @@ $enable-responsive-font-sizes: true !default;
// Cache $rfs-base-font-size unit // Cache $rfs-base-font-size unit
$rfs-base-font-size-unit: unit($rfs-base-font-size); $rfs-base-font-size-unit: unit($rfs-base-font-size);
@function divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
$dividend: abs($dividend);
$divisor: abs($divisor);
@if $dividend == 0 {
@return 0;
}
@if $divisor == 0 {
@error "Cannot divide by 0";
}
$remainder: $dividend;
$result: 0;
$factor: 10;
@while ($remainder > 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision < 0 and $remainder >= $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}
// Remove px-unit from $rfs-base-font-size for calculations // Remove px-unit from $rfs-base-font-size for calculations
@if $rfs-base-font-size-unit == "px" { @if $rfs-base-font-size-unit == "px" {
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1); $rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);
} }
@else if $rfs-base-font-size-unit == "rem" { @else if $rfs-base-font-size-unit == "rem" {
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value); $rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));
} }
// Cache $rfs-breakpoint unit to prevent multiple calls // Cache $rfs-breakpoint unit to prevent multiple calls
@@ -54,13 +104,55 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
// Remove unit from $rfs-breakpoint for calculations // Remove unit from $rfs-breakpoint for calculations
@if $rfs-breakpoint-unit-cache == "px" { @if $rfs-breakpoint-unit-cache == "px" {
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1); $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
} }
@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" { @else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value); $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
} }
// Responsive font-size mixin // Internal mixin that adds disable classes to the selector if needed.
@mixin _rfs-disable-class {
@if $rfs-class == "disable" {
// Adding an extra class increases specificity, which prevents the media query to override the font size
&,
.disable-responsive-font-size &,
&.disable-responsive-font-size {
@content;
}
}
@else {
@content;
}
}
// Internal mixin that adds enable classes to the selector if needed.
@mixin _rfs-enable-class {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
@content;
}
}
@else {
@content;
}
}
// Internal mixin used to determine which media query needs to be used
@mixin _rfs-media-query($mq-value) {
@if $rfs-two-dimensional {
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
@content;
}
}
@else {
@media (max-width: #{$mq-value}) {
@content;
}
}
}
// Responsive font size mixin
@mixin rfs($fs, $important: false) { @mixin rfs($fs, $important: false) {
// Cache $fs unit // Cache $fs unit
$fs-unit: if(type-of($fs) == "number", unit($fs), false); $fs-unit: if(type-of($fs) == "number", unit($fs), false);
@@ -73,128 +165,60 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
font-size: #{$fs}#{$rfs-suffix}; font-size: #{$fs}#{$rfs-suffix};
} }
@else { @else {
// Variables for storing static and fluid rescaling // Remove unit from $fs for calculations
$rfs-static: null;
$rfs-fluid: null;
// Remove px-unit from $fs for calculations
@if $fs-unit == "px" { @if $fs-unit == "px" {
$fs: $fs / ($fs * 0 + 1); $fs: divide($fs, $fs * 0 + 1);
} }
@else if $fs-unit == "rem" { @else if $fs-unit == "rem" {
$fs: $fs / ($fs * 0 + 1 / $rfs-rem-value); $fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));
} }
// Set default font-size // Set default font size
@if $rfs-font-size-unit == rem { $rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);
$rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
} // Only add the media query if the font size is bigger than the minimum font size
@else if $rfs-font-size-unit == px { @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {
$rfs-static: #{$fs}px#{$rfs-suffix}; font-size: #{$rfs-static}#{$rfs-suffix};
} }
@else { @else {
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`."; // Calculate the minimum font size for $fs
} $fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);
// Only add media query if font-size is bigger as the minimum font-size // Calculate difference between $fs and the minimum font size
// If $rfs-factor == 1, no rescaling will take place
@if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
$min-width: null;
$variable-unit: null;
// Calculate minimum font-size for given font-size
$fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
// Calculate difference between given font-size and minimum font-size for given font-size
$fs-diff: $fs - $fs-min; $fs-diff: $fs - $fs-min;
// Base font-size formatting // Base font-size formatting
// No need to check if the unit is valid, because we did that before $min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);
$min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
// If two-dimensional, use smallest of screen width and height // Use `vmin` if two-dimensional is enabled
$variable-unit: if($rfs-two-dimensional, vmin, vw); $variable-unit: if($rfs-two-dimensional, vmin, vw);
// Calculate the variable width between 0 and $rfs-breakpoint // Calculate the variable width between 0 and $rfs-breakpoint
$variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit}; $variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};
// Set the calculated font-size. // Set the calculated font-size
$rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix}; $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
}
// Rendering // Breakpoint formatting
@if $rfs-fluid == null { $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
// Only render static font-size if no fluid font-size is available
font-size: $rfs-static;
}
@else {
$mq-value: null;
// RFS breakpoint formatting @include _rfs-disable-class {
@if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem { font-size: #{$rfs-static}#{$rfs-suffix};
$mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
}
@else if $rfs-breakpoint-unit == px {
$mq-value: #{$rfs-breakpoint}px;
}
@else {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
} }
@if $rfs-class == "disable" { @include _rfs-media-query($mq-value) {
// Adding an extra class increases specificity, @include _rfs-enable-class {
// which prevents the media query to override the font size font-size: $rfs-fluid;
&,
.disable-responsive-font-size &,
&.disable-responsive-font-size {
font-size: $rfs-static;
} }
}
@else {
font-size: $rfs-static;
}
@if $rfs-two-dimensional { // Include safari iframe resize fix if needed
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) { min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
font-size: $rfs-fluid;
}
}
@else {
font-size: $rfs-fluid;
}
@if $rfs-safari-iframe-resize-bug-fix {
// stylelint-disable-next-line length-zero-no-unit
min-width: 0vw;
}
}
}
@else {
@media (max-width: #{$mq-value}) {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
font-size: $rfs-fluid;
}
}
@else {
font-size: $rfs-fluid;
}
@if $rfs-safari-iframe-resize-bug-fix {
// stylelint-disable-next-line length-zero-no-unit
min-width: 0vw;
}
}
} }
} }
} }
} }
// The font-size & responsive-font-size mixin uses RFS to rescale font sizes // The font-size & responsive-font-size mixins use RFS to rescale the font size
@mixin font-size($fs, $important: false) { @mixin font-size($fs, $important: false) {
@include rfs($fs, $important); @include rfs($fs, $important);
} }
+22 -21
View File
@@ -762,10 +762,14 @@
<Content Include="Config\BaseRestExtensions.config" /> <Content Include="Config\BaseRestExtensions.config" />
<Content Include="Config\applications.config" /> <Content Include="Config\applications.config" />
<Content Include="Config\404handlers.config" /> <Content Include="Config\404handlers.config" />
<Content Include="Content\bootstrap\_transitions.scss" />
<Content Include="fonts\glyphicons-halflings-regular.eot" />
<Content Include="fonts\glyphicons-halflings-regular.ttf" />
<Content Include="fonts\glyphicons-halflings-regular.woff" />
<Content Include="fonts\glyphicons-halflings-regular.woff2" />
<Content Include="Content\bootstrap\_variables.scss" /> <Content Include="Content\bootstrap\_variables.scss" />
<Content Include="Content\bootstrap\_utilities.scss" /> <Content Include="Content\bootstrap\_utilities.scss" />
<Content Include="Content\bootstrap\_type.scss" /> <Content Include="Content\bootstrap\_type.scss" />
<Content Include="Content\bootstrap\_transitions.scss" />
<Content Include="Content\bootstrap\_tooltip.scss" /> <Content Include="Content\bootstrap\_tooltip.scss" />
<Content Include="Content\bootstrap\_toasts.scss" /> <Content Include="Content\bootstrap\_toasts.scss" />
<Content Include="Content\bootstrap\_tables.scss" /> <Content Include="Content\bootstrap\_tables.scss" />
@@ -809,6 +813,7 @@
<Content Include="Content\bootstrap\utilities\_screenreaders.scss" /> <Content Include="Content\bootstrap\utilities\_screenreaders.scss" />
<Content Include="Content\bootstrap\utilities\_position.scss" /> <Content Include="Content\bootstrap\utilities\_position.scss" />
<Content Include="Content\bootstrap\utilities\_overflow.scss" /> <Content Include="Content\bootstrap\utilities\_overflow.scss" />
<Content Include="Content\bootstrap\utilities\_interactions.scss" />
<Content Include="Content\bootstrap\utilities\_float.scss" /> <Content Include="Content\bootstrap\utilities\_float.scss" />
<Content Include="Content\bootstrap\utilities\_flex.scss" /> <Content Include="Content\bootstrap\utilities\_flex.scss" />
<Content Include="Content\bootstrap\utilities\_embed.scss" /> <Content Include="Content\bootstrap\utilities\_embed.scss" />
@@ -851,10 +856,6 @@
<Content Include="Content\bootstrap\bootstrap.scss" /> <Content Include="Content\bootstrap\bootstrap.scss" />
<Content Include="Content\bootstrap\bootstrap-reboot.scss" /> <Content Include="Content\bootstrap\bootstrap-reboot.scss" />
<Content Include="Content\bootstrap\bootstrap-grid.scss" /> <Content Include="Content\bootstrap\bootstrap-grid.scss" />
<Content Include="fonts\glyphicons-halflings-regular.eot" />
<Content Include="fonts\glyphicons-halflings-regular.ttf" />
<Content Include="fonts\glyphicons-halflings-regular.woff" />
<Content Include="fonts\glyphicons-halflings-regular.woff2" />
<None Include="Properties\PublishProfiles\LeafWebUmbraco - Web Deploy.pubxml" /> <None Include="Properties\PublishProfiles\LeafWebUmbraco - Web Deploy.pubxml" />
<Content Include="scripts\bootstrap.bundle.js" /> <Content Include="scripts\bootstrap.bundle.js" />
<Content Include="scripts\bootstrap.bundle.min.js" /> <Content Include="scripts\bootstrap.bundle.min.js" />
@@ -893,13 +894,14 @@
<Content Include="scripts\jquery.validate.custom.js" /> <Content Include="scripts\jquery.validate.custom.js" />
<Content Include="scripts\jquery.validate.unobtrusive.js" /> <Content Include="scripts\jquery.validate.unobtrusive.js" />
<Content Include="scripts\jquery.validate.unobtrusive.min.js" /> <Content Include="scripts\jquery.validate.unobtrusive.min.js" />
<Content Include="scripts\Queue.js" />
<Content Include="scripts\LeafInputCreate.js" />
<Content Include="scripts\popper-utils.js" /> <Content Include="scripts\popper-utils.js" />
<Content Include="scripts\popper-utils.min.js" /> <Content Include="scripts\popper-utils.min.js" />
<Content Include="scripts\popper.js" /> <Content Include="scripts\popper.js" />
<Content Include="scripts\popper.min.js" /> <Content Include="scripts\popper.min.js" />
<Content Include="scripts\Queue.js" />
<Content Include="scripts\LeafInputCreate.js" />
<Content Include="scripts\Register.js" /> <Content Include="scripts\Register.js" />
<Content Include="robots.txt" />
<Content Include="scripts\src\index.js" /> <Content Include="scripts\src\index.js" />
<Content Include="scripts\src\methods\defaults.js" /> <Content Include="scripts\src\methods\defaults.js" />
<Content Include="scripts\src\methods\destroy.js" /> <Content Include="scripts\src\methods\destroy.js" />
@@ -967,7 +969,6 @@
<Content Include="scripts\umd\popper-utils.min.js" /> <Content Include="scripts\umd\popper-utils.min.js" />
<Content Include="scripts\umd\popper.js" /> <Content Include="scripts\umd\popper.js" />
<Content Include="scripts\umd\popper.min.js" /> <Content Include="scripts\umd\popper.min.js" />
<Content Include="robots.txt" />
<Content Include="Views\Web.config" /> <Content Include="Views\Web.config" />
<Content Include="Config\umbracoSettings.config" /> <Content Include="Config\umbracoSettings.config" />
<Content Include="Config\log4net.config" /> <Content Include="Config\log4net.config" />
@@ -1054,16 +1055,6 @@
<Content Include="Views\Partials\Grid\Bootstrap3-Fluid.cshtml" /> <Content Include="Views\Partials\Grid\Bootstrap3-Fluid.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap2.cshtml" /> <Content Include="Views\Partials\Grid\Bootstrap2.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap2-Fluid.cshtml" /> <Content Include="Views\Partials\Grid\Bootstrap2-Fluid.cshtml" />
<Content Include="scripts\umd\popper.min.js.map" />
<Content Include="scripts\umd\popper.js.map" />
<Content Include="scripts\umd\popper.js.flow" />
<Content Include="scripts\umd\popper-utils.min.js.map" />
<Content Include="scripts\umd\popper-utils.js.map" />
<Content Include="scripts\README.md" />
<Content Include="scripts\popper.min.js.map" />
<Content Include="scripts\popper.js.map" />
<Content Include="scripts\popper-utils.min.js.map" />
<Content Include="scripts\popper-utils.js.map" />
<Content Include="Views\MacroPartials\Membership\Register.cshtml" /> <Content Include="Views\MacroPartials\Membership\Register.cshtml" />
<Content Include="Views\Shared\EditorTemplates\EmailAddress.cshtml" /> <Content Include="Views\Shared\EditorTemplates\EmailAddress.cshtml" />
<Content Include="Views\Shared\EditorTemplates\PasswordWithForgotLink.cshtml" /> <Content Include="Views\Shared\EditorTemplates\PasswordWithForgotLink.cshtml" />
@@ -1090,6 +1081,16 @@
<Content Include="Views\Results\LeafInput.cshtml" /> <Content Include="Views\Results\LeafInput.cshtml" />
<Content Include="Views\Results\NoResults.cshtml" /> <Content Include="Views\Results\NoResults.cshtml" />
<Content Include="Views\MacroPartials\MediaLink.cshtml" /> <Content Include="Views\MacroPartials\MediaLink.cshtml" />
<Content Include="scripts\umd\popper.min.js.map" />
<Content Include="scripts\umd\popper.js.map" />
<Content Include="scripts\umd\popper.js.flow" />
<Content Include="scripts\umd\popper-utils.min.js.map" />
<Content Include="scripts\umd\popper-utils.js.map" />
<Content Include="scripts\README.md" />
<Content Include="scripts\popper.min.js.map" />
<Content Include="scripts\popper.js.map" />
<Content Include="scripts\popper-utils.min.js.map" />
<Content Include="scripts\popper-utils.js.map" />
<None Include="Web.Debug.config"> <None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon> <DependentUpon>Web.config</DependentUpon>
</None> </None>
@@ -1179,13 +1180,13 @@
<ItemGroup> <ItemGroup>
<Service Include="{4A0DDDB5-7A95-4FBF-97CC-616D07737A77}" /> <Service Include="{4A0DDDB5-7A95-4FBF-97CC-616D07737A77}" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<TypeScriptCompile Include="scripts\index.d.ts" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" /> <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" /> <Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.1.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<TypeScriptCompile Include="scripts\index.d.ts" />
</ItemGroup>
<PropertyGroup> <PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+2 -2
View File
@@ -4,7 +4,7 @@
<package id="AutoMapper" version="3.3.1" allowedVersions="[3.3.1]" targetFramework="net452" /> <package id="AutoMapper" version="3.3.1" allowedVersions="[3.3.1]" targetFramework="net452" />
<package id="Backload" version="2.2.7" targetFramework="net452" /> <package id="Backload" version="2.2.7" targetFramework="net452" />
<package id="Backload.Core" version="2.2.7" targetFramework="net452" /> <package id="Backload.Core" version="2.2.7" targetFramework="net452" />
<package id="bootstrap.sass" version="4.4.1" targetFramework="net452" /> <package id="bootstrap.sass" version="4.6.1" targetFramework="net472" />
<package id="ClientDependency" version="1.9.8" targetFramework="net452" /> <package id="ClientDependency" version="1.9.8" targetFramework="net452" />
<package id="ClientDependency-Mvc5" version="1.9.3" targetFramework="net452" /> <package id="ClientDependency-Mvc5" version="1.9.3" targetFramework="net452" />
<package id="EntityFramework" version="6.4.4" targetFramework="net472" /> <package id="EntityFramework" version="6.4.4" targetFramework="net472" />
@@ -59,7 +59,7 @@
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net452" /> <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net452" />
<package id="Owin" version="1.0" targetFramework="net452" /> <package id="Owin" version="1.0" targetFramework="net452" />
<package id="Polly" version="7.2.3" targetFramework="net472" /> <package id="Polly" version="7.2.3" targetFramework="net472" />
<package id="popper.js" version="1.16.0" targetFramework="net452" /> <package id="popper.js" version="1.16.1" targetFramework="net472" />
<package id="ReCaptcha-AspNet" version="1.9.0" targetFramework="net452" requireReinstallation="true" /> <package id="ReCaptcha-AspNet" version="1.9.0" targetFramework="net452" requireReinstallation="true" />
<package id="semver" version="1.1.2" targetFramework="net452" /> <package id="semver" version="1.1.2" targetFramework="net452" />
<package id="SharpZipLib" version="1.2.0" targetFramework="net452" /> <package id="SharpZipLib" version="1.2.0" targetFramework="net452" />
+1052 -1214
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1043 -1207
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+4 -4
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6 -6
View File
@@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.0 * @version 1.16.1
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -284,7 +284,7 @@ function getBordersSize(styles, axis) {
var sideA = axis === 'x' ? 'Left' : 'Top'; var sideA = axis === 'x' ? 'Left' : 'Top';
var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
} }
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
@@ -396,8 +396,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var scrollParent = getScrollParent(children); var scrollParent = getScrollParent(children);
var styles = getStyleComputedProperty(parent); var styles = getStyleComputedProperty(parent);
var borderTopWidth = parseFloat(styles.borderTopWidth, 10); var borderTopWidth = parseFloat(styles.borderTopWidth);
var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); var borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) { if (fixedPosition && isHTML) {
@@ -418,8 +418,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
var marginTop = parseFloat(styles.marginTop, 10); var marginTop = parseFloat(styles.marginTop);
var marginLeft = parseFloat(styles.marginLeft, 10); var marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+8 -8
View File
@@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.0 * @version 1.16.1
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -346,7 +346,7 @@ function getBordersSize(styles, axis) {
var sideA = axis === 'x' ? 'Left' : 'Top'; var sideA = axis === 'x' ? 'Left' : 'Top';
var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
} }
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
@@ -501,8 +501,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var scrollParent = getScrollParent(children); var scrollParent = getScrollParent(children);
var styles = getStyleComputedProperty(parent); var styles = getStyleComputedProperty(parent);
var borderTopWidth = parseFloat(styles.borderTopWidth, 10); var borderTopWidth = parseFloat(styles.borderTopWidth);
var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); var borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) { if (fixedPosition && isHTML) {
@@ -523,8 +523,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
var marginTop = parseFloat(styles.marginTop, 10); var marginTop = parseFloat(styles.marginTop);
var marginLeft = parseFloat(styles.marginLeft, 10); var marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
@@ -1463,8 +1463,8 @@ function arrow(data, options) {
// Compute the sideValue using the updated popper offsets // Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available // take popper margin in account because we don't have this info available
var css = getStyleComputedProperty(data.instance.popper); var css = getStyleComputedProperty(data.instance.popper);
var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
// prevent arrowElement from being placed not contiguously to its popper // prevent arrowElement from being placed not contiguously to its popper
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6 -6
View File
@@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.0 * @version 1.16.1
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -273,7 +273,7 @@ function getBordersSize(styles, axis) {
const sideA = axis === 'x' ? 'Left' : 'Top'; const sideA = axis === 'x' ? 'Left' : 'Top';
const sideB = sideA === 'Left' ? 'Right' : 'Bottom'; const sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return parseFloat(styles[`border${sideA}Width`], 10) + parseFloat(styles[`border${sideB}Width`], 10); return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);
} }
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
@@ -383,8 +383,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition =
const scrollParent = getScrollParent(children); const scrollParent = getScrollParent(children);
const styles = getStyleComputedProperty(parent); const styles = getStyleComputedProperty(parent);
const borderTopWidth = parseFloat(styles.borderTopWidth, 10); const borderTopWidth = parseFloat(styles.borderTopWidth);
const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); const borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) { if (fixedPosition && isHTML) {
@@ -405,8 +405,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition =
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
const marginTop = parseFloat(styles.marginTop, 10); const marginTop = parseFloat(styles.marginTop);
const marginLeft = parseFloat(styles.marginLeft, 10); const marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+8 -8
View File
@@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.0 * @version 1.16.1
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -335,7 +335,7 @@ function getBordersSize(styles, axis) {
const sideA = axis === 'x' ? 'Left' : 'Top'; const sideA = axis === 'x' ? 'Left' : 'Top';
const sideB = sideA === 'Left' ? 'Right' : 'Bottom'; const sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return parseFloat(styles[`border${sideA}Width`], 10) + parseFloat(styles[`border${sideB}Width`], 10); return parseFloat(styles[`border${sideA}Width`]) + parseFloat(styles[`border${sideB}Width`]);
} }
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
@@ -445,8 +445,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition =
const scrollParent = getScrollParent(children); const scrollParent = getScrollParent(children);
const styles = getStyleComputedProperty(parent); const styles = getStyleComputedProperty(parent);
const borderTopWidth = parseFloat(styles.borderTopWidth, 10); const borderTopWidth = parseFloat(styles.borderTopWidth);
const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); const borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) { if (fixedPosition && isHTML) {
@@ -467,8 +467,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition =
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
const marginTop = parseFloat(styles.marginTop, 10); const marginTop = parseFloat(styles.marginTop);
const marginLeft = parseFloat(styles.marginLeft, 10); const marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
@@ -1356,8 +1356,8 @@ function arrow(data, options) {
// Compute the sideValue using the updated popper offsets // Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available // take popper margin in account because we don't have this info available
const css = getStyleComputedProperty(data.instance.popper); const css = getStyleComputedProperty(data.instance.popper);
const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10); const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);
const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10); const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);
let sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; let sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
// prevent arrowElement from being placed not contiguously to its popper // prevent arrowElement from being placed not contiguously to its popper
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -71,8 +71,8 @@ export default function arrow(data, options) {
// Compute the sideValue using the updated popper offsets // Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available // take popper margin in account because we don't have this info available
const css = getStyleComputedProperty(data.instance.popper); const css = getStyleComputedProperty(data.instance.popper);
const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10); const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);
const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10); const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);
let sideValue = let sideValue =
center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
+2 -2
View File
@@ -13,7 +13,7 @@ export default function getBordersSize(styles, axis) {
const sideB = sideA === 'Left' ? 'Right' : 'Bottom'; const sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return ( return (
parseFloat(styles[`border${sideA}Width`], 10) + parseFloat(styles[`border${sideA}Width`]) +
parseFloat(styles[`border${sideB}Width`], 10) parseFloat(styles[`border${sideB}Width`])
); );
} }
@@ -13,8 +13,8 @@ export default function getOffsetRectRelativeToArbitraryNode(children, parent, f
const scrollParent = getScrollParent(children); const scrollParent = getScrollParent(children);
const styles = getStyleComputedProperty(parent); const styles = getStyleComputedProperty(parent);
const borderTopWidth = parseFloat(styles.borderTopWidth, 10); const borderTopWidth = parseFloat(styles.borderTopWidth);
const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); const borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if(fixedPosition && isHTML) { if(fixedPosition && isHTML) {
@@ -35,8 +35,8 @@ export default function getOffsetRectRelativeToArbitraryNode(children, parent, f
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
const marginTop = parseFloat(styles.marginTop, 10); const marginTop = parseFloat(styles.marginTop);
const marginLeft = parseFloat(styles.marginLeft, 10); const marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
+6 -6
View File
@@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.0 * @version 1.16.1
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -290,7 +290,7 @@ function getBordersSize(styles, axis) {
var sideA = axis === 'x' ? 'Left' : 'Top'; var sideA = axis === 'x' ? 'Left' : 'Top';
var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
} }
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
@@ -402,8 +402,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var scrollParent = getScrollParent(children); var scrollParent = getScrollParent(children);
var styles = getStyleComputedProperty(parent); var styles = getStyleComputedProperty(parent);
var borderTopWidth = parseFloat(styles.borderTopWidth, 10); var borderTopWidth = parseFloat(styles.borderTopWidth);
var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); var borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) { if (fixedPosition && isHTML) {
@@ -424,8 +424,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
var marginTop = parseFloat(styles.marginTop, 10); var marginTop = parseFloat(styles.marginTop);
var marginLeft = parseFloat(styles.marginLeft, 10); var marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+8 -8
View File
@@ -1,6 +1,6 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.0 * @version 1.16.1
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -352,7 +352,7 @@ function getBordersSize(styles, axis) {
var sideA = axis === 'x' ? 'Left' : 'Top'; var sideA = axis === 'x' ? 'Left' : 'Top';
var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);
} }
function getSize(axis, body, html, computedStyle) { function getSize(axis, body, html, computedStyle) {
@@ -507,8 +507,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
var scrollParent = getScrollParent(children); var scrollParent = getScrollParent(children);
var styles = getStyleComputedProperty(parent); var styles = getStyleComputedProperty(parent);
var borderTopWidth = parseFloat(styles.borderTopWidth, 10); var borderTopWidth = parseFloat(styles.borderTopWidth);
var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); var borderLeftWidth = parseFloat(styles.borderLeftWidth);
// In cases where the parent is fixed, we must ignore negative scroll in offset calc // In cases where the parent is fixed, we must ignore negative scroll in offset calc
if (fixedPosition && isHTML) { if (fixedPosition && isHTML) {
@@ -529,8 +529,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) {
// differently when margins are applied to it. The margins are included in // differently when margins are applied to it. The margins are included in
// the box of the documentElement, in the other cases not. // the box of the documentElement, in the other cases not.
if (!isIE10 && isHTML) { if (!isIE10 && isHTML) {
var marginTop = parseFloat(styles.marginTop, 10); var marginTop = parseFloat(styles.marginTop);
var marginLeft = parseFloat(styles.marginLeft, 10); var marginLeft = parseFloat(styles.marginLeft);
offsets.top -= borderTopWidth - marginTop; offsets.top -= borderTopWidth - marginTop;
offsets.bottom -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop;
@@ -1469,8 +1469,8 @@ function arrow(data, options) {
// Compute the sideValue using the updated popper offsets // Compute the sideValue using the updated popper offsets
// take popper margin in account because we don't have this info available // take popper margin in account because we don't have this info available
var css = getStyleComputedProperty(data.instance.popper); var css = getStyleComputedProperty(data.instance.popper);
var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);
var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);
var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
// prevent arrowElement from being placed not contiguously to its popper // prevent arrowElement from being placed not contiguously to its popper
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long