`s.
.nav {
+ // scss-docs-start nav-css-vars
+ --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
+ --#{$prefix}nav-link-color: #{$nav-link-color};
+ --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
+ --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
+ // scss-docs-end nav-css-vars
+
display: flex;
flex-wrap: wrap;
padding-left: 0;
@@ -13,15 +23,22 @@
.nav-link {
display: block;
- padding: $nav-link-padding-y $nav-link-padding-x;
-
- @include hover-focus {
- text-decoration: none;
+ padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
+ @include font-size(var(--#{$prefix}nav-link-font-size));
+ font-weight: var(--#{$prefix}nav-link-font-weight);
+ color: var(--#{$prefix}nav-link-color);
+ text-decoration: if($link-decoration == none, null, none);
+ @include transition($nav-link-transition);
+
+ &:hover,
+ &:focus {
+ color: var(--#{$prefix}nav-link-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
}
// Disabled state lightens text
&.disabled {
- color: $nav-link-disabled-color;
+ color: var(--#{$prefix}nav-link-disabled-color);
pointer-events: none;
cursor: default;
}
@@ -32,22 +49,34 @@
//
.nav-tabs {
- border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
-
- .nav-item {
- margin-bottom: -$nav-tabs-border-width;
- }
+ // scss-docs-start nav-tabs-css-vars
+ --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
+ --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
+ --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
+ --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
+ --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
+ --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
+ --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
+ // scss-docs-end nav-tabs-css-vars
+
+ border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
.nav-link {
- border: $nav-tabs-border-width solid transparent;
- @include border-top-radius($nav-tabs-border-radius);
-
- @include hover-focus {
- border-color: $nav-tabs-link-hover-border-color;
+ margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
+ background: none;
+ border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
+ @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
+
+ &:hover,
+ &:focus {
+ // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
+ isolation: isolate;
+ border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
}
- &.disabled {
- color: $nav-link-disabled-color;
+ &.disabled,
+ &:disabled {
+ color: var(--#{$prefix}nav-link-disabled-color);
background-color: transparent;
border-color: transparent;
}
@@ -55,14 +84,14 @@
.nav-link.active,
.nav-item.show .nav-link {
- color: $nav-tabs-link-active-color;
- background-color: $nav-tabs-link-active-bg;
- border-color: $nav-tabs-link-active-border-color;
+ color: var(--#{$prefix}nav-tabs-link-active-color);
+ background-color: var(--#{$prefix}nav-tabs-link-active-bg);
+ border-color: var(--#{$prefix}nav-tabs-link-active-border-color);
}
.dropdown-menu {
// Make dropdown border overlap tab border
- margin-top: -$nav-tabs-border-width;
+ margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
// Remove the top rounded corners here since there is a hard edge above the menu
@include border-top-radius(0);
}
@@ -74,14 +103,28 @@
//
.nav-pills {
+ // scss-docs-start nav-pills-css-vars
+ --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
+ --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
+ --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
+ // scss-docs-end nav-pills-css-vars
+
.nav-link {
- @include border-radius($nav-pills-border-radius);
+ background: none;
+ border: 0;
+ @include border-radius(var(--#{$prefix}nav-pills-border-radius));
+
+ &:disabled {
+ color: var(--#{$prefix}nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent;
+ }
}
.nav-link.active,
.show > .nav-link {
- color: $nav-pills-link-active-color;
- background-color: $nav-pills-link-active-bg;
+ color: var(--#{$prefix}nav-pills-link-active-color);
+ @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));
}
}
@@ -91,6 +134,7 @@
//
.nav-fill {
+ > .nav-link,
.nav-item {
flex: 1 1 auto;
text-align: center;
@@ -98,6 +142,7 @@
}
.nav-justified {
+ > .nav-link,
.nav-item {
flex-basis: 0;
flex-grow: 1;
@@ -105,6 +150,13 @@
}
}
+.nav-fill,
+.nav-justified {
+ .nav-item .nav-link {
+ width: 100%; // Make sure button will grow
+ }
+}
+
// Tabbable tabs
//
diff --git a/extension_explorer/static/lib/bootstrap/_navbar.scss b/extension_explorer/static/lib/bootstrap/_navbar.scss
index b5bc5a974..599b055eb 100644
--- a/extension_explorer/static/lib/bootstrap/_navbar.scss
+++ b/extension_explorer/static/lib/bootstrap/_navbar.scss
@@ -1,37 +1,60 @@
-// Contents
-//
-// Navbar
-// Navbar brand
-// Navbar nav
-// Navbar text
-// Navbar divider
-// Responsive navbar
-// Navbar position
-// Navbar themes
-
-
// Navbar
//
// Provide a static navbar from which we expand to create full-width, fixed, and
// other navbar variations.
.navbar {
+ // scss-docs-start navbar-css-vars
+ --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
+ --#{$prefix}navbar-padding-y: #{$navbar-padding-y};
+ --#{$prefix}navbar-color: #{$navbar-light-color};
+ --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
+ --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
+ --#{$prefix}navbar-active-color: #{$navbar-light-active-color};
+ --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
+ --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
+ --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
+ --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
+ --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
+ --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
+ --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
+ --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
+ --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
+ --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
+ --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
+ // scss-docs-end navbar-css-vars
+
position: relative;
display: flex;
flex-wrap: wrap; // allow us to do the line break for collapsing content
align-items: center;
justify-content: space-between; // space out brand from logo
- padding: $navbar-padding-y $navbar-padding-x;
+ padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);
+ @include gradient-bg();
// Because flex properties aren't inherited, we need to redeclare these first
// few properties so that content nested within behave properly.
- > .container,
- > .container-fluid {
+ // The `flex-wrap` property is inherited to simplify the expanded navbars
+ %container-flex-properties {
display: flex;
- flex-wrap: wrap;
+ flex-wrap: inherit;
align-items: center;
justify-content: space-between;
}
+
+ > .container,
+ > .container-fluid {
+ @extend %container-flex-properties;
+ }
+
+ @each $breakpoint, $container-max-width in $container-max-widths {
+ > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
+ @extend %container-flex-properties;
+ }
+ }
}
@@ -40,16 +63,18 @@
// Used for brand, project, or site names.
.navbar-brand {
- display: inline-block;
- padding-top: $navbar-brand-padding-y;
- padding-bottom: $navbar-brand-padding-y;
- margin-right: $navbar-padding-x;
- font-size: $navbar-brand-font-size;
- line-height: inherit;
+ padding-top: var(--#{$prefix}navbar-brand-padding-y);
+ padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
+ margin-right: var(--#{$prefix}navbar-brand-margin-end);
+ @include font-size(var(--#{$prefix}navbar-brand-font-size));
+ color: var(--#{$prefix}navbar-brand-color);
+ text-decoration: if($link-decoration == none, null, none);
white-space: nowrap;
- @include hover-focus {
- text-decoration: none;
+ &:hover,
+ &:focus {
+ color: var(--#{$prefix}navbar-brand-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
}
}
@@ -59,20 +84,29 @@
// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
.navbar-nav {
+ // scss-docs-start navbar-nav-css-vars
+ --#{$prefix}nav-link-padding-x: 0;
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
+ --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
+ --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
+ --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
+ // scss-docs-end navbar-nav-css-vars
+
display: flex;
flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
padding-left: 0;
margin-bottom: 0;
list-style: none;
- .nav-link {
- padding-right: 0;
- padding-left: 0;
+ .show > .nav-link,
+ .nav-link.active {
+ color: var(--#{$prefix}navbar-active-color);
}
.dropdown-menu {
position: static;
- float: none;
}
}
@@ -82,9 +116,15 @@
//
.navbar-text {
- display: inline-block;
padding-top: $nav-link-padding-y;
padding-bottom: $nav-link-padding-y;
+ color: var(--#{$prefix}navbar-color);
+
+ a,
+ a:hover,
+ a:focus {
+ color: var(--#{$prefix}navbar-active-color);
+ }
}
@@ -106,20 +146,23 @@
// Button for toggling the navbar when in its collapsed state
.navbar-toggler {
- padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
- font-size: $navbar-toggler-font-size;
+ padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);
+ @include font-size(var(--#{$prefix}navbar-toggler-font-size));
line-height: 1;
+ color: var(--#{$prefix}navbar-color);
background-color: transparent; // remove default button style
- border: $border-width solid transparent; // remove default button style
- @include border-radius($navbar-toggler-border-radius);
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
+ @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));
+ @include transition(var(--#{$prefix}navbar-toggler-transition));
- @include hover-focus {
+ &:hover {
text-decoration: none;
}
- // Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
- &:not(:disabled):not(.disabled) {
- cursor: pointer;
+ &:focus {
+ text-decoration: none;
+ outline: 0;
+ box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);
}
}
@@ -130,11 +173,18 @@
width: 1.5em;
height: 1.5em;
vertical-align: middle;
- content: "";
- background: no-repeat center center;
- background-size: 100% 100%;
+ background-image: var(--#{$prefix}navbar-toggler-icon-bg);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+}
+
+.navbar-nav-scroll {
+ max-height: var(--#{$prefix}scroll-height, 75vh);
+ overflow-y: auto;
}
+// scss-docs-start navbar-expand-loop
// Generate series of `.navbar-expand-*` responsive classes for configuring
// where your navbar collapses.
.navbar-expand {
@@ -142,17 +192,10 @@
$next: breakpoint-next($breakpoint, $grid-breakpoints);
$infix: breakpoint-infix($next, $grid-breakpoints);
+ // stylelint-disable-next-line scss/selector-no-union-class-name
{$infix} {
- @include media-breakpoint-down($breakpoint) {
- > .container,
- > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
- }
-
@include media-breakpoint-up($next) {
- flex-flow: row nowrap;
+ flex-wrap: nowrap;
justify-content: flex-start;
.navbar-nav {
@@ -163,137 +206,73 @@
}
.nav-link {
- padding-right: $navbar-nav-link-padding-x;
- padding-left: $navbar-nav-link-padding-x;
+ padding-right: var(--#{$prefix}navbar-nav-link-padding-x);
+ padding-left: var(--#{$prefix}navbar-nav-link-padding-x);
}
}
- // For nesting containers, have to redeclare for alignment purposes
- > .container,
- > .container-fluid {
- flex-wrap: nowrap;
+ .navbar-nav-scroll {
+ overflow: visible;
}
.navbar-collapse {
- display: flex !important; // stylelint-disable-line declaration-no-important
-
- // Changes flex-bases to auto because of an IE10 bug
+ display: flex !important; // stylelint-disable-line declaration-no-important
flex-basis: auto;
}
.navbar-toggler {
display: none;
}
+
+ .offcanvas {
+ // stylelint-disable declaration-no-important
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ @include box-shadow(none);
+ @include transition(none);
+ // stylelint-enable declaration-no-important
+
+ .offcanvas-header {
+ display: none;
+ }
+
+ .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+ }
}
}
}
}
-
+// scss-docs-end navbar-expand-loop
// Navbar themes
//
// Styles for switching between navbars with light or dark background.
-// Dark links against a light background
.navbar-light {
- .navbar-brand {
- color: $navbar-light-brand-color;
-
- @include hover-focus {
- color: $navbar-light-brand-hover-color;
- }
- }
-
- .navbar-nav {
- .nav-link {
- color: $navbar-light-color;
-
- @include hover-focus {
- color: $navbar-light-hover-color;
- }
-
- &.disabled {
- color: $navbar-light-disabled-color;
- }
- }
-
- .show > .nav-link,
- .active > .nav-link,
- .nav-link.show,
- .nav-link.active {
- color: $navbar-light-active-color;
- }
- }
-
- .navbar-toggler {
- color: $navbar-light-color;
- border-color: $navbar-light-toggler-border-color;
- }
-
- .navbar-toggler-icon {
- background-image: $navbar-light-toggler-icon-bg;
- }
-
- .navbar-text {
- color: $navbar-light-color;
- a {
- color: $navbar-light-active-color;
-
- @include hover-focus {
- color: $navbar-light-active-color;
- }
- }
- }
+ @include deprecate("`.navbar-light`", "v5.2.0", "v6.0.0", true);
}
-// White links against a dark background
.navbar-dark {
- .navbar-brand {
- color: $navbar-dark-brand-color;
-
- @include hover-focus {
- color: $navbar-dark-brand-hover-color;
- }
- }
-
- .navbar-nav {
- .nav-link {
- color: $navbar-dark-color;
-
- @include hover-focus {
- color: $navbar-dark-hover-color;
- }
-
- &.disabled {
- color: $navbar-dark-disabled-color;
- }
- }
-
- .show > .nav-link,
- .active > .nav-link,
- .nav-link.show,
- .nav-link.active {
- color: $navbar-dark-active-color;
- }
- }
-
- .navbar-toggler {
- color: $navbar-dark-color;
- border-color: $navbar-dark-toggler-border-color;
- }
-
- .navbar-toggler-icon {
- background-image: $navbar-dark-toggler-icon-bg;
- }
-
- .navbar-text {
- color: $navbar-dark-color;
- a {
- color: $navbar-dark-active-color;
-
- @include hover-focus {
- color: $navbar-dark-active-color;
- }
- }
- }
+ // scss-docs-start navbar-dark-css-vars
+ --#{$prefix}navbar-color: #{$navbar-dark-color};
+ --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
+ --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
+ --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
+ --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
+ // scss-docs-end navbar-dark-css-vars
}
diff --git a/extension_explorer/static/lib/bootstrap/_offcanvas.scss b/extension_explorer/static/lib/bootstrap/_offcanvas.scss
new file mode 100644
index 000000000..23fc357f2
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/_offcanvas.scss
@@ -0,0 +1,144 @@
+// stylelint-disable function-disallowed-list
+
+%offcanvas-css-vars {
+ // scss-docs-start offcanvas-css-vars
+ --#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};
+ --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
+ --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
+ --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
+ --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
+ --#{$prefix}offcanvas-color: #{$offcanvas-color};
+ --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
+ --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
+ --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
+ --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
+ // scss-docs-end offcanvas-css-vars
+}
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ .offcanvas#{$infix} {
+ @extend %offcanvas-css-vars;
+ }
+}
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ .offcanvas#{$infix} {
+ @include media-breakpoint-down($next) {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--#{$prefix}offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--#{$prefix}offcanvas-color);
+ visibility: hidden;
+ background-color: var(--#{$prefix}offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));
+ @include transition(transform $offcanvas-transition-duration ease-in-out);
+
+ &.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--#{$prefix}offcanvas-width);
+ border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+
+ &.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--#{$prefix}offcanvas-width);
+ border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateX(100%);
+ }
+
+ &.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--#{$prefix}offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+
+ &.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--#{$prefix}offcanvas-height);
+ max-height: 100%;
+ border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateY(100%);
+ }
+
+ &.showing,
+ &.show:not(.hiding) {
+ transform: none;
+ }
+
+ &.showing,
+ &.hiding,
+ &.show {
+ visibility: visible;
+ }
+ }
+
+ @if not ($infix == "") {
+ @include media-breakpoint-up($next) {
+ --#{$prefix}offcanvas-height: auto;
+ --#{$prefix}offcanvas-border-width: 0;
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
+
+ .offcanvas-header {
+ display: none;
+ }
+
+ .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ // Reset `background-color` in case `.bg-*` classes are used in offcanvas
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
+ }
+ }
+ }
+ }
+}
+
+.offcanvas-backdrop {
+ @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);
+}
+
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
+
+ .btn-close {
+ padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
+ margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
+ margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));
+ margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
+ }
+}
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: $offcanvas-title-line-height;
+}
+
+.offcanvas-body {
+ flex-grow: 1;
+ padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
+ overflow-y: auto;
+}
diff --git a/extension_explorer/static/lib/bootstrap/_pagination.scss b/extension_explorer/static/lib/bootstrap/_pagination.scss
index 9349f3f90..cf4db3c36 100644
--- a/extension_explorer/static/lib/bootstrap/_pagination.scss
+++ b/extension_explorer/static/lib/bootstrap/_pagination.scss
@@ -1,66 +1,97 @@
.pagination {
+ // scss-docs-start pagination-css-vars
+ --#{$prefix}pagination-padding-x: #{$pagination-padding-x};
+ --#{$prefix}pagination-padding-y: #{$pagination-padding-y};
+ @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);
+ --#{$prefix}pagination-color: #{$pagination-color};
+ --#{$prefix}pagination-bg: #{$pagination-bg};
+ --#{$prefix}pagination-border-width: #{$pagination-border-width};
+ --#{$prefix}pagination-border-color: #{$pagination-border-color};
+ --#{$prefix}pagination-border-radius: #{$pagination-border-radius};
+ --#{$prefix}pagination-hover-color: #{$pagination-hover-color};
+ --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};
+ --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};
+ --#{$prefix}pagination-focus-color: #{$pagination-focus-color};
+ --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};
+ --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};
+ --#{$prefix}pagination-active-color: #{$pagination-active-color};
+ --#{$prefix}pagination-active-bg: #{$pagination-active-bg};
+ --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};
+ --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};
+ --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};
+ --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};
+ // scss-docs-end pagination-css-vars
+
display: flex;
@include list-unstyled();
- @include border-radius();
}
.page-link {
position: relative;
display: block;
- padding: $pagination-padding-y $pagination-padding-x;
- margin-left: -$pagination-border-width;
- line-height: $pagination-line-height;
- color: $pagination-color;
- background-color: $pagination-bg;
- border: $pagination-border-width solid $pagination-border-color;
+ padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);
+ @include font-size(var(--#{$prefix}pagination-font-size));
+ color: var(--#{$prefix}pagination-color);
+ text-decoration: if($link-decoration == none, null, none);
+ background-color: var(--#{$prefix}pagination-bg);
+ border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);
+ @include transition($pagination-transition);
&:hover {
z-index: 2;
- color: $pagination-hover-color;
- text-decoration: none;
- background-color: $pagination-hover-bg;
- border-color: $pagination-hover-border-color;
+ color: var(--#{$prefix}pagination-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ background-color: var(--#{$prefix}pagination-hover-bg);
+ border-color: var(--#{$prefix}pagination-hover-border-color);
}
&:focus {
- z-index: 2;
+ z-index: 3;
+ color: var(--#{$prefix}pagination-focus-color);
+ background-color: var(--#{$prefix}pagination-focus-bg);
outline: $pagination-focus-outline;
- box-shadow: $pagination-focus-box-shadow;
+ box-shadow: var(--#{$prefix}pagination-focus-box-shadow);
+ }
+
+ &.active,
+ .active > & {
+ z-index: 3;
+ color: var(--#{$prefix}pagination-active-color);
+ @include gradient-bg(var(--#{$prefix}pagination-active-bg));
+ border-color: var(--#{$prefix}pagination-active-border-color);
}
- // Opinionated: add "hand" cursor to non-disabled .page-link elements
- &:not(:disabled):not(.disabled) {
- cursor: pointer;
+ &.disabled,
+ .disabled > & {
+ color: var(--#{$prefix}pagination-disabled-color);
+ pointer-events: none;
+ background-color: var(--#{$prefix}pagination-disabled-bg);
+ border-color: var(--#{$prefix}pagination-disabled-border-color);
}
}
.page-item {
- &:first-child {
- .page-link {
- margin-left: 0;
- @include border-left-radius($border-radius);
- }
- }
- &:last-child {
- .page-link {
- @include border-right-radius($border-radius);
- }
+ &:not(:first-child) .page-link {
+ margin-left: $pagination-margin-start;
}
- &.active .page-link {
- z-index: 1;
- color: $pagination-active-color;
- background-color: $pagination-active-bg;
- border-color: $pagination-active-border-color;
- }
+ @if $pagination-margin-start == ($pagination-border-width * -1) {
+ &:first-child {
+ .page-link {
+ @include border-start-radius(var(--#{$prefix}pagination-border-radius));
+ }
+ }
- &.disabled .page-link {
- color: $pagination-disabled-color;
- pointer-events: none;
- // Opinionated: remove the "hand" cursor set previously for .page-link
- cursor: auto;
- background-color: $pagination-disabled-bg;
- border-color: $pagination-disabled-border-color;
+ &:last-child {
+ .page-link {
+ @include border-end-radius(var(--#{$prefix}pagination-border-radius));
+ }
+ }
+ } @else {
+ // Add border-radius to all pageLinks in case they have left margin
+ .page-link {
+ @include border-radius(var(--#{$prefix}pagination-border-radius));
+ }
}
}
@@ -70,9 +101,9 @@
//
.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, $pagination-border-radius-lg);
}
.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, $pagination-border-radius-sm);
}
diff --git a/extension_explorer/static/lib/bootstrap/_placeholders.scss b/extension_explorer/static/lib/bootstrap/_placeholders.scss
new file mode 100644
index 000000000..6e32e1cdb
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/_placeholders.scss
@@ -0,0 +1,51 @@
+.placeholder {
+ display: inline-block;
+ min-height: 1em;
+ vertical-align: middle;
+ cursor: wait;
+ background-color: currentcolor;
+ opacity: $placeholder-opacity-max;
+
+ &.btn::before {
+ display: inline-block;
+ content: "";
+ }
+}
+
+// Sizing
+.placeholder-xs {
+ min-height: .6em;
+}
+
+.placeholder-sm {
+ min-height: .8em;
+}
+
+.placeholder-lg {
+ min-height: 1.2em;
+}
+
+// Animation
+.placeholder-glow {
+ .placeholder {
+ animation: placeholder-glow 2s ease-in-out infinite;
+ }
+}
+
+@keyframes placeholder-glow {
+ 50% {
+ opacity: $placeholder-opacity-min;
+ }
+}
+
+.placeholder-wave {
+ mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);
+ mask-size: 200% 100%;
+ animation: placeholder-wave 2s linear infinite;
+}
+
+@keyframes placeholder-wave {
+ 100% {
+ mask-position: -200% 0%;
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/_popover.scss b/extension_explorer/static/lib/bootstrap/_popover.scss
index 4a79fb751..7b69f6232 100644
--- a/extension_explorer/static/lib/bootstrap/_popover.scss
+++ b/extension_explorer/static/lib/bootstrap/_popover.scss
@@ -1,28 +1,46 @@
.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: $zindex-popover;
+ // scss-docs-start popover-css-vars
+ --#{$prefix}popover-zindex: #{$zindex-popover};
+ --#{$prefix}popover-max-width: #{$popover-max-width};
+ @include rfs($popover-font-size, --#{$prefix}popover-font-size);
+ --#{$prefix}popover-bg: #{$popover-bg};
+ --#{$prefix}popover-border-width: #{$popover-border-width};
+ --#{$prefix}popover-border-color: #{$popover-border-color};
+ --#{$prefix}popover-border-radius: #{$popover-border-radius};
+ --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
+ --#{$prefix}popover-box-shadow: #{$popover-box-shadow};
+ --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
+ --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
+ @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
+ --#{$prefix}popover-header-color: #{$popover-header-color};
+ --#{$prefix}popover-header-bg: #{$popover-header-bg};
+ --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
+ --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
+ --#{$prefix}popover-body-color: #{$popover-body-color};
+ --#{$prefix}popover-arrow-width: #{$popover-arrow-width};
+ --#{$prefix}popover-arrow-height: #{$popover-arrow-height};
+ --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
+ // scss-docs-end popover-css-vars
+
+ z-index: var(--#{$prefix}popover-zindex);
display: block;
- max-width: $popover-max-width;
+ max-width: var(--#{$prefix}popover-max-width);
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
- font-size: $popover-font-size;
+ @include font-size(var(--#{$prefix}popover-font-size));
// Allow breaking very long words so they don't overflow the popover's bounds
word-wrap: break-word;
- background-color: $popover-bg;
+ background-color: var(--#{$prefix}popover-bg);
background-clip: padding-box;
- border: $popover-border-width solid $popover-border-color;
- @include border-radius($popover-border-radius);
- @include box-shadow($popover-box-shadow);
+ border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
+ @include border-radius(var(--#{$prefix}popover-border-radius));
+ @include box-shadow(var(--#{$prefix}popover-box-shadow));
- .arrow {
- position: absolute;
+ .popover-arrow {
display: block;
- width: $popover-arrow-width;
- height: $popover-arrow-height;
- margin: 0 $border-radius-lg;
+ width: var(--#{$prefix}popover-arrow-width);
+ height: var(--#{$prefix}popover-arrow-height);
&::before,
&::after {
@@ -31,79 +49,76 @@
content: "";
border-color: transparent;
border-style: solid;
+ border-width: 0;
}
}
}
.bs-popover-top {
- margin-bottom: $popover-arrow-height;
-
- .arrow {
- bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
- }
+ > .popover-arrow {
+ bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
- .arrow::before,
- .arrow::after {
- border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
- }
+ &::before,
+ &::after {
+ border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ }
- .arrow::before {
- bottom: 0;
- border-top-color: $popover-arrow-outer-color;
- }
+ &::before {
+ bottom: 0;
+ border-top-color: var(--#{$prefix}popover-arrow-border);
+ }
- .arrow::after {
- bottom: $popover-border-width;
- border-top-color: $popover-arrow-color;
+ &::after {
+ bottom: var(--#{$prefix}popover-border-width);
+ border-top-color: var(--#{$prefix}popover-bg);
+ }
}
}
-.bs-popover-right {
- margin-left: $popover-arrow-height;
+/* rtl:begin:ignore */
+.bs-popover-end {
+ > .popover-arrow {
+ left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+ width: var(--#{$prefix}popover-arrow-height);
+ height: var(--#{$prefix}popover-arrow-width);
- .arrow {
- left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
- width: $popover-arrow-height;
- height: $popover-arrow-width;
- margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
- }
-
- .arrow::before,
- .arrow::after {
- border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
- }
+ &::before,
+ &::after {
+ border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ }
- .arrow::before {
- left: 0;
- border-right-color: $popover-arrow-outer-color;
- }
+ &::before {
+ left: 0;
+ border-right-color: var(--#{$prefix}popover-arrow-border);
+ }
- .arrow::after {
- left: $popover-border-width;
- border-right-color: $popover-arrow-color;
+ &::after {
+ left: var(--#{$prefix}popover-border-width);
+ border-right-color: var(--#{$prefix}popover-bg);
+ }
}
}
-.bs-popover-bottom {
- margin-top: $popover-arrow-height;
+/* rtl:end:ignore */
- .arrow {
- top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
- }
+.bs-popover-bottom {
+ > .popover-arrow {
+ top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
- .arrow::before,
- .arrow::after {
- border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
- }
+ &::before,
+ &::after {
+ border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
+ }
- .arrow::before {
- top: 0;
- border-bottom-color: $popover-arrow-outer-color;
- }
+ &::before {
+ top: 0;
+ border-bottom-color: var(--#{$prefix}popover-arrow-border);
+ }
- .arrow::after {
- top: $popover-border-width;
- border-bottom-color: $popover-arrow-color;
+ &::after {
+ top: var(--#{$prefix}popover-border-width);
+ border-bottom-color: var(--#{$prefix}popover-bg);
+ }
}
// This will remove the popover-header's border just below the arrow
@@ -112,65 +127,63 @@
top: 0;
left: 50%;
display: block;
- width: $popover-arrow-width;
- margin-left: -$popover-arrow-width / 2;
+ width: var(--#{$prefix}popover-arrow-width);
+ margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list
content: "";
- border-bottom: $popover-border-width solid $popover-header-bg;
+ border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);
}
}
-.bs-popover-left {
- margin-right: $popover-arrow-height;
-
- .arrow {
- right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
- width: $popover-arrow-height;
- height: $popover-arrow-width;
- margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
- }
+/* rtl:begin:ignore */
+.bs-popover-start {
+ > .popover-arrow {
+ right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+ width: var(--#{$prefix}popover-arrow-height);
+ height: var(--#{$prefix}popover-arrow-width);
- .arrow::before,
- .arrow::after {
- border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
- }
+ &::before,
+ &::after {
+ border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
+ }
- .arrow::before {
- right: 0;
- border-left-color: $popover-arrow-outer-color;
- }
+ &::before {
+ right: 0;
+ border-left-color: var(--#{$prefix}popover-arrow-border);
+ }
- .arrow::after {
- right: $popover-border-width;
- border-left-color: $popover-arrow-color;
+ &::after {
+ right: var(--#{$prefix}popover-border-width);
+ border-left-color: var(--#{$prefix}popover-bg);
+ }
}
}
+/* rtl:end:ignore */
+
.bs-popover-auto {
- &[x-placement^="top"] {
+ &[data-popper-placement^="top"] {
@extend .bs-popover-top;
}
- &[x-placement^="right"] {
- @extend .bs-popover-right;
+ &[data-popper-placement^="right"] {
+ @extend .bs-popover-end;
}
- &[x-placement^="bottom"] {
+ &[data-popper-placement^="bottom"] {
@extend .bs-popover-bottom;
}
- &[x-placement^="left"] {
- @extend .bs-popover-left;
+ &[data-popper-placement^="left"] {
+ @extend .bs-popover-start;
}
}
-
// Offset the popover to account for the popover arrow
.popover-header {
- padding: $popover-header-padding-y $popover-header-padding-x;
+ padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);
margin-bottom: 0; // Reset the default from Reboot
- font-size: $font-size-base;
- color: $popover-header-color;
- background-color: $popover-header-bg;
- border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
- $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});
- @include border-top-radius($offset-border-width);
+ @include font-size(var(--#{$prefix}popover-header-font-size));
+ color: var(--#{$prefix}popover-header-color);
+ background-color: var(--#{$prefix}popover-header-bg);
+ border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
+ @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));
&:empty {
display: none;
@@ -178,6 +191,6 @@
}
.popover-body {
- padding: $popover-body-padding-y $popover-body-padding-x;
- color: $popover-body-color;
+ padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
+ color: var(--#{$prefix}popover-body-color);
}
diff --git a/extension_explorer/static/lib/bootstrap/_print.scss b/extension_explorer/static/lib/bootstrap/_print.scss
deleted file mode 100644
index 1df948735..000000000
--- a/extension_explorer/static/lib/bootstrap/_print.scss
+++ /dev/null
@@ -1,141 +0,0 @@
-// stylelint-disable declaration-no-important, selector-no-qualifying-type
-
-// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
-
-// ==========================================================================
-// Print styles.
-// Inlined to avoid the additional HTTP request:
-// https://www.phpied.com/delay-loading-your-print-css/
-// ==========================================================================
-
-@if $enable-print-styles {
- @media print {
- *,
- *::before,
- *::after {
- // Bootstrap specific; comment out `color` and `background`
- //color: $black !important; // Black prints faster
- text-shadow: none !important;
- //background: transparent !important;
- box-shadow: none !important;
- }
-
- a {
- &:not(.btn) {
- text-decoration: underline;
- }
- }
-
- // Bootstrap specific; comment the following selector out
- //a[href]::after {
- // content: " (" attr(href) ")";
- //}
-
- abbr[title]::after {
- content: " (" attr(title) ")";
- }
-
- // Bootstrap specific; comment the following selector out
- //
- // Don't show links that are fragment identifiers,
- // or use the `javascript:` pseudo protocol
- //
-
- //a[href^="#"]::after,
- //a[href^="javascript:"]::after {
- // content: "";
- //}
-
- pre {
- white-space: pre-wrap !important;
- }
- pre,
- blockquote {
- border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px
- page-break-inside: avoid;
- }
-
- //
- // Printing Tables:
- // http://css-discuss.incutio.com/wiki/Printing_Tables
- //
-
- thead {
- display: table-header-group;
- }
-
- tr,
- img {
- page-break-inside: avoid;
- }
-
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
-
- h2,
- h3 {
- page-break-after: avoid;
- }
-
- // Bootstrap specific changes start
-
- // Specify a size and min-width to make printing closer across browsers.
- // We don't set margin here because it breaks `size` in Chrome. We also
- // don't use `!important` on `size` as it breaks in Chrome.
- @page {
- size: $print-page-size;
- }
- body {
- min-width: $print-body-min-width !important;
- }
- .container {
- min-width: $print-body-min-width !important;
- }
-
- // Bootstrap components
- .navbar {
- display: none;
- }
- .badge {
- border: $border-width solid $black;
- }
-
- .table {
- border-collapse: collapse !important;
-
- td,
- th {
- background-color: $white !important;
- }
- }
-
- .table-bordered {
- th,
- td {
- border: 1px solid $gray-300 !important;
- }
- }
-
- .table-dark {
- color: inherit;
-
- th,
- td,
- thead th,
- tbody + tbody {
- border-color: $table-border-color;
- }
- }
-
- .table .thead-dark th {
- color: inherit;
- border-color: $table-border-color;
- }
-
- // Bootstrap specific changes end
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/_progress.scss b/extension_explorer/static/lib/bootstrap/_progress.scss
index 0ac3e0c93..1bfafb58f 100644
--- a/extension_explorer/static/lib/bootstrap/_progress.scss
+++ b/extension_explorer/static/lib/bootstrap/_progress.scss
@@ -1,34 +1,59 @@
-@keyframes progress-bar-stripes {
- from { background-position: $progress-height 0; }
- to { background-position: 0 0; }
+// Disable animation if transitions are disabled
+
+// scss-docs-start progress-keyframes
+@if $enable-transitions {
+ @keyframes progress-bar-stripes {
+ 0% { background-position-x: $progress-height; }
+ }
}
+// scss-docs-end progress-keyframes
.progress {
+ // scss-docs-start progress-css-vars
+ --#{$prefix}progress-height: #{$progress-height};
+ @include rfs($progress-font-size, --#{$prefix}progress-font-size);
+ --#{$prefix}progress-bg: #{$progress-bg};
+ --#{$prefix}progress-border-radius: #{$progress-border-radius};
+ --#{$prefix}progress-box-shadow: #{$progress-box-shadow};
+ --#{$prefix}progress-bar-color: #{$progress-bar-color};
+ --#{$prefix}progress-bar-bg: #{$progress-bar-bg};
+ --#{$prefix}progress-bar-transition: #{$progress-bar-transition};
+ // scss-docs-end progress-css-vars
+
display: flex;
- height: $progress-height;
+ height: var(--#{$prefix}progress-height);
overflow: hidden; // force rounded corners by cropping it
- font-size: $progress-font-size;
- background-color: $progress-bg;
- @include border-radius($progress-border-radius);
- @include box-shadow($progress-box-shadow);
+ @include font-size(var(--#{$prefix}progress-font-size));
+ background-color: var(--#{$prefix}progress-bg);
+ @include border-radius(var(--#{$prefix}progress-border-radius));
+ @include box-shadow(var(--#{$prefix}progress-box-shadow));
}
.progress-bar {
display: flex;
flex-direction: column;
justify-content: center;
- color: $progress-bar-color;
+ overflow: hidden;
+ color: var(--#{$prefix}progress-bar-color);
text-align: center;
white-space: nowrap;
- background-color: $progress-bar-bg;
- @include transition($progress-bar-transition);
+ background-color: var(--#{$prefix}progress-bar-bg);
+ @include transition(var(--#{$prefix}progress-bar-transition));
}
.progress-bar-striped {
@include gradient-striped();
- background-size: $progress-height $progress-height;
+ background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
}
-.progress-bar-animated {
- animation: progress-bar-stripes $progress-bar-animation-timing;
+@if $enable-transitions {
+ .progress-bar-animated {
+ animation: $progress-bar-animation-timing progress-bar-stripes;
+
+ @if $enable-reduced-motion {
+ @media (prefers-reduced-motion: reduce) {
+ animation: none;
+ }
+ }
+ }
}
diff --git a/extension_explorer/static/lib/bootstrap/_reboot.scss b/extension_explorer/static/lib/bootstrap/_reboot.scss
index d4167cc8e..8ac790399 100644
--- a/extension_explorer/static/lib/bootstrap/_reboot.scss
+++ b/extension_explorer/static/lib/bootstrap/_reboot.scss
@@ -1,4 +1,5 @@
-// 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
//
@@ -10,118 +11,156 @@
// Document
//
-// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
-// 2. Change the default font family in all browsers.
-// 3. Correct the line height in all browsers.
-// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
-// 5. Change the default tap highlight to be completely transparent in iOS.
+// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
*,
*::before,
*::after {
- box-sizing: border-box; // 1
+ box-sizing: border-box;
}
-html {
- font-family: sans-serif; // 2
- line-height: 1.15; // 3
- -webkit-text-size-adjust: 100%; // 4
- -webkit-tap-highlight-color: rgba($black, 0); // 5
-}
-// Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
-// TODO: remove in v5
-// stylelint-disable-next-line selector-list-comma-newline-after
-article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
- display: block;
+// Root
+//
+// Ability to the value of the root font sizes, affecting the value of `rem`.
+// null by default, thus nothing is generated.
+
+:root {
+ @if $font-size-root != null {
+ @include font-size(var(--#{$prefix}root-font-size));
+ }
+
+ @if $enable-smooth-scroll {
+ @media (prefers-reduced-motion: no-preference) {
+ scroll-behavior: smooth;
+ }
+ }
}
+
// Body
//
// 1. Remove the margin in all browsers.
// 2. As a best practice, apply a default `background-color`.
-// 3. Set an explicit initial text-align value so that we can later use
-// the `inherit` value on things like `` elements.
+// 3. Prevent adjustments of font size after orientation changes in iOS.
+// 4. Change the default tap highlight to be completely transparent in iOS.
+// scss-docs-start reboot-body-rules
body {
margin: 0; // 1
- font-family: $font-family-base;
- font-size: $font-size-base;
- font-weight: $font-weight-base;
- line-height: $line-height-base;
- color: $body-color;
- text-align: left; // 3
- background-color: $body-bg; // 2
-}
-
-// Suppress the focus outline on elements that cannot be accessed via keyboard.
-// This prevents an unwanted focus outline from appearing around elements that
-// might still respond to pointer events.
-//
-// Credit: https://github.com/suitcss/base
-[tabindex="-1"]:focus {
- outline: 0 !important;
+ font-family: var(--#{$prefix}body-font-family);
+ @include font-size(var(--#{$prefix}body-font-size));
+ font-weight: var(--#{$prefix}body-font-weight);
+ line-height: var(--#{$prefix}body-line-height);
+ color: var(--#{$prefix}body-color);
+ text-align: var(--#{$prefix}body-text-align);
+ background-color: var(--#{$prefix}body-bg); // 2
+ -webkit-text-size-adjust: 100%; // 3
+ -webkit-tap-highlight-color: rgba($black, 0); // 4
}
+// scss-docs-end reboot-body-rules
// Content grouping
//
-// 1. Add the correct box sizing in Firefox.
-// 2. Show the overflow in Edge and IE.
+// 1. Reset Firefox's gray color
hr {
- box-sizing: content-box; // 1
- height: 0; // 1
- overflow: visible; // 2
+ margin: $hr-margin-y 0;
+ color: $hr-color; // 1
+ border: 0;
+ border-top: $hr-border-width solid $hr-border-color;
+ opacity: $hr-opacity;
}
-//
// Typography
//
+// 1. Remove top margins from headings
+// By default, ``-`` all receive top and bottom margins. We nuke the top
+// margin for easier control within type scales as it avoids margin collapsing.
-// Remove top margins from headings
-//
-// By default, ``-`` all receive top and bottom margins. We nuke the top
-// margin for easier control within type scales as it avoids margin collapsing.
-// stylelint-disable-next-line selector-list-comma-newline-after
-h1, h2, h3, h4, h5, h6 {
- margin-top: 0;
+%heading {
+ margin-top: 0; // 1
margin-bottom: $headings-margin-bottom;
+ font-family: $headings-font-family;
+ font-style: $headings-font-style;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ color: $headings-color;
+}
+
+h1 {
+ @extend %heading;
+ @include font-size($h1-font-size);
+}
+
+h2 {
+ @extend %heading;
+ @include font-size($h2-font-size);
+}
+
+h3 {
+ @extend %heading;
+ @include font-size($h3-font-size);
}
+h4 {
+ @extend %heading;
+ @include font-size($h4-font-size);
+}
+
+h5 {
+ @extend %heading;
+ @include font-size($h5-font-size);
+}
+
+h6 {
+ @extend %heading;
+ @include font-size($h6-font-size);
+}
+
+
// Reset margins on paragraphs
//
// Similarly, the top margin on ` `s get reset. However, we also reset the
// bottom margin to use `rem` units instead of `em`.
+
p {
margin-top: 0;
margin-bottom: $paragraph-margin-bottom;
}
+
// Abbreviations
//
-// 1. Duplicate behavior to the data-* attribute for our tooltip plugin
-// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
-// 3. Add explicit cursor to indicate changed behavior.
-// 4. Remove the bottom border in Firefox 39-.
-// 5. Prevent the text-decoration to be skipped.
+// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
+// 2. Add explicit cursor to indicate changed behavior.
+// 3. Prevent the text-decoration to be skipped.
-abbr[title],
-abbr[data-original-title] { // 1
- text-decoration: underline; // 2
- text-decoration: underline dotted; // 2
- cursor: help; // 3
- border-bottom: 0; // 4
- text-decoration-skip-ink: none; // 5
+abbr[title] {
+ text-decoration: underline dotted; // 1
+ cursor: help; // 2
+ text-decoration-skip-ink: none; // 3
}
+
+// Address
+
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
+
+// Lists
+
+ol,
+ul {
+ padding-left: 2rem;
+}
+
ol,
ul,
dl {
@@ -140,33 +179,57 @@ dt {
font-weight: $dt-font-weight;
}
+// 1. Undo browser default
+
dd {
margin-bottom: .5rem;
- margin-left: 0; // Undo browser default
+ margin-left: 0; // 1
}
+
+// Blockquote
+
blockquote {
margin: 0 0 1rem;
}
+
+// Strong
+//
+// Add the correct font weight in Chrome, Edge, and Safari
+
b,
strong {
- font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari
+ font-weight: $font-weight-bolder;
}
+
+// Small
+//
+// Add the correct font size in all browsers
+
small {
- font-size: 80%; // Add the correct font size in all browsers
+ @include font-size($small-font-size);
+}
+
+
+// Mark
+
+mark {
+ padding: $mark-padding;
+ background-color: var(--#{$prefix}highlight-bg);
}
+
+// Sub and Sup
//
// Prevent `sub` and `sup` elements from affecting the line height in
// all browsers.
-//
sub,
sup {
position: relative;
- font-size: 75%;
+ @include font-size($sub-sup-font-size);
line-height: 0;
vertical-align: baseline;
}
@@ -175,288 +238,373 @@ sub { bottom: -.25em; }
sup { top: -.5em; }
-//
// Links
-//
a {
- color: $link-color;
+ color: var(--#{$prefix}link-color);
text-decoration: $link-decoration;
- background-color: transparent; // Remove the gray background on active links in IE 10.
- @include hover {
- color: $link-hover-color;
+ &:hover {
+ color: var(--#{$prefix}link-hover-color);
text-decoration: $link-hover-decoration;
}
}
-// And undo these styles for placeholder links/named anchors (without href)
-// which have not been made explicitly keyboard-focusable (without tabindex).
+// And undo these styles for placeholder links/named anchors (without href).
// It would be more straightforward to just use a[href] in previous block, but that
// causes specificity issues in many other styles that are too complex to fix.
// See https://github.com/twbs/bootstrap/issues/19402
-a:not([href]):not([tabindex]) {
- color: inherit;
- text-decoration: none;
-
- @include hover-focus {
+a:not([href]):not([class]) {
+ &,
+ &:hover {
color: inherit;
text-decoration: none;
}
-
- &:focus {
- outline: 0;
- }
}
-//
// Code
-//
pre,
code,
kbd,
samp {
- font-family: $font-family-monospace;
- font-size: 1em; // Correct the odd `em` font sizing in all browsers.
+ font-family: $font-family-code;
+ @include font-size(1em); // Correct the odd `em` font sizing in all browsers.
}
+// 1. Remove browser default top margin
+// 2. Reset browser default of `1em` to use `rem`s
+// 3. Don't allow content to break outside
+
pre {
- // Remove browser default top margin
- margin-top: 0;
- // Reset browser default of `1em` to use `rem`s
- margin-bottom: 1rem;
- // Don't allow content to break outside
- overflow: auto;
+ display: block;
+ margin-top: 0; // 1
+ margin-bottom: 1rem; // 2
+ overflow: auto; // 3
+ @include font-size($code-font-size);
+ color: $pre-color;
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ @include font-size(inherit);
+ color: inherit;
+ word-break: normal;
+ }
+}
+
+code {
+ @include font-size($code-font-size);
+ color: var(--#{$prefix}code-color);
+ word-wrap: break-word;
+
+ // Streamline the style when inside anchors to avoid broken underline and more
+ a > & {
+ color: inherit;
+ }
+}
+
+kbd {
+ padding: $kbd-padding-y $kbd-padding-x;
+ @include font-size($kbd-font-size);
+ color: $kbd-color;
+ background-color: $kbd-bg;
+ @include border-radius($border-radius-sm);
+
+ kbd {
+ padding: 0;
+ @include font-size(1em);
+ font-weight: $nested-kbd-font-weight;
+ }
}
-//
// Figures
//
+// Apply a consistent margin strategy (matches our type styles).
figure {
- // Apply a consistent margin strategy (matches our type styles).
margin: 0 0 1rem;
}
-//
// Images and content
-//
-
-img {
- vertical-align: middle;
- border-style: none; // Remove the border on images inside links in IE 10-.
-}
+img,
svg {
- // Workaround for the SVG overflow bug in IE10/11 is still required.
- // See https://github.com/twbs/bootstrap/issues/26878
- overflow: hidden;
vertical-align: middle;
}
-//
// Tables
//
+// Prevent double borders
table {
- border-collapse: collapse; // Prevent double borders
+ caption-side: bottom;
+ border-collapse: collapse;
}
caption {
- padding-top: $table-cell-padding;
- padding-bottom: $table-cell-padding;
+ padding-top: $table-cell-padding-y;
+ padding-bottom: $table-cell-padding-y;
color: $table-caption-color;
text-align: left;
- caption-side: bottom;
}
+// 1. Removes font-weight bold by inheriting
+// 2. Matches default `
` alignment by inheriting `text-align`.
+// 3. Fix alignment for Safari
+
+th {
+ font-weight: $table-th-font-weight; // 1
+ text-align: inherit; // 2
+ text-align: -webkit-match-parent; // 3
+}
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
th {
- // Matches default ` ` alignment by inheriting from the ``, or the
- // closest parent with a set `text-align`.
- text-align: inherit;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
}
-//
// Forms
//
+// 1. Allow labels to use `margin` for spacing.
label {
- // Allow labels to use `margin` for spacing.
- display: inline-block;
- margin-bottom: $label-margin-bottom;
+ display: inline-block; // 1
}
// Remove the default `border-radius` that macOS Chrome adds.
-//
-// Details at https://github.com/twbs/bootstrap/issues/24093
+// See https://github.com/twbs/bootstrap/issues/24093
+
button {
+ // stylelint-disable-next-line property-disallowed-list
border-radius: 0;
}
-// Work around a Firefox/IE bug where the transparent `button` background
-// results in a loss of the default `button` focus styles.
-//
-// Credit: https://github.com/suitcss/base/
-button:focus {
- outline: 1px dotted;
- outline: 5px auto -webkit-focus-ring-color;
+// Explicitly remove focus outline in Chromium when it shouldn't be
+// visible (e.g. as result of mouse click or touch tap). It already
+// should be doing this automatically, but seems to currently be
+// confused and applies its very visible two-tone outline anyway.
+
+button:focus:not(:focus-visible) {
+ outline: 0;
}
+// 1. Remove the margin in Firefox and Safari
+
input,
button,
select,
optgroup,
textarea {
- margin: 0; // Remove the margin in Firefox and Safari
+ margin: 0; // 1
font-family: inherit;
- font-size: inherit;
+ @include font-size(inherit);
line-height: inherit;
}
+// Remove the inheritance of text transform in Firefox
button,
-input {
- overflow: visible; // Show the overflow in Edge
+select {
+ text-transform: none;
+}
+// Set the cursor for non-`` buttons
+//
+// Details at https://github.com/twbs/bootstrap/pull/30562
+[role="button"] {
+ cursor: pointer;
}
-button,
select {
- text-transform: none; // Remove the inheritance of text transform in Firefox
+ // Remove the inheritance of word-wrap in Safari.
+ // See https://github.com/twbs/bootstrap/issues/24990
+ word-wrap: normal;
+
+ // Undo the opacity change from Chrome
+ &:disabled {
+ opacity: 1;
+ }
+}
+
+// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.
+// See https://stackoverflow.com/a/54997118
+
+[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
+ display: none !important;
}
// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
// controls in Android 4.
// 2. Correct the inability to style clickable types in iOS and Safari.
+// 3. Opinionated: add "hand" cursor to non-disabled button elements.
+
button,
[type="button"], // 1
[type="reset"],
[type="submit"] {
-webkit-appearance: button; // 2
+
+ @if $enable-button-pointers {
+ &:not(:disabled) {
+ cursor: pointer; // 3
+ }
+ }
}
// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
+
+::-moz-focus-inner {
padding: 0;
border-style: none;
}
-input[type="radio"],
-input[type="checkbox"] {
- box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
- padding: 0; // 2. Remove the padding in IE 10-
-}
-
-
-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;
-}
+// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.
textarea {
- overflow: auto; // Remove the default vertical scrollbar in IE.
- // Textareas should really only resize vertically so they don't break their (horizontal) containers.
- resize: vertical;
+ resize: vertical; // 1
}
+// 1. Browsers set a default `min-width: min-content;` on fieldsets,
+// unlike e.g. ``s, which have `min-width: 0;` by default.
+// So we reset that to ensure fieldsets behave more like a standard block element.
+// See https://github.com/twbs/bootstrap/issues/12359
+// and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
+// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.
+
fieldset {
- // Browsers set a default `min-width: min-content;` on fieldsets,
- // unlike e.g. `
`s, which have `min-width: 0;` by default.
- // So we reset that to ensure fieldsets behave more like a standard block element.
- // See https://github.com/twbs/bootstrap/issues/12359
- // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
- min-width: 0;
- // Reset the default outline behavior of fieldsets so they don't affect page layout.
- padding: 0;
- margin: 0;
- border: 0;
+ min-width: 0; // 1
+ padding: 0; // 2
+ margin: 0; // 2
+ border: 0; // 2
}
-// 1. Correct the text wrapping in Edge and IE.
-// 2. Correct the color inheritance from `fieldset` elements in IE.
+// 1. By using `float: left`, the legend will behave like a block element.
+// This way the border of a fieldset wraps around the legend if present.
+// 2. Fix wrapping bug.
+// See https://github.com/twbs/bootstrap/issues/29712
+
legend {
- display: block;
+ float: left; // 1
width: 100%;
- max-width: 100%; // 1
padding: 0;
- margin-bottom: .5rem;
- font-size: 1.5rem;
+ margin-bottom: $legend-margin-bottom;
+ @include font-size($legend-font-size);
+ font-weight: $legend-font-weight;
line-height: inherit;
- color: inherit; // 2
- white-space: normal; // 1
+
+ + * {
+ clear: left; // 2
+ }
}
-progress {
- vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
+// Fix height of inputs with a type of datetime-local, date, month, week, or time
+// See https://github.com/twbs/bootstrap/issues/18842
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+ padding: 0;
}
-// Correct the cursor style of increment and decrement buttons in Chrome.
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
+::-webkit-inner-spin-button {
height: auto;
}
+// 1. Correct the outline style in Safari.
+// 2. This overrides the extra rounded corners on search inputs in iOS so that our
+// `.form-control` class can properly style them. Note that this cannot simply
+// be added to `.form-control` as it's not specific enough. For details, see
+// https://github.com/twbs/bootstrap/issues/11586.
+
[type="search"] {
- // This overrides the extra rounded corners on search inputs in iOS so that our
- // `.form-control` class can properly style them. Note that this cannot simply
- // be added to `.form-control` as it's not specific enough. For details, see
- // https://github.com/twbs/bootstrap/issues/11586.
- outline-offset: -2px; // 2. Correct the outline style in Safari.
- -webkit-appearance: none;
+ outline-offset: -2px; // 1
+ -webkit-appearance: textfield; // 2
}
-//
-// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
-//
+// 1. A few input types should stay LTR
+// See https://rtlstyling.com/posts/rtl-styling#form-inputs
+// 2. RTL only output
+// See https://rtlcss.com/learn/usage-guide/control-directives/#raw
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
-[type="search"]::-webkit-search-decoration {
+// Remove the inner padding in Chrome and Safari on macOS.
+
+::-webkit-search-decoration {
-webkit-appearance: none;
}
-//
-// 1. Correct the inability to style clickable types in iOS and Safari.
-// 2. Change font properties to `inherit` in Safari.
-//
+// Remove padding around color pickers in webkit browsers
-::-webkit-file-upload-button {
- font: inherit; // 2
- -webkit-appearance: button; // 1
+::-webkit-color-swatch-wrapper {
+ padding: 0;
+}
+
+
+// 1. Inherit font family and line height for file input buttons
+// 2. Correct the inability to style clickable types in iOS and Safari.
+
+::file-selector-button {
+ font: inherit; // 1
+ -webkit-appearance: button; // 2
}
-//
// Correct element displays
-//
output {
display: inline-block;
}
+// Remove border from iframe
+
+iframe {
+ border: 0;
+}
+
+// Summary
+//
+// 1. Add the correct display in all browsers
+
summary {
- display: list-item; // Add the correct display in all browsers
+ display: list-item; // 1
cursor: pointer;
}
-template {
- display: none; // Add the correct display in IE
+
+// Progress
+//
+// Add the correct vertical alignment in Chrome, Firefox, and Opera.
+
+progress {
+ vertical-align: baseline;
}
-// Always hide an element with the `hidden` HTML attribute (from PureCSS).
-// Needed for proper display in IE 10-.
+
+// Hidden attribute
+//
+// Always hide an element with the `hidden` HTML attribute.
+
[hidden] {
display: none !important;
}
diff --git a/extension_explorer/static/lib/bootstrap/_root.scss b/extension_explorer/static/lib/bootstrap/_root.scss
index ad550df3b..e64ae04e5 100644
--- a/extension_explorer/static/lib/bootstrap/_root.scss
+++ b/extension_explorer/static/lib/bootstrap/_root.scss
@@ -1,19 +1,73 @@
:root {
- // Custom variable values only support SassScript inside `#{}`.
+ // Note: Custom variable values only support SassScript inside `#{}`.
+
+ // Colors
+ //
+ // Generate palettes for full colors, grays, and theme colors.
+
@each $color, $value in $colors {
- --#{$color}: #{$value};
+ --#{$prefix}#{$color}: #{$value};
+ }
+
+ @each $color, $value in $grays {
+ --#{$prefix}gray-#{$color}: #{$value};
}
@each $color, $value in $theme-colors {
- --#{$color}: #{$value};
+ --#{$prefix}#{$color}: #{$value};
}
- @each $bp, $value in $grid-breakpoints {
- --breakpoint-#{$bp}: #{$value};
+ @each $color, $value in $theme-colors-rgb {
+ --#{$prefix}#{$color}-rgb: #{$value};
}
- // Use `inspect` for lists so that quoted items keep the quotes.
+ --#{$prefix}white-rgb: #{to-rgb($white)};
+ --#{$prefix}black-rgb: #{to-rgb($black)};
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
+
+ // Fonts
+
+ // Note: Use `inspect` for lists so that quoted items keep the quotes.
// See https://github.com/sass/sass/issues/2383#issuecomment-336349172
- --font-family-sans-serif: #{inspect($font-family-sans-serif)};
- --font-family-monospace: #{inspect($font-family-monospace)};
+ --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
+ --#{$prefix}font-monospace: #{inspect($font-family-monospace)};
+ --#{$prefix}gradient: #{$gradient};
+
+ // Root and body
+ // scss-docs-start root-body-variables
+ @if $font-size-root != null {
+ --#{$prefix}root-font-size: #{$font-size-root};
+ }
+ --#{$prefix}body-font-family: #{$font-family-base};
+ @include rfs($font-size-base, --#{$prefix}body-font-size);
+ --#{$prefix}body-font-weight: #{$font-weight-base};
+ --#{$prefix}body-line-height: #{$line-height-base};
+ --#{$prefix}body-color: #{$body-color};
+ @if $body-text-align != null {
+ --#{$prefix}body-text-align: #{$body-text-align};
+ }
+ --#{$prefix}body-bg: #{$body-bg};
+ // scss-docs-end root-body-variables
+
+ // scss-docs-start root-border-var
+ --#{$prefix}border-width: #{$border-width};
+ --#{$prefix}border-style: #{$border-style};
+ --#{$prefix}border-color: #{$border-color};
+ --#{$prefix}border-color-translucent: #{$border-color-translucent};
+
+ --#{$prefix}border-radius: #{$border-radius};
+ --#{$prefix}border-radius-sm: #{$border-radius-sm};
+ --#{$prefix}border-radius-lg: #{$border-radius-lg};
+ --#{$prefix}border-radius-xl: #{$border-radius-xl};
+ --#{$prefix}border-radius-2xl: #{$border-radius-2xl};
+ --#{$prefix}border-radius-pill: #{$border-radius-pill};
+ // scss-docs-end root-border-var
+
+ --#{$prefix}link-color: #{$link-color};
+ --#{$prefix}link-hover-color: #{$link-hover-color};
+
+ --#{$prefix}code-color: #{$code-color};
+
+ --#{$prefix}highlight-bg: #{$mark-bg};
}
diff --git a/extension_explorer/static/lib/bootstrap/_spinners.scss b/extension_explorer/static/lib/bootstrap/_spinners.scss
index ed7e2bc65..ec8473207 100644
--- a/extension_explorer/static/lib/bootstrap/_spinners.scss
+++ b/extension_explorer/static/lib/bootstrap/_spinners.scss
@@ -2,52 +2,84 @@
// Rotating border
//
+.spinner-grow,
+.spinner-border {
+ display: inline-block;
+ width: var(--#{$prefix}spinner-width);
+ height: var(--#{$prefix}spinner-height);
+ vertical-align: var(--#{$prefix}spinner-vertical-align);
+ // stylelint-disable-next-line property-disallowed-list
+ border-radius: 50%;
+ animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
+}
+
+// scss-docs-start spinner-border-keyframes
@keyframes spinner-border {
- to { transform: rotate(360deg); }
+ to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
}
+// scss-docs-end spinner-border-keyframes
.spinner-border {
- display: inline-block;
- width: $spinner-width;
- height: $spinner-height;
- vertical-align: text-bottom;
- border: $spinner-border-width solid currentColor;
+ // scss-docs-start spinner-border-css-vars
+ --#{$prefix}spinner-width: #{$spinner-width};
+ --#{$prefix}spinner-height: #{$spinner-height};
+ --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
+ --#{$prefix}spinner-border-width: #{$spinner-border-width};
+ --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
+ --#{$prefix}spinner-animation-name: spinner-border;
+ // scss-docs-end spinner-border-css-vars
+
+ border: var(--#{$prefix}spinner-border-width) solid currentcolor;
border-right-color: transparent;
- border-radius: 50%;
- animation: spinner-border .75s linear infinite;
}
.spinner-border-sm {
- width: $spinner-width-sm;
- height: $spinner-height-sm;
- border-width: $spinner-border-width-sm;
+ // scss-docs-start spinner-border-sm-css-vars
+ --#{$prefix}spinner-width: #{$spinner-width-sm};
+ --#{$prefix}spinner-height: #{$spinner-height-sm};
+ --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
+ // scss-docs-end spinner-border-sm-css-vars
}
//
// Growing circle
//
+// scss-docs-start spinner-grow-keyframes
@keyframes spinner-grow {
0% {
transform: scale(0);
}
50% {
opacity: 1;
+ transform: none;
}
}
+// scss-docs-end spinner-grow-keyframes
.spinner-grow {
- display: inline-block;
- width: $spinner-width;
- height: $spinner-height;
- vertical-align: text-bottom;
- background-color: currentColor;
- border-radius: 50%;
+ // scss-docs-start spinner-grow-css-vars
+ --#{$prefix}spinner-width: #{$spinner-width};
+ --#{$prefix}spinner-height: #{$spinner-height};
+ --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
+ --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
+ --#{$prefix}spinner-animation-name: spinner-grow;
+ // scss-docs-end spinner-grow-css-vars
+
+ background-color: currentcolor;
opacity: 0;
- animation: spinner-grow .75s linear infinite;
}
.spinner-grow-sm {
- width: $spinner-width-sm;
- height: $spinner-height-sm;
+ --#{$prefix}spinner-width: #{$spinner-width-sm};
+ --#{$prefix}spinner-height: #{$spinner-height-sm};
+}
+
+@if $enable-reduced-motion {
+ @media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+ .spinner-grow {
+ --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};
+ }
+ }
}
diff --git a/extension_explorer/static/lib/bootstrap/_tables.scss b/extension_explorer/static/lib/bootstrap/_tables.scss
index a1150420f..1fdd43c6b 100644
--- a/extension_explorer/static/lib/bootstrap/_tables.scss
+++ b/extension_explorer/static/lib/bootstrap/_tables.scss
@@ -3,29 +3,54 @@
//
.table {
+ --#{$prefix}table-color: #{$table-color};
+ --#{$prefix}table-bg: #{$table-bg};
+ --#{$prefix}table-border-color: #{$table-border-color};
+ --#{$prefix}table-accent-bg: #{$table-accent-bg};
+ --#{$prefix}table-striped-color: #{$table-striped-color};
+ --#{$prefix}table-striped-bg: #{$table-striped-bg};
+ --#{$prefix}table-active-color: #{$table-active-color};
+ --#{$prefix}table-active-bg: #{$table-active-bg};
+ --#{$prefix}table-hover-color: #{$table-hover-color};
+ --#{$prefix}table-hover-bg: #{$table-hover-bg};
+
width: 100%;
margin-bottom: $spacer;
- background-color: $table-bg; // Reset for nesting within parents with `background-color`.
+ color: var(--#{$prefix}table-color);
+ vertical-align: $table-cell-vertical-align;
+ border-color: var(--#{$prefix}table-border-color);
- th,
- td {
- padding: $table-cell-padding;
- vertical-align: top;
- border-top: $table-border-width solid $table-border-color;
+ // Target th & td
+ // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
+ // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
+ // Another advantage is that this generates less code and makes the selector less specific making it easier to override.
+ // stylelint-disable-next-line selector-max-universal
+ > :not(caption) > * > * {
+ padding: $table-cell-padding-y $table-cell-padding-x;
+ background-color: var(--#{$prefix}table-bg);
+ border-bottom-width: $table-border-width;
+ box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);
}
- thead th {
- vertical-align: bottom;
- border-bottom: (2 * $table-border-width) solid $table-border-color;
+ > tbody {
+ vertical-align: inherit;
}
- tbody + tbody {
- border-top: (2 * $table-border-width) solid $table-border-color;
+ > thead {
+ vertical-align: bottom;
}
+}
- .table {
- background-color: $body-bg;
- }
+.table-group-divider {
+ border-top: ($table-border-width * 2) solid $table-group-separator-color;
+}
+
+//
+// Change placement of captions with a class
+//
+
+.caption-top {
+ caption-side: top;
}
@@ -34,9 +59,9 @@
//
.table-sm {
- th,
- td {
- padding: $table-cell-padding-sm;
+ // stylelint-disable-next-line selector-max-universal
+ > :not(caption) > * > * {
+ padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
}
}
@@ -44,29 +69,31 @@
// Border versions
//
// Add or remove borders all around the table and between all the columns.
+//
+// When borders are added on all sides of the cells, the corners can render odd when
+// these borders do not have the same color or if they are semi-transparent.
+// Therefor we add top and border bottoms to the `tr`s and left and right borders
+// to the `td`s or `th`s
.table-bordered {
- border: $table-border-width solid $table-border-color;
+ > :not(caption) > * {
+ border-width: $table-border-width 0;
- th,
- td {
- border: $table-border-width solid $table-border-color;
- }
-
- thead {
- th,
- td {
- border-bottom-width: 2 * $table-border-width;
+ // stylelint-disable-next-line selector-max-universal
+ > * {
+ border-width: 0 $table-border-width;
}
}
}
.table-borderless {
- th,
- td,
- thead th,
- tbody + tbody {
- border: 0;
+ // stylelint-disable-next-line selector-max-universal
+ > :not(caption) > * > * {
+ border-bottom-width: 0;
+ }
+
+ > :not(:first-child) {
+ border-top-width: 0;
}
}
@@ -74,114 +101,64 @@
//
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+// For rows
.table-striped {
- tbody tr:nth-of-type(#{$table-striped-order}) {
- background-color: $table-accent-bg;
+ > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
+ color: var(--#{$prefix}table-striped-color);
}
}
-
-// Hover effect
-//
-// Placed here since it has to come after the potential zebra striping
-
-.table-hover {
- tbody tr {
- @include hover {
- background-color: $table-hover-bg;
- }
+// For columns
+.table-striped-columns {
+ > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
+ color: var(--#{$prefix}table-striped-color);
}
}
-
-// Table backgrounds
+// Active table
//
-// Exact selectors below required to override `.table-striped` and prevent
-// inheritance to nested tables.
+// The `.table-active` class can be added to highlight rows or cells
-@each $color, $value in $theme-colors {
- @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));
+.table-active {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);
+ color: var(--#{$prefix}table-active-color);
}
-@include table-row-variant(active, $table-active-bg);
-
-
-// Dark styles
+// Hover effect
//
-// Same table markup, but inverted color scheme: dark background and light text.
-
-// stylelint-disable-next-line no-duplicate-selectors
-.table {
- .thead-dark {
- th {
- color: $table-dark-color;
- background-color: $table-dark-bg;
- border-color: $table-dark-border-color;
- }
- }
+// Placed here since it has to come after the potential zebra striping
- .thead-light {
- th {
- color: $table-head-color;
- background-color: $table-head-bg;
- border-color: $table-border-color;
- }
+.table-hover {
+ > tbody > tr:hover > * {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);
+ color: var(--#{$prefix}table-hover-color);
}
}
-.table-dark {
- color: $table-dark-color;
- background-color: $table-dark-bg;
- th,
- td,
- thead th {
- border-color: $table-dark-border-color;
- }
-
- &.table-bordered {
- border: 0;
- }
-
- &.table-striped {
- tbody tr:nth-of-type(odd) {
- background-color: $table-dark-accent-bg;
- }
- }
+// Table variants
+//
+// Table variants set the table cell backgrounds, border colors
+// and the colors of the striped, hovered & active tables
- &.table-hover {
- tbody tr {
- @include hover {
- background-color: $table-dark-hover-bg;
- }
- }
- }
+@each $color, $value in $table-variants {
+ @include table-variant($color, $value);
}
-
// Responsive tables
//
// Generate series of `.table-responsive-*` classes for configuring the screen
// size of where your table will overflow.
-.table-responsive {
- @each $breakpoint in map-keys($grid-breakpoints) {
- $next: breakpoint-next($breakpoint, $grid-breakpoints);
- $infix: breakpoint-infix($next, $grid-breakpoints);
-
- {$infix} {
- @include media-breakpoint-down($breakpoint) {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
-
- // Prevent double border on horizontal scroll due to use of `display: block;`
- > .table-bordered {
- border: 0;
- }
- }
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @include media-breakpoint-down($breakpoint) {
+ .table-responsive#{$infix} {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
}
}
}
diff --git a/extension_explorer/static/lib/bootstrap/_toasts.scss b/extension_explorer/static/lib/bootstrap/_toasts.scss
index 5babc3e4f..2ce378d5b 100644
--- a/extension_explorer/static/lib/bootstrap/_toasts.scss
+++ b/extension_explorer/static/lib/bootstrap/_toasts.scss
@@ -1,43 +1,73 @@
.toast {
- max-width: $toast-max-width;
- overflow: hidden; // cheap rounded corners on nested items
- font-size: $toast-font-size; // knock it down to 14px
- background-color: $toast-background-color;
+ // scss-docs-start toast-css-vars
+ --#{$prefix}toast-zindex: #{$zindex-toast};
+ --#{$prefix}toast-padding-x: #{$toast-padding-x};
+ --#{$prefix}toast-padding-y: #{$toast-padding-y};
+ --#{$prefix}toast-spacing: #{$toast-spacing};
+ --#{$prefix}toast-max-width: #{$toast-max-width};
+ @include rfs($toast-font-size, --#{$prefix}toast-font-size);
+ --#{$prefix}toast-color: #{$toast-color};
+ --#{$prefix}toast-bg: #{$toast-background-color};
+ --#{$prefix}toast-border-width: #{$toast-border-width};
+ --#{$prefix}toast-border-color: #{$toast-border-color};
+ --#{$prefix}toast-border-radius: #{$toast-border-radius};
+ --#{$prefix}toast-box-shadow: #{$toast-box-shadow};
+ --#{$prefix}toast-header-color: #{$toast-header-color};
+ --#{$prefix}toast-header-bg: #{$toast-header-background-color};
+ --#{$prefix}toast-header-border-color: #{$toast-header-border-color};
+ // scss-docs-end toast-css-vars
+
+ width: var(--#{$prefix}toast-max-width);
+ max-width: 100%;
+ @include font-size(var(--#{$prefix}toast-font-size));
+ color: var(--#{$prefix}toast-color);
+ pointer-events: auto;
+ background-color: var(--#{$prefix}toast-bg);
background-clip: padding-box;
- border: $toast-border-width solid $toast-border-color;
- border-radius: $toast-border-radius;
- box-shadow: $toast-box-shadow;
- backdrop-filter: blur(10px);
- opacity: 0;
-
- &:not(:last-child) {
- margin-bottom: $toast-padding-x;
- }
+ border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);
+ box-shadow: var(--#{$prefix}toast-box-shadow);
+ @include border-radius(var(--#{$prefix}toast-border-radius));
&.showing {
- opacity: 1;
+ opacity: 0;
}
- &.show {
- display: block;
- opacity: 1;
+ &:not(.show) {
+ display: none;
}
+}
- &.hide {
- display: none;
+.toast-container {
+ --#{$prefix}toast-zindex: #{$zindex-toast};
+
+ position: absolute;
+ z-index: var(--#{$prefix}toast-zindex);
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+
+ > :not(:last-child) {
+ margin-bottom: var(--#{$prefix}toast-spacing);
}
}
.toast-header {
display: flex;
align-items: center;
- padding: $toast-padding-y $toast-padding-x;
- color: $toast-header-color;
- background-color: $toast-header-background-color;
+ padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);
+ color: var(--#{$prefix}toast-header-color);
+ background-color: var(--#{$prefix}toast-header-bg);
background-clip: padding-box;
- border-bottom: $toast-border-width solid $toast-header-border-color;
+ border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);
+ @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));
+
+ .btn-close {
+ margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list
+ margin-left: var(--#{$prefix}toast-padding-x);
+ }
}
.toast-body {
- padding: $toast-padding-x; // apply to both vertical and horizontal
+ padding: var(--#{$prefix}toast-padding-x);
+ word-wrap: break-word;
}
diff --git a/extension_explorer/static/lib/bootstrap/_tooltip.scss b/extension_explorer/static/lib/bootstrap/_tooltip.scss
index 1286ebfcf..7da3df3e0 100644
--- a/extension_explorer/static/lib/bootstrap/_tooltip.scss
+++ b/extension_explorer/static/lib/bootstrap/_tooltip.scss
@@ -1,24 +1,39 @@
// Base class
.tooltip {
- position: absolute;
- z-index: $zindex-tooltip;
+ // scss-docs-start tooltip-css-vars
+ --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
+ --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
+ --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
+ --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
+ --#{$prefix}tooltip-margin: #{$tooltip-margin};
+ @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
+ --#{$prefix}tooltip-color: #{$tooltip-color};
+ --#{$prefix}tooltip-bg: #{$tooltip-bg};
+ --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
+ --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
+ --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
+ --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
+ // scss-docs-end tooltip-css-vars
+
+ z-index: var(--#{$prefix}tooltip-zindex);
display: block;
- margin: $tooltip-margin;
+ padding: var(--#{$prefix}tooltip-arrow-height);
+ margin: var(--#{$prefix}tooltip-margin);
+ @include deprecate("`$tooltip-margin`", "v5", "v5.x", true);
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values.
@include reset-text();
- font-size: $tooltip-font-size;
+ @include font-size(var(--#{$prefix}tooltip-font-size));
// Allow breaking very long words so they don't overflow the tooltip's bounds
word-wrap: break-word;
opacity: 0;
- &.show { opacity: $tooltip-opacity; }
+ &.show { opacity: var(--#{$prefix}tooltip-opacity); }
- .arrow {
- position: absolute;
+ .tooltip-arrow {
display: block;
- width: $tooltip-arrow-width;
- height: $tooltip-arrow-height;
+ width: var(--#{$prefix}tooltip-arrow-width);
+ height: var(--#{$prefix}tooltip-arrow-height);
&::before {
position: absolute;
@@ -29,87 +44,77 @@
}
}
-.bs-tooltip-top {
- padding: $tooltip-arrow-height 0;
+.bs-tooltip-top .tooltip-arrow {
+ bottom: 0;
- .arrow {
- bottom: 0;
-
- &::before {
- top: 0;
- border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
- border-top-color: $tooltip-arrow-color;
- }
+ &::before {
+ top: -1px;
+ border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ border-top-color: var(--#{$prefix}tooltip-bg);
}
}
-.bs-tooltip-right {
- padding: 0 $tooltip-arrow-height;
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow {
+ left: 0;
+ width: var(--#{$prefix}tooltip-arrow-height);
+ height: var(--#{$prefix}tooltip-arrow-width);
- .arrow {
- left: 0;
- width: $tooltip-arrow-height;
- height: $tooltip-arrow-width;
-
- &::before {
- right: 0;
- border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
- border-right-color: $tooltip-arrow-color;
- }
+ &::before {
+ right: -1px;
+ border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ border-right-color: var(--#{$prefix}tooltip-bg);
}
}
-.bs-tooltip-bottom {
- padding: $tooltip-arrow-height 0;
+/* rtl:end:ignore */
- .arrow {
- top: 0;
+.bs-tooltip-bottom .tooltip-arrow {
+ top: 0;
- &::before {
- bottom: 0;
- border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
- border-bottom-color: $tooltip-arrow-color;
- }
+ &::before {
+ bottom: -1px;
+ border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
+ border-bottom-color: var(--#{$prefix}tooltip-bg);
}
}
-.bs-tooltip-left {
- padding: 0 $tooltip-arrow-height;
-
- .arrow {
- right: 0;
- width: $tooltip-arrow-height;
- height: $tooltip-arrow-width;
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow {
+ right: 0;
+ width: var(--#{$prefix}tooltip-arrow-height);
+ height: var(--#{$prefix}tooltip-arrow-width);
- &::before {
- left: 0;
- border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
- border-left-color: $tooltip-arrow-color;
- }
+ &::before {
+ left: -1px;
+ border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
+ border-left-color: var(--#{$prefix}tooltip-bg);
}
}
+/* rtl:end:ignore */
+
.bs-tooltip-auto {
- &[x-placement^="top"] {
+ &[data-popper-placement^="top"] {
@extend .bs-tooltip-top;
}
- &[x-placement^="right"] {
- @extend .bs-tooltip-right;
+ &[data-popper-placement^="right"] {
+ @extend .bs-tooltip-end;
}
- &[x-placement^="bottom"] {
+ &[data-popper-placement^="bottom"] {
@extend .bs-tooltip-bottom;
}
- &[x-placement^="left"] {
- @extend .bs-tooltip-left;
+ &[data-popper-placement^="left"] {
+ @extend .bs-tooltip-start;
}
}
// Wrapper for the tooltip content
.tooltip-inner {
- max-width: $tooltip-max-width;
- padding: $tooltip-padding-y $tooltip-padding-x;
- color: $tooltip-color;
+ max-width: var(--#{$prefix}tooltip-max-width);
+ padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
+ color: var(--#{$prefix}tooltip-color);
text-align: center;
- background-color: $tooltip-bg;
- @include border-radius($tooltip-border-radius);
+ background-color: var(--#{$prefix}tooltip-bg);
+ @include border-radius(var(--#{$prefix}tooltip-border-radius));
}
diff --git a/extension_explorer/static/lib/bootstrap/_transitions.scss b/extension_explorer/static/lib/bootstrap/_transitions.scss
index c8d91e271..bfb26aa8a 100644
--- a/extension_explorer/static/lib/bootstrap/_transitions.scss
+++ b/extension_explorer/static/lib/bootstrap/_transitions.scss
@@ -1,5 +1,3 @@
-// stylelint-disable selector-no-qualifying-type
-
.fade {
@include transition($transition-fade);
@@ -8,6 +6,7 @@
}
}
+// scss-docs-start collapse-classes
.collapse {
&:not(.show) {
display: none;
@@ -15,8 +14,14 @@
}
.collapsing {
- position: relative;
height: 0;
overflow: hidden;
@include transition($transition-collapse);
+
+ &.collapse-horizontal {
+ width: 0;
+ height: auto;
+ @include transition($transition-collapse-width);
+ }
}
+// scss-docs-end collapse-classes
diff --git a/extension_explorer/static/lib/bootstrap/_type.scss b/extension_explorer/static/lib/bootstrap/_type.scss
index 37dd96732..37d64bf89 100644
--- a/extension_explorer/static/lib/bootstrap/_type.scss
+++ b/extension_explorer/static/lib/bootstrap/_type.scss
@@ -1,93 +1,69 @@
-// stylelint-disable declaration-no-important, selector-list-comma-newline-after
-
//
// Headings
//
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
- margin-bottom: $headings-margin-bottom;
- font-family: $headings-font-family;
- font-weight: $headings-font-weight;
- line-height: $headings-line-height;
- color: $headings-color;
+.h1 {
+ @extend h1;
}
-h1, .h1 { font-size: $h1-font-size; }
-h2, .h2 { font-size: $h2-font-size; }
-h3, .h3 { font-size: $h3-font-size; }
-h4, .h4 { font-size: $h4-font-size; }
-h5, .h5 { font-size: $h5-font-size; }
-h6, .h6 { font-size: $h6-font-size; }
-
-.lead {
- font-size: $lead-font-size;
- font-weight: $lead-font-weight;
+.h2 {
+ @extend h2;
}
-// Type display classes
-.display-1 {
- font-size: $display1-size;
- font-weight: $display1-weight;
- line-height: $display-line-height;
+.h3 {
+ @extend h3;
}
-.display-2 {
- font-size: $display2-size;
- font-weight: $display2-weight;
- line-height: $display-line-height;
+
+.h4 {
+ @extend h4;
}
-.display-3 {
- font-size: $display3-size;
- font-weight: $display3-weight;
- line-height: $display-line-height;
+
+.h5 {
+ @extend h5;
}
-.display-4 {
- font-size: $display4-size;
- font-weight: $display4-weight;
- line-height: $display-line-height;
+
+.h6 {
+ @extend h6;
}
-//
-// Horizontal rules
-//
-
-hr {
- margin-top: $hr-margin-y;
- margin-bottom: $hr-margin-y;
- border: 0;
- border-top: $hr-border-width solid $hr-border-color;
+.lead {
+ @include font-size($lead-font-size);
+ font-weight: $lead-font-weight;
}
+// Type display classes
+@each $display, $font-size in $display-font-sizes {
+ .display-#{$display} {
+ @include font-size($font-size);
+ font-family: $display-font-family;
+ font-style: $display-font-style;
+ font-weight: $display-font-weight;
+ line-height: $display-line-height;
+ }
+}
//
// Emphasis
//
-
-small,
.small {
- font-size: $small-font-size;
- font-weight: $font-weight-normal;
+ @extend small;
}
-mark,
.mark {
- padding: $mark-padding;
- background-color: $mark-bg;
+ @extend mark;
}
-
//
// Lists
//
.list-unstyled {
- @include list-unstyled;
+ @include list-unstyled();
}
// Inline turns list items into inline-block
.list-inline {
- @include list-unstyled;
+ @include list-unstyled();
}
.list-inline-item {
display: inline-block;
@@ -104,20 +80,25 @@ mark,
// Builds on `abbr`
.initialism {
- font-size: 90%;
+ @include font-size($initialism-font-size);
text-transform: uppercase;
}
// Blockquotes
.blockquote {
- margin-bottom: $spacer;
- font-size: $blockquote-font-size;
+ margin-bottom: $blockquote-margin-y;
+ @include font-size($blockquote-font-size);
+
+ > :last-child {
+ margin-bottom: 0;
+ }
}
.blockquote-footer {
- display: block;
- font-size: $blockquote-small-font-size;
- color: $blockquote-small-color;
+ margin-top: -$blockquote-margin-y;
+ margin-bottom: $blockquote-margin-y;
+ @include font-size($blockquote-footer-font-size);
+ color: $blockquote-footer-color;
&::before {
content: "\2014\00A0"; // em dash, nbsp
diff --git a/extension_explorer/static/lib/bootstrap/_utilities.scss b/extension_explorer/static/lib/bootstrap/_utilities.scss
index 913fb852d..1e0d141ac 100644
--- a/extension_explorer/static/lib/bootstrap/_utilities.scss
+++ b/extension_explorer/static/lib/bootstrap/_utilities.scss
@@ -1,16 +1,647 @@
-@import "utilities/align";
-@import "utilities/background";
-@import "utilities/borders";
-@import "utilities/clearfix";
-@import "utilities/display";
-@import "utilities/embed";
-@import "utilities/flex";
-@import "utilities/float";
-@import "utilities/overflow";
-@import "utilities/position";
-@import "utilities/screenreaders";
-@import "utilities/shadows";
-@import "utilities/sizing";
-@import "utilities/spacing";
-@import "utilities/text";
-@import "utilities/visibility";
+// Utilities
+
+$utilities: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$utilities: map-merge(
+ (
+ // scss-docs-start utils-vertical-align
+ "align": (
+ property: vertical-align,
+ class: align,
+ values: baseline top middle bottom text-bottom text-top
+ ),
+ // scss-docs-end utils-vertical-align
+ // scss-docs-start utils-float
+ "float": (
+ responsive: true,
+ property: float,
+ values: (
+ start: left,
+ end: right,
+ none: none,
+ )
+ ),
+ // scss-docs-end utils-float
+ // Opacity utilities
+ // scss-docs-start utils-opacity
+ "opacity": (
+ property: opacity,
+ values: (
+ 0: 0,
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1,
+ )
+ ),
+ // scss-docs-end utils-opacity
+ // scss-docs-start utils-overflow
+ "overflow": (
+ property: overflow,
+ values: auto hidden visible scroll,
+ ),
+ // scss-docs-end utils-overflow
+ // scss-docs-start utils-display
+ "display": (
+ responsive: true,
+ print: true,
+ property: display,
+ class: d,
+ values: inline inline-block block grid table table-row table-cell flex inline-flex none
+ ),
+ // scss-docs-end utils-display
+ // scss-docs-start utils-shadow
+ "shadow": (
+ property: box-shadow,
+ class: shadow,
+ values: (
+ null: $box-shadow,
+ sm: $box-shadow-sm,
+ lg: $box-shadow-lg,
+ none: none,
+ )
+ ),
+ // scss-docs-end utils-shadow
+ // scss-docs-start utils-position
+ "position": (
+ property: position,
+ values: static relative absolute fixed sticky
+ ),
+ "top": (
+ property: top,
+ values: $position-values
+ ),
+ "bottom": (
+ property: bottom,
+ values: $position-values
+ ),
+ "start": (
+ property: left,
+ class: start,
+ values: $position-values
+ ),
+ "end": (
+ property: right,
+ class: end,
+ values: $position-values
+ ),
+ "translate-middle": (
+ property: transform,
+ class: translate-middle,
+ values: (
+ null: translate(-50%, -50%),
+ x: translateX(-50%),
+ y: translateY(-50%),
+ )
+ ),
+ // scss-docs-end utils-position
+ // scss-docs-start utils-borders
+ "border": (
+ property: border,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-top": (
+ property: border-top,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-end": (
+ property: border-right,
+ class: border-end,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-bottom": (
+ property: border-bottom,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-start": (
+ property: border-left,
+ class: border-start,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-color": (
+ property: border-color,
+ class: border,
+ local-vars: (
+ "border-opacity": 1
+ ),
+ values: $utilities-border-colors
+ ),
+ "border-width": (
+ css-var: true,
+ css-variable-name: border-width,
+ class: border,
+ values: $border-widths
+ ),
+ "border-opacity": (
+ css-var: true,
+ class: border-opacity,
+ values: (
+ 10: .1,
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1
+ )
+ ),
+ // scss-docs-end utils-borders
+ // Sizing utilities
+ // scss-docs-start utils-sizing
+ "width": (
+ property: width,
+ class: w,
+ values: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%,
+ auto: auto
+ )
+ ),
+ "max-width": (
+ property: max-width,
+ class: mw,
+ values: (100: 100%)
+ ),
+ "viewport-width": (
+ property: width,
+ class: vw,
+ values: (100: 100vw)
+ ),
+ "min-viewport-width": (
+ property: min-width,
+ class: min-vw,
+ values: (100: 100vw)
+ ),
+ "height": (
+ property: height,
+ class: h,
+ values: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%,
+ auto: auto
+ )
+ ),
+ "max-height": (
+ property: max-height,
+ class: mh,
+ values: (100: 100%)
+ ),
+ "viewport-height": (
+ property: height,
+ class: vh,
+ values: (100: 100vh)
+ ),
+ "min-viewport-height": (
+ property: min-height,
+ class: min-vh,
+ values: (100: 100vh)
+ ),
+ // scss-docs-end utils-sizing
+ // Flex utilities
+ // scss-docs-start utils-flex
+ "flex": (
+ responsive: true,
+ property: flex,
+ values: (fill: 1 1 auto)
+ ),
+ "flex-direction": (
+ responsive: true,
+ property: flex-direction,
+ class: flex,
+ values: row column row-reverse column-reverse
+ ),
+ "flex-grow": (
+ responsive: true,
+ property: flex-grow,
+ class: flex,
+ values: (
+ grow-0: 0,
+ grow-1: 1,
+ )
+ ),
+ "flex-shrink": (
+ responsive: true,
+ property: flex-shrink,
+ class: flex,
+ values: (
+ shrink-0: 0,
+ shrink-1: 1,
+ )
+ ),
+ "flex-wrap": (
+ responsive: true,
+ property: flex-wrap,
+ class: flex,
+ values: wrap nowrap wrap-reverse
+ ),
+ "justify-content": (
+ responsive: true,
+ property: justify-content,
+ values: (
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ between: space-between,
+ around: space-around,
+ evenly: space-evenly,
+ )
+ ),
+ "align-items": (
+ responsive: true,
+ property: align-items,
+ values: (
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ baseline: baseline,
+ stretch: stretch,
+ )
+ ),
+ "align-content": (
+ responsive: true,
+ property: align-content,
+ values: (
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ between: space-between,
+ around: space-around,
+ stretch: stretch,
+ )
+ ),
+ "align-self": (
+ responsive: true,
+ property: align-self,
+ values: (
+ auto: auto,
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ baseline: baseline,
+ stretch: stretch,
+ )
+ ),
+ "order": (
+ responsive: true,
+ property: order,
+ values: (
+ first: -1,
+ 0: 0,
+ 1: 1,
+ 2: 2,
+ 3: 3,
+ 4: 4,
+ 5: 5,
+ last: 6,
+ ),
+ ),
+ // scss-docs-end utils-flex
+ // Margin utilities
+ // scss-docs-start utils-spacing
+ "margin": (
+ responsive: true,
+ property: margin,
+ class: m,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-x": (
+ responsive: true,
+ property: margin-right margin-left,
+ class: mx,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-y": (
+ responsive: true,
+ property: margin-top margin-bottom,
+ class: my,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-top": (
+ responsive: true,
+ property: margin-top,
+ class: mt,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-end": (
+ responsive: true,
+ property: margin-right,
+ class: me,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-bottom": (
+ responsive: true,
+ property: margin-bottom,
+ class: mb,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-start": (
+ responsive: true,
+ property: margin-left,
+ class: ms,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ // Negative margin utilities
+ "negative-margin": (
+ responsive: true,
+ property: margin,
+ class: m,
+ values: $negative-spacers
+ ),
+ "negative-margin-x": (
+ responsive: true,
+ property: margin-right margin-left,
+ class: mx,
+ values: $negative-spacers
+ ),
+ "negative-margin-y": (
+ responsive: true,
+ property: margin-top margin-bottom,
+ class: my,
+ values: $negative-spacers
+ ),
+ "negative-margin-top": (
+ responsive: true,
+ property: margin-top,
+ class: mt,
+ values: $negative-spacers
+ ),
+ "negative-margin-end": (
+ responsive: true,
+ property: margin-right,
+ class: me,
+ values: $negative-spacers
+ ),
+ "negative-margin-bottom": (
+ responsive: true,
+ property: margin-bottom,
+ class: mb,
+ values: $negative-spacers
+ ),
+ "negative-margin-start": (
+ responsive: true,
+ property: margin-left,
+ class: ms,
+ values: $negative-spacers
+ ),
+ // Padding utilities
+ "padding": (
+ responsive: true,
+ property: padding,
+ class: p,
+ values: $spacers
+ ),
+ "padding-x": (
+ responsive: true,
+ property: padding-right padding-left,
+ class: px,
+ values: $spacers
+ ),
+ "padding-y": (
+ responsive: true,
+ property: padding-top padding-bottom,
+ class: py,
+ values: $spacers
+ ),
+ "padding-top": (
+ responsive: true,
+ property: padding-top,
+ class: pt,
+ values: $spacers
+ ),
+ "padding-end": (
+ responsive: true,
+ property: padding-right,
+ class: pe,
+ values: $spacers
+ ),
+ "padding-bottom": (
+ responsive: true,
+ property: padding-bottom,
+ class: pb,
+ values: $spacers
+ ),
+ "padding-start": (
+ responsive: true,
+ property: padding-left,
+ class: ps,
+ values: $spacers
+ ),
+ // Gap utility
+ "gap": (
+ responsive: true,
+ property: gap,
+ class: gap,
+ values: $spacers
+ ),
+ // scss-docs-end utils-spacing
+ // Text
+ // scss-docs-start utils-text
+ "font-family": (
+ property: font-family,
+ class: font,
+ values: (monospace: var(--#{$prefix}font-monospace))
+ ),
+ "font-size": (
+ rfs: true,
+ property: font-size,
+ class: fs,
+ values: $font-sizes
+ ),
+ "font-style": (
+ property: font-style,
+ class: fst,
+ values: italic normal
+ ),
+ "font-weight": (
+ property: font-weight,
+ class: fw,
+ values: (
+ light: $font-weight-light,
+ lighter: $font-weight-lighter,
+ normal: $font-weight-normal,
+ bold: $font-weight-bold,
+ semibold: $font-weight-semibold,
+ bolder: $font-weight-bolder
+ )
+ ),
+ "line-height": (
+ property: line-height,
+ class: lh,
+ values: (
+ 1: 1,
+ sm: $line-height-sm,
+ base: $line-height-base,
+ lg: $line-height-lg,
+ )
+ ),
+ "text-align": (
+ responsive: true,
+ property: text-align,
+ class: text,
+ values: (
+ start: left,
+ end: right,
+ center: center,
+ )
+ ),
+ "text-decoration": (
+ property: text-decoration,
+ values: none underline line-through
+ ),
+ "text-transform": (
+ property: text-transform,
+ class: text,
+ values: lowercase uppercase capitalize
+ ),
+ "white-space": (
+ property: white-space,
+ class: text,
+ values: (
+ wrap: normal,
+ nowrap: nowrap,
+ )
+ ),
+ "word-wrap": (
+ property: word-wrap word-break,
+ class: text,
+ values: (break: break-word),
+ rtl: false
+ ),
+ // scss-docs-end utils-text
+ // scss-docs-start utils-color
+ "color": (
+ property: color,
+ class: text,
+ local-vars: (
+ "text-opacity": 1
+ ),
+ values: map-merge(
+ $utilities-text-colors,
+ (
+ "muted": $text-muted,
+ "black-50": rgba($black, .5), // deprecated
+ "white-50": rgba($white, .5), // deprecated
+ "reset": inherit,
+ )
+ )
+ ),
+ "text-opacity": (
+ css-var: true,
+ class: text-opacity,
+ values: (
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1
+ )
+ ),
+ // scss-docs-end utils-color
+ // scss-docs-start utils-bg-color
+ "background-color": (
+ property: background-color,
+ class: bg,
+ local-vars: (
+ "bg-opacity": 1
+ ),
+ values: map-merge(
+ $utilities-bg-colors,
+ (
+ "transparent": transparent
+ )
+ )
+ ),
+ "bg-opacity": (
+ css-var: true,
+ class: bg-opacity,
+ values: (
+ 10: .1,
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1
+ )
+ ),
+ // scss-docs-end utils-bg-color
+ "gradient": (
+ property: background-image,
+ class: bg,
+ values: (gradient: var(--#{$prefix}gradient))
+ ),
+ // scss-docs-start utils-interaction
+ "user-select": (
+ property: user-select,
+ values: all auto none
+ ),
+ "pointer-events": (
+ property: pointer-events,
+ class: pe,
+ values: none auto,
+ ),
+ // scss-docs-end utils-interaction
+ // scss-docs-start utils-border-radius
+ "rounded": (
+ property: border-radius,
+ class: rounded,
+ values: (
+ null: var(--#{$prefix}border-radius),
+ 0: 0,
+ 1: var(--#{$prefix}border-radius-sm),
+ 2: var(--#{$prefix}border-radius),
+ 3: var(--#{$prefix}border-radius-lg),
+ 4: var(--#{$prefix}border-radius-xl),
+ 5: var(--#{$prefix}border-radius-2xl),
+ circle: 50%,
+ pill: var(--#{$prefix}border-radius-pill)
+ )
+ ),
+ "rounded-top": (
+ property: border-top-left-radius border-top-right-radius,
+ class: rounded-top,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ "rounded-end": (
+ property: border-top-right-radius border-bottom-right-radius,
+ class: rounded-end,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ "rounded-bottom": (
+ property: border-bottom-right-radius border-bottom-left-radius,
+ class: rounded-bottom,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ "rounded-start": (
+ property: border-bottom-left-radius border-top-left-radius,
+ class: rounded-start,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ // scss-docs-end utils-border-radius
+ // scss-docs-start utils-visibility
+ "visibility": (
+ property: visibility,
+ class: null,
+ values: (
+ visible: visible,
+ invisible: hidden,
+ )
+ )
+ // scss-docs-end utils-visibility
+ ),
+ $utilities
+);
diff --git a/extension_explorer/static/lib/bootstrap/_variables.scss b/extension_explorer/static/lib/bootstrap/_variables.scss
index 25e26843e..e0218365b 100644
--- a/extension_explorer/static/lib/bootstrap/_variables.scss
+++ b/extension_explorer/static/lib/bootstrap/_variables.scss
@@ -5,6 +5,7 @@
// Color system
+// scss-docs-start gray-color-variables
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
@@ -16,56 +17,287 @@ $gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #212529 !default;
$black: #000 !default;
+// scss-docs-end gray-color-variables
+
+// fusv-disable
+// scss-docs-start gray-colors-map
+$grays: (
+ "100": $gray-100,
+ "200": $gray-200,
+ "300": $gray-300,
+ "400": $gray-400,
+ "500": $gray-500,
+ "600": $gray-600,
+ "700": $gray-700,
+ "800": $gray-800,
+ "900": $gray-900
+) !default;
+// scss-docs-end gray-colors-map
+// fusv-enable
-$grays: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$grays: map-merge(
- (
- "100": $gray-100,
- "200": $gray-200,
- "300": $gray-300,
- "400": $gray-400,
- "500": $gray-500,
- "600": $gray-600,
- "700": $gray-700,
- "800": $gray-800,
- "900": $gray-900
- ),
- $grays
-);
-
-$blue: #007bff !default;
+// scss-docs-start color-variables
+$blue: #0d6efd !default;
$indigo: #6610f2 !default;
$purple: #6f42c1 !default;
-$pink: #e83e8c !default;
+$pink: #d63384 !default;
$red: #dc3545 !default;
$orange: #fd7e14 !default;
$yellow: #ffc107 !default;
-$green: #28a745 !default;
+$green: #198754 !default;
$teal: #20c997 !default;
-$cyan: #17a2b8 !default;
-
-$colors: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$colors: map-merge(
- (
- "blue": $blue,
- "indigo": $indigo,
- "purple": $purple,
- "pink": $pink,
- "red": $red,
- "orange": $orange,
- "yellow": $yellow,
- "green": $green,
- "teal": $teal,
- "cyan": $cyan,
- "white": $white,
- "gray": $gray-600,
- "gray-dark": $gray-800
- ),
- $colors
-);
+$cyan: #0dcaf0 !default;
+// scss-docs-end color-variables
+
+// scss-docs-start colors-map
+$colors: (
+ "blue": $blue,
+ "indigo": $indigo,
+ "purple": $purple,
+ "pink": $pink,
+ "red": $red,
+ "orange": $orange,
+ "yellow": $yellow,
+ "green": $green,
+ "teal": $teal,
+ "cyan": $cyan,
+ "black": $black,
+ "white": $white,
+ "gray": $gray-600,
+ "gray-dark": $gray-800
+) !default;
+// scss-docs-end colors-map
+
+// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
+// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
+$min-contrast-ratio: 4.5 !default;
+
+// Customize the light and dark text colors for use in our color contrast function.
+$color-contrast-dark: $black !default;
+$color-contrast-light: $white !default;
+
+// fusv-disable
+$blue-100: tint-color($blue, 80%) !default;
+$blue-200: tint-color($blue, 60%) !default;
+$blue-300: tint-color($blue, 40%) !default;
+$blue-400: tint-color($blue, 20%) !default;
+$blue-500: $blue !default;
+$blue-600: shade-color($blue, 20%) !default;
+$blue-700: shade-color($blue, 40%) !default;
+$blue-800: shade-color($blue, 60%) !default;
+$blue-900: shade-color($blue, 80%) !default;
+
+$indigo-100: tint-color($indigo, 80%) !default;
+$indigo-200: tint-color($indigo, 60%) !default;
+$indigo-300: tint-color($indigo, 40%) !default;
+$indigo-400: tint-color($indigo, 20%) !default;
+$indigo-500: $indigo !default;
+$indigo-600: shade-color($indigo, 20%) !default;
+$indigo-700: shade-color($indigo, 40%) !default;
+$indigo-800: shade-color($indigo, 60%) !default;
+$indigo-900: shade-color($indigo, 80%) !default;
+
+$purple-100: tint-color($purple, 80%) !default;
+$purple-200: tint-color($purple, 60%) !default;
+$purple-300: tint-color($purple, 40%) !default;
+$purple-400: tint-color($purple, 20%) !default;
+$purple-500: $purple !default;
+$purple-600: shade-color($purple, 20%) !default;
+$purple-700: shade-color($purple, 40%) !default;
+$purple-800: shade-color($purple, 60%) !default;
+$purple-900: shade-color($purple, 80%) !default;
+
+$pink-100: tint-color($pink, 80%) !default;
+$pink-200: tint-color($pink, 60%) !default;
+$pink-300: tint-color($pink, 40%) !default;
+$pink-400: tint-color($pink, 20%) !default;
+$pink-500: $pink !default;
+$pink-600: shade-color($pink, 20%) !default;
+$pink-700: shade-color($pink, 40%) !default;
+$pink-800: shade-color($pink, 60%) !default;
+$pink-900: shade-color($pink, 80%) !default;
+
+$red-100: tint-color($red, 80%) !default;
+$red-200: tint-color($red, 60%) !default;
+$red-300: tint-color($red, 40%) !default;
+$red-400: tint-color($red, 20%) !default;
+$red-500: $red !default;
+$red-600: shade-color($red, 20%) !default;
+$red-700: shade-color($red, 40%) !default;
+$red-800: shade-color($red, 60%) !default;
+$red-900: shade-color($red, 80%) !default;
+
+$orange-100: tint-color($orange, 80%) !default;
+$orange-200: tint-color($orange, 60%) !default;
+$orange-300: tint-color($orange, 40%) !default;
+$orange-400: tint-color($orange, 20%) !default;
+$orange-500: $orange !default;
+$orange-600: shade-color($orange, 20%) !default;
+$orange-700: shade-color($orange, 40%) !default;
+$orange-800: shade-color($orange, 60%) !default;
+$orange-900: shade-color($orange, 80%) !default;
+
+$yellow-100: tint-color($yellow, 80%) !default;
+$yellow-200: tint-color($yellow, 60%) !default;
+$yellow-300: tint-color($yellow, 40%) !default;
+$yellow-400: tint-color($yellow, 20%) !default;
+$yellow-500: $yellow !default;
+$yellow-600: shade-color($yellow, 20%) !default;
+$yellow-700: shade-color($yellow, 40%) !default;
+$yellow-800: shade-color($yellow, 60%) !default;
+$yellow-900: shade-color($yellow, 80%) !default;
+
+$green-100: tint-color($green, 80%) !default;
+$green-200: tint-color($green, 60%) !default;
+$green-300: tint-color($green, 40%) !default;
+$green-400: tint-color($green, 20%) !default;
+$green-500: $green !default;
+$green-600: shade-color($green, 20%) !default;
+$green-700: shade-color($green, 40%) !default;
+$green-800: shade-color($green, 60%) !default;
+$green-900: shade-color($green, 80%) !default;
+
+$teal-100: tint-color($teal, 80%) !default;
+$teal-200: tint-color($teal, 60%) !default;
+$teal-300: tint-color($teal, 40%) !default;
+$teal-400: tint-color($teal, 20%) !default;
+$teal-500: $teal !default;
+$teal-600: shade-color($teal, 20%) !default;
+$teal-700: shade-color($teal, 40%) !default;
+$teal-800: shade-color($teal, 60%) !default;
+$teal-900: shade-color($teal, 80%) !default;
+
+$cyan-100: tint-color($cyan, 80%) !default;
+$cyan-200: tint-color($cyan, 60%) !default;
+$cyan-300: tint-color($cyan, 40%) !default;
+$cyan-400: tint-color($cyan, 20%) !default;
+$cyan-500: $cyan !default;
+$cyan-600: shade-color($cyan, 20%) !default;
+$cyan-700: shade-color($cyan, 40%) !default;
+$cyan-800: shade-color($cyan, 60%) !default;
+$cyan-900: shade-color($cyan, 80%) !default;
+
+$blues: (
+ "blue-100": $blue-100,
+ "blue-200": $blue-200,
+ "blue-300": $blue-300,
+ "blue-400": $blue-400,
+ "blue-500": $blue-500,
+ "blue-600": $blue-600,
+ "blue-700": $blue-700,
+ "blue-800": $blue-800,
+ "blue-900": $blue-900
+) !default;
+
+$indigos: (
+ "indigo-100": $indigo-100,
+ "indigo-200": $indigo-200,
+ "indigo-300": $indigo-300,
+ "indigo-400": $indigo-400,
+ "indigo-500": $indigo-500,
+ "indigo-600": $indigo-600,
+ "indigo-700": $indigo-700,
+ "indigo-800": $indigo-800,
+ "indigo-900": $indigo-900
+) !default;
+
+$purples: (
+ "purple-100": $purple-100,
+ "purple-200": $purple-200,
+ "purple-300": $purple-300,
+ "purple-400": $purple-400,
+ "purple-500": $purple-500,
+ "purple-600": $purple-600,
+ "purple-700": $purple-700,
+ "purple-800": $purple-800,
+ "purple-900": $purple-900
+) !default;
+
+$pinks: (
+ "pink-100": $pink-100,
+ "pink-200": $pink-200,
+ "pink-300": $pink-300,
+ "pink-400": $pink-400,
+ "pink-500": $pink-500,
+ "pink-600": $pink-600,
+ "pink-700": $pink-700,
+ "pink-800": $pink-800,
+ "pink-900": $pink-900
+) !default;
+
+$reds: (
+ "red-100": $red-100,
+ "red-200": $red-200,
+ "red-300": $red-300,
+ "red-400": $red-400,
+ "red-500": $red-500,
+ "red-600": $red-600,
+ "red-700": $red-700,
+ "red-800": $red-800,
+ "red-900": $red-900
+) !default;
+
+$oranges: (
+ "orange-100": $orange-100,
+ "orange-200": $orange-200,
+ "orange-300": $orange-300,
+ "orange-400": $orange-400,
+ "orange-500": $orange-500,
+ "orange-600": $orange-600,
+ "orange-700": $orange-700,
+ "orange-800": $orange-800,
+ "orange-900": $orange-900
+) !default;
+
+$yellows: (
+ "yellow-100": $yellow-100,
+ "yellow-200": $yellow-200,
+ "yellow-300": $yellow-300,
+ "yellow-400": $yellow-400,
+ "yellow-500": $yellow-500,
+ "yellow-600": $yellow-600,
+ "yellow-700": $yellow-700,
+ "yellow-800": $yellow-800,
+ "yellow-900": $yellow-900
+) !default;
+
+$greens: (
+ "green-100": $green-100,
+ "green-200": $green-200,
+ "green-300": $green-300,
+ "green-400": $green-400,
+ "green-500": $green-500,
+ "green-600": $green-600,
+ "green-700": $green-700,
+ "green-800": $green-800,
+ "green-900": $green-900
+) !default;
+
+$teals: (
+ "teal-100": $teal-100,
+ "teal-200": $teal-200,
+ "teal-300": $teal-300,
+ "teal-400": $teal-400,
+ "teal-500": $teal-500,
+ "teal-600": $teal-600,
+ "teal-700": $teal-700,
+ "teal-800": $teal-800,
+ "teal-900": $teal-900
+) !default;
+
+$cyans: (
+ "cyan-100": $cyan-100,
+ "cyan-200": $cyan-200,
+ "cyan-300": $cyan-300,
+ "cyan-400": $cyan-400,
+ "cyan-500": $cyan-500,
+ "cyan-600": $cyan-600,
+ "cyan-700": $cyan-700,
+ "cyan-800": $cyan-800,
+ "cyan-900": $cyan-900
+) !default;
+// fusv-enable
+// scss-docs-start theme-color-variables
$primary: $blue !default;
$secondary: $gray-600 !default;
$success: $green !default;
@@ -73,50 +305,64 @@ $info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-100 !default;
-$dark: $gray-800 !default;
-
-$theme-colors: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$theme-colors: map-merge(
- (
- "primary": $primary,
- "secondary": $secondary,
- "success": $success,
- "info": $info,
- "warning": $warning,
- "danger": $danger,
- "light": $light,
- "dark": $dark
- ),
- $theme-colors
-);
-
-// Set a specific jump point for requesting color jumps
-$theme-color-interval: 8% !default;
-
-// The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
-$yiq-contrasted-threshold: 150 !default;
-
-// Customize the light and dark text colors for use in our YIQ color contrast function.
-$yiq-text-dark: $gray-900 !default;
-$yiq-text-light: $white !default;
-
+$dark: $gray-900 !default;
+// scss-docs-end theme-color-variables
+
+// scss-docs-start theme-colors-map
+$theme-colors: (
+ "primary": $primary,
+ "secondary": $secondary,
+ "success": $success,
+ "info": $info,
+ "warning": $warning,
+ "danger": $danger,
+ "light": $light,
+ "dark": $dark
+) !default;
+// scss-docs-end theme-colors-map
+
+// Characters which are escaped by the escape-svg function
+$escaped-characters: (
+ ("<", "%3c"),
+ (">", "%3e"),
+ ("#", "%23"),
+ ("(", "%28"),
+ (")", "%29"),
+) !default;
// Options
//
// Quickly modify global styling by enabling or disabling optional features.
-$enable-caret: true !default;
-$enable-rounded: true !default;
-$enable-shadows: false !default;
-$enable-gradients: false !default;
-$enable-transitions: true !default;
-$enable-prefers-reduced-motion-media-query: true !default;
-$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
-$enable-grid-classes: true !default;
-$enable-print-styles: true !default;
-$enable-validation-icons: true !default;
-
+$enable-caret: true !default;
+$enable-rounded: true !default;
+$enable-shadows: false !default;
+$enable-gradients: false !default;
+$enable-transitions: true !default;
+$enable-reduced-motion: true !default;
+$enable-smooth-scroll: true !default;
+$enable-grid-classes: true !default;
+$enable-container-classes: true !default;
+$enable-cssgrid: false !default;
+$enable-button-pointers: true !default;
+$enable-rfs: true !default;
+$enable-validation-icons: true !default;
+$enable-negative-margins: false !default;
+$enable-deprecation-messages: true !default;
+$enable-important-utilities: true !default;
+
+// Prefix for :root CSS variables
+
+$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`
+$prefix: $variable-prefix !default;
+
+// Gradient
+//
+// The gradient which is added to components if `$enable-gradients` is `true`
+// This gradient is also added to elements with `.bg-gradient`
+// scss-docs-start variable-gradient
+$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;
+// scss-docs-end variable-gradient
// Spacing
//
@@ -124,35 +370,29 @@ $enable-validation-icons: true !default;
// variables. Mostly focused on spacing.
// You can add more entries to the $spacers map, should you need more variation.
+// scss-docs-start spacer-variables-maps
$spacer: 1rem !default;
-$spacers: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$spacers: map-merge(
- (
- 0: 0,
- 1: ($spacer * .25),
- 2: ($spacer * .5),
- 3: $spacer,
- 4: ($spacer * 1.5),
- 5: ($spacer * 3)
- ),
- $spacers
-);
-
-// This variable affects the `.h-*` and `.w-*` classes.
-$sizes: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$sizes: map-merge(
- (
- 25: 25%,
- 50: 50%,
- 75: 75%,
- 100: 100%,
- auto: auto
- ),
- $sizes
-);
+$spacers: (
+ 0: 0,
+ 1: $spacer * .25,
+ 2: $spacer * .5,
+ 3: $spacer,
+ 4: $spacer * 1.5,
+ 5: $spacer * 3,
+) !default;
+// scss-docs-end spacer-variables-maps
+
+// Position
+//
+// Define the edge positioning anchors of the position utilities.
+// scss-docs-start position-map
+$position-values: (
+ 0: 0,
+ 50: 50%,
+ 100: 100%
+) !default;
+// scss-docs-end position-map
// Body
//
@@ -160,18 +400,20 @@ $sizes: map-merge(
$body-bg: $white !default;
$body-color: $gray-900 !default;
-
+$body-text-align: null !default;
// Links
//
// Style anchor elements.
-$link-color: theme-color("primary") !default;
-$link-decoration: none !default;
-$link-hover-color: darken($link-color, 15%) !default;
-$link-hover-decoration: underline !default;
-// Darken percentage for links with `.text-*` class (e.g. `.text-success`)
-$emphasized-link-hover-darken-percentage: 15% !default;
+$link-color: $primary !default;
+$link-decoration: underline !default;
+$link-shade-percentage: 20% !default;
+$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;
+$link-hover-decoration: null !default;
+
+$stretched-link-pseudo-element: after !default;
+$stretched-link-z-index: 1 !default;
// Paragraphs
//
@@ -185,38 +427,34 @@ $paragraph-margin-bottom: 1rem !default;
// Define the minimum dimensions at which your layout will change,
// adapting to different screen sizes, for use in media queries.
-$grid-breakpoints: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$grid-breakpoints: map-merge(
- (
- xs: 0,
- sm: 576px,
- md: 768px,
- lg: 992px,
- xl: 1200px
- ),
- $grid-breakpoints
-);
+// scss-docs-start grid-breakpoints
+$grid-breakpoints: (
+ xs: 0,
+ sm: 576px,
+ md: 768px,
+ lg: 992px,
+ xl: 1200px,
+ xxl: 1400px
+) !default;
+// scss-docs-end grid-breakpoints
@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
-@include _assert-starts-at-zero($grid-breakpoints);
+@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
// Grid containers
//
// Define the maximum width of `.container` for different screen sizes.
-$container-max-widths: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$container-max-widths: map-merge(
- (
- sm: 540px,
- md: 720px,
- lg: 960px,
- xl: 1140px
- ),
- $container-max-widths
-);
+// scss-docs-start container-max-widths
+$container-max-widths: (
+ sm: 540px,
+ md: 720px,
+ lg: 960px,
+ xl: 1140px,
+ xxl: 1320px
+) !default;
+// scss-docs-end container-max-widths
@include _assert-ascending($container-max-widths, "$container-max-widths");
@@ -226,72 +464,107 @@ $container-max-widths: map-merge(
// Set the number of columns and specify the width of the gutters.
$grid-columns: 12 !default;
-$grid-gutter-width: 30px !default;
+$grid-gutter-width: 1.5rem !default;
+$grid-row-columns: 6 !default;
+
+// Container padding
+
+$container-padding-x: $grid-gutter-width !default;
// Components
//
// Define common padding and border radius sizes and more.
-$line-height-lg: 1.5 !default;
-$line-height-sm: 1.5 !default;
-
+// scss-docs-start border-variables
$border-width: 1px !default;
-$border-color: $gray-300 !default;
-
-$border-radius: .25rem !default;
-$border-radius-lg: .3rem !default;
-$border-radius-sm: .2rem !default;
-
-$rounded-pill: 50rem !default;
+$border-widths: (
+ 1: 1px,
+ 2: 2px,
+ 3: 3px,
+ 4: 4px,
+ 5: 5px
+) !default;
-$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
+$border-style: solid !default;
+$border-color: $gray-300 !default;
+$border-color-translucent: rgba($black, .175) !default;
+// scss-docs-end border-variables
+
+// scss-docs-start border-radius-variables
+$border-radius: .375rem !default;
+$border-radius-sm: .25rem !default;
+$border-radius-lg: .5rem !default;
+$border-radius-xl: 1rem !default;
+$border-radius-2xl: 2rem !default;
+$border-radius-pill: 50rem !default;
+// scss-docs-end border-radius-variables
+
+// scss-docs-start box-shadow-variables
$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
+$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
+$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;
+// scss-docs-end box-shadow-variables
$component-active-color: $white !default;
-$component-active-bg: theme-color("primary") !default;
+$component-active-bg: $primary !default;
+// scss-docs-start caret-variables
$caret-width: .3em !default;
+$caret-vertical-align: $caret-width * .85 !default;
+$caret-spacing: $caret-width * .85 !default;
+// scss-docs-end caret-variables
$transition-base: all .2s ease-in-out !default;
$transition-fade: opacity .15s linear !default;
+// scss-docs-start collapse-transition
$transition-collapse: height .35s ease !default;
+$transition-collapse-width: width .35s ease !default;
+// scss-docs-end collapse-transition
+
+// stylelint-disable function-disallowed-list
+// scss-docs-start aspect-ratios
+$aspect-ratios: (
+ "1x1": 100%,
+ "4x3": calc(3 / 4 * 100%),
+ "16x9": calc(9 / 16 * 100%),
+ "21x9": calc(9 / 21 * 100%)
+) !default;
+// scss-docs-end aspect-ratios
+// stylelint-enable function-disallowed-list
-$embed-responsive-aspect-ratios: () !default;
-// stylelint-disable-next-line scss/dollar-variable-default
-$embed-responsive-aspect-ratios: join(
- (
- (21 9),
- (16 9),
- (3 4),
- (1 1),
- ),
- $embed-responsive-aspect-ratios
-);
-
-// Fonts
+// Typography
//
// Font, line-height, and color for body text, headings, and more.
+// scss-docs-start font-variables
// 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: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, 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-base: $font-family-sans-serif !default;
// stylelint-enable value-keyword-case
+$font-family-base: var(--#{$prefix}font-sans-serif) !default;
+$font-family-code: var(--#{$prefix}font-monospace) !default;
+// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins
+// $font-size-base affects the font size of the body text
+$font-size-root: null !default;
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
-$font-size-lg: ($font-size-base * 1.25) !default;
-$font-size-sm: ($font-size-base * .875) !default;
+$font-size-sm: $font-size-base * .875 !default;
+$font-size-lg: $font-size-base * 1.25 !default;
$font-weight-lighter: lighter !default;
$font-weight-light: 300 !default;
$font-weight-normal: 400 !default;
+$font-weight-semibold: 600 !default;
$font-weight-bold: 700 !default;
$font-weight-bolder: bolder !default;
$font-weight-base: $font-weight-normal !default;
+
$line-height-base: 1.5 !default;
+$line-height-sm: 1.25 !default;
+$line-height-lg: 2 !default;
$h1-font-size: $font-size-base * 2.5 !default;
$h2-font-size: $font-size-base * 2 !default;
@@ -299,128 +572,192 @@ $h3-font-size: $font-size-base * 1.75 !default;
$h4-font-size: $font-size-base * 1.5 !default;
$h5-font-size: $font-size-base * 1.25 !default;
$h6-font-size: $font-size-base !default;
+// scss-docs-end font-variables
+
+// scss-docs-start font-sizes
+$font-sizes: (
+ 1: $h1-font-size,
+ 2: $h2-font-size,
+ 3: $h3-font-size,
+ 4: $h4-font-size,
+ 5: $h5-font-size,
+ 6: $h6-font-size
+) !default;
+// scss-docs-end font-sizes
-$headings-margin-bottom: $spacer / 2 !default;
-$headings-font-family: inherit !default;
+// scss-docs-start headings-variables
+$headings-margin-bottom: $spacer * .5 !default;
+$headings-font-family: null !default;
+$headings-font-style: null !default;
$headings-font-weight: 500 !default;
$headings-line-height: 1.2 !default;
-$headings-color: inherit !default;
-
-$display1-size: 6rem !default;
-$display2-size: 5.5rem !default;
-$display3-size: 4.5rem !default;
-$display4-size: 3.5rem !default;
+$headings-color: null !default;
+// scss-docs-end headings-variables
+
+// scss-docs-start display-headings
+$display-font-sizes: (
+ 1: 5rem,
+ 2: 4.5rem,
+ 3: 4rem,
+ 4: 3.5rem,
+ 5: 3rem,
+ 6: 2.5rem
+) !default;
-$display1-weight: 300 !default;
-$display2-weight: 300 !default;
-$display3-weight: 300 !default;
-$display4-weight: 300 !default;
-$display-line-height: $headings-line-height !default;
+$display-font-family: null !default;
+$display-font-style: null !default;
+$display-font-weight: 300 !default;
+$display-line-height: $headings-line-height !default;
+// scss-docs-end display-headings
-$lead-font-size: ($font-size-base * 1.25) !default;
+// scss-docs-start type-variables
+$lead-font-size: $font-size-base * 1.25 !default;
$lead-font-weight: 300 !default;
-$small-font-size: 80% !default;
+$small-font-size: .875em !default;
+
+$sub-sup-font-size: .75em !default;
$text-muted: $gray-600 !default;
-$blockquote-small-color: $gray-600 !default;
-$blockquote-small-font-size: $small-font-size !default;
-$blockquote-font-size: ($font-size-base * 1.25) !default;
+$initialism-font-size: $small-font-size !default;
+
+$blockquote-margin-y: $spacer !default;
+$blockquote-font-size: $font-size-base * 1.25 !default;
+$blockquote-footer-color: $gray-600 !default;
+$blockquote-footer-font-size: $small-font-size !default;
-$hr-border-color: rgba($black, .1) !default;
+$hr-margin-y: $spacer !default;
+$hr-color: inherit !default;
+
+// fusv-disable
+$hr-bg-color: null !default; // Deprecated in v5.2.0
+$hr-height: null !default; // Deprecated in v5.2.0
+// fusv-enable
+
+$hr-border-color: null !default; // Allows for inherited colors
$hr-border-width: $border-width !default;
+$hr-opacity: .25 !default;
-$mark-padding: .2em !default;
+$legend-margin-bottom: .5rem !default;
+$legend-font-size: 1.5rem !default;
+$legend-font-weight: null !default;
$dt-font-weight: $font-weight-bold !default;
-$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;
-$nested-kbd-font-weight: $font-weight-bold !default;
-
$list-inline-padding: .5rem !default;
-$mark-bg: #fcf8e3 !default;
-
-$hr-margin-y: $spacer !default;
+$mark-padding: .1875em !default;
+$mark-bg: $yellow-100 !default;
+// scss-docs-end type-variables
// Tables
//
// Customizes the `.table` component with basic values, each used across all table variations.
-$table-cell-padding: .75rem !default;
-$table-cell-padding-sm: .3rem !default;
+// scss-docs-start table-variables
+$table-cell-padding-y: .5rem !default;
+$table-cell-padding-x: .5rem !default;
+$table-cell-padding-y-sm: .25rem !default;
+$table-cell-padding-x-sm: .25rem !default;
+
+$table-cell-vertical-align: top !default;
+$table-color: var(--#{$prefix}body-color) !default;
$table-bg: transparent !default;
-$table-accent-bg: rgba($black, .05) !default;
-$table-hover-bg: rgba($black, .075) !default;
-$table-active-bg: $table-hover-bg !default;
+$table-accent-bg: transparent !default;
-$table-border-width: $border-width !default;
-$table-border-color: $gray-300 !default;
+$table-th-font-weight: null !default;
-$table-head-bg: $gray-200 !default;
-$table-head-color: $gray-700 !default;
+$table-striped-color: $table-color !default;
+$table-striped-bg-factor: .05 !default;
+$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;
-$table-dark-bg: $gray-900 !default;
-$table-dark-accent-bg: rgba($white, .05) !default;
-$table-dark-hover-bg: rgba($white, .075) !default;
-$table-dark-border-color: lighten($gray-900, 7.5%) !default;
-$table-dark-color: $white !default;
+$table-active-color: $table-color !default;
+$table-active-bg-factor: .1 !default;
+$table-active-bg: rgba($black, $table-active-bg-factor) !default;
+
+$table-hover-color: $table-color !default;
+$table-hover-bg-factor: .075 !default;
+$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;
+
+$table-border-factor: .1 !default;
+$table-border-width: $border-width !default;
+$table-border-color: var(--#{$prefix}border-color) !default;
$table-striped-order: odd !default;
+$table-striped-columns-order: even !default;
+
+$table-group-separator-color: currentcolor !default;
$table-caption-color: $text-muted !default;
-$table-bg-level: -9 !default;
-$table-border-level: -6 !default;
+$table-bg-scale: -80% !default;
+// scss-docs-end table-variables
+
+// scss-docs-start table-loop
+$table-variants: (
+ "primary": shift-color($primary, $table-bg-scale),
+ "secondary": shift-color($secondary, $table-bg-scale),
+ "success": shift-color($success, $table-bg-scale),
+ "info": shift-color($info, $table-bg-scale),
+ "warning": shift-color($warning, $table-bg-scale),
+ "danger": shift-color($danger, $table-bg-scale),
+ "light": $light,
+ "dark": $dark,
+) !default;
+// scss-docs-end table-loop
// Buttons + Forms
//
// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.
+// scss-docs-start input-btn-variables
$input-btn-padding-y: .375rem !default;
$input-btn-padding-x: .75rem !default;
+$input-btn-font-family: null !default;
$input-btn-font-size: $font-size-base !default;
$input-btn-line-height: $line-height-base !default;
-$input-btn-focus-width: .2rem !default;
-$input-btn-focus-color: rgba($component-active-bg, .25) !default;
-$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
+$input-btn-focus-width: .25rem !default;
+$input-btn-focus-color-opacity: .25 !default;
+$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;
+$input-btn-focus-blur: 0 !default;
+$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;
$input-btn-padding-y-sm: .25rem !default;
$input-btn-padding-x-sm: .5rem !default;
$input-btn-font-size-sm: $font-size-sm !default;
-$input-btn-line-height-sm: $line-height-sm !default;
$input-btn-padding-y-lg: .5rem !default;
$input-btn-padding-x-lg: 1rem !default;
$input-btn-font-size-lg: $font-size-lg !default;
-$input-btn-line-height-lg: $line-height-lg !default;
$input-btn-border-width: $border-width !default;
+// scss-docs-end input-btn-variables
// Buttons
//
// For each of Bootstrap's buttons, define text, background, and border color.
+// scss-docs-start btn-variables
$btn-padding-y: $input-btn-padding-y !default;
$btn-padding-x: $input-btn-padding-x !default;
+$btn-font-family: $input-btn-font-family !default;
$btn-font-size: $input-btn-font-size !default;
$btn-line-height: $input-btn-line-height !default;
+$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping
$btn-padding-y-sm: $input-btn-padding-y-sm !default;
$btn-padding-x-sm: $input-btn-padding-x-sm !default;
$btn-font-size-sm: $input-btn-font-size-sm !default;
-$btn-line-height-sm: $input-btn-line-height-sm !default;
$btn-padding-y-lg: $input-btn-padding-y-lg !default;
$btn-padding-x-lg: $input-btn-padding-x-lg !default;
$btn-font-size-lg: $input-btn-font-size-lg !default;
-$btn-line-height-lg: $input-btn-line-height-lg !default;
$btn-border-width: $input-btn-border-width !default;
@@ -431,24 +768,50 @@ $btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
$btn-disabled-opacity: .65 !default;
$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
+$btn-link-color: var(--#{$prefix}link-color) !default;
+$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;
$btn-link-disabled-color: $gray-600 !default;
-$btn-block-spacing-y: .5rem !default;
-
// Allows for customizing button radius independently from global border radius
$btn-border-radius: $border-radius !default;
-$btn-border-radius-lg: $border-radius-lg !default;
$btn-border-radius-sm: $border-radius-sm !default;
+$btn-border-radius-lg: $border-radius-lg !default;
$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+$btn-hover-bg-shade-amount: 15% !default;
+$btn-hover-bg-tint-amount: 15% !default;
+$btn-hover-border-shade-amount: 20% !default;
+$btn-hover-border-tint-amount: 10% !default;
+$btn-active-bg-shade-amount: 20% !default;
+$btn-active-bg-tint-amount: 20% !default;
+$btn-active-border-shade-amount: 25% !default;
+$btn-active-border-tint-amount: 10% !default;
+// scss-docs-end btn-variables
-// Forms
-$label-margin-bottom: .5rem !default;
+// Forms
+// scss-docs-start form-text-variables
+$form-text-margin-top: .25rem !default;
+$form-text-font-size: $small-font-size !default;
+$form-text-font-style: null !default;
+$form-text-font-weight: null !default;
+$form-text-color: $text-muted !default;
+// scss-docs-end form-text-variables
+
+// scss-docs-start form-label-variables
+$form-label-margin-bottom: .5rem !default;
+$form-label-font-size: null !default;
+$form-label-font-style: null !default;
+$form-label-font-weight: null !default;
+$form-label-color: null !default;
+// scss-docs-end form-label-variables
+
+// scss-docs-start form-input-variables
$input-padding-y: $input-btn-padding-y !default;
$input-padding-x: $input-btn-padding-x !default;
+$input-font-family: $input-btn-font-family !default;
$input-font-size: $input-btn-font-size !default;
$input-font-weight: $font-weight-base !default;
$input-line-height: $input-btn-line-height !default;
@@ -456,27 +819,27 @@ $input-line-height: $input-btn-line-height !default;
$input-padding-y-sm: $input-btn-padding-y-sm !default;
$input-padding-x-sm: $input-btn-padding-x-sm !default;
$input-font-size-sm: $input-btn-font-size-sm !default;
-$input-line-height-sm: $input-btn-line-height-sm !default;
$input-padding-y-lg: $input-btn-padding-y-lg !default;
$input-padding-x-lg: $input-btn-padding-x-lg !default;
$input-font-size-lg: $input-btn-font-size-lg !default;
-$input-line-height-lg: $input-btn-line-height-lg !default;
-$input-bg: $white !default;
+$input-bg: $body-bg !default;
+$input-disabled-color: null !default;
$input-disabled-bg: $gray-200 !default;
+$input-disabled-border-color: null !default;
-$input-color: $gray-700 !default;
+$input-color: $body-color !default;
$input-border-color: $gray-400 !default;
$input-border-width: $input-btn-border-width !default;
-$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;
+$input-box-shadow: $box-shadow-inset !default;
$input-border-radius: $border-radius !default;
-$input-border-radius-lg: $border-radius-lg !default;
$input-border-radius-sm: $border-radius-sm !default;
+$input-border-radius-lg: $border-radius-lg !default;
$input-focus-bg: $input-bg !default;
-$input-focus-border-color: lighten($component-active-bg, 25%) !default;
+$input-focus-border-color: tint-color($component-active-bg, 50%) !default;
$input-focus-color: $input-color !default;
$input-focus-width: $input-btn-focus-width !default;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;
@@ -486,219 +849,220 @@ $input-plaintext-color: $body-color !default;
$input-height-border: $input-border-width * 2 !default;
-$input-height-inner: ($input-btn-font-size * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
-$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
-
-$input-height-inner-sm: ($input-btn-font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
-$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !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-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
-$input-height-inner-lg: ($input-btn-font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
-$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !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 * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
+$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;
$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
-$form-text-margin-top: .25rem !default;
-
-$form-check-input-gutter: 1.25rem !default;
-$form-check-input-margin-y: .3rem !default;
-$form-check-input-margin-x: .25rem !default;
-
-$form-check-inline-margin-x: .75rem !default;
-$form-check-inline-input-margin-x: .3125rem !default;
-
-$form-grid-gutter-width: 10px !default;
-$form-group-margin-bottom: 1rem !default;
-
+$form-color-width: 3rem !default;
+// scss-docs-end form-input-variables
+
+// scss-docs-start form-check-variables
+$form-check-input-width: 1em !default;
+$form-check-min-height: $font-size-base * $line-height-base !default;
+$form-check-padding-start: $form-check-input-width + .5em !default;
+$form-check-margin-bottom: .125rem !default;
+$form-check-label-color: null !default;
+$form-check-label-cursor: null !default;
+$form-check-transition: null !default;
+
+$form-check-input-active-filter: brightness(90%) !default;
+
+$form-check-input-bg: $input-bg !default;
+$form-check-input-border: 1px solid rgba($black, .25) !default;
+$form-check-input-border-radius: .25em !default;
+$form-check-radio-border-radius: 50% !default;
+$form-check-input-focus-border: $input-focus-border-color !default;
+$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;
+
+$form-check-input-checked-color: $component-active-color !default;
+$form-check-input-checked-bg-color: $component-active-bg !default;
+$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;
+$form-check-input-checked-bg-image: url("data:image/svg+xml,
") !default;
+$form-check-radio-checked-bg-image: url("data:image/svg+xml,
") !default;
+
+$form-check-input-indeterminate-color: $component-active-color !default;
+$form-check-input-indeterminate-bg-color: $component-active-bg !default;
+$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;
+$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,
") !default;
+
+$form-check-input-disabled-opacity: .5 !default;
+$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;
+$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;
+
+$form-check-inline-margin-end: 1rem !default;
+// scss-docs-end form-check-variables
+
+// scss-docs-start form-switch-variables
+$form-switch-color: rgba($black, .25) !default;
+$form-switch-width: 2em !default;
+$form-switch-padding-start: $form-switch-width + .5em !default;
+$form-switch-bg-image: url("data:image/svg+xml,
") !default;
+$form-switch-border-radius: $form-switch-width !default;
+$form-switch-transition: background-position .15s ease-in-out !default;
+
+$form-switch-focus-color: $input-focus-border-color !default;
+$form-switch-focus-bg-image: url("data:image/svg+xml,
") !default;
+
+$form-switch-checked-color: $component-active-color !default;
+$form-switch-checked-bg-image: url("data:image/svg+xml,
") !default;
+$form-switch-checked-bg-position: right center !default;
+// scss-docs-end form-switch-variables
+
+// scss-docs-start input-group-variables
+$input-group-addon-padding-y: $input-padding-y !default;
+$input-group-addon-padding-x: $input-padding-x !default;
+$input-group-addon-font-weight: $input-font-weight !default;
$input-group-addon-color: $input-color !default;
$input-group-addon-bg: $gray-200 !default;
$input-group-addon-border-color: $input-border-color !default;
-
-$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
-
-$custom-control-gutter: .5rem !default;
-$custom-control-spacer-x: 1rem !default;
-
-$custom-control-indicator-size: 1rem !default;
-$custom-control-indicator-bg: $input-bg !default;
-
-$custom-control-indicator-bg-size: 50% 50% !default;
-$custom-control-indicator-box-shadow: $input-box-shadow !default;
-$custom-control-indicator-border-color: $gray-500 !default;
-$custom-control-indicator-border-width: $input-border-width !default;
-
-$custom-control-indicator-disabled-bg: $input-disabled-bg !default;
-$custom-control-label-disabled-color: $gray-600 !default;
-
-$custom-control-indicator-checked-color: $component-active-color !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-box-shadow: none !default;
-$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
-
-$custom-control-indicator-focus-box-shadow: $input-btn-focus-box-shadow !default;
-$custom-control-indicator-focus-border-color: $input-focus-border-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-box-shadow: none !default;
-$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
-
-$custom-checkbox-indicator-border-radius: $border-radius !default;
-$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"), "#", "%23") !default;
-
-$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
-$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
-$custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e"), "#", "%23") !default;
-$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
-$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;
-
-$custom-radio-indicator-border-radius: 50% !default;
-$custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e"), "#", "%23") !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-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;
-
-$custom-select-padding-y: $input-btn-padding-y !default;
-$custom-select-padding-x: $input-btn-padding-x !default;
-$custom-select-height: $input-height !default;
-$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
-$custom-select-font-weight: $input-font-weight !default;
-$custom-select-line-height: $input-line-height !default;
-$custom-select-color: $input-color !default;
-$custom-select-disabled-color: $gray-600 !default;
-$custom-select-bg: $input-bg !default;
-$custom-select-disabled-bg: $gray-200 !default;
-$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
-$custom-select-indicator-color: $gray-800 !default;
-$custom-select-indicator: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e"), "#", "%23") !default;
-$custom-select-background: $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-feedback-icon-padding-right: $input-height-inner * 3 / 4 + $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-size: ($input-height-inner / 2) ($input-height-inner / 2) !default;
-
-$custom-select-border-width: $input-border-width !default;
-$custom-select-border-color: $input-border-color !default;
-$custom-select-border-radius: $border-radius !default;
-$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
-
-$custom-select-focus-border-color: $input-focus-border-color !default;
-$custom-select-focus-width: $input-focus-width !default;
-$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width rgba($custom-select-focus-border-color, .5) !default;
-
-$custom-select-padding-y-sm: $input-padding-y-sm !default;
-$custom-select-padding-x-sm: $input-padding-x-sm !default;
-$custom-select-font-size-sm: $input-btn-font-size-sm !default;
-$custom-select-height-sm: $input-height-sm !default;
-
-$custom-select-padding-y-lg: $input-padding-y-lg !default;
-$custom-select-padding-x-lg: $input-padding-x-lg !default;
-$custom-select-font-size-lg: $input-btn-font-size-lg !default;
-$custom-select-height-lg: $input-height-lg !default;
-
-$custom-range-track-width: 100% !default;
-$custom-range-track-height: .5rem !default;
-$custom-range-track-cursor: pointer !default;
-$custom-range-track-bg: $gray-300 !default;
-$custom-range-track-border-radius: 1rem !default;
-$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
-
-$custom-range-thumb-width: 1rem !default;
-$custom-range-thumb-height: $custom-range-thumb-width !default;
-$custom-range-thumb-bg: $component-active-bg !default;
-$custom-range-thumb-border: 0 !default;
-$custom-range-thumb-border-radius: 1rem !default;
-$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
-$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
-$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge
-$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;
-$custom-range-thumb-disabled-bg: $gray-500 !default;
-
-$custom-file-height: $input-height !default;
-$custom-file-height-inner: $input-height-inner !default;
-$custom-file-focus-border-color: $input-focus-border-color !default;
-$custom-file-focus-box-shadow: $input-focus-box-shadow !default;
-$custom-file-disabled-bg: $input-disabled-bg !default;
-
-$custom-file-padding-y: $input-padding-y !default;
-$custom-file-padding-x: $input-padding-x !default;
-$custom-file-line-height: $input-line-height !default;
-$custom-file-font-weight: $input-font-weight !default;
-$custom-file-color: $input-color !default;
-$custom-file-bg: $input-bg !default;
-$custom-file-border-width: $input-border-width !default;
-$custom-file-border-color: $input-border-color !default;
-$custom-file-border-radius: $input-border-radius !default;
-$custom-file-box-shadow: $input-box-shadow !default;
-$custom-file-button-color: $custom-file-color !default;
-$custom-file-button-bg: $input-group-addon-bg !default;
-$custom-file-text: (
- en: "Browse"
-) !default;
-
+// scss-docs-end input-group-variables
+
+// scss-docs-start form-select-variables
+$form-select-padding-y: $input-padding-y !default;
+$form-select-padding-x: $input-padding-x !default;
+$form-select-font-family: $input-font-family !default;
+$form-select-font-size: $input-font-size !default;
+$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image
+$form-select-font-weight: $input-font-weight !default;
+$form-select-line-height: $input-line-height !default;
+$form-select-color: $input-color !default;
+$form-select-bg: $input-bg !default;
+$form-select-disabled-color: null !default;
+$form-select-disabled-bg: $gray-200 !default;
+$form-select-disabled-border-color: $input-disabled-border-color !default;
+$form-select-bg-position: right $form-select-padding-x center !default;
+$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions
+$form-select-indicator-color: $gray-800 !default;
+$form-select-indicator: url("data:image/svg+xml,
") !default;
+
+$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;
+$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;
+$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
+
+$form-select-border-width: $input-border-width !default;
+$form-select-border-color: $input-border-color !default;
+$form-select-border-radius: $input-border-radius !default;
+$form-select-box-shadow: $box-shadow-inset !default;
+
+$form-select-focus-border-color: $input-focus-border-color !default;
+$form-select-focus-width: $input-focus-width !default;
+$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;
+
+$form-select-padding-y-sm: $input-padding-y-sm !default;
+$form-select-padding-x-sm: $input-padding-x-sm !default;
+$form-select-font-size-sm: $input-font-size-sm !default;
+$form-select-border-radius-sm: $input-border-radius-sm !default;
+
+$form-select-padding-y-lg: $input-padding-y-lg !default;
+$form-select-padding-x-lg: $input-padding-x-lg !default;
+$form-select-font-size-lg: $input-font-size-lg !default;
+$form-select-border-radius-lg: $input-border-radius-lg !default;
+
+$form-select-transition: $input-transition !default;
+// scss-docs-end form-select-variables
+
+// scss-docs-start form-range-variables
+$form-range-track-width: 100% !default;
+$form-range-track-height: .5rem !default;
+$form-range-track-cursor: pointer !default;
+$form-range-track-bg: $gray-300 !default;
+$form-range-track-border-radius: 1rem !default;
+$form-range-track-box-shadow: $box-shadow-inset !default;
+
+$form-range-thumb-width: 1rem !default;
+$form-range-thumb-height: $form-range-thumb-width !default;
+$form-range-thumb-bg: $component-active-bg !default;
+$form-range-thumb-border: 0 !default;
+$form-range-thumb-border-radius: 1rem !default;
+$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
+$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
+$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge
+$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;
+$form-range-thumb-disabled-bg: $gray-500 !default;
+$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+// scss-docs-end form-range-variables
+
+// scss-docs-start form-file-variables
+$form-file-button-color: $input-color !default;
+$form-file-button-bg: $input-group-addon-bg !default;
+$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;
+// scss-docs-end form-file-variables
+
+// scss-docs-start form-floating-variables
+$form-floating-height: add(3.5rem, $input-height-border) !default;
+$form-floating-line-height: 1.25 !default;
+$form-floating-padding-x: $input-padding-x !default;
+$form-floating-padding-y: 1rem !default;
+$form-floating-input-padding-t: 1.625rem !default;
+$form-floating-input-padding-b: .625rem !default;
+$form-floating-label-opacity: .65 !default;
+$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;
+$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;
+// scss-docs-end form-floating-variables
// Form validation
+// scss-docs-start form-feedback-variables
$form-feedback-margin-top: $form-text-margin-top !default;
-$form-feedback-font-size: $small-font-size !default;
-$form-feedback-valid-color: theme-color("success") !default;
-$form-feedback-invalid-color: theme-color("danger") !default;
+$form-feedback-font-size: $form-text-font-size !default;
+$form-feedback-font-style: $form-text-font-style !default;
+$form-feedback-valid-color: $success !default;
+$form-feedback-invalid-color: $danger !default;
$form-feedback-icon-valid-color: $form-feedback-valid-color !default;
-$form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"), "#", "%23") !default;
+$form-feedback-icon-valid: url("data:image/svg+xml,
") !default;
$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
-$form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default;
-
-
-// Dropdowns
-//
-// Dropdown menu container and contents.
-
-$dropdown-min-width: 10rem !default;
-$dropdown-padding-y: .5rem !default;
-$dropdown-spacer: .125rem !default;
-$dropdown-bg: $white !default;
-$dropdown-border-color: rgba($black, .15) !default;
-$dropdown-border-radius: $border-radius !default;
-$dropdown-border-width: $border-width !default;
-$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
-$dropdown-divider-bg: $gray-200 !default;
-$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
-
-$dropdown-link-color: $gray-900 !default;
-$dropdown-link-hover-color: darken($gray-900, 5%) !default;
-$dropdown-link-hover-bg: $gray-100 !default;
-
-$dropdown-link-active-color: $component-active-color !default;
-$dropdown-link-active-bg: $component-active-bg !default;
-
-$dropdown-link-disabled-color: $gray-600 !default;
-
-$dropdown-item-padding-y: .25rem !default;
-$dropdown-item-padding-x: 1.5rem !default;
-
-$dropdown-header-color: $gray-600 !default;
-
+$form-feedback-icon-invalid: url("data:image/svg+xml,
") !default;
+// scss-docs-end form-feedback-variables
+
+// scss-docs-start form-validation-states
+$form-validation-states: (
+ "valid": (
+ "color": $form-feedback-valid-color,
+ "icon": $form-feedback-icon-valid
+ ),
+ "invalid": (
+ "color": $form-feedback-invalid-color,
+ "icon": $form-feedback-icon-invalid
+ )
+) !default;
+// scss-docs-end form-validation-states
// Z-index master list
//
// Warning: Avoid customizing these values. They're used for a bird's eye view
// of components dependent on the z-axis and are designed to all work together.
+// scss-docs-start zindex-stack
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
-$zindex-modal-backdrop: 1040 !default;
-$zindex-modal: 1050 !default;
-$zindex-popover: 1060 !default;
-$zindex-tooltip: 1070 !default;
+$zindex-offcanvas-backdrop: 1040 !default;
+$zindex-offcanvas: 1045 !default;
+$zindex-modal-backdrop: 1050 !default;
+$zindex-modal: 1055 !default;
+$zindex-popover: 1070 !default;
+$zindex-tooltip: 1080 !default;
+$zindex-toast: 1090 !default;
+// scss-docs-end zindex-stack
// Navs
+// scss-docs-start nav-variables
$nav-link-padding-y: .5rem !default;
$nav-link-padding-x: 1rem !default;
+$nav-link-font-size: null !default;
+$nav-link-font-weight: null !default;
+$nav-link-color: var(--#{$prefix}link-color) !default;
+$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;
+$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;
$nav-link-disabled-color: $gray-600 !default;
$nav-tabs-border-color: $gray-300 !default;
@@ -712,15 +1076,14 @@ $nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg
$nav-pills-border-radius: $border-radius !default;
$nav-pills-link-active-color: $component-active-color !default;
$nav-pills-link-active-bg: $component-active-bg !default;
-
-$nav-divider-color: $gray-200 !default;
-$nav-divider-margin-y: $spacer / 2 !default;
+// scss-docs-end nav-variables
// Navbar
-$navbar-padding-y: $spacer / 2 !default;
-$navbar-padding-x: $spacer !default;
+// scss-docs-start navbar-variables
+$navbar-padding-y: $spacer * .5 !default;
+$navbar-padding-x: null !default;
$navbar-nav-link-padding-x: .5rem !default;
@@ -728,52 +1091,119 @@ $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
$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-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
+$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
+$navbar-brand-margin-end: 1rem !default;
$navbar-toggler-padding-y: .25rem !default;
$navbar-toggler-padding-x: .75rem !default;
$navbar-toggler-font-size: $font-size-lg !default;
$navbar-toggler-border-radius: $btn-border-radius !default;
+$navbar-toggler-focus-width: $btn-focus-width !default;
+$navbar-toggler-transition: box-shadow .15s ease-in-out !default;
+
+$navbar-light-color: rgba($black, .55) !default;
+$navbar-light-hover-color: rgba($black, .7) !default;
+$navbar-light-active-color: rgba($black, .9) !default;
+$navbar-light-disabled-color: rgba($black, .3) !default;
+$navbar-light-toggler-icon-bg: url("data:image/svg+xml,
") !default;
+$navbar-light-toggler-border-color: rgba($black, .1) !default;
+$navbar-light-brand-color: $navbar-light-active-color !default;
+$navbar-light-brand-hover-color: $navbar-light-active-color !default;
+// scss-docs-end navbar-variables
-$navbar-dark-color: rgba($white, .5) !default;
+// scss-docs-start navbar-dark-variables
+$navbar-dark-color: rgba($white, .55) !default;
$navbar-dark-hover-color: rgba($white, .75) !default;
$navbar-dark-active-color: $white !default;
$navbar-dark-disabled-color: rgba($white, .25) !default;
-$navbar-dark-toggler-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23") !default;
+$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,
") !default;
$navbar-dark-toggler-border-color: rgba($white, .1) !default;
+$navbar-dark-brand-color: $navbar-dark-active-color !default;
+$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
+// scss-docs-end navbar-dark-variables
-$navbar-light-color: rgba($black, .5) !default;
-$navbar-light-hover-color: rgba($black, .7) !default;
-$navbar-light-active-color: rgba($black, .9) !default;
-$navbar-light-disabled-color: rgba($black, .3) !default;
-$navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23") !default;
-$navbar-light-toggler-border-color: rgba($black, .1) !default;
-$navbar-light-brand-color: $navbar-light-active-color !default;
-$navbar-light-brand-hover-color: $navbar-light-active-color !default;
-$navbar-dark-brand-color: $navbar-dark-active-color !default;
-$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+// scss-docs-start dropdown-variables
+$dropdown-min-width: 10rem !default;
+$dropdown-padding-x: 0 !default;
+$dropdown-padding-y: .5rem !default;
+$dropdown-spacer: .125rem !default;
+$dropdown-font-size: $font-size-base !default;
+$dropdown-color: $body-color !default;
+$dropdown-bg: $white !default;
+$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default;
+$dropdown-border-radius: $border-radius !default;
+$dropdown-border-width: $border-width !default;
+$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;
+$dropdown-divider-bg: $dropdown-border-color !default;
+$dropdown-divider-margin-y: $spacer * .5 !default;
+$dropdown-box-shadow: $box-shadow !default;
+
+$dropdown-link-color: $gray-900 !default;
+$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;
+$dropdown-link-hover-bg: $gray-200 !default;
+
+$dropdown-link-active-color: $component-active-color !default;
+$dropdown-link-active-bg: $component-active-bg !default;
+
+$dropdown-link-disabled-color: $gray-500 !default;
+
+$dropdown-item-padding-y: $spacer * .25 !default;
+$dropdown-item-padding-x: $spacer !default;
+
+$dropdown-header-color: $gray-600 !default;
+$dropdown-header-padding-x: $dropdown-item-padding-x !default;
+$dropdown-header-padding-y: $dropdown-padding-y !default;
+// fusv-disable
+$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0
+// fusv-enable
+// scss-docs-end dropdown-variables
+
+// scss-docs-start dropdown-dark-variables
+$dropdown-dark-color: $gray-300 !default;
+$dropdown-dark-bg: $gray-800 !default;
+$dropdown-dark-border-color: $dropdown-border-color !default;
+$dropdown-dark-divider-bg: $dropdown-divider-bg !default;
+$dropdown-dark-box-shadow: null !default;
+$dropdown-dark-link-color: $dropdown-dark-color !default;
+$dropdown-dark-link-hover-color: $white !default;
+$dropdown-dark-link-hover-bg: rgba($white, .15) !default;
+$dropdown-dark-link-active-color: $dropdown-link-active-color !default;
+$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;
+$dropdown-dark-link-disabled-color: $gray-500 !default;
+$dropdown-dark-header-color: $gray-500 !default;
+// scss-docs-end dropdown-dark-variables
// Pagination
-$pagination-padding-y: .5rem !default;
+// scss-docs-start pagination-variables
+$pagination-padding-y: .375rem !default;
$pagination-padding-x: .75rem !default;
$pagination-padding-y-sm: .25rem !default;
$pagination-padding-x-sm: .5rem !default;
$pagination-padding-y-lg: .75rem !default;
$pagination-padding-x-lg: 1.5rem !default;
-$pagination-line-height: 1.25 !default;
-$pagination-color: $link-color !default;
+$pagination-font-size: $font-size-base !default;
+
+$pagination-color: var(--#{$prefix}link-color) !default;
$pagination-bg: $white !default;
+$pagination-border-radius: $border-radius !default;
$pagination-border-width: $border-width !default;
+$pagination-margin-start: ($pagination-border-width * -1) !default;
$pagination-border-color: $gray-300 !default;
+$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;
+$pagination-focus-bg: $gray-200 !default;
$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
$pagination-focus-outline: 0 !default;
-$pagination-hover-color: $link-hover-color !default;
+$pagination-hover-color: var(--#{$prefix}link-hover-color) !default;
$pagination-hover-bg: $gray-200 !default;
$pagination-hover-border-color: $gray-300 !default;
@@ -785,191 +1215,267 @@ $pagination-disabled-color: $gray-600 !default;
$pagination-disabled-bg: $white !default;
$pagination-disabled-border-color: $gray-300 !default;
+$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$pagination-border-radius-sm: $border-radius-sm !default;
+$pagination-border-radius-lg: $border-radius-lg !default;
+// scss-docs-end pagination-variables
-// Jumbotron
-$jumbotron-padding: 2rem !default;
-$jumbotron-bg: $gray-200 !default;
+// Placeholders
+// scss-docs-start placeholders
+$placeholder-opacity-max: .5 !default;
+$placeholder-opacity-min: .2 !default;
+// scss-docs-end placeholders
// Cards
-$card-spacer-y: .75rem !default;
-$card-spacer-x: 1.25rem !default;
+// scss-docs-start card-variables
+$card-spacer-y: $spacer !default;
+$card-spacer-x: $spacer !default;
+$card-title-spacer-y: $spacer * .5 !default;
$card-border-width: $border-width !default;
+$card-border-color: var(--#{$prefix}border-color-translucent) !default;
$card-border-radius: $border-radius !default;
-$card-border-color: rgba($black, .125) !default;
-$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
+$card-box-shadow: null !default;
+$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;
+$card-cap-padding-y: $card-spacer-y * .5 !default;
+$card-cap-padding-x: $card-spacer-x !default;
$card-cap-bg: rgba($black, .03) !default;
-$card-cap-color: inherit !default;
+$card-cap-color: null !default;
+$card-height: null !default;
+$card-color: null !default;
$card-bg: $white !default;
-
-$card-img-overlay-padding: 1.25rem !default;
-
-$card-group-margin: $grid-gutter-width / 2 !default;
-$card-deck-margin: $card-group-margin !default;
-
-$card-columns-count: 3 !default;
-$card-columns-gap: 1.25rem !default;
-$card-columns-margin: $card-spacer-y !default;
-
+$card-img-overlay-padding: $spacer !default;
+$card-group-margin: $grid-gutter-width * .5 !default;
+// scss-docs-end card-variables
+
+// Accordion
+
+// scss-docs-start accordion-variables
+$accordion-padding-y: 1rem !default;
+$accordion-padding-x: 1.25rem !default;
+$accordion-color: $body-color !default; // Sass variable because of $accordion-button-icon
+$accordion-bg: $body-bg !default;
+$accordion-border-width: $border-width !default;
+$accordion-border-color: var(--#{$prefix}border-color) !default;
+$accordion-border-radius: $border-radius !default;
+$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;
+
+$accordion-body-padding-y: $accordion-padding-y !default;
+$accordion-body-padding-x: $accordion-padding-x !default;
+
+$accordion-button-padding-y: $accordion-padding-y !default;
+$accordion-button-padding-x: $accordion-padding-x !default;
+$accordion-button-color: $accordion-color !default;
+$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;
+$accordion-transition: $btn-transition, border-radius .15s ease !default;
+$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;
+$accordion-button-active-color: shade-color($primary, 10%) !default;
+
+$accordion-button-focus-border-color: $input-focus-border-color !default;
+$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;
+
+$accordion-icon-width: 1.25rem !default;
+$accordion-icon-color: $accordion-button-color !default;
+$accordion-icon-active-color: $accordion-button-active-color !default;
+$accordion-icon-transition: transform .2s ease-in-out !default;
+$accordion-icon-transform: rotate(-180deg) !default;
+
+$accordion-button-icon: url("data:image/svg+xml,
") !default;
+$accordion-button-active-icon: url("data:image/svg+xml,
") !default;
+// scss-docs-end accordion-variables
// Tooltips
+// scss-docs-start tooltip-variables
$tooltip-font-size: $font-size-sm !default;
$tooltip-max-width: 200px !default;
$tooltip-color: $white !default;
$tooltip-bg: $black !default;
$tooltip-border-radius: $border-radius !default;
$tooltip-opacity: .9 !default;
-$tooltip-padding-y: .25rem !default;
-$tooltip-padding-x: .5rem !default;
-$tooltip-margin: 0 !default;
+$tooltip-padding-y: $spacer * .25 !default;
+$tooltip-padding-x: $spacer * .5 !default;
+$tooltip-margin: null !default; // TODO: remove this in v6
$tooltip-arrow-width: .8rem !default;
$tooltip-arrow-height: .4rem !default;
-$tooltip-arrow-color: $tooltip-bg !default;
+// fusv-disable
+$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables
+// fusv-enable
+// scss-docs-end tooltip-variables
// Form tooltips must come after regular tooltips
+// scss-docs-start tooltip-feedback-variables
$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
$form-feedback-tooltip-font-size: $tooltip-font-size !default;
-$form-feedback-tooltip-line-height: $line-height-base !default;
+$form-feedback-tooltip-line-height: null !default;
$form-feedback-tooltip-opacity: $tooltip-opacity !default;
$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
+// scss-docs-end tooltip-feedback-variables
// Popovers
+// scss-docs-start popover-variables
$popover-font-size: $font-size-sm !default;
$popover-bg: $white !default;
$popover-max-width: 276px !default;
$popover-border-width: $border-width !default;
-$popover-border-color: rgba($black, .2) !default;
+$popover-border-color: var(--#{$prefix}border-color-translucent) !default;
$popover-border-radius: $border-radius-lg !default;
-$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;
+$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;
+$popover-box-shadow: $box-shadow !default;
-$popover-header-bg: darken($popover-bg, 3%) !default;
+$popover-header-font-size: $font-size-base !default;
+$popover-header-bg: shade-color($popover-bg, 6%) !default;
$popover-header-color: $headings-color !default;
$popover-header-padding-y: .5rem !default;
-$popover-header-padding-x: .75rem !default;
+$popover-header-padding-x: $spacer !default;
$popover-body-color: $body-color !default;
-$popover-body-padding-y: $popover-header-padding-y !default;
-$popover-body-padding-x: $popover-header-padding-x !default;
+$popover-body-padding-y: $spacer !default;
+$popover-body-padding-x: $spacer !default;
$popover-arrow-width: 1rem !default;
$popover-arrow-height: .5rem !default;
-$popover-arrow-color: $popover-bg !default;
+// scss-docs-end popover-variables
-$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
+// fusv-disable
+// Deprecated in Bootstrap 5.2.0 for CSS variables
+$popover-arrow-color: $popover-bg !default;
+$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;
+// fusv-enable
// Toasts
-$toast-max-width: 350px !default;
-$toast-padding-x: .75rem !default;
-$toast-padding-y: .25rem !default;
-$toast-font-size: .875rem !default;
-$toast-background-color: rgba($white, .85) !default;
-$toast-border-width: 1px !default;
-$toast-border-color: rgba(0, 0, 0, .1) !default;
-$toast-border-radius: .25rem !default;
-$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
-$toast-header-color: $gray-600 !default;
-$toast-header-background-color: rgba($white, .85) !default;
-$toast-header-border-color: rgba(0, 0, 0, .05) !default;
+// scss-docs-start toast-variables
+$toast-max-width: 350px !default;
+$toast-padding-x: .75rem !default;
+$toast-padding-y: .5rem !default;
+$toast-font-size: .875rem !default;
+$toast-color: null !default;
+$toast-background-color: rgba($white, .85) !default;
+$toast-border-width: $border-width !default;
+$toast-border-color: var(--#{$prefix}border-color-translucent) !default;
+$toast-border-radius: $border-radius !default;
+$toast-box-shadow: $box-shadow !default;
+$toast-spacing: $container-padding-x !default;
+
+$toast-header-color: $gray-600 !default;
+$toast-header-background-color: rgba($white, .85) !default;
+$toast-header-border-color: rgba($black, .05) !default;
+// scss-docs-end toast-variables
// Badges
-$badge-font-size: 75% !default;
+// scss-docs-start badge-variables
+$badge-font-size: .75em !default;
$badge-font-weight: $font-weight-bold !default;
-$badge-padding-y: .25em !default;
-$badge-padding-x: .4em !default;
+$badge-color: $white !default;
+$badge-padding-y: .35em !default;
+$badge-padding-x: .65em !default;
$badge-border-radius: $border-radius !default;
-
-$badge-pill-padding-x: .6em !default;
-// Use a higher than normal value to ensure completely rounded edges when
-// customizing padding or font-size on labels.
-$badge-pill-border-radius: 10rem !default;
+// scss-docs-end badge-variables
// Modals
-// Padding applied to the modal body
-$modal-inner-padding: 1rem !default;
+// scss-docs-start modal-variables
+$modal-inner-padding: $spacer !default;
+
+$modal-footer-margin-between: .5rem !default;
$modal-dialog-margin: .5rem !default;
$modal-dialog-margin-y-sm-up: 1.75rem !default;
$modal-title-line-height: $line-height-base !default;
+$modal-content-color: null !default;
$modal-content-bg: $white !default;
-$modal-content-border-color: rgba($black, .2) !default;
+$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;
$modal-content-border-width: $border-width !default;
$modal-content-border-radius: $border-radius-lg !default;
-$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
-$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
+$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
+$modal-content-box-shadow-xs: $box-shadow-sm !default;
+$modal-content-box-shadow-sm-up: $box-shadow !default;
$modal-backdrop-bg: $black !default;
$modal-backdrop-opacity: .5 !default;
-$modal-header-border-color: $gray-200 !default;
-$modal-footer-border-color: $modal-header-border-color !default;
+
+$modal-header-border-color: var(--#{$prefix}border-color) !default;
$modal-header-border-width: $modal-content-border-width !default;
-$modal-footer-border-width: $modal-header-border-width !default;
-$modal-header-padding-y: 1rem !default;
-$modal-header-padding-x: 1rem !default;
+$modal-header-padding-y: $modal-inner-padding !default;
+$modal-header-padding-x: $modal-inner-padding !default;
$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
-$modal-xl: 1140px !default;
-$modal-lg: 800px !default;
-$modal-md: 500px !default;
+$modal-footer-bg: null !default;
+$modal-footer-border-color: $modal-header-border-color !default;
+$modal-footer-border-width: $modal-header-border-width !default;
+
$modal-sm: 300px !default;
+$modal-md: 500px !default;
+$modal-lg: 800px !default;
+$modal-xl: 1140px !default;
$modal-fade-transform: translate(0, -50px) !default;
$modal-show-transform: none !default;
$modal-transition: transform .3s ease-out !default;
+$modal-scale-transform: scale(1.02) !default;
+// scss-docs-end modal-variables
// Alerts
//
// Define alert colors, border radius, and padding.
-$alert-padding-y: .75rem !default;
-$alert-padding-x: 1.25rem !default;
-$alert-margin-bottom: 1rem !default;
-$alert-border-radius: $border-radius !default;
-$alert-link-font-weight: $font-weight-bold !default;
-$alert-border-width: $border-width !default;
-
-$alert-bg-level: -10 !default;
-$alert-border-level: -9 !default;
-$alert-color-level: 6 !default;
+// scss-docs-start alert-variables
+$alert-padding-y: $spacer !default;
+$alert-padding-x: $spacer !default;
+$alert-margin-bottom: 1rem !default;
+$alert-border-radius: $border-radius !default;
+$alert-link-font-weight: $font-weight-bold !default;
+$alert-border-width: $border-width !default;
+$alert-bg-scale: -80% !default;
+$alert-border-scale: -70% !default;
+$alert-color-scale: 40% !default;
+$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side
+// scss-docs-end alert-variables
// Progress bars
+// scss-docs-start progress-variables
$progress-height: 1rem !default;
-$progress-font-size: ($font-size-base * .75) !default;
+$progress-font-size: $font-size-base * .75 !default;
$progress-bg: $gray-200 !default;
$progress-border-radius: $border-radius !default;
-$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
+$progress-box-shadow: $box-shadow-inset !default;
$progress-bar-color: $white !default;
-$progress-bar-bg: theme-color("primary") !default;
+$progress-bar-bg: $primary !default;
$progress-bar-animation-timing: 1s linear infinite !default;
$progress-bar-transition: width .6s ease !default;
+// scss-docs-end progress-variables
// List group
+// scss-docs-start list-group-variables
+$list-group-color: $gray-900 !default;
$list-group-bg: $white !default;
$list-group-border-color: rgba($black, .125) !default;
$list-group-border-width: $border-width !default;
$list-group-border-radius: $border-radius !default;
-$list-group-item-padding-y: .75rem !default;
-$list-group-item-padding-x: 1.25rem !default;
+$list-group-item-padding-y: $spacer * .5 !default;
+$list-group-item-padding-x: $spacer !default;
+$list-group-item-bg-scale: -80% !default;
+$list-group-item-color-scale: 40% !default;
$list-group-hover-bg: $gray-100 !default;
$list-group-active-color: $component-active-color !default;
@@ -984,42 +1490,48 @@ $list-group-action-hover-color: $list-group-action-color !default;
$list-group-action-active-color: $body-color !default;
$list-group-action-active-bg: $gray-200 !default;
+// scss-docs-end list-group-variables
// Image thumbnails
+// scss-docs-start thumbnail-variables
$thumbnail-padding: .25rem !default;
$thumbnail-bg: $body-bg !default;
$thumbnail-border-width: $border-width !default;
-$thumbnail-border-color: $gray-300 !default;
+$thumbnail-border-color: var(--#{$prefix}border-color) !default;
$thumbnail-border-radius: $border-radius !default;
-$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;
+$thumbnail-box-shadow: $box-shadow-sm !default;
+// scss-docs-end thumbnail-variables
// Figures
-$figure-caption-font-size: 90% !default;
+// scss-docs-start figure-variables
+$figure-caption-font-size: $small-font-size !default;
$figure-caption-color: $gray-600 !default;
+// scss-docs-end figure-variables
// Breadcrumbs
-$breadcrumb-padding-y: .75rem !default;
-$breadcrumb-padding-x: 1rem !default;
-$breadcrumb-item-padding: .5rem !default;
-
+// scss-docs-start breadcrumb-variables
+$breadcrumb-font-size: null !default;
+$breadcrumb-padding-y: 0 !default;
+$breadcrumb-padding-x: 0 !default;
+$breadcrumb-item-padding-x: .5rem !default;
$breadcrumb-margin-bottom: 1rem !default;
-
-$breadcrumb-bg: $gray-200 !default;
+$breadcrumb-bg: null !default;
$breadcrumb-divider-color: $gray-600 !default;
$breadcrumb-active-color: $gray-600 !default;
$breadcrumb-divider: quote("/") !default;
-
-$breadcrumb-border-radius: $border-radius !default;
-
+$breadcrumb-divider-flipped: $breadcrumb-divider !default;
+$breadcrumb-border-radius: null !default;
+// scss-docs-end breadcrumb-variables
// Carousel
+// scss-docs-start carousel-variables
$carousel-control-color: $white !default;
$carousel-control-width: 15% !default;
$carousel-control-opacity: .5 !default;
@@ -1030,62 +1542,93 @@ $carousel-indicator-width: 30px !default;
$carousel-indicator-height: 3px !default;
$carousel-indicator-hit-area-height: 10px !default;
$carousel-indicator-spacer: 3px !default;
+$carousel-indicator-opacity: .5 !default;
$carousel-indicator-active-bg: $white !default;
+$carousel-indicator-active-opacity: 1 !default;
$carousel-indicator-transition: opacity .6s ease !default;
$carousel-caption-width: 70% !default;
$carousel-caption-color: $white !default;
+$carousel-caption-padding-y: 1.25rem !default;
+$carousel-caption-spacer: 1.25rem !default;
-$carousel-control-icon-width: 20px !default;
+$carousel-control-icon-width: 2rem !default;
-$carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"), "#", "%23") !default;
-$carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"), "#", "%23") !default;
+$carousel-control-prev-icon-bg: url("data:image/svg+xml,
") !default;
+$carousel-control-next-icon-bg: url("data:image/svg+xml,
") !default;
$carousel-transition-duration: .6s !default;
$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
+// scss-docs-end carousel-variables
+
+// scss-docs-start carousel-dark-variables
+$carousel-dark-indicator-active-bg: $black !default;
+$carousel-dark-caption-color: $black !default;
+$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
+// scss-docs-end carousel-dark-variables
// Spinners
-$spinner-width: 2rem !default;
-$spinner-height: $spinner-width !default;
-$spinner-border-width: .25em !default;
+// scss-docs-start spinner-variables
+$spinner-width: 2rem !default;
+$spinner-height: $spinner-width !default;
+$spinner-vertical-align: -.125em !default;
+$spinner-border-width: .25em !default;
+$spinner-animation-speed: .75s !default;
$spinner-width-sm: 1rem !default;
$spinner-height-sm: $spinner-width-sm !default;
$spinner-border-width-sm: .2em !default;
+// scss-docs-end spinner-variables
// Close
-$close-font-size: $font-size-base * 1.5 !default;
-$close-font-weight: $font-weight-bold !default;
-$close-color: $black !default;
-$close-text-shadow: 0 1px 0 $white !default;
-
+// scss-docs-start close-variables
+$btn-close-width: 1em !default;
+$btn-close-height: $btn-close-width !default;
+$btn-close-padding-x: .25em !default;
+$btn-close-padding-y: $btn-close-padding-x !default;
+$btn-close-color: $black !default;
+$btn-close-bg: url("data:image/svg+xml,
") !default;
+$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;
+$btn-close-opacity: .5 !default;
+$btn-close-hover-opacity: .75 !default;
+$btn-close-focus-opacity: 1 !default;
+$btn-close-disabled-opacity: .25 !default;
+$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
+// scss-docs-end close-variables
+
+
+// Offcanvas
+
+// scss-docs-start offcanvas-variables
+$offcanvas-padding-y: $modal-inner-padding !default;
+$offcanvas-padding-x: $modal-inner-padding !default;
+$offcanvas-horizontal-width: 400px !default;
+$offcanvas-vertical-height: 30vh !default;
+$offcanvas-transition-duration: .3s !default;
+$offcanvas-border-color: $modal-content-border-color !default;
+$offcanvas-border-width: $modal-content-border-width !default;
+$offcanvas-title-line-height: $modal-title-line-height !default;
+$offcanvas-bg-color: $modal-content-bg !default;
+$offcanvas-color: $modal-content-color !default;
+$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;
+$offcanvas-backdrop-bg: $modal-backdrop-bg !default;
+$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;
+// scss-docs-end offcanvas-variables
// Code
-$code-font-size: 87.5% !default;
+$code-font-size: $small-font-size !default;
$code-color: $pink !default;
-$kbd-padding-y: .2rem !default;
-$kbd-padding-x: .4rem !default;
+$kbd-padding-y: .1875rem !default;
+$kbd-padding-x: .375rem !default;
$kbd-font-size: $code-font-size !default;
-$kbd-color: $white !default;
-$kbd-bg: $gray-900 !default;
-
-$pre-color: $gray-900 !default;
-$pre-scrollable-max-height: 340px !default;
-
-
-// Utilities
-
-$overflows: auto, hidden !default;
-$positions: static, relative, absolute, fixed, sticky !default;
-
-
-// Printing
+$kbd-color: var(--#{$prefix}body-bg) !default;
+$kbd-bg: var(--#{$prefix}body-color) !default;
+$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6
-$print-page-size: a3 !default;
-$print-body-min-width: map-get($grid-breakpoints, "lg") !default;
+$pre-color: null !default;
diff --git a/extension_explorer/static/lib/bootstrap/bootstrap-grid.scss b/extension_explorer/static/lib/bootstrap/bootstrap-grid.scss
index 9b3e77cb4..1c4cdd1a0 100644
--- a/extension_explorer/static/lib/bootstrap/bootstrap-grid.scss
+++ b/extension_explorer/static/lib/bootstrap/bootstrap-grid.scss
@@ -1,29 +1,64 @@
-/*!
- * Bootstrap Grid v4.2.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-html {
- box-sizing: border-box;
- -ms-overflow-style: scrollbar;
-}
-
-*,
-*::before,
-*::after {
- box-sizing: inherit;
-}
+@import "mixins/banner";
+@include bsBanner(Grid);
+
+$include-column-box-sizing: true !default;
@import "functions";
@import "variables";
+@import "maps";
+@import "mixins/lists";
@import "mixins/breakpoints";
-@import "mixins/grid-framework";
+@import "mixins/container";
@import "mixins/grid";
+@import "mixins/utilities";
+
+@import "vendor/rfs";
+
+@import "root";
+@import "containers";
@import "grid";
-@import "utilities/display";
-@import "utilities/flex";
-@import "utilities/spacing";
+
+@import "utilities";
+// Only use the utilities we need
+// stylelint-disable-next-line scss/dollar-variable-default
+$utilities: map-get-multiple(
+ $utilities,
+ (
+ "display",
+ "order",
+ "flex",
+ "flex-direction",
+ "flex-grow",
+ "flex-shrink",
+ "flex-wrap",
+ "justify-content",
+ "align-items",
+ "align-content",
+ "align-self",
+ "margin",
+ "margin-x",
+ "margin-y",
+ "margin-top",
+ "margin-end",
+ "margin-bottom",
+ "margin-start",
+ "negative-margin",
+ "negative-margin-x",
+ "negative-margin-y",
+ "negative-margin-top",
+ "negative-margin-end",
+ "negative-margin-bottom",
+ "negative-margin-start",
+ "padding",
+ "padding-x",
+ "padding-y",
+ "padding-top",
+ "padding-end",
+ "padding-bottom",
+ "padding-start",
+ )
+);
+
+@import "utilities/api";
diff --git a/extension_explorer/static/lib/bootstrap/bootstrap-reboot.scss b/extension_explorer/static/lib/bootstrap/bootstrap-reboot.scss
index 717417810..af5274594 100644
--- a/extension_explorer/static/lib/bootstrap/bootstrap-reboot.scss
+++ b/extension_explorer/static/lib/bootstrap/bootstrap-reboot.scss
@@ -1,12 +1,9 @@
-/*!
- * Bootstrap Reboot v4.2.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
- */
+@import "mixins/banner";
+@include bsBanner(Reboot);
@import "functions";
@import "variables";
+@import "maps";
@import "mixins";
+@import "root";
@import "reboot";
diff --git a/extension_explorer/static/lib/bootstrap/bootstrap-utilities.scss b/extension_explorer/static/lib/bootstrap/bootstrap-utilities.scss
new file mode 100644
index 000000000..2b3dbc5fe
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/bootstrap-utilities.scss
@@ -0,0 +1,18 @@
+@import "mixins/banner";
+@include bsBanner(Utilities);
+
+// Configuration
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "utilities";
+
+// Layout & components
+@import "root";
+
+// Helpers
+@import "helpers";
+
+// Utilities
+@import "utilities/api";
diff --git a/extension_explorer/static/lib/bootstrap/bootstrap.scss b/extension_explorer/static/lib/bootstrap/bootstrap.scss
index 44b04b293..8f8296def 100644
--- a/extension_explorer/static/lib/bootstrap/bootstrap.scss
+++ b/extension_explorer/static/lib/bootstrap/bootstrap.scss
@@ -1,18 +1,21 @@
-/*!
- * Bootstrap v4.2.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
+@import "mixins/banner";
+@include bsBanner("");
+
+// scss-docs-start import-stack
+// Configuration
@import "functions";
@import "variables";
+@import "maps";
@import "mixins";
+@import "utilities";
+
+// Layout & components
@import "root";
@import "reboot";
@import "type";
@import "images";
-@import "code";
+@import "containers";
@import "grid";
@import "tables";
@import "forms";
@@ -20,18 +23,15 @@
@import "transitions";
@import "dropdown";
@import "button-group";
-@import "input-group";
-@import "custom-forms";
@import "nav";
@import "navbar";
@import "card";
+@import "accordion";
@import "breadcrumb";
@import "pagination";
@import "badge";
-@import "jumbotron";
@import "alert";
@import "progress";
-@import "media";
@import "list-group";
@import "close";
@import "toasts";
@@ -40,5 +40,12 @@
@import "popover";
@import "carousel";
@import "spinners";
-@import "utilities";
-@import "print";
+@import "offcanvas";
+@import "placeholders";
+
+// Helpers
+@import "helpers";
+
+// Utilities
+@import "utilities/api";
+// scss-docs-end import-stack
diff --git a/extension_explorer/static/lib/bootstrap/forms/_floating-labels.scss b/extension_explorer/static/lib/bootstrap/forms/_floating-labels.scss
new file mode 100644
index 000000000..6e5c9a75f
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_floating-labels.scss
@@ -0,0 +1,75 @@
+.form-floating {
+ position: relative;
+
+ > .form-control,
+ > .form-control-plaintext,
+ > .form-select {
+ height: $form-floating-height;
+ line-height: $form-floating-line-height;
+ }
+
+ > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%; // allow textareas
+ padding: $form-floating-padding-y $form-floating-padding-x;
+ overflow: hidden;
+ text-align: start;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ pointer-events: none;
+ border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
+ transform-origin: 0 0;
+ @include transition($form-floating-transition);
+ }
+
+ > .form-control,
+ > .form-control-plaintext {
+ padding: $form-floating-padding-y $form-floating-padding-x;
+
+ &::placeholder {
+ color: transparent;
+ }
+
+ &:focus,
+ &:not(:placeholder-shown) {
+ padding-top: $form-floating-input-padding-t;
+ padding-bottom: $form-floating-input-padding-b;
+ }
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
+ &:-webkit-autofill {
+ padding-top: $form-floating-input-padding-t;
+ padding-bottom: $form-floating-input-padding-b;
+ }
+ }
+
+ > .form-select {
+ padding-top: $form-floating-input-padding-t;
+ padding-bottom: $form-floating-input-padding-b;
+ }
+
+ > .form-control:focus,
+ > .form-control:not(:placeholder-shown),
+ > .form-control-plaintext,
+ > .form-select {
+ ~ label {
+ opacity: $form-floating-label-opacity;
+ transform: $form-floating-label-transform;
+ }
+ }
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
+ > .form-control:-webkit-autofill {
+ ~ label {
+ opacity: $form-floating-label-opacity;
+ transform: $form-floating-label-transform;
+ }
+ }
+
+ > .form-control-plaintext {
+ ~ label {
+ border-width: $input-border-width 0; // Required to properly position label text - as explained above
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_form-check.scss b/extension_explorer/static/lib/bootstrap/forms/_form-check.scss
new file mode 100644
index 000000000..42a2a9607
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_form-check.scss
@@ -0,0 +1,175 @@
+//
+// Check/radio
+//
+
+.form-check {
+ display: block;
+ min-height: $form-check-min-height;
+ padding-left: $form-check-padding-start;
+ margin-bottom: $form-check-margin-bottom;
+
+ .form-check-input {
+ float: left;
+ margin-left: $form-check-padding-start * -1;
+ }
+}
+
+.form-check-reverse {
+ padding-right: $form-check-padding-start;
+ padding-left: 0;
+ text-align: right;
+
+ .form-check-input {
+ float: right;
+ margin-right: $form-check-padding-start * -1;
+ margin-left: 0;
+ }
+}
+
+.form-check-input {
+ width: $form-check-input-width;
+ height: $form-check-input-width;
+ margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
+ vertical-align: top;
+ background-color: $form-check-input-bg;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: $form-check-input-border;
+ appearance: none;
+ print-color-adjust: exact; // Keep themed appearance for print
+ @include transition($form-check-transition);
+
+ &[type="checkbox"] {
+ @include border-radius($form-check-input-border-radius);
+ }
+
+ &[type="radio"] {
+ // stylelint-disable-next-line property-disallowed-list
+ border-radius: $form-check-radio-border-radius;
+ }
+
+ &:active {
+ filter: $form-check-input-active-filter;
+ }
+
+ &:focus {
+ border-color: $form-check-input-focus-border;
+ outline: 0;
+ box-shadow: $form-check-input-focus-box-shadow;
+ }
+
+ &:checked {
+ background-color: $form-check-input-checked-bg-color;
+ border-color: $form-check-input-checked-border-color;
+
+ &[type="checkbox"] {
+ @if $enable-gradients {
+ background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-check-input-checked-bg-image);
+ }
+ }
+
+ &[type="radio"] {
+ @if $enable-gradients {
+ background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-check-radio-checked-bg-image);
+ }
+ }
+ }
+
+ &[type="checkbox"]:indeterminate {
+ background-color: $form-check-input-indeterminate-bg-color;
+ border-color: $form-check-input-indeterminate-border-color;
+
+ @if $enable-gradients {
+ background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-check-input-indeterminate-bg-image);
+ }
+ }
+
+ &:disabled {
+ pointer-events: none;
+ filter: none;
+ opacity: $form-check-input-disabled-opacity;
+ }
+
+ // Use disabled attribute in addition of :disabled pseudo-class
+ // See: https://github.com/twbs/bootstrap/issues/28247
+ &[disabled],
+ &:disabled {
+ ~ .form-check-label {
+ cursor: default;
+ opacity: $form-check-label-disabled-opacity;
+ }
+ }
+}
+
+.form-check-label {
+ color: $form-check-label-color;
+ cursor: $form-check-label-cursor;
+}
+
+//
+// Switch
+//
+
+.form-switch {
+ padding-left: $form-switch-padding-start;
+
+ .form-check-input {
+ width: $form-switch-width;
+ margin-left: $form-switch-padding-start * -1;
+ background-image: escape-svg($form-switch-bg-image);
+ background-position: left center;
+ @include border-radius($form-switch-border-radius);
+ @include transition($form-switch-transition);
+
+ &:focus {
+ background-image: escape-svg($form-switch-focus-bg-image);
+ }
+
+ &:checked {
+ background-position: $form-switch-checked-bg-position;
+
+ @if $enable-gradients {
+ background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-switch-checked-bg-image);
+ }
+ }
+ }
+
+ &.form-check-reverse {
+ padding-right: $form-switch-padding-start;
+ padding-left: 0;
+
+ .form-check-input {
+ margin-right: $form-switch-padding-start * -1;
+ margin-left: 0;
+ }
+ }
+}
+
+.form-check-inline {
+ display: inline-block;
+ margin-right: $form-check-inline-margin-end;
+}
+
+.btn-check {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+
+ &[disabled],
+ &:disabled {
+ + .btn {
+ pointer-events: none;
+ filter: none;
+ opacity: $form-check-btn-check-disabled-opacity;
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_form-control.scss b/extension_explorer/static/lib/bootstrap/forms/_form-control.scss
new file mode 100644
index 000000000..e707c57ea
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_form-control.scss
@@ -0,0 +1,194 @@
+//
+// General form controls (plus a few specific high-level interventions)
+//
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: $input-padding-y $input-padding-x;
+ font-family: $input-font-family;
+ @include font-size($input-font-size);
+ font-weight: $input-font-weight;
+ line-height: $input-line-height;
+ color: $input-color;
+ background-color: $input-bg;
+ background-clip: padding-box;
+ border: $input-border-width solid $input-border-color;
+ appearance: none; // Fix appearance for date inputs in Safari
+
+ // Note: This has no effect on
s in some browsers, due to the limited stylability of ``s in CSS.
+ @include border-radius($input-border-radius, 0);
+
+ @include box-shadow($input-box-shadow);
+ @include transition($input-transition);
+
+ &[type="file"] {
+ overflow: hidden; // prevent pseudo element button overlap
+
+ &:not(:disabled):not([readonly]) {
+ cursor: pointer;
+ }
+ }
+
+ // Customize the `:focus` state to imitate native WebKit styles.
+ &:focus {
+ color: $input-focus-color;
+ background-color: $input-focus-bg;
+ border-color: $input-focus-border-color;
+ outline: 0;
+ @if $enable-shadows {
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
+ } @else {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+
+ // Add some height to date inputs on iOS
+ // https://github.com/twbs/bootstrap/issues/23307
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
+ &::-webkit-date-and-time-value {
+ // Multiply line-height by 1em if it has no unit
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
+ }
+
+ // Placeholder
+ &::placeholder {
+ color: $input-placeholder-color;
+ // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
+ opacity: 1;
+ }
+
+ // Disabled inputs
+ //
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
+ // don't honor that edge case; we style them as disabled anyway.
+ &:disabled {
+ color: $input-disabled-color;
+ background-color: $input-disabled-bg;
+ border-color: $input-disabled-border-color;
+ // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
+ opacity: 1;
+ }
+
+ // File input buttons theming
+ &::file-selector-button {
+ padding: $input-padding-y $input-padding-x;
+ margin: (-$input-padding-y) (-$input-padding-x);
+ margin-inline-end: $input-padding-x;
+ color: $form-file-button-color;
+ @include gradient-bg($form-file-button-bg);
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: $input-border-width;
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
+ @include transition($btn-transition);
+ }
+
+ &:hover:not(:disabled):not([readonly])::file-selector-button {
+ background-color: $form-file-button-hover-bg;
+ }
+}
+
+// Readonly controls as plain text
+//
+// Apply class to a readonly input to make it appear like regular plain
+// text (without any border, background color, focus indicator)
+
+.form-control-plaintext {
+ display: block;
+ width: 100%;
+ padding: $input-padding-y 0;
+ margin-bottom: 0; // match inputs if this class comes on inputs with default margins
+ line-height: $input-line-height;
+ color: $input-plaintext-color;
+ background-color: transparent;
+ border: solid transparent;
+ border-width: $input-border-width 0;
+
+ &:focus {
+ outline: 0;
+ }
+
+ &.form-control-sm,
+ &.form-control-lg {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+
+// Form control sizing
+//
+// Build on `.form-control` with modifier classes to decrease or increase the
+// height and font-size of form controls.
+//
+// Repeated in `_input_group.scss` to avoid Sass extend issues.
+
+.form-control-sm {
+ min-height: $input-height-sm;
+ padding: $input-padding-y-sm $input-padding-x-sm;
+ @include font-size($input-font-size-sm);
+ @include border-radius($input-border-radius-sm);
+
+ &::file-selector-button {
+ padding: $input-padding-y-sm $input-padding-x-sm;
+ margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
+ margin-inline-end: $input-padding-x-sm;
+ }
+}
+
+.form-control-lg {
+ min-height: $input-height-lg;
+ padding: $input-padding-y-lg $input-padding-x-lg;
+ @include font-size($input-font-size-lg);
+ @include border-radius($input-border-radius-lg);
+
+ &::file-selector-button {
+ padding: $input-padding-y-lg $input-padding-x-lg;
+ margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
+ margin-inline-end: $input-padding-x-lg;
+ }
+}
+
+// Make sure textareas don't shrink too much when resized
+// https://github.com/twbs/bootstrap/pull/29124
+// stylelint-disable selector-no-qualifying-type
+textarea {
+ &.form-control {
+ min-height: $input-height;
+ }
+
+ &.form-control-sm {
+ min-height: $input-height-sm;
+ }
+
+ &.form-control-lg {
+ min-height: $input-height-lg;
+ }
+}
+// stylelint-enable selector-no-qualifying-type
+
+.form-control-color {
+ width: $form-color-width;
+ height: $input-height;
+ padding: $input-padding-y;
+
+ &:not(:disabled):not([readonly]) {
+ cursor: pointer;
+ }
+
+ &::-moz-color-swatch {
+ border: 0 !important; // stylelint-disable-line declaration-no-important
+ @include border-radius($input-border-radius);
+ }
+
+ &::-webkit-color-swatch {
+ @include border-radius($input-border-radius);
+ }
+
+ &.form-control-sm { height: $input-height-sm; }
+ &.form-control-lg { height: $input-height-lg; }
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_form-range.scss b/extension_explorer/static/lib/bootstrap/forms/_form-range.scss
new file mode 100644
index 000000000..6de42132e
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_form-range.scss
@@ -0,0 +1,91 @@
+// Range
+//
+// Style range inputs the same across browsers. Vendor-specific rules for pseudo
+// elements cannot be mixed. As such, there are no shared styles for focus or
+// active states on prefixed selectors.
+
+.form-range {
+ width: 100%;
+ height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
+ padding: 0; // Need to reset padding
+ background-color: transparent;
+ appearance: none;
+
+ &:focus {
+ outline: 0;
+
+ // Pseudo-elements must be split across multiple rulesets to have an effect.
+ // No box-shadow() mixin for focus accessibility.
+ &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
+ &::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
+ }
+
+ &::-moz-focus-outer {
+ border: 0;
+ }
+
+ &::-webkit-slider-thumb {
+ width: $form-range-thumb-width;
+ height: $form-range-thumb-height;
+ margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
+ @include gradient-bg($form-range-thumb-bg);
+ border: $form-range-thumb-border;
+ @include border-radius($form-range-thumb-border-radius);
+ @include box-shadow($form-range-thumb-box-shadow);
+ @include transition($form-range-thumb-transition);
+ appearance: none;
+
+ &:active {
+ @include gradient-bg($form-range-thumb-active-bg);
+ }
+ }
+
+ &::-webkit-slider-runnable-track {
+ width: $form-range-track-width;
+ height: $form-range-track-height;
+ color: transparent; // Why?
+ cursor: $form-range-track-cursor;
+ background-color: $form-range-track-bg;
+ border-color: transparent;
+ @include border-radius($form-range-track-border-radius);
+ @include box-shadow($form-range-track-box-shadow);
+ }
+
+ &::-moz-range-thumb {
+ width: $form-range-thumb-width;
+ height: $form-range-thumb-height;
+ @include gradient-bg($form-range-thumb-bg);
+ border: $form-range-thumb-border;
+ @include border-radius($form-range-thumb-border-radius);
+ @include box-shadow($form-range-thumb-box-shadow);
+ @include transition($form-range-thumb-transition);
+ appearance: none;
+
+ &:active {
+ @include gradient-bg($form-range-thumb-active-bg);
+ }
+ }
+
+ &::-moz-range-track {
+ width: $form-range-track-width;
+ height: $form-range-track-height;
+ color: transparent;
+ cursor: $form-range-track-cursor;
+ background-color: $form-range-track-bg;
+ border-color: transparent; // Firefox specific?
+ @include border-radius($form-range-track-border-radius);
+ @include box-shadow($form-range-track-box-shadow);
+ }
+
+ &:disabled {
+ pointer-events: none;
+
+ &::-webkit-slider-thumb {
+ background-color: $form-range-thumb-disabled-bg;
+ }
+
+ &::-moz-range-thumb {
+ background-color: $form-range-thumb-disabled-bg;
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_form-select.scss b/extension_explorer/static/lib/bootstrap/forms/_form-select.scss
new file mode 100644
index 000000000..78c34b8fd
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_form-select.scss
@@ -0,0 +1,71 @@
+// Select
+//
+// Replaces the browser default select with a custom one, mostly pulled from
+// https://primer.github.io/.
+
+.form-select {
+ display: block;
+ width: 100%;
+ padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
+ -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
+ font-family: $form-select-font-family;
+ @include font-size($form-select-font-size);
+ font-weight: $form-select-font-weight;
+ line-height: $form-select-line-height;
+ color: $form-select-color;
+ background-color: $form-select-bg;
+ background-image: escape-svg($form-select-indicator);
+ background-repeat: no-repeat;
+ background-position: $form-select-bg-position;
+ background-size: $form-select-bg-size;
+ border: $form-select-border-width solid $form-select-border-color;
+ @include border-radius($form-select-border-radius, 0);
+ @include box-shadow($form-select-box-shadow);
+ @include transition($form-select-transition);
+ appearance: none;
+
+ &:focus {
+ border-color: $form-select-focus-border-color;
+ outline: 0;
+ @if $enable-shadows {
+ @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
+ } @else {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ box-shadow: $form-select-focus-box-shadow;
+ }
+ }
+
+ &[multiple],
+ &[size]:not([size="1"]) {
+ padding-right: $form-select-padding-x;
+ background-image: none;
+ }
+
+ &:disabled {
+ color: $form-select-disabled-color;
+ background-color: $form-select-disabled-bg;
+ border-color: $form-select-disabled-border-color;
+ }
+
+ // Remove outline from select box in FF
+ &:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 $form-select-color;
+ }
+}
+
+.form-select-sm {
+ padding-top: $form-select-padding-y-sm;
+ padding-bottom: $form-select-padding-y-sm;
+ padding-left: $form-select-padding-x-sm;
+ @include font-size($form-select-font-size-sm);
+ @include border-radius($form-select-border-radius-sm);
+}
+
+.form-select-lg {
+ padding-top: $form-select-padding-y-lg;
+ padding-bottom: $form-select-padding-y-lg;
+ padding-left: $form-select-padding-x-lg;
+ @include font-size($form-select-font-size-lg);
+ @include border-radius($form-select-border-radius-lg);
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_form-text.scss b/extension_explorer/static/lib/bootstrap/forms/_form-text.scss
new file mode 100644
index 000000000..f080d1a23
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_form-text.scss
@@ -0,0 +1,11 @@
+//
+// Form text
+//
+
+.form-text {
+ margin-top: $form-text-margin-top;
+ @include font-size($form-text-font-size);
+ font-style: $form-text-font-style;
+ font-weight: $form-text-font-weight;
+ color: $form-text-color;
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_input-group.scss b/extension_explorer/static/lib/bootstrap/forms/_input-group.scss
new file mode 100644
index 000000000..247f74a7a
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_input-group.scss
@@ -0,0 +1,132 @@
+//
+// Base styles
+//
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap; // For form validation feedback
+ align-items: stretch;
+ width: 100%;
+
+ > .form-control,
+ > .form-select,
+ > .form-floating {
+ position: relative; // For focus state's z-index
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
+ }
+
+ // Bring the "active" form control to the top of surrounding elements
+ > .form-control:focus,
+ > .form-select:focus,
+ > .form-floating:focus-within {
+ z-index: 5;
+ }
+
+ // Ensure buttons are always above inputs for more visually pleasing borders.
+ // This isn't needed for `.input-group-text` since it shares the same border-color
+ // as our inputs.
+ .btn {
+ position: relative;
+ z-index: 2;
+
+ &:focus {
+ z-index: 5;
+ }
+ }
+}
+
+
+// Textual addons
+//
+// Serves as a catch-all element for any text or radio/checkbox input you wish
+// to prepend or append to an input.
+
+.input-group-text {
+ display: flex;
+ align-items: center;
+ padding: $input-group-addon-padding-y $input-group-addon-padding-x;
+ @include font-size($input-font-size); // Match inputs
+ font-weight: $input-group-addon-font-weight;
+ line-height: $input-line-height;
+ color: $input-group-addon-color;
+ text-align: center;
+ white-space: nowrap;
+ background-color: $input-group-addon-bg;
+ border: $input-border-width solid $input-group-addon-border-color;
+ @include border-radius($input-border-radius);
+}
+
+
+// Sizing
+//
+// Remix the default form control sizing classes into new ones for easier
+// manipulation.
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+ padding: $input-padding-y-lg $input-padding-x-lg;
+ @include font-size($input-font-size-lg);
+ @include border-radius($input-border-radius-lg);
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+ padding: $input-padding-y-sm $input-padding-x-sm;
+ @include font-size($input-font-size-sm);
+ @include border-radius($input-border-radius-sm);
+}
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+ padding-right: $form-select-padding-x + $form-select-indicator-padding;
+}
+
+
+// Rounded corners
+//
+// These rulesets must come after the sizing ones to properly override sm and lg
+// border-radius values when extending. They're more specific than we'd like
+// with the `.input-group >` part, but without it, we cannot override the sizing.
+
+// stylelint-disable-next-line no-duplicate-selectors
+.input-group {
+ &:not(.has-validation) {
+ > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+ > .dropdown-toggle:nth-last-child(n + 3),
+ > .form-floating:not(:last-child) > .form-control,
+ > .form-floating:not(:last-child) > .form-select {
+ @include border-end-radius(0);
+ }
+ }
+
+ &.has-validation {
+ > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+ > .dropdown-toggle:nth-last-child(n + 4),
+ > .form-floating:nth-last-child(n + 3) > .form-control,
+ > .form-floating:nth-last-child(n + 3) > .form-select {
+ @include border-end-radius(0);
+ }
+ }
+
+ $validation-messages: "";
+ @each $state in map-keys($form-validation-states) {
+ $validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
+ }
+
+ > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
+ margin-left: -$input-border-width;
+ @include border-start-radius(0);
+ }
+
+ > .form-floating:not(:first-child) > .form-control,
+ > .form-floating:not(:first-child) > .form-select {
+ @include border-start-radius(0);
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_labels.scss b/extension_explorer/static/lib/bootstrap/forms/_labels.scss
new file mode 100644
index 000000000..39ecafcd2
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_labels.scss
@@ -0,0 +1,36 @@
+//
+// Labels
+//
+
+.form-label {
+ margin-bottom: $form-label-margin-bottom;
+ @include font-size($form-label-font-size);
+ font-style: $form-label-font-style;
+ font-weight: $form-label-font-weight;
+ color: $form-label-color;
+}
+
+// For use with horizontal and inline forms, when you need the label (or legend)
+// text to align with the form controls.
+.col-form-label {
+ padding-top: add($input-padding-y, $input-border-width);
+ padding-bottom: add($input-padding-y, $input-border-width);
+ margin-bottom: 0; // Override the `` default
+ @include font-size(inherit); // Override the `` default
+ font-style: $form-label-font-style;
+ font-weight: $form-label-font-weight;
+ line-height: $input-line-height;
+ color: $form-label-color;
+}
+
+.col-form-label-lg {
+ padding-top: add($input-padding-y-lg, $input-border-width);
+ padding-bottom: add($input-padding-y-lg, $input-border-width);
+ @include font-size($input-font-size-lg);
+}
+
+.col-form-label-sm {
+ padding-top: add($input-padding-y-sm, $input-border-width);
+ padding-bottom: add($input-padding-y-sm, $input-border-width);
+ @include font-size($input-font-size-sm);
+}
diff --git a/extension_explorer/static/lib/bootstrap/forms/_validation.scss b/extension_explorer/static/lib/bootstrap/forms/_validation.scss
new file mode 100644
index 000000000..c48123a71
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/forms/_validation.scss
@@ -0,0 +1,12 @@
+// Form validation
+//
+// Provide feedback to users when form field values are valid or invalid. Works
+// primarily for client-side validation via scoped `:invalid` and `:valid`
+// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
+// server-side validation.
+
+// scss-docs-start form-validation-states-loop
+@each $state, $data in $form-validation-states {
+ @include form-validation-state($state, $data...);
+}
+// scss-docs-end form-validation-states-loop
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_clearfix.scss b/extension_explorer/static/lib/bootstrap/helpers/_clearfix.scss
similarity index 100%
rename from extension_explorer/static/lib/bootstrap/utilities/_clearfix.scss
rename to extension_explorer/static/lib/bootstrap/helpers/_clearfix.scss
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_color-bg.scss b/extension_explorer/static/lib/bootstrap/helpers/_color-bg.scss
new file mode 100644
index 000000000..b5ce7709c
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_color-bg.scss
@@ -0,0 +1,10 @@
+// stylelint-disable function-name-case
+
+// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
+@each $color, $value in $theme-colors {
+ $color-rgb: to-rgb($value);
+ .text-bg-#{$color} {
+ color: color-contrast($value) if($enable-important-utilities, !important, null);
+ background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_colored-links.scss b/extension_explorer/static/lib/bootstrap/helpers/_colored-links.scss
new file mode 100644
index 000000000..1cb418280
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_colored-links.scss
@@ -0,0 +1,12 @@
+@each $color, $value in $theme-colors {
+ .link-#{$color} {
+ color: $value !important; // stylelint-disable-line declaration-no-important
+
+ @if $link-shade-percentage != 0 {
+ &:hover,
+ &:focus {
+ color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important
+ }
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_position.scss b/extension_explorer/static/lib/bootstrap/helpers/_position.scss
new file mode 100644
index 000000000..59103d943
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_position.scss
@@ -0,0 +1,36 @@
+// Shorthand
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: $zindex-fixed;
+}
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $zindex-fixed;
+}
+
+// Responsive sticky top and bottom
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .sticky#{$infix}-top {
+ position: sticky;
+ top: 0;
+ z-index: $zindex-sticky;
+ }
+
+ .sticky#{$infix}-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: $zindex-sticky;
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_ratio.scss b/extension_explorer/static/lib/bootstrap/helpers/_ratio.scss
new file mode 100644
index 000000000..b6a7654c5
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_ratio.scss
@@ -0,0 +1,26 @@
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.ratio {
+ position: relative;
+ width: 100%;
+
+ &::before {
+ display: block;
+ padding-top: var(--#{$prefix}aspect-ratio);
+ content: "";
+ }
+
+ > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+}
+
+@each $key, $ratio in $aspect-ratios {
+ .ratio-#{$key} {
+ --#{$prefix}aspect-ratio: #{$ratio};
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_stacks.scss b/extension_explorer/static/lib/bootstrap/helpers/_stacks.scss
new file mode 100644
index 000000000..6cd237ae6
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_stacks.scss
@@ -0,0 +1,15 @@
+// scss-docs-start stacks
+.hstack {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ align-self: stretch;
+}
+
+.vstack {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ align-self: stretch;
+}
+// scss-docs-end stacks
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_stretched-link.scss b/extension_explorer/static/lib/bootstrap/helpers/_stretched-link.scss
new file mode 100644
index 000000000..71a1c755a
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_stretched-link.scss
@@ -0,0 +1,15 @@
+//
+// Stretched link
+//
+
+.stretched-link {
+ &::#{$stretched-link-pseudo-element} {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $stretched-link-z-index;
+ content: "";
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_text-truncation.scss b/extension_explorer/static/lib/bootstrap/helpers/_text-truncation.scss
new file mode 100644
index 000000000..6421dac9a
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_text-truncation.scss
@@ -0,0 +1,7 @@
+//
+// Text truncation
+//
+
+.text-truncate {
+ @include text-truncate();
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_visually-hidden.scss b/extension_explorer/static/lib/bootstrap/helpers/_visually-hidden.scss
new file mode 100644
index 000000000..4760ff03d
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_visually-hidden.scss
@@ -0,0 +1,8 @@
+//
+// Visually hidden
+//
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+ @include visually-hidden();
+}
diff --git a/extension_explorer/static/lib/bootstrap/helpers/_vr.scss b/extension_explorer/static/lib/bootstrap/helpers/_vr.scss
new file mode 100644
index 000000000..9bca09953
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/helpers/_vr.scss
@@ -0,0 +1,8 @@
+.vr {
+ display: inline-block;
+ align-self: stretch;
+ width: 1px;
+ min-height: 1em;
+ background-color: currentcolor;
+ opacity: $hr-opacity;
+}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_alert.scss b/extension_explorer/static/lib/bootstrap/mixins/_alert.scss
index db5a7eb45..231f068ec 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_alert.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_alert.scss
@@ -1,13 +1,15 @@
+// scss-docs-start alert-variant-mixin
@mixin alert-variant($background, $border, $color) {
- color: $color;
- @include gradient-bg($background);
- border-color: $border;
+ --#{$prefix}alert-color: #{$color};
+ --#{$prefix}alert-bg: #{$background};
+ --#{$prefix}alert-border-color: #{$border};
- hr {
- border-top-color: darken($border, 5%);
+ @if $enable-gradients {
+ background-image: var(--#{$prefix}gradient);
}
.alert-link {
- color: darken($color, 10%);
+ color: shade-color($color, 20%);
}
}
+// scss-docs-end alert-variant-mixin
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_backdrop.scss b/extension_explorer/static/lib/bootstrap/mixins/_backdrop.scss
new file mode 100644
index 000000000..9705ae9ee
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_backdrop.scss
@@ -0,0 +1,14 @@
+// Shared between modals and offcanvases
+@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: $zindex;
+ width: 100vw;
+ height: 100vh;
+ background-color: $backdrop-bg;
+
+ // Fade for backdrop
+ &.fade { opacity: 0; }
+ &.show { opacity: $backdrop-opacity; }
+}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_background-variant.scss b/extension_explorer/static/lib/bootstrap/mixins/_background-variant.scss
deleted file mode 100644
index 494439d2b..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_background-variant.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Contextual backgrounds
-
-@mixin bg-variant($parent, $color) {
- #{$parent} {
- background-color: $color !important;
- }
- a#{$parent},
- button#{$parent} {
- @include hover-focus {
- background-color: darken($color, 10%) !important;
- }
- }
-}
-
-@mixin bg-gradient-variant($parent, $color) {
- #{$parent} {
- background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_badge.scss b/extension_explorer/static/lib/bootstrap/mixins/_badge.scss
deleted file mode 100644
index cf99b3537..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_badge.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-@mixin badge-variant($bg) {
- color: color-yiq($bg);
- background-color: $bg;
-
- @at-root a#{&} {
- @include hover-focus {
- color: color-yiq($bg);
- background-color: darken($bg, 10%);
- }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_banner.scss b/extension_explorer/static/lib/bootstrap/mixins/_banner.scss
new file mode 100644
index 000000000..97ec9d1ee
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_banner.scss
@@ -0,0 +1,9 @@
+@mixin bsBanner($file) {
+ /*!
+ * Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)
+ * Copyright 2011-2022 The Bootstrap Authors
+ * Copyright 2011-2022 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+}
+
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_border-radius.scss b/extension_explorer/static/lib/bootstrap/mixins/_border-radius.scss
index 2024febcf..616decbce 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_border-radius.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_border-radius.scss
@@ -1,35 +1,78 @@
+// stylelint-disable property-disallowed-list
// Single side border-radius
-@mixin border-radius($radius: $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;
+}
+
+// scss-docs-start border-radius-mixins
+@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
+ @if $enable-rounded {
+ border-radius: valid-radius($radius);
+ }
+ @else if $fallback-border-radius != false {
+ border-radius: $fallback-border-radius;
+ }
+}
+
+@mixin border-top-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-left-radius: valid-radius($radius);
+ border-top-right-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-end-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-right-radius: valid-radius($radius);
+ border-bottom-right-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-bottom-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-bottom-right-radius: valid-radius($radius);
+ border-bottom-left-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-start-radius($radius: $border-radius) {
@if $enable-rounded {
- border-radius: $radius;
+ border-top-left-radius: valid-radius($radius);
+ border-bottom-left-radius: valid-radius($radius);
}
}
-@mixin border-top-radius($radius) {
+@mixin border-top-start-radius($radius: $border-radius) {
@if $enable-rounded {
- border-top-left-radius: $radius;
- border-top-right-radius: $radius;
+ border-top-left-radius: valid-radius($radius);
}
}
-@mixin border-right-radius($radius) {
+@mixin border-top-end-radius($radius: $border-radius) {
@if $enable-rounded {
- border-top-right-radius: $radius;
- border-bottom-right-radius: $radius;
+ border-top-right-radius: valid-radius($radius);
}
}
-@mixin border-bottom-radius($radius) {
+@mixin border-bottom-end-radius($radius: $border-radius) {
@if $enable-rounded {
- border-bottom-right-radius: $radius;
- border-bottom-left-radius: $radius;
+ border-bottom-right-radius: valid-radius($radius);
}
}
-@mixin border-left-radius($radius) {
+@mixin border-bottom-start-radius($radius: $border-radius) {
@if $enable-rounded {
- border-top-left-radius: $radius;
- border-bottom-left-radius: $radius;
+ border-bottom-left-radius: valid-radius($radius);
}
}
+// scss-docs-end border-radius-mixins
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_box-shadow.scss b/extension_explorer/static/lib/bootstrap/mixins/_box-shadow.scss
index b2410e53a..4172541f3 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_box-shadow.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_box-shadow.scss
@@ -1,5 +1,18 @@
@mixin box-shadow($shadow...) {
@if $enable-shadows {
- box-shadow: $shadow;
+ $result: ();
+
+ @each $value in $shadow {
+ @if $value != null {
+ $result: append($result, $value, "comma");
+ }
+ @if $value == none and length($shadow) > 1 {
+ @warn "The keyword 'none' must be used as a single argument.";
+ }
+ }
+
+ @if (length($result) > 0) {
+ box-shadow: $result;
+ }
}
}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_breakpoints.scss b/extension_explorer/static/lib/bootstrap/mixins/_breakpoints.scss
index 23a5de96b..286be893d 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_breakpoints.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_breakpoints.scss
@@ -2,7 +2,7 @@
//
// Breakpoints are defined as a map of (name: minimum width), order from small to large:
//
-// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
+// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)
//
// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
@@ -10,44 +10,47 @@
//
// >> breakpoint-next(sm)
// md
-// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
// md
-// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
+// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))
// md
@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
$n: index($breakpoint-names, $name);
- @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
+ @if not $n {
+ @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
+ }
+ @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
}
// Minimum breakpoint width. Null for the smallest (first) breakpoint.
//
-// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
// 576px
@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
$min: map-get($breakpoints, $name);
@return if($min != 0, $min, null);
}
-// Maximum breakpoint width. Null for the largest (last) breakpoint.
-// The maximum value is calculated as the minimum of the next one less 0.02px
-// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
+// Maximum breakpoint width.
+// The maximum value is reduced by 0.02px to work around the limitations of
+// `min-` and `max-` prefixes and viewports with fractional widths.
// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
// See https://bugs.webkit.org/show_bug.cgi?id=178261
//
-// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
// 767.98px
@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
- $next: breakpoint-next($name, $breakpoints);
- @return if($next, breakpoint-min($next, $breakpoints) - .02, null);
+ $max: map-get($breakpoints, $name);
+ @return if($max and $max > 0, $max - .02, null);
}
// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
// Useful for making responsive utilities.
//
-// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
// "" (Returns a blank string)
-// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
// "-sm"
@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
@return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
@@ -104,8 +107,9 @@
// No minimum for the smallest breakpoint, and no maximum for the largest one.
// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
- $min: breakpoint-min($name, $breakpoints);
- $max: breakpoint-max($name, $breakpoints);
+ $min: breakpoint-min($name, $breakpoints);
+ $next: breakpoint-next($name, $breakpoints);
+ $max: breakpoint-max($next, $breakpoints);
@if $min != null and $max != null {
@media (min-width: $min) and (max-width: $max) {
@@ -116,7 +120,7 @@
@content;
}
} @else if $min == null {
- @include media-breakpoint-down($name, $breakpoints) {
+ @include media-breakpoint-down($next, $breakpoints) {
@content;
}
}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_buttons.scss b/extension_explorer/static/lib/bootstrap/mixins/_buttons.scss
index 3e1e2c09d..cf087fda7 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_buttons.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_buttons.scss
@@ -3,109 +3,68 @@
// Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons
-@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {
- color: color-yiq($background);
- @include gradient-bg($background);
- border-color: $border;
- @include box-shadow($btn-box-shadow);
-
- @include hover {
- color: color-yiq($hover-background);
- @include gradient-bg($hover-background);
- border-color: $hover-border;
- }
-
- &:focus,
- &.focus {
- // Avoid using mixin so we can pass custom focus shadow properly
- @if $enable-shadows {
- box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
- } @else {
- box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
- }
- }
-
- // Disabled comes first so active can properly restyle
- &.disabled,
- &:disabled {
- color: color-yiq($background);
- background-color: $background;
- border-color: $border;
- // Remove CSS gradients if they're enabled
- @if $enable-gradients {
- background-image: none;
- }
- }
-
- &:not(:disabled):not(.disabled):active,
- &:not(:disabled):not(.disabled).active,
- .show > &.dropdown-toggle {
- color: color-yiq($active-background);
- background-color: $active-background;
- @if $enable-gradients {
- background-image: none; // Remove the gradient for the pressed/active state
- }
- border-color: $active-border;
-
- &:focus {
- // Avoid using mixin so we can pass custom focus shadow properly
- @if $enable-shadows {
- box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
- } @else {
- box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
- }
- }
- }
+// scss-docs-start btn-variant-mixin
+@mixin button-variant(
+ $background,
+ $border,
+ $color: color-contrast($background),
+ $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
+ $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
+ $hover-color: color-contrast($hover-background),
+ $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
+ $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
+ $active-color: color-contrast($active-background),
+ $disabled-background: $background,
+ $disabled-border: $border,
+ $disabled-color: color-contrast($disabled-background)
+) {
+ --#{$prefix}btn-color: #{$color};
+ --#{$prefix}btn-bg: #{$background};
+ --#{$prefix}btn-border-color: #{$border};
+ --#{$prefix}btn-hover-color: #{$hover-color};
+ --#{$prefix}btn-hover-bg: #{$hover-background};
+ --#{$prefix}btn-hover-border-color: #{$hover-border};
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};
+ --#{$prefix}btn-active-color: #{$active-color};
+ --#{$prefix}btn-active-bg: #{$active-background};
+ --#{$prefix}btn-active-border-color: #{$active-border};
+ --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
+ --#{$prefix}btn-disabled-color: #{$disabled-color};
+ --#{$prefix}btn-disabled-bg: #{$disabled-background};
+ --#{$prefix}btn-disabled-border-color: #{$disabled-border};
}
+// scss-docs-end btn-variant-mixin
-@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
- color: $color;
- border-color: $color;
-
- @include hover {
- color: $color-hover;
- background-color: $active-background;
- border-color: $active-border;
- }
-
- &:focus,
- &.focus {
- box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
- }
-
- &.disabled,
- &:disabled {
- color: $color;
- background-color: transparent;
- }
-
- &:not(:disabled):not(.disabled):active,
- &:not(:disabled):not(.disabled).active,
- .show > &.dropdown-toggle {
- color: color-yiq($active-background);
- background-color: $active-background;
- border-color: $active-border;
-
- &:focus {
- // Avoid using mixin so we can pass custom focus shadow properly
- @if $enable-shadows and $btn-active-box-shadow != none {
- box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
- } @else {
- box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
- }
- }
- }
+// scss-docs-start btn-outline-variant-mixin
+@mixin button-outline-variant(
+ $color,
+ $color-hover: color-contrast($color),
+ $active-background: $color,
+ $active-border: $color,
+ $active-color: color-contrast($active-background)
+) {
+ --#{$prefix}btn-color: #{$color};
+ --#{$prefix}btn-border-color: #{$color};
+ --#{$prefix}btn-hover-color: #{$color-hover};
+ --#{$prefix}btn-hover-bg: #{$active-background};
+ --#{$prefix}btn-hover-border-color: #{$active-border};
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
+ --#{$prefix}btn-active-color: #{$active-color};
+ --#{$prefix}btn-active-bg: #{$active-background};
+ --#{$prefix}btn-active-border-color: #{$active-border};
+ --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
+ --#{$prefix}btn-disabled-color: #{$color};
+ --#{$prefix}btn-disabled-bg: transparent;
+ --#{$prefix}btn-disabled-border-color: #{$color};
+ --#{$prefix}gradient: none;
}
+// scss-docs-end btn-outline-variant-mixin
-// Button sizes
-@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
- padding: $padding-y $padding-x;
- font-size: $font-size;
- line-height: $line-height;
- // Manually declare to provide an override to the browser default
- @if $enable-rounded {
- border-radius: $border-radius;
- } @else {
- border-radius: 0;
- }
+// scss-docs-start btn-size-mixin
+@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
+ --#{$prefix}btn-padding-y: #{$padding-y};
+ --#{$prefix}btn-padding-x: #{$padding-x};
+ @include rfs($font-size, --#{$prefix}btn-font-size);
+ --#{$prefix}btn-border-radius: #{$border-radius};
}
+// scss-docs-end btn-size-mixin
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_caret.scss b/extension_explorer/static/lib/bootstrap/mixins/_caret.scss
index 982522c54..4b0f0360b 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_caret.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_caret.scss
@@ -1,3 +1,4 @@
+// scss-docs-start caret-mixins
@mixin caret-down {
border-top: $caret-width solid;
border-right: $caret-width solid transparent;
@@ -12,14 +13,14 @@
border-left: $caret-width solid transparent;
}
-@mixin caret-right {
+@mixin caret-end {
border-top: $caret-width solid transparent;
border-right: 0;
border-bottom: $caret-width solid transparent;
border-left: $caret-width solid;
}
-@mixin caret-left {
+@mixin caret-start {
border-top: $caret-width solid transparent;
border-right: $caret-width solid;
border-bottom: $caret-width solid transparent;
@@ -29,29 +30,29 @@
@if $enable-caret {
&::after {
display: inline-block;
- margin-left: $caret-width * .85;
- vertical-align: $caret-width * .85;
+ margin-left: $caret-spacing;
+ vertical-align: $caret-vertical-align;
content: "";
@if $direction == down {
- @include caret-down;
+ @include caret-down();
} @else if $direction == up {
- @include caret-up;
- } @else if $direction == right {
- @include caret-right;
+ @include caret-up();
+ } @else if $direction == end {
+ @include caret-end();
}
}
- @if $direction == left {
+ @if $direction == start {
&::after {
display: none;
}
&::before {
display: inline-block;
- margin-right: $caret-width * .85;
- vertical-align: $caret-width * .85;
+ margin-right: $caret-spacing;
+ vertical-align: $caret-vertical-align;
content: "";
- @include caret-left;
+ @include caret-start();
}
}
@@ -60,3 +61,4 @@
}
}
}
+// scss-docs-end caret-mixins
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_clearfix.scss b/extension_explorer/static/lib/bootstrap/mixins/_clearfix.scss
index 11a977b73..ffc62bb28 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_clearfix.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_clearfix.scss
@@ -1,3 +1,4 @@
+// scss-docs-start clearfix
@mixin clearfix() {
&::after {
display: block;
@@ -5,3 +6,4 @@
content: "";
}
}
+// scss-docs-end clearfix
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_color-scheme.scss b/extension_explorer/static/lib/bootstrap/mixins/_color-scheme.scss
new file mode 100644
index 000000000..90497aa0a
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_color-scheme.scss
@@ -0,0 +1,7 @@
+// scss-docs-start mixin-color-scheme
+@mixin color-scheme($name) {
+ @media (prefers-color-scheme: #{$name}) {
+ @content;
+ }
+}
+// scss-docs-end mixin-color-scheme
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_container.scss b/extension_explorer/static/lib/bootstrap/mixins/_container.scss
new file mode 100644
index 000000000..b9f33519e
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_container.scss
@@ -0,0 +1,11 @@
+// Container mixins
+
+@mixin make-container($gutter: $container-padding-x) {
+ --#{$prefix}gutter-x: #{$gutter};
+ --#{$prefix}gutter-y: 0;
+ width: 100%;
+ padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ margin-right: auto;
+ margin-left: auto;
+}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_deprecate.scss b/extension_explorer/static/lib/bootstrap/mixins/_deprecate.scss
new file mode 100644
index 000000000..df070bc59
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_deprecate.scss
@@ -0,0 +1,10 @@
+// Deprecate mixin
+//
+// This mixin can be used to deprecate mixins or functions.
+// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
+// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
+@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
+ @if ($enable-deprecation-messages != false and $ignore-warning != true) {
+ @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_float.scss b/extension_explorer/static/lib/bootstrap/mixins/_float.scss
deleted file mode 100644
index 48fa8b6d5..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_float.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// stylelint-disable declaration-no-important
-
-@mixin float-left {
- float: left !important;
-}
-@mixin float-right {
- float: right !important;
-}
-@mixin float-none {
- float: none !important;
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_forms.scss b/extension_explorer/static/lib/bootstrap/mixins/_forms.scss
index b8eb59d83..2a853a789 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_forms.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_forms.scss
@@ -1,37 +1,34 @@
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `$input-focus-border-color` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-@mixin form-control-focus() {
- &:focus {
- color: $input-focus-color;
- background-color: $input-focus-bg;
- border-color: $input-focus-border-color;
- outline: 0;
- // Avoid using mixin so we can pass custom focus shadow properly
- @if $enable-shadows {
- box-shadow: $input-box-shadow, $input-focus-box-shadow;
- } @else {
- box-shadow: $input-focus-box-shadow;
+// This mixin uses an `if()` technique to be compatible with Dart Sass
+// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details
+
+// scss-docs-start form-validation-mixins
+@mixin form-validation-state-selector($state) {
+ @if ($state == "valid" or $state == "invalid") {
+ .was-validated #{if(&, "&", "")}:#{$state},
+ #{if(&, "&", "")}.is-#{$state} {
+ @content;
+ }
+ } @else {
+ #{if(&, "&", "")}.is-#{$state} {
+ @content;
}
}
}
-
-@mixin form-validation-state($state, $color) {
+@mixin form-validation-state(
+ $state,
+ $color,
+ $icon,
+ $tooltip-color: color-contrast($color),
+ $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
+ $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
+) {
.#{$state}-feedback {
display: none;
width: 100%;
margin-top: $form-feedback-margin-top;
- font-size: $form-feedback-font-size;
+ @include font-size($form-feedback-font-size);
+ font-style: $form-feedback-font-style;
color: $color;
}
@@ -43,156 +40,113 @@
max-width: 100%; // Contain to parent when possible
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
margin-top: .1rem;
- font-size: $form-feedback-tooltip-font-size;
+ @include font-size($form-feedback-tooltip-font-size);
line-height: $form-feedback-tooltip-line-height;
- color: color-yiq($color);
- background-color: rgba($color, $form-feedback-tooltip-opacity);
+ color: $tooltip-color;
+ background-color: $tooltip-bg-color;
@include border-radius($form-feedback-tooltip-border-radius);
}
+ @include form-validation-state-selector($state) {
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+
.form-control {
- .was-validated &:#{$state},
- &.is-#{$state} {
+ @include form-validation-state-selector($state) {
border-color: $color;
@if $enable-validation-icons {
padding-right: $input-height-inner;
+ background-image: escape-svg($icon);
background-repeat: no-repeat;
- background-position: center right calc(#{$input-height-inner} / 4);
- background-size: calc(#{$input-height-inner} / 2) calc(#{$input-height-inner} / 2);
-
- @if $state == "valid" {
- background-image: $form-feedback-icon-valid;
- } @else {
- background-image: $form-feedback-icon-invalid;
- }
+ background-position: right $input-height-inner-quarter center;
+ background-size: $input-height-inner-half $input-height-inner-half;
}
&:focus {
border-color: $color;
- box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
- }
-
- ~ .#{$state}-feedback,
- ~ .#{$state}-tooltip {
- display: block;
+ box-shadow: $focus-box-shadow;
}
}
}
// stylelint-disable-next-line selector-no-qualifying-type
textarea.form-control {
- .was-validated &:#{$state},
- &.is-#{$state} {
+ @include form-validation-state-selector($state) {
@if $enable-validation-icons {
padding-right: $input-height-inner;
- background-position: top calc(#{$input-height-inner} / 4) right calc(#{$input-height-inner} / 4);
+ background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
}
}
}
- .custom-select {
- .was-validated &:#{$state},
- &.is-#{$state} {
+ .form-select {
+ @include form-validation-state-selector($state) {
border-color: $color;
@if $enable-validation-icons {
- $form-feedback-icon: if($state == "valid", $form-feedback-icon-valid, $form-feedback-icon-invalid);
- padding-right: $custom-select-feedback-icon-padding-right;
- background: $custom-select-background, $form-feedback-icon no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
+ &:not([multiple]):not([size]),
+ &:not([multiple])[size="1"] {
+ padding-right: $form-select-feedback-icon-padding-end;
+ background-image: escape-svg($form-select-indicator), escape-svg($icon);
+ background-position: $form-select-bg-position, $form-select-feedback-icon-position;
+ background-size: $form-select-bg-size, $form-select-feedback-icon-size;
+ }
}
&:focus {
border-color: $color;
- box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
- }
-
- ~ .#{$state}-feedback,
- ~ .#{$state}-tooltip {
- display: block;
+ box-shadow: $focus-box-shadow;
}
}
}
-
- .form-control-file {
- .was-validated &:#{$state},
- &.is-#{$state} {
- ~ .#{$state}-feedback,
- ~ .#{$state}-tooltip {
- display: block;
+ .form-control-color {
+ @include form-validation-state-selector($state) {
+ @if $enable-validation-icons {
+ width: add($form-color-width, $input-height-inner);
}
}
}
.form-check-input {
- .was-validated &:#{$state},
- &.is-#{$state} {
- ~ .form-check-label {
- color: $color;
- }
-
- ~ .#{$state}-feedback,
- ~ .#{$state}-tooltip {
- display: block;
- }
- }
- }
-
- .custom-control-input {
- .was-validated &:#{$state},
- &.is-#{$state} {
- ~ .custom-control-label {
- color: $color;
-
- &::before {
- border-color: $color;
- }
- }
-
- ~ .#{$state}-feedback,
- ~ .#{$state}-tooltip {
- display: block;
- }
+ @include form-validation-state-selector($state) {
+ border-color: $color;
&:checked {
- ~ .custom-control-label::before {
- border-color: lighten($color, 10%);
- @include gradient-bg(lighten($color, 10%));
- }
+ background-color: $color;
}
&:focus {
- ~ .custom-control-label::before {
- box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
- }
+ box-shadow: $focus-box-shadow;
+ }
- &:not(:checked) ~ .custom-control-label::before {
- border-color: $color;
- }
+ ~ .form-check-label {
+ color: $color;
}
}
}
+ .form-check-inline .form-check-input {
+ ~ .#{$state}-feedback {
+ margin-left: .5em;
+ }
+ }
- // custom file
- .custom-file-input {
- .was-validated &:#{$state},
- &.is-#{$state} {
- ~ .custom-file-label {
- border-color: $color;
- }
-
- ~ .#{$state}-feedback,
- ~ .#{$state}-tooltip {
- display: block;
- }
-
- &:focus {
- ~ .custom-file-label {
- border-color: $color;
- box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
+ .input-group {
+ > .form-control:not(:focus),
+ > .form-select:not(:focus),
+ > .form-floating:not(:focus-within) {
+ @include form-validation-state-selector($state) {
+ @if $state == "valid" {
+ z-index: 3;
+ } @else if $state == "invalid" {
+ z-index: 4;
}
}
}
}
}
+// scss-docs-end form-validation-mixins
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_gradients.scss b/extension_explorer/static/lib/bootstrap/mixins/_gradients.scss
index 88c4d64b7..608e18df2 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_gradients.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_gradients.scss
@@ -1,45 +1,47 @@
// Gradients
-@mixin gradient-bg($color) {
+// scss-docs-start gradient-bg-mixin
+@mixin gradient-bg($color: null) {
+ background-color: $color;
+
@if $enable-gradients {
- background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
- } @else {
- background-color: $color;
+ background-image: var(--#{$prefix}gradient);
}
}
+// scss-docs-end gradient-bg-mixin
+// scss-docs-start gradient-mixins
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
- background-repeat: repeat-x;
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
-@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
+@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
- background-repeat: repeat-x;
}
@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
background-image: linear-gradient($deg, $start-color, $end-color);
- background-repeat: repeat-x;
}
+
@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
- background-repeat: no-repeat;
}
+
@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
- background-repeat: no-repeat;
}
+
@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
background-image: radial-gradient(circle, $inner-color, $outer-color);
- background-repeat: no-repeat;
}
+
@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}
+// scss-docs-end gradient-mixins
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_grid-framework.scss b/extension_explorer/static/lib/bootstrap/mixins/_grid-framework.scss
deleted file mode 100644
index 649c28bf7..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_grid-framework.scss
+++ /dev/null
@@ -1,66 +0,0 @@
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `$grid-columns`.
-
-@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
- // Common properties for all breakpoints
- %grid-column {
- position: relative;
- width: 100%;
- padding-right: $gutter / 2;
- padding-left: $gutter / 2;
- }
-
- @each $breakpoint in map-keys($breakpoints) {
- $infix: breakpoint-infix($breakpoint, $breakpoints);
-
- // Allow columns to stretch full width below their breakpoints
- @for $i from 1 through $columns {
- .col#{$infix}-#{$i} {
- @extend %grid-column;
- }
- }
- .col#{$infix},
- .col#{$infix}-auto {
- @extend %grid-column;
- }
-
- @include media-breakpoint-up($breakpoint, $breakpoints) {
- // Provide basic `.col-{bp}` classes for equal-width flexbox columns
- .col#{$infix} {
- flex-basis: 0;
- flex-grow: 1;
- max-width: 100%;
- }
- .col#{$infix}-auto {
- flex: 0 0 auto;
- width: auto;
- max-width: 100%; // Reset earlier grid tiers
- }
-
- @for $i from 1 through $columns {
- .col#{$infix}-#{$i} {
- @include make-col($i, $columns);
- }
- }
-
- .order#{$infix}-first { order: -1; }
-
- .order#{$infix}-last { order: $columns + 1; }
-
- @for $i from 0 through $columns {
- .order#{$infix}-#{$i} { order: $i; }
- }
-
- // `$columns - 1` because offsetting by the width of an entire row isn't possible
- @for $i from 0 through ($columns - 1) {
- @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
- .offset#{$infix}-#{$i} {
- @include make-col-offset($i, $columns);
- }
- }
- }
- }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_grid.scss b/extension_explorer/static/lib/bootstrap/mixins/_grid.scss
index 924eb0cfc..38e2239fd 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_grid.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_grid.scss
@@ -1,51 +1,151 @@
-/// Grid system
+// Grid system
//
// Generate semantic grid columns with these mixins.
-@mixin make-container($gutter: $grid-gutter-width) {
- width: 100%;
- padding-right: $gutter / 2;
- padding-left: $gutter / 2;
- margin-right: auto;
- margin-left: auto;
-}
-
-
-// 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) {
- @each $breakpoint, $container-max-width in $max-widths {
- @include media-breakpoint-up($breakpoint, $breakpoints) {
- max-width: $container-max-width;
- }
- }
-}
-
@mixin make-row($gutter: $grid-gutter-width) {
+ --#{$prefix}gutter-x: #{$gutter};
+ --#{$prefix}gutter-y: 0;
display: flex;
flex-wrap: wrap;
- margin-right: -$gutter / 2;
- margin-left: -$gutter / 2;
+ // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed
+ margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
+ margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
+ margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
}
-@mixin make-col-ready($gutter: $grid-gutter-width) {
- position: relative;
+@mixin make-col-ready() {
+ // Add box sizing if only the grid is loaded
+ box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);
// Prevent columns from becoming too narrow when at smaller grid tiers by
- // always setting `width: 100%;`. This works because we use `flex` values
+ // always setting `width: 100%;`. This works because we set the width
// later on to override this initial width.
+ flex-shrink: 0;
width: 100%;
- padding-right: $gutter / 2;
- padding-left: $gutter / 2;
+ max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid
+ padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ margin-top: var(--#{$prefix}gutter-y);
+}
+
+@mixin make-col($size: false, $columns: $grid-columns) {
+ @if $size {
+ flex: 0 0 auto;
+ width: percentage(divide($size, $columns));
+
+ } @else {
+ flex: 1 1 0;
+ max-width: 100%;
+ }
}
-@mixin make-col($size, $columns: $grid-columns) {
- flex: 0 0 percentage($size / $columns);
- // 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
- // do not appear to require this.
- max-width: percentage($size / $columns);
+@mixin make-col-auto() {
+ flex: 0 0 auto;
+ width: auto;
}
@mixin make-col-offset($size, $columns: $grid-columns) {
- $num: $size / $columns;
+ $num: divide($size, $columns);
margin-left: if($num == 0, 0, percentage($num));
}
+
+// Row columns
+//
+// Specify on a parent element(e.g., .row) to force immediate children into NN
+// number of columns. Supports wrapping to new lines, but does not do a Masonry
+// style grid.
+@mixin row-cols($count) {
+ > * {
+ flex: 0 0 auto;
+ width: divide(100%, $count);
+ }
+}
+
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ // Provide basic `.col-{bp}` classes for equal-width flexbox columns
+ .col#{$infix} {
+ flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
+ }
+
+ .row-cols#{$infix}-auto > * {
+ @include make-col-auto();
+ }
+
+ @if $grid-row-columns > 0 {
+ @for $i from 1 through $grid-row-columns {
+ .row-cols#{$infix}-#{$i} {
+ @include row-cols($i);
+ }
+ }
+ }
+
+ .col#{$infix}-auto {
+ @include make-col-auto();
+ }
+
+ @if $columns > 0 {
+ @for $i from 1 through $columns {
+ .col#{$infix}-#{$i} {
+ @include make-col($i, $columns);
+ }
+ }
+
+ // `$columns - 1` because offsetting by the width of an entire row isn't possible
+ @for $i from 0 through ($columns - 1) {
+ @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
+ .offset#{$infix}-#{$i} {
+ @include make-col-offset($i, $columns);
+ }
+ }
+ }
+ }
+
+ // Gutters
+ //
+ // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.
+ @each $key, $value in $gutters {
+ .g#{$infix}-#{$key},
+ .gx#{$infix}-#{$key} {
+ --#{$prefix}gutter-x: #{$value};
+ }
+
+ .g#{$infix}-#{$key},
+ .gy#{$infix}-#{$key} {
+ --#{$prefix}gutter-y: #{$value};
+ }
+ }
+ }
+ }
+}
+
+@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ @if $columns > 0 {
+ @for $i from 1 through $columns {
+ .g-col#{$infix}-#{$i} {
+ grid-column: auto / span $i;
+ }
+ }
+
+ // Start with `1` because `0` is and invalid value.
+ // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
+ @for $i from 1 through ($columns - 1) {
+ .g-start#{$infix}-#{$i} {
+ grid-column-start: $i;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_hover.scss b/extension_explorer/static/lib/bootstrap/mixins/_hover.scss
deleted file mode 100644
index 192f847e1..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_hover.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-// Hover mixin and `$enable-hover-media-query` are deprecated.
-//
-// Originally added during our alphas and maintained during betas, this mixin was
-// designed to prevent `:hover` stickiness on iOS-an issue where hover styles
-// would persist after initial touch.
-//
-// For backward compatibility, we've kept these mixins and updated them to
-// always return their regular pseudo-classes instead of a shimmed media query.
-//
-// Issue: https://github.com/twbs/bootstrap/issues/25195
-
-@mixin hover {
- &:hover { @content; }
-}
-
-@mixin hover-focus {
- &:hover,
- &:focus {
- @content;
- }
-}
-
-@mixin plain-hover-focus {
- &,
- &:hover,
- &:focus {
- @content;
- }
-}
-
-@mixin hover-focus-active {
- &:hover,
- &:focus,
- &:active {
- @content;
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_image.scss b/extension_explorer/static/lib/bootstrap/mixins/_image.scss
index 0544f0d2a..e1df779f8 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_image.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_image.scss
@@ -14,23 +14,3 @@
// when setting a width and height attribute on the img element.
height: auto;
}
-
-
-// Retina image
-//
-// Short retina mixin for setting background-image and -size.
-
-// stylelint-disable indentation, media-query-list-comma-newline-after
-@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
- background-image: url($file-1x);
-
- // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
- // but doesn't convert dppx=>dpi.
- // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
- // Compatibility info: https://caniuse.com/#feat=css-media-resolution
- @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
- only screen and (min-resolution: 2dppx) { // Standardized
- background-image: url($file-2x);
- background-size: $width-1x $height-1x;
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_list-group.scss b/extension_explorer/static/lib/bootstrap/mixins/_list-group.scss
index cd47a4e9f..e55415f2b 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_list-group.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_list-group.scss
@@ -1,14 +1,16 @@
// List Groups
+// scss-docs-start list-group-mixin
@mixin list-group-item-variant($state, $background, $color) {
.list-group-item-#{$state} {
color: $color;
background-color: $background;
&.list-group-item-action {
- @include hover-focus {
+ &:hover,
+ &:focus {
color: $color;
- background-color: darken($background, 5%);
+ background-color: shade-color($background, 10%);
}
&.active {
@@ -19,3 +21,4 @@
}
}
}
+// scss-docs-end list-group-mixin
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_nav-divider.scss b/extension_explorer/static/lib/bootstrap/mixins/_nav-divider.scss
deleted file mode 100644
index 4fb37b622..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_nav-divider.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// Horizontal dividers
-//
-// Dividers (basically an hr) within dropdowns and nav lists
-
-@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {
- height: 0;
- margin: $margin-y 0;
- overflow: hidden;
- border-top: 1px solid $color;
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_pagination.scss b/extension_explorer/static/lib/bootstrap/mixins/_pagination.scss
index ff36eb6b4..0d657964f 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_pagination.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_pagination.scss
@@ -1,22 +1,10 @@
// Pagination
-@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
- .page-link {
- padding: $padding-y $padding-x;
- font-size: $font-size;
- line-height: $line-height;
- }
-
- .page-item {
- &:first-child {
- .page-link {
- @include border-left-radius($border-radius);
- }
- }
- &:last-child {
- .page-link {
- @include border-right-radius($border-radius);
- }
- }
- }
+// scss-docs-start pagination-mixin
+@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
+ --#{$prefix}pagination-padding-x: #{$padding-x};
+ --#{$prefix}pagination-padding-y: #{$padding-y};
+ @include rfs($font-size, --#{$prefix}pagination-font-size);
+ --#{$prefix}pagination-border-radius: #{$border-radius};
}
+// scss-docs-end pagination-mixin
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_reset-text.scss b/extension_explorer/static/lib/bootstrap/mixins/_reset-text.scss
index 71edb0061..f5bd1afec 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_reset-text.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_reset-text.scss
@@ -1,17 +1,17 @@
@mixin reset-text {
font-family: $font-family-base;
- // We deliberately do NOT reset font-size or word-wrap.
+ // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.
font-style: normal;
font-weight: $font-weight-normal;
line-height: $line-height-base;
text-align: left; // Fallback for where `start` is not supported
- text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties
+ text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-break: normal;
- word-spacing: normal;
white-space: normal;
+ word-spacing: normal;
line-break: auto;
}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_screen-reader.scss b/extension_explorer/static/lib/bootstrap/mixins/_screen-reader.scss
deleted file mode 100644
index 812591bc5..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_screen-reader.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-// Only display content to screen readers
-//
-// See: https://a11yproject.com/posts/how-to-hide-content/
-// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
-
-@mixin sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border: 0;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-//
-// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-//
-// Credit: HTML5 Boilerplate
-
-@mixin sr-only-focusable {
- &:active,
- &:focus {
- position: static;
- width: auto;
- height: auto;
- overflow: visible;
- clip: auto;
- white-space: normal;
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_size.scss b/extension_explorer/static/lib/bootstrap/mixins/_size.scss
deleted file mode 100644
index b9dd48e8d..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_size.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Sizing shortcuts
-
-@mixin size($width, $height: $width) {
- width: $width;
- height: $height;
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_table-row.scss b/extension_explorer/static/lib/bootstrap/mixins/_table-row.scss
deleted file mode 100644
index f8d61869a..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_table-row.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-// Tables
-
-@mixin table-row-variant($state, $background, $border: null) {
- // Exact selectors below required to override `.table-striped` and prevent
- // inheritance to nested tables.
- .table-#{$state} {
- &,
- > th,
- > td {
- background-color: $background;
- }
-
- @if $border != null {
- th,
- td,
- thead th,
- tbody + tbody {
- border-color: $border;
- }
- }
- }
-
- // Hover states for `.table-hover`
- // Note: this is not available for cells or rows within `thead` or `tfoot`.
- .table-hover {
- $hover-background: darken($background, 5%);
-
- .table-#{$state} {
- @include hover {
- background-color: $hover-background;
-
- > td,
- > th {
- background-color: $hover-background;
- }
- }
- }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_table-variants.scss b/extension_explorer/static/lib/bootstrap/mixins/_table-variants.scss
new file mode 100644
index 000000000..5fe1b9b20
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_table-variants.scss
@@ -0,0 +1,24 @@
+// scss-docs-start table-variant
+@mixin table-variant($state, $background) {
+ .table-#{$state} {
+ $color: color-contrast(opaque($body-bg, $background));
+ $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
+ $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
+ $active-bg: mix($color, $background, percentage($table-active-bg-factor));
+ $table-border-color: mix($color, $background, percentage($table-border-factor));
+
+ --#{$prefix}table-color: #{$color};
+ --#{$prefix}table-bg: #{$background};
+ --#{$prefix}table-border-color: #{$table-border-color};
+ --#{$prefix}table-striped-bg: #{$striped-bg};
+ --#{$prefix}table-striped-color: #{color-contrast($striped-bg)};
+ --#{$prefix}table-active-bg: #{$active-bg};
+ --#{$prefix}table-active-color: #{color-contrast($active-bg)};
+ --#{$prefix}table-hover-bg: #{$hover-bg};
+ --#{$prefix}table-hover-color: #{color-contrast($hover-bg)};
+
+ color: var(--#{$prefix}table-color);
+ border-color: var(--#{$prefix}table-border-color);
+ }
+}
+// scss-docs-end table-variant
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_text-emphasis.scss b/extension_explorer/static/lib/bootstrap/mixins/_text-emphasis.scss
deleted file mode 100644
index 1819fb03d..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_text-emphasis.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Typography
-
-@mixin text-emphasis-variant($parent, $color) {
- #{$parent} {
- color: $color !important;
- }
- a#{$parent} {
- @include hover-focus {
- color: darken($color, $emphasized-link-hover-darken-percentage) !important;
- }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_text-hide.scss b/extension_explorer/static/lib/bootstrap/mixins/_text-hide.scss
deleted file mode 100644
index 9ffab169f..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_text-hide.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-// CSS image replacement
-@mixin text-hide($ignore-warning: false) {
- // stylelint-disable-next-line font-family-no-missing-generic-family-keyword
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-
- @if ($ignore-warning != true) {
- @warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.";
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_transition.scss b/extension_explorer/static/lib/bootstrap/mixins/_transition.scss
index 485f76c76..d437f6d8f 100644
--- a/extension_explorer/static/lib/bootstrap/mixins/_transition.scss
+++ b/extension_explorer/static/lib/bootstrap/mixins/_transition.scss
@@ -1,16 +1,26 @@
-// stylelint-disable property-blacklist
+// stylelint-disable property-disallowed-list
@mixin transition($transition...) {
+ @if length($transition) == 0 {
+ $transition: $transition-base;
+ }
+
+ @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-transitions {
- @if length($transition) == 0 {
- transition: $transition-base;
- } @else {
+ @if nth($transition, 1) != null {
transition: $transition;
}
- }
- @if $enable-prefers-reduced-motion-media-query {
- @media screen and (prefers-reduced-motion: reduce) {
- transition: none;
+ @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {
+ @media (prefers-reduced-motion: reduce) {
+ transition: none;
+ }
}
}
}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_utilities.scss b/extension_explorer/static/lib/bootstrap/mixins/_utilities.scss
new file mode 100644
index 000000000..59a237461
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_utilities.scss
@@ -0,0 +1,97 @@
+// Utility generator
+// Used to generate utilities & print utilities
+@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
+ $values: map-get($utility, values);
+
+ // If the values are a list or string, convert it into a map
+ @if type-of($values) == "string" or type-of(nth($values, 1)) != "list" {
+ $values: zip($values, $values);
+ }
+
+ @each $key, $value in $values {
+ $properties: map-get($utility, property);
+
+ // Multiple properties are possible, for example with vertical or horizontal margins or paddings
+ @if type-of($properties) == "string" {
+ $properties: append((), $properties);
+ }
+
+ // Use custom class if present
+ $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
+ $property-class: if($property-class == null, "", $property-class);
+
+ // Use custom CSS variable name if present, otherwise default to `class`
+ $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));
+
+ // State params to generate pseudo-classes
+ $state: if(map-has-key($utility, state), map-get($utility, state), ());
+
+ $infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);
+
+ // Don't prefix if value key is null (e.g. with shadow class)
+ $property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");
+
+ @if map-get($utility, rfs) {
+ // Inside the media query
+ @if $is-rfs-media-query {
+ $val: rfs-value($value);
+
+ // Do not render anything if fluid and non fluid values are the same
+ $value: if($val == rfs-fluid-value($value), null, $val);
+ }
+ @else {
+ $value: rfs-fluid-value($value);
+ }
+ }
+
+ $is-css-var: map-get($utility, css-var);
+ $is-local-vars: map-get($utility, local-vars);
+ $is-rtl: map-get($utility, rtl);
+
+ @if $value != null {
+ @if $is-rtl == false {
+ /* rtl:begin:remove */
+ }
+
+ @if $is-css-var {
+ .#{$property-class + $infix + $property-class-modifier} {
+ --#{$prefix}#{$css-variable-name}: #{$value};
+ }
+
+ @each $pseudo in $state {
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+ --#{$prefix}#{$css-variable-name}: #{$value};
+ }
+ }
+ } @else {
+ .#{$property-class + $infix + $property-class-modifier} {
+ @each $property in $properties {
+ @if $is-local-vars {
+ @each $local-var, $variable in $is-local-vars {
+ --#{$prefix}#{$local-var}: #{$variable};
+ }
+ }
+ #{$property}: $value if($enable-important-utilities, !important, null);
+ }
+ }
+
+ @each $pseudo in $state {
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+ @each $property in $properties {
+ @if $is-local-vars {
+ @each $local-var, $variable in $is-local-vars {
+ --#{$prefix}#{$local-var}: #{$variable};
+ }
+ }
+ #{$property}: $value if($enable-important-utilities, !important, null);
+ }
+ }
+ }
+ }
+
+ @if $is-rtl == false {
+ /* rtl:end:remove */
+ }
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_visibility.scss b/extension_explorer/static/lib/bootstrap/mixins/_visibility.scss
deleted file mode 100644
index fe523d0ee..000000000
--- a/extension_explorer/static/lib/bootstrap/mixins/_visibility.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Visibility
-
-@mixin invisible($visibility) {
- visibility: $visibility !important;
-}
diff --git a/extension_explorer/static/lib/bootstrap/mixins/_visually-hidden.scss b/extension_explorer/static/lib/bootstrap/mixins/_visually-hidden.scss
new file mode 100644
index 000000000..4fc7f49d6
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/mixins/_visually-hidden.scss
@@ -0,0 +1,29 @@
+// stylelint-disable declaration-no-important
+
+// Hide content visually while keeping it accessible to assistive technologies
+//
+// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
+// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
+
+@mixin visually-hidden() {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important;
+}
+
+// Use to only display content when it's focused, or one of its child elements is focused
+// (i.e. when focus is within the element/container that the class was applied to)
+//
+// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+
+@mixin visually-hidden-focusable() {
+ &:not(:focus):not(:focus-within) {
+ @include visually-hidden();
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_align.scss b/extension_explorer/static/lib/bootstrap/utilities/_align.scss
deleted file mode 100644
index 8b7df9f76..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_align.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// stylelint-disable declaration-no-important
-
-.align-baseline { vertical-align: baseline !important; } // Browser default
-.align-top { vertical-align: top !important; }
-.align-middle { vertical-align: middle !important; }
-.align-bottom { vertical-align: bottom !important; }
-.align-text-bottom { vertical-align: text-bottom !important; }
-.align-text-top { vertical-align: text-top !important; }
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_api.scss b/extension_explorer/static/lib/bootstrap/utilities/_api.scss
new file mode 100644
index 000000000..62e1d398e
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/utilities/_api.scss
@@ -0,0 +1,47 @@
+// Loop over each breakpoint
+@each $breakpoint in map-keys($grid-breakpoints) {
+
+ // Generate media query if needed
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ // Loop over each utility property
+ @each $key, $utility in $utilities {
+ // The utility can be disabled with `false`, thus check if the utility is a map first
+ // Only proceed if responsive media queries are enabled or if it's the base media query
+ @if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
+ @include generate-utility($utility, $infix);
+ }
+ }
+ }
+}
+
+// RFS rescaling
+@media (min-width: $rfs-mq-value) {
+ @each $breakpoint in map-keys($grid-breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {
+ // Loop over each utility property
+ @each $key, $utility in $utilities {
+ // The utility can be disabled with `false`, thus check if the utility is a map first
+ // Only proceed if responsive media queries are enabled or if it's the base media query
+ @if type-of($utility) == "map" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == "") {
+ @include generate-utility($utility, $infix, true);
+ }
+ }
+ }
+ }
+}
+
+
+// Print utilities
+@media print {
+ @each $key, $utility in $utilities {
+ // The utility can be disabled with `false`, thus check if the utility is a map first
+ // Then check if the utility needs print styles
+ @if type-of($utility) == "map" and map-get($utility, print) == true {
+ @include generate-utility($utility, "-print");
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_background.scss b/extension_explorer/static/lib/bootstrap/utilities/_background.scss
deleted file mode 100644
index 1f18b2f3f..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_background.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-// stylelint-disable declaration-no-important
-
-@each $color, $value in $theme-colors {
- @include bg-variant(".bg-#{$color}", $value);
-}
-
-@if $enable-gradients {
- @each $color, $value in $theme-colors {
- @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
- }
-}
-
-.bg-white {
- background-color: $white !important;
-}
-
-.bg-transparent {
- background-color: transparent !important;
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_borders.scss b/extension_explorer/static/lib/bootstrap/utilities/_borders.scss
deleted file mode 100644
index fb759c9ba..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_borders.scss
+++ /dev/null
@@ -1,63 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Border
-//
-
-.border { border: $border-width solid $border-color !important; }
-.border-top { border-top: $border-width solid $border-color !important; }
-.border-right { border-right: $border-width solid $border-color !important; }
-.border-bottom { border-bottom: $border-width solid $border-color !important; }
-.border-left { border-left: $border-width solid $border-color !important; }
-
-.border-0 { border: 0 !important; }
-.border-top-0 { border-top: 0 !important; }
-.border-right-0 { border-right: 0 !important; }
-.border-bottom-0 { border-bottom: 0 !important; }
-.border-left-0 { border-left: 0 !important; }
-
-@each $color, $value in $theme-colors {
- .border-#{$color} {
- border-color: $value !important;
- }
-}
-
-.border-white {
- border-color: $white !important;
-}
-
-//
-// Border-radius
-//
-
-.rounded {
- border-radius: $border-radius !important;
-}
-.rounded-top {
- border-top-left-radius: $border-radius !important;
- border-top-right-radius: $border-radius !important;
-}
-.rounded-right {
- border-top-right-radius: $border-radius !important;
- border-bottom-right-radius: $border-radius !important;
-}
-.rounded-bottom {
- border-bottom-right-radius: $border-radius !important;
- border-bottom-left-radius: $border-radius !important;
-}
-.rounded-left {
- border-top-left-radius: $border-radius !important;
- border-bottom-left-radius: $border-radius !important;
-}
-
-.rounded-circle {
- border-radius: 50% !important;
-}
-
-.rounded-pill {
- border-radius: $rounded-pill !important;
-}
-
-.rounded-0 {
- border-radius: 0 !important;
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_display.scss b/extension_explorer/static/lib/bootstrap/utilities/_display.scss
deleted file mode 100644
index 20aeeb5f3..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_display.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Utilities for common `display` values
-//
-
-@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
- .d#{$infix}-none { display: none !important; }
- .d#{$infix}-inline { display: inline !important; }
- .d#{$infix}-inline-block { display: inline-block !important; }
- .d#{$infix}-block { display: block !important; }
- .d#{$infix}-table { display: table !important; }
- .d#{$infix}-table-row { display: table-row !important; }
- .d#{$infix}-table-cell { display: table-cell !important; }
- .d#{$infix}-flex { display: flex !important; }
- .d#{$infix}-inline-flex { display: inline-flex !important; }
- }
-}
-
-
-//
-// Utilities for toggling `display` in print
-//
-
-@media print {
- .d-print-none { display: none !important; }
- .d-print-inline { display: inline !important; }
- .d-print-inline-block { display: inline-block !important; }
- .d-print-block { display: block !important; }
- .d-print-table { display: table !important; }
- .d-print-table-row { display: table-row !important; }
- .d-print-table-cell { display: table-cell !important; }
- .d-print-flex { display: flex !important; }
- .d-print-inline-flex { display: inline-flex !important; }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_embed.scss b/extension_explorer/static/lib/bootstrap/utilities/_embed.scss
deleted file mode 100644
index 4497ac040..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_embed.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-// Credit: Nicolas Gallagher and SUIT CSS.
-
-.embed-responsive {
- position: relative;
- display: block;
- width: 100%;
- padding: 0;
- overflow: hidden;
-
- &::before {
- display: block;
- content: "";
- }
-
- .embed-responsive-item,
- iframe,
- embed,
- object,
- video {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 0;
- }
-}
-
-@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {
- $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);
- $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);
-
- .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {
- &::before {
- padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);
- }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_flex.scss b/extension_explorer/static/lib/bootstrap/utilities/_flex.scss
deleted file mode 100644
index 3d4266e0d..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_flex.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Flex variation
-//
-// Custom styles for additional flex alignment options.
-
-@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
- .flex#{$infix}-row { flex-direction: row !important; }
- .flex#{$infix}-column { flex-direction: column !important; }
- .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }
- .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }
-
- .flex#{$infix}-wrap { flex-wrap: wrap !important; }
- .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }
- .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
- .flex#{$infix}-fill { flex: 1 1 auto !important; }
- .flex#{$infix}-grow-0 { flex-grow: 0 !important; }
- .flex#{$infix}-grow-1 { flex-grow: 1 !important; }
- .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }
- .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }
-
- .justify-content#{$infix}-start { justify-content: flex-start !important; }
- .justify-content#{$infix}-end { justify-content: flex-end !important; }
- .justify-content#{$infix}-center { justify-content: center !important; }
- .justify-content#{$infix}-between { justify-content: space-between !important; }
- .justify-content#{$infix}-around { justify-content: space-around !important; }
-
- .align-items#{$infix}-start { align-items: flex-start !important; }
- .align-items#{$infix}-end { align-items: flex-end !important; }
- .align-items#{$infix}-center { align-items: center !important; }
- .align-items#{$infix}-baseline { align-items: baseline !important; }
- .align-items#{$infix}-stretch { align-items: stretch !important; }
-
- .align-content#{$infix}-start { align-content: flex-start !important; }
- .align-content#{$infix}-end { align-content: flex-end !important; }
- .align-content#{$infix}-center { align-content: center !important; }
- .align-content#{$infix}-between { align-content: space-between !important; }
- .align-content#{$infix}-around { align-content: space-around !important; }
- .align-content#{$infix}-stretch { align-content: stretch !important; }
-
- .align-self#{$infix}-auto { align-self: auto !important; }
- .align-self#{$infix}-start { align-self: flex-start !important; }
- .align-self#{$infix}-end { align-self: flex-end !important; }
- .align-self#{$infix}-center { align-self: center !important; }
- .align-self#{$infix}-baseline { align-self: baseline !important; }
- .align-self#{$infix}-stretch { align-self: stretch !important; }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_float.scss b/extension_explorer/static/lib/bootstrap/utilities/_float.scss
deleted file mode 100644
index 01655e9a5..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_float.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
- .float#{$infix}-left { @include float-left; }
- .float#{$infix}-right { @include float-right; }
- .float#{$infix}-none { @include float-none; }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_overflow.scss b/extension_explorer/static/lib/bootstrap/utilities/_overflow.scss
deleted file mode 100644
index 8326c3064..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_overflow.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-// stylelint-disable declaration-no-important
-
-@each $value in $overflows {
- .overflow-#{$value} { overflow: $value !important; }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_position.scss b/extension_explorer/static/lib/bootstrap/utilities/_position.scss
deleted file mode 100644
index cdf6c115f..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_position.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Common values
-@each $position in $positions {
- .position-#{$position} { position: $position !important; }
-}
-
-// Shorthand
-
-.fixed-top {
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- z-index: $zindex-fixed;
-}
-
-.fixed-bottom {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: $zindex-fixed;
-}
-
-.sticky-top {
- @supports (position: sticky) {
- position: sticky;
- top: 0;
- z-index: $zindex-sticky;
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_screenreaders.scss b/extension_explorer/static/lib/bootstrap/utilities/_screenreaders.scss
deleted file mode 100644
index 9f26fde03..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_screenreaders.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Screenreaders
-//
-
-.sr-only {
- @include sr-only();
-}
-
-.sr-only-focusable {
- @include sr-only-focusable();
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_shadows.scss b/extension_explorer/static/lib/bootstrap/utilities/_shadows.scss
deleted file mode 100644
index f5d03fcd5..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_shadows.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// stylelint-disable declaration-no-important
-
-.shadow-sm { box-shadow: $box-shadow-sm !important; }
-.shadow { box-shadow: $box-shadow !important; }
-.shadow-lg { box-shadow: $box-shadow-lg !important; }
-.shadow-none { box-shadow: none !important; }
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_sizing.scss b/extension_explorer/static/lib/bootstrap/utilities/_sizing.scss
deleted file mode 100644
index f37648802..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_sizing.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Width and height
-
-@each $prop, $abbrev in (width: w, height: h) {
- @each $size, $length in $sizes {
- .#{$abbrev}-#{$size} { #{$prop}: $length !important; }
- }
-}
-
-.mw-100 { max-width: 100% !important; }
-.mh-100 { max-height: 100% !important; }
-
-// Viewport additional helpers
-
-.min-vw-100 { min-width: 100vw !important; }
-.min-vh-100 { min-height: 100vh !important; }
-
-.vw-100 { width: 100vw !important; }
-.vh-100 { height: 100vh !important; }
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_spacing.scss b/extension_explorer/static/lib/bootstrap/utilities/_spacing.scss
deleted file mode 100644
index 351136790..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_spacing.scss
+++ /dev/null
@@ -1,73 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Margin and Padding
-
-@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
- @each $prop, $abbrev in (margin: m, padding: p) {
- @each $size, $length in $spacers {
- .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
- .#{$abbrev}t#{$infix}-#{$size},
- .#{$abbrev}y#{$infix}-#{$size} {
- #{$prop}-top: $length !important;
- }
- .#{$abbrev}r#{$infix}-#{$size},
- .#{$abbrev}x#{$infix}-#{$size} {
- #{$prop}-right: $length !important;
- }
- .#{$abbrev}b#{$infix}-#{$size},
- .#{$abbrev}y#{$infix}-#{$size} {
- #{$prop}-bottom: $length !important;
- }
- .#{$abbrev}l#{$infix}-#{$size},
- .#{$abbrev}x#{$infix}-#{$size} {
- #{$prop}-left: $length !important;
- }
- }
- }
-
- // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
- @each $size, $length in $spacers {
- @if $size != 0 {
- .m#{$infix}-n#{$size} { margin: -$length !important; }
- .mt#{$infix}-n#{$size},
- .my#{$infix}-n#{$size} {
- margin-top: -$length !important;
- }
- .mr#{$infix}-n#{$size},
- .mx#{$infix}-n#{$size} {
- margin-right: -$length !important;
- }
- .mb#{$infix}-n#{$size},
- .my#{$infix}-n#{$size} {
- margin-bottom: -$length !important;
- }
- .ml#{$infix}-n#{$size},
- .mx#{$infix}-n#{$size} {
- margin-left: -$length !important;
- }
- }
- }
-
- // Some special margin utils
- .m#{$infix}-auto { margin: auto !important; }
- .mt#{$infix}-auto,
- .my#{$infix}-auto {
- margin-top: auto !important;
- }
- .mr#{$infix}-auto,
- .mx#{$infix}-auto {
- margin-right: auto !important;
- }
- .mb#{$infix}-auto,
- .my#{$infix}-auto {
- margin-bottom: auto !important;
- }
- .ml#{$infix}-auto,
- .mx#{$infix}-auto {
- margin-left: auto !important;
- }
- }
-}
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_text.scss b/extension_explorer/static/lib/bootstrap/utilities/_text.scss
deleted file mode 100644
index 0edb8e58b..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_text.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Text
-//
-
-.text-monospace { font-family: $font-family-monospace; }
-
-// Alignment
-
-.text-justify { text-align: justify !important; }
-.text-wrap { white-space: normal !important; }
-.text-nowrap { white-space: nowrap !important; }
-.text-truncate { @include text-truncate; }
-
-// Responsive alignment
-
-@each $breakpoint in map-keys($grid-breakpoints) {
- @include media-breakpoint-up($breakpoint) {
- $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
- .text#{$infix}-left { text-align: left !important; }
- .text#{$infix}-right { text-align: right !important; }
- .text#{$infix}-center { text-align: center !important; }
- }
-}
-
-// Transformation
-
-.text-lowercase { text-transform: lowercase !important; }
-.text-uppercase { text-transform: uppercase !important; }
-.text-capitalize { text-transform: capitalize !important; }
-
-// Weight and italics
-
-.font-weight-light { font-weight: $font-weight-light !important; }
-.font-weight-lighter { font-weight: $font-weight-lighter !important; }
-.font-weight-normal { font-weight: $font-weight-normal !important; }
-.font-weight-bold { font-weight: $font-weight-bold !important; }
-.font-weight-bolder { font-weight: $font-weight-bolder !important; }
-.font-italic { font-style: italic !important; }
-
-// Contextual colors
-
-.text-white { color: $white !important; }
-
-@each $color, $value in $theme-colors {
- @include text-emphasis-variant(".text-#{$color}", $value);
-}
-
-.text-body { color: $body-color !important; }
-.text-muted { color: $text-muted !important; }
-
-.text-black-50 { color: rgba($black, .5) !important; }
-.text-white-50 { color: rgba($white, .5) !important; }
-
-// Misc
-
-.text-hide {
- @include text-hide($ignore-warning: true);
-}
-
-.text-decoration-none { text-decoration: none !important; }
-
-// Reset
-
-.text-reset { color: inherit !important; }
diff --git a/extension_explorer/static/lib/bootstrap/utilities/_visibility.scss b/extension_explorer/static/lib/bootstrap/utilities/_visibility.scss
deleted file mode 100644
index 823406dc3..000000000
--- a/extension_explorer/static/lib/bootstrap/utilities/_visibility.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Visibility utilities
-//
-
-.visible {
- @include invisible(visible);
-}
-
-.invisible {
- @include invisible(hidden);
-}
diff --git a/extension_explorer/static/lib/bootstrap/vendor/_rfs.scss b/extension_explorer/static/lib/bootstrap/vendor/_rfs.scss
new file mode 100644
index 000000000..7e9a6c7a8
--- /dev/null
+++ b/extension_explorer/static/lib/bootstrap/vendor/_rfs.scss
@@ -0,0 +1,354 @@
+// stylelint-disable property-blacklist, scss/dollar-variable-default
+
+// SCSS RFS mixin
+//
+// Automated responsive values for font sizes, paddings, margins and much more
+//
+// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
+
+// Configuration
+
+// Base value
+$rfs-base-value: 1.25rem !default;
+$rfs-unit: rem !default;
+
+@if $rfs-unit != rem and $rfs-unit != px {
+ @error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
+}
+
+// Breakpoint at where values start decreasing if screen width is smaller
+$rfs-breakpoint: 1200px !default;
+$rfs-breakpoint-unit: px !default;
+
+@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 values based on screen height and width
+$rfs-two-dimensional: false !default;
+
+// Factor of decrease
+$rfs-factor: 10 !default;
+
+@if type-of($rfs-factor) != number or $rfs-factor <= 1 {
+ @error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
+}
+
+// Mode. Possibilities: "min-media-query", "max-media-query"
+$rfs-mode: min-media-query !default;
+
+// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
+$rfs-class: false !default;
+
+// 1 rem = $rfs-rem-value px
+$rfs-rem-value: 16 !default;
+
+// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
+$rfs-safari-iframe-resize-bug-fix: false !default;
+
+// Disable RFS by setting $enable-rfs to false
+$enable-rfs: true !default;
+
+// Cache $rfs-base-value unit
+$rfs-base-value-unit: unit($rfs-base-value);
+
+@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-value for calculations
+@if $rfs-base-value-unit == px {
+ $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
+}
+@else if $rfs-base-value-unit == rem {
+ $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
+}
+
+// Cache $rfs-breakpoint unit to prevent multiple calls
+$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
+
+// Remove unit from $rfs-breakpoint for calculations
+@if $rfs-breakpoint-unit-cache == px {
+ $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
+}
+@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
+ $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
+}
+
+// Calculate the media query value
+$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
+$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
+$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);
+
+// Internal mixin used to determine which media query needs to be used
+@mixin _rfs-media-query {
+ @if $rfs-two-dimensional {
+ @if $rfs-mode == max-media-query {
+ @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
+ @content;
+ }
+ }
+ @else {
+ @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
+ @content;
+ }
+ }
+ }
+ @else {
+ @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {
+ @content;
+ }
+ }
+}
+
+// Internal mixin that adds disable classes to the selector if needed.
+@mixin _rfs-rule {
+ @if $rfs-class == disable and $rfs-mode == max-media-query {
+ // Adding an extra class increases specificity, which prevents the media query to override the property
+ &,
+ .disable-rfs &,
+ &.disable-rfs {
+ @content;
+ }
+ }
+ @else if $rfs-class == enable and $rfs-mode == min-media-query {
+ .enable-rfs &,
+ &.enable-rfs {
+ @content;
+ }
+ }
+ @else {
+ @content;
+ }
+}
+
+// Internal mixin that adds enable classes to the selector if needed.
+@mixin _rfs-media-query-rule {
+
+ @if $rfs-class == enable {
+ @if $rfs-mode == min-media-query {
+ @content;
+ }
+
+ @include _rfs-media-query {
+ .enable-rfs &,
+ &.enable-rfs {
+ @content;
+ }
+ }
+ }
+ @else {
+ @if $rfs-class == disable and $rfs-mode == min-media-query {
+ .disable-rfs &,
+ &.disable-rfs {
+ @content;
+ }
+ }
+ @include _rfs-media-query {
+ @content;
+ }
+ }
+}
+
+// Helper function to get the formatted non-responsive value
+@function rfs-value($values) {
+ // Convert to list
+ $values: if(type-of($values) != list, ($values,), $values);
+
+ $val: '';
+
+ // Loop over each value and calculate value
+ @each $value in $values {
+ @if $value == 0 {
+ $val: $val + ' 0';
+ }
+ @else {
+ // Cache $value unit
+ $unit: if(type-of($value) == "number", unit($value), false);
+
+ @if $unit == px {
+ // Convert to rem if needed
+ $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
+ }
+ @else if $unit == rem {
+ // Convert to px if needed
+ $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
+ }
+ @else {
+ // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
+ $val: $val + ' ' + $value;
+ }
+ }
+ }
+
+ // Remove first space
+ @return unquote(str-slice($val, 2));
+}
+
+// Helper function to get the responsive value calculated by RFS
+@function rfs-fluid-value($values) {
+ // Convert to list
+ $values: if(type-of($values) != list, ($values,), $values);
+
+ $val: '';
+
+ // Loop over each value and calculate value
+ @each $value in $values {
+ @if $value == 0 {
+ $val: $val + ' 0';
+ }
+
+ @else {
+ // Cache $value unit
+ $unit: if(type-of($value) == "number", unit($value), false);
+
+ // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
+ @if not $unit or $unit != px and $unit != rem {
+ $val: $val + ' ' + $value;
+ }
+
+ @else {
+ // Remove unit from $value for calculations
+ $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));
+
+ // Only add the media query if the value is greater than the minimum value
+ @if abs($value) <= $rfs-base-value or not $enable-rfs {
+ $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);
+ }
+ @else {
+ // Calculate the minimum value
+ $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);
+
+ // Calculate difference between $value and the minimum value
+ $value-diff: abs($value) - $value-min;
+
+ // Base value formatting
+ $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);
+
+ // Use negative value if needed
+ $min-width: if($value < 0, -$min-width, $min-width);
+
+ // Use `vmin` if two-dimensional is enabled
+ $variable-unit: if($rfs-two-dimensional, vmin, vw);
+
+ // Calculate the variable width between 0 and $rfs-breakpoint
+ $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};
+
+ // Return the calculated value
+ $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';
+ }
+ }
+ }
+ }
+
+ // Remove first space
+ @return unquote(str-slice($val, 2));
+}
+
+// RFS mixin
+@mixin rfs($values, $property: font-size) {
+ @if $values != null {
+ $val: rfs-value($values);
+ $fluidVal: rfs-fluid-value($values);
+
+ // Do not print the media query if responsive & non-responsive values are the same
+ @if $val == $fluidVal {
+ #{$property}: $val;
+ }
+ @else {
+ @include _rfs-rule {
+ #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);
+
+ // Include safari iframe resize fix if needed
+ min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
+ }
+
+ @include _rfs-media-query-rule {
+ #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);
+ }
+ }
+ }
+}
+
+// Shorthand helper mixins
+@mixin font-size($value) {
+ @include rfs($value);
+}
+
+@mixin padding($value) {
+ @include rfs($value, padding);
+}
+
+@mixin padding-top($value) {
+ @include rfs($value, padding-top);
+}
+
+@mixin padding-right($value) {
+ @include rfs($value, padding-right);
+}
+
+@mixin padding-bottom($value) {
+ @include rfs($value, padding-bottom);
+}
+
+@mixin padding-left($value) {
+ @include rfs($value, padding-left);
+}
+
+@mixin margin($value) {
+ @include rfs($value, margin);
+}
+
+@mixin margin-top($value) {
+ @include rfs($value, margin-top);
+}
+
+@mixin margin-right($value) {
+ @include rfs($value, margin-right);
+}
+
+@mixin margin-bottom($value) {
+ @include rfs($value, margin-bottom);
+}
+
+@mixin margin-left($value) {
+ @include rfs($value, margin-left);
+}
From 494f67cd2ed73ffc951895d57bb12976d2b5641c Mon Sep 17 00:00:00 2001
From: James McKinney <26463+jpmckinney@users.noreply.github.com>
Date: Tue, 12 Dec 2023 00:52:46 -0500
Subject: [PATCH 2/3] Update templates to Bootstrap 5
Change
- Hide navbar behind sandwich toggle
- Move display utility from SVG to parent, to hide logo on small screens to make room for sandwich toggle
- Use JS from Boostrap 5
Preserve
- Restore form-inline to reproduce existing behavior
- Preserve current max-width by removing xxl container
- Preserve no underline in extension sidebar
- Add dropdown menu padding to restore active checkmark position
CSS selector updates
- margin and padding: l(eft) -> s(tart), r(ight) -> e(nd)
- thead-light -> table-light
- font-italic -> fst-italic
- custom-select -> form-select
- badge-pill -> rounded-pill
- badge-light -> text-bg-light
- data-toggle -> data-bs-toggle
- data-target -> data-bs-target
- align-items-center is included
Other
- Add aria-label for Extension URL, Toggle navigation, Select language
- Use single quotes for translations of HTML attribute values to improve code highlighting
---
extension_explorer/static/css/theme.css | 11810 +++++++++-------
.../static/lib/scss/_custom-styles.scss | 21 +-
.../static/lib/scss/_custom-variables.scss | 23 +-
.../static/lib/scss/_sidebar.scss | 2 +
extension_explorer/templates/_logo.html | 2 +-
.../templates/extension_codelists.html | 2 +-
.../templates/extension_documentation.html | 2 +-
.../templates/extension_schema.html | 8 +-
extension_explorer/templates/extensions.html | 78 +-
extension_explorer/templates/layout.html | 104 +-
.../templates/layout_extension.html | 16 +-
extension_explorer/templates/redirect.html | 4 +-
extension_explorer/util.py | 2 +-
13 files changed, 6746 insertions(+), 5328 deletions(-)
diff --git a/extension_explorer/static/css/theme.css b/extension_explorer/static/css/theme.css
index a24ac8cc5..abe824243 100644
--- a/extension_explorer/static/css/theme.css
+++ b/extension_explorer/static/css/theme.css
@@ -4,87 +4,147 @@
* Built with the Bootstrap Theme Kit by HackerThemes (https://hackerthemes.com)
*/
/*!
- * Bootstrap v4.2.1 (https://getbootstrap.com/)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
+ * Bootstrap v5.2.3 (https://getbootstrap.com/)
+ * Copyright 2011-2022 The Bootstrap Authors
+ * Copyright 2011-2022 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
:root {
- --blue: #007bff;
- --indigo: #6610f2;
- --purple: #6f42c1;
- --pink: #e83e8c;
- --red: #dc3545;
- --orange: #fd7e14;
- --yellow: #ffc107;
- --green: #28a745;
- --teal: #20c997;
- --cyan: #17a2b8;
- --white: #fff;
- --gray: #6c757d;
- --gray-dark: #343a40;
- --primary: #9BAF00;
- --secondary: #6c757d;
- --success: #28a745;
- --info: #17a2b8;
- --warning: #d9e021;
- --danger: #dc3545;
- --light: #e1e4e5;
- --dark: #373738;
- --breakpoint-xs: 0;
- --breakpoint-sm: 576px;
- --breakpoint-md: 768px;
- --breakpoint-lg: 992px;
- --breakpoint-xl: 1200px;
- --font-family-sans-serif: "Lato", "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
- --font-family-monospace: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #dc3545;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #198754;
+ --bs-teal: #20c997;
+ --bs-cyan: #0dcaf0;
+ --bs-black: #000;
+ --bs-white: #fff;
+ --bs-gray: #6c757d;
+ --bs-gray-dark: #343a40;
+ --bs-gray-100: #f8f9fa;
+ --bs-gray-200: #e9ecef;
+ --bs-gray-300: #dee2e6;
+ --bs-gray-400: #ced4da;
+ --bs-gray-500: #adb5bd;
+ --bs-gray-600: #6c757d;
+ --bs-gray-700: #495057;
+ --bs-gray-800: #343a40;
+ --bs-gray-900: #212529;
+ --bs-primary: #6f7e00;
+ --bs-secondary: #6c757d;
+ --bs-success: #198754;
+ --bs-info: #0dcaf0;
+ --bs-warning: #d9e021;
+ --bs-danger: #dc3545;
+ --bs-light: #e1e4e5;
+ --bs-dark: #373738;
+ --bs-primary-rgb: 111, 126, 0;
+ --bs-secondary-rgb: 108, 117, 125;
+ --bs-success-rgb: 25, 135, 84;
+ --bs-info-rgb: 13, 202, 240;
+ --bs-warning-rgb: 217, 224, 33;
+ --bs-danger-rgb: 220, 53, 69;
+ --bs-light-rgb: 225, 228, 229;
+ --bs-dark-rgb: 55, 55, 56;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-black-rgb: 0, 0, 0;
+ --bs-body-color-rgb: 33, 37, 41;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-font-sans-serif: "Lato", "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ --bs-font-monospace: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+ --bs-body-font-family: var(--bs-font-sans-serif);
+ --bs-body-font-size: 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color: #212529;
+ --bs-body-bg: #fff;
+ --bs-border-width: 1px;
+ --bs-border-style: solid;
+ --bs-border-color: #dee2e6;
+ --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
+ --bs-border-radius: 0.375rem;
+ --bs-border-radius-sm: 0.25rem;
+ --bs-border-radius-lg: 0.5rem;
+ --bs-border-radius-xl: 1rem;
+ --bs-border-radius-2xl: 2rem;
+ --bs-border-radius-pill: 50rem;
+ --bs-link-color: #6f7e00;
+ --bs-link-hover-color: #596500;
+ --bs-code-color: #d63384;
+ --bs-highlight-bg: #fff3cd; }
*,
*::before,
*::after {
box-sizing: border-box; }
-html {
- font-family: sans-serif;
- line-height: 1.15;
- -webkit-text-size-adjust: 100%;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
-
-article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
- display: block; }
+@media (prefers-reduced-motion: no-preference) {
+ :root {
+ scroll-behavior: smooth; } }
body {
margin: 0;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 1rem;
- font-weight: 400;
- line-height: 1.5;
- color: #212529;
- text-align: left;
- background-color: #fff; }
-
-[tabindex="-1"]:focus {
- outline: 0 !important; }
+ font-family: var(--bs-body-font-family);
+ font-size: var(--bs-body-font-size);
+ font-weight: var(--bs-body-font-weight);
+ line-height: var(--bs-body-line-height);
+ color: var(--bs-body-color);
+ text-align: var(--bs-body-text-align);
+ background-color: var(--bs-body-bg);
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
hr {
- box-sizing: content-box;
- height: 0;
- overflow: visible; }
+ margin: 1rem 0;
+ color: inherit;
+ border: 0;
+ border-top: 1px solid;
+ opacity: 0.25; }
-h1, h2, h3, h4, h5, h6 {
+h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
margin-top: 0;
- margin-bottom: 0.5rem; }
+ margin-bottom: 0.5rem;
+ font-family: "stratum-1-web", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-weight: 500;
+ line-height: 1.2; }
+
+h1, .h1 {
+ font-size: calc(1.375rem + 1.5vw); }
+ @media (min-width: 1200px) {
+ h1, .h1 {
+ font-size: 2.5rem; } }
+h2, .h2 {
+ font-size: calc(1.325rem + 0.9vw); }
+ @media (min-width: 1200px) {
+ h2, .h2 {
+ font-size: 2rem; } }
+h3, .h3 {
+ font-size: calc(1.3rem + 0.6vw); }
+ @media (min-width: 1200px) {
+ h3, .h3 {
+ font-size: 1.75rem; } }
+h4, .h4 {
+ font-size: calc(1.275rem + 0.3vw); }
+ @media (min-width: 1200px) {
+ h4, .h4 {
+ font-size: 1.5rem; } }
+h5, .h5 {
+ font-size: 1.25rem; }
+
+h6, .h6 {
+ font-size: 1rem; }
p {
margin-top: 0;
margin-bottom: 1rem; }
-abbr[title],
-abbr[data-original-title] {
- text-decoration: underline;
+abbr[title] {
text-decoration: underline dotted;
cursor: help;
- border-bottom: 0;
text-decoration-skip-ink: none; }
address {
@@ -92,6 +152,10 @@ address {
font-style: normal;
line-height: inherit; }
+ol,
+ul {
+ padding-left: 2rem; }
+
ol,
ul,
dl {
@@ -118,13 +182,17 @@ b,
strong {
font-weight: bolder; }
-small {
- font-size: 80%; }
+small, .small {
+ font-size: 0.875em; }
+
+mark, .mark {
+ padding: 0.1875em;
+ background-color: var(--bs-highlight-bg); }
sub,
sup {
position: relative;
- font-size: 75%;
+ font-size: 0.75em;
line-height: 0;
vertical-align: baseline; }
@@ -135,69 +203,90 @@ sup {
top: -.5em; }
a {
- color: #9BAF00;
- text-decoration: none;
- background-color: transparent; }
+ color: var(--bs-link-color);
+ text-decoration: underline; }
a:hover {
- color: #576300;
- text-decoration: underline; }
+ color: var(--bs-link-hover-color); }
-a:not([href]):not([tabindex]) {
+a:not([href]):not([class]), a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none; }
- a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
- color: inherit;
- text-decoration: none; }
- a:not([href]):not([tabindex]):focus {
- outline: 0; }
pre,
code,
table.docutils tt,
kbd,
samp {
- font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
+ font-family: var(--bs-font-monospace);
font-size: 1em; }
pre {
+ display: block;
margin-top: 0;
margin-bottom: 1rem;
- overflow: auto; }
+ overflow: auto;
+ font-size: 0.875em; }
+ pre code, pre table.docutils tt, table.docutils pre tt {
+ font-size: inherit;
+ color: inherit;
+ word-break: normal; }
+
+code, table.docutils tt {
+ font-size: 0.875em;
+ color: var(--bs-code-color);
+ word-wrap: break-word; }
+ a > code, table.docutils a > tt {
+ color: inherit; }
+
+kbd {
+ padding: 0.1875rem 0.375rem;
+ font-size: 0.875em;
+ color: var(--bs-body-bg);
+ background-color: var(--bs-body-color);
+ border-radius: 0.25rem; }
+ kbd kbd {
+ padding: 0;
+ font-size: 1em; }
figure {
margin: 0 0 1rem; }
-img {
- vertical-align: middle;
- border-style: none; }
-
+img,
svg {
- overflow: hidden;
vertical-align: middle; }
table {
+ caption-side: bottom;
border-collapse: collapse; }
caption {
- padding-top: 0.75rem;
- padding-bottom: 0.75rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
color: #6c757d;
- text-align: left;
- caption-side: bottom; }
+ text-align: left; }
th {
- text-align: inherit; }
+ text-align: inherit;
+ text-align: -webkit-match-parent; }
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
+th {
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0; }
label {
- display: inline-block;
- margin-bottom: 0.5rem; }
+ display: inline-block; }
button {
border-radius: 0; }
-button:focus {
- outline: 1px dotted;
- outline: 5px auto -webkit-focus-ring-color; }
+button:focus:not(:focus-visible) {
+ outline: 0; }
input,
button,
@@ -209,40 +298,37 @@ textarea {
font-size: inherit;
line-height: inherit; }
-button,
-input {
- overflow: visible; }
-
button,
select {
text-transform: none; }
+[role="button"] {
+ cursor: pointer; }
+
+select {
+ word-wrap: normal; }
+ select:disabled {
+ opacity: 1; }
+
+[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
+ display: none !important; }
+
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button; }
+ button:not(:disabled),
+ [type="button"]:not(:disabled),
+ [type="reset"]:not(:disabled),
+ [type="submit"]:not(:disabled) {
+ cursor: pointer; }
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
+::-moz-focus-inner {
padding: 0;
border-style: none; }
-input[type="radio"],
-input[type="checkbox"] {
- box-sizing: border-box;
- padding: 0; }
-
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
- -webkit-appearance: listbox; }
-
textarea {
- overflow: auto;
resize: vertical; }
fieldset {
@@ -252,113 +338,114 @@ fieldset {
border: 0; }
legend {
- display: block;
+ float: left;
width: 100%;
- max-width: 100%;
padding: 0;
- margin-bottom: .5rem;
- font-size: 1.5rem;
- line-height: inherit;
- color: inherit;
- white-space: normal; }
-
-progress {
- vertical-align: baseline; }
+ margin-bottom: 0.5rem;
+ font-size: calc(1.275rem + 0.3vw);
+ line-height: inherit; }
+ @media (min-width: 1200px) {
+ legend {
+ font-size: 1.5rem; } }
+ legend + * {
+ clear: left; }
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+ padding: 0; }
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
+::-webkit-inner-spin-button {
height: auto; }
[type="search"] {
outline-offset: -2px;
+ -webkit-appearance: textfield; }
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
+::-webkit-search-decoration {
-webkit-appearance: none; }
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none; }
+::-webkit-color-swatch-wrapper {
+ padding: 0; }
-::-webkit-file-upload-button {
+::file-selector-button {
font: inherit;
-webkit-appearance: button; }
output {
display: inline-block; }
+iframe {
+ border: 0; }
+
summary {
display: list-item;
cursor: pointer; }
-template {
- display: none; }
+progress {
+ vertical-align: baseline; }
[hidden] {
display: none !important; }
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
- margin-bottom: 0.5rem;
- font-family: "stratum-1-web", "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-weight: 500;
- line-height: 1.2;
- color: inherit; }
-
-h1, .h1 {
- font-size: 2.5rem; }
-
-h2, .h2 {
- font-size: 2rem; }
-
-h3, .h3 {
- font-size: 1.75rem; }
-
-h4, .h4 {
- font-size: 1.5rem; }
-
-h5, .h5 {
- font-size: 1.25rem; }
-
-h6, .h6 {
- font-size: 1rem; }
-
.lead {
font-size: 1.25rem;
font-weight: 300; }
.display-1 {
- font-size: 6rem;
+ font-size: calc(1.625rem + 4.5vw);
font-weight: 300;
line-height: 1.2; }
-
+ @media (min-width: 1200px) {
+ .display-1 {
+ font-size: 5rem; } }
.display-2 {
- font-size: 5.5rem;
+ font-size: calc(1.575rem + 3.9vw);
font-weight: 300;
line-height: 1.2; }
-
+ @media (min-width: 1200px) {
+ .display-2 {
+ font-size: 4.5rem; } }
.display-3 {
- font-size: 4.5rem;
+ font-size: calc(1.525rem + 3.3vw);
font-weight: 300;
line-height: 1.2; }
-
+ @media (min-width: 1200px) {
+ .display-3 {
+ font-size: 4rem; } }
.display-4 {
- font-size: 3.5rem;
+ font-size: calc(1.475rem + 2.7vw);
font-weight: 300;
line-height: 1.2; }
-
-hr {
- margin-top: 1rem;
- margin-bottom: 1rem;
- border: 0;
- border-top: 1px solid rgba(0, 0, 0, 0.1); }
-
-small,
-.small {
- font-size: 80%;
- font-weight: 400; }
-
-mark,
-.mark {
- padding: 0.2em;
- background-color: #fcf8e3; }
-
+ @media (min-width: 1200px) {
+ .display-4 {
+ font-size: 3.5rem; } }
+.display-5 {
+ font-size: calc(1.425rem + 2.1vw);
+ font-weight: 300;
+ line-height: 1.2; }
+ @media (min-width: 1200px) {
+ .display-5 {
+ font-size: 3rem; } }
+.display-6 {
+ font-size: calc(1.375rem + 1.5vw);
+ font-weight: 300;
+ line-height: 1.2; }
+ @media (min-width: 1200px) {
+ .display-6 {
+ font-size: 2.5rem; } }
.list-unstyled {
padding-left: 0;
list-style: none; }
@@ -373,30 +460,32 @@ mark,
margin-right: 0.5rem; }
.initialism {
- font-size: 90%;
+ font-size: 0.875em;
text-transform: uppercase; }
.blockquote {
margin-bottom: 1rem;
font-size: 1.25rem; }
+ .blockquote > :last-child {
+ margin-bottom: 0; }
.blockquote-footer {
- display: block;
- font-size: 80%;
+ margin-top: -1rem;
+ margin-bottom: 1rem;
+ font-size: 0.875em;
color: #6c757d; }
.blockquote-footer::before {
content: "\2014\00A0"; }
-.img-fluid,
-.ee-content img {
+.img-fluid {
max-width: 100%;
height: auto; }
.img-thumbnail {
padding: 0.25rem;
background-color: #fff;
- border: 1px solid #dee2e6;
- border-radius: 0.25rem;
+ border: 1px solid var(--bs-border-color);
+ border-radius: 0.375rem;
max-width: 100%;
height: auto; }
@@ -408,198 +497,137 @@ mark,
line-height: 1; }
.figure-caption {
- font-size: 90%;
+ font-size: 0.875em;
color: #6c757d; }
-
-code,
-table.docutils tt {
- font-size: 87.5%;
- color: #e83e8c;
- word-break: break-word; }
- a > code,
- table.docutils a > tt {
- color: inherit; }
-
-kbd {
- padding: 0.2rem 0.4rem;
- font-size: 87.5%;
- color: #fff;
- background-color: #212529;
- border-radius: 0.2rem; }
- kbd kbd {
- padding: 0;
- font-size: 100%;
- font-weight: 700; }
-
-pre {
- display: block;
- font-size: 87.5%;
- color: #212529; }
- pre code,
- pre table.docutils tt,
- table.docutils pre tt {
- font-size: inherit;
- color: inherit;
- word-break: normal; }
-
-.pre-scrollable {
- max-height: 340px;
- overflow-y: scroll; }
-
-.container {
+.container,
+.container-fluid,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
width: 100%;
- padding-right: 15px;
- padding-left: 15px;
+ padding-right: calc(var(--bs-gutter-x) * .5);
+ padding-left: calc(var(--bs-gutter-x) * .5);
margin-right: auto;
margin-left: auto; }
- @media (min-width: 576px) {
- .container {
- max-width: 540px; } }
- @media (min-width: 768px) {
- .container {
- max-width: 720px; } }
- @media (min-width: 992px) {
- .container {
- max-width: 960px; } }
- @media (min-width: 1200px) {
- .container {
- max-width: 1140px; } }
-.container-fluid {
- width: 100%;
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto; }
+@media (min-width: 576px) {
+ .container-sm, .container {
+ max-width: 540px; } }
+
+@media (min-width: 768px) {
+ .container-md, .container-sm, .container {
+ max-width: 720px; } }
+
+@media (min-width: 992px) {
+ .container-lg, .container-md, .container-sm, .container {
+ max-width: 960px; } }
+
+@media (min-width: 1200px) {
+ .container-xl, .container-lg, .container-md, .container-sm, .container {
+ max-width: 1140px; } }
.row {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
display: flex;
flex-wrap: wrap;
- margin-right: -15px;
- margin-left: -15px; }
+ margin-top: calc(-1 * var(--bs-gutter-y));
+ margin-right: calc(-.5 * var(--bs-gutter-x));
+ margin-left: calc(-.5 * var(--bs-gutter-x)); }
+ .row > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * .5);
+ padding-left: calc(var(--bs-gutter-x) * .5);
+ margin-top: var(--bs-gutter-y); }
-.no-gutters {
- margin-right: 0;
- margin-left: 0; }
- .no-gutters > .col,
- .no-gutters > [class*="col-"] {
- padding-right: 0;
- padding-left: 0; }
+.col {
+ flex: 1 0 0%; }
-.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
-.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
-.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
-.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
-.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
-.col-xl-auto {
- position: relative;
- width: 100%;
- padding-right: 15px;
- padding-left: 15px; }
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto; }
-.col {
- flex-basis: 0;
- flex-grow: 1;
- max-width: 100%; }
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%; }
+
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%; }
+
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%; }
+
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%; }
+
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-auto {
flex: 0 0 auto;
- width: auto;
- max-width: 100%; }
+ width: auto; }
.col-1 {
- flex: 0 0 8.33333%;
- max-width: 8.33333%; }
+ flex: 0 0 auto;
+ width: 8.33333%; }
.col-2 {
- flex: 0 0 16.66667%;
- max-width: 16.66667%; }
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-3 {
- flex: 0 0 25%;
- max-width: 25%; }
+ flex: 0 0 auto;
+ width: 25%; }
.col-4 {
- flex: 0 0 33.33333%;
- max-width: 33.33333%; }
+ flex: 0 0 auto;
+ width: 33.33333%; }
.col-5 {
- flex: 0 0 41.66667%;
- max-width: 41.66667%; }
+ flex: 0 0 auto;
+ width: 41.66667%; }
.col-6 {
- flex: 0 0 50%;
- max-width: 50%; }
+ flex: 0 0 auto;
+ width: 50%; }
.col-7 {
- flex: 0 0 58.33333%;
- max-width: 58.33333%; }
+ flex: 0 0 auto;
+ width: 58.33333%; }
.col-8 {
- flex: 0 0 66.66667%;
- max-width: 66.66667%; }
+ flex: 0 0 auto;
+ width: 66.66667%; }
.col-9 {
- flex: 0 0 75%;
- max-width: 75%; }
+ flex: 0 0 auto;
+ width: 75%; }
.col-10 {
- flex: 0 0 83.33333%;
- max-width: 83.33333%; }
+ flex: 0 0 auto;
+ width: 83.33333%; }
.col-11 {
- flex: 0 0 91.66667%;
- max-width: 91.66667%; }
+ flex: 0 0 auto;
+ width: 91.66667%; }
.col-12 {
- flex: 0 0 100%;
- max-width: 100%; }
-
-.order-first {
- order: -1; }
-
-.order-last {
- order: 13; }
-
-.order-0 {
- order: 0; }
-
-.order-1 {
- order: 1; }
-
-.order-2 {
- order: 2; }
-
-.order-3 {
- order: 3; }
-
-.order-4 {
- order: 4; }
-
-.order-5 {
- order: 5; }
-
-.order-6 {
- order: 6; }
-
-.order-7 {
- order: 7; }
-
-.order-8 {
- order: 8; }
-
-.order-9 {
- order: 9; }
-
-.order-10 {
- order: 10; }
-
-.order-11 {
- order: 11; }
-
-.order-12 {
- order: 12; }
+ flex: 0 0 auto;
+ width: 100%; }
.offset-1 {
margin-left: 8.33333%; }
@@ -634,81 +662,117 @@ pre {
.offset-11 {
margin-left: 91.66667%; }
-@media (min-width: 576px) {
- .col-sm {
- flex-basis: 0;
- flex-grow: 1;
- max-width: 100%; }
- .col-sm-auto {
- flex: 0 0 auto;
- width: auto;
- max-width: 100%; }
- .col-sm-1 {
- flex: 0 0 8.33333%;
- max-width: 8.33333%; }
- .col-sm-2 {
- flex: 0 0 16.66667%;
- max-width: 16.66667%; }
- .col-sm-3 {
- flex: 0 0 25%;
- max-width: 25%; }
- .col-sm-4 {
- flex: 0 0 33.33333%;
- max-width: 33.33333%; }
- .col-sm-5 {
- flex: 0 0 41.66667%;
- max-width: 41.66667%; }
- .col-sm-6 {
- flex: 0 0 50%;
- max-width: 50%; }
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0; }
+
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0; }
+
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem; }
+
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem; }
+
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem; }
+
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem; }
+
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 1rem; }
+
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 1rem; }
+
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1.5rem; }
+
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1.5rem; }
+
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 3rem; }
+
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 3rem; }
+
+@media (min-width: 576px) {
+ .col-sm {
+ flex: 1 0 0%; }
+ .row-cols-sm-auto > * {
+ flex: 0 0 auto;
+ width: auto; }
+ .row-cols-sm-1 > * {
+ flex: 0 0 auto;
+ width: 100%; }
+ .row-cols-sm-2 > * {
+ flex: 0 0 auto;
+ width: 50%; }
+ .row-cols-sm-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .row-cols-sm-4 > * {
+ flex: 0 0 auto;
+ width: 25%; }
+ .row-cols-sm-5 > * {
+ flex: 0 0 auto;
+ width: 20%; }
+ .row-cols-sm-6 > * {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%; }
.col-sm-7 {
- flex: 0 0 58.33333%;
- max-width: 58.33333%; }
+ flex: 0 0 auto;
+ width: 58.33333%; }
.col-sm-8 {
- flex: 0 0 66.66667%;
- max-width: 66.66667%; }
+ flex: 0 0 auto;
+ width: 66.66667%; }
.col-sm-9 {
- flex: 0 0 75%;
- max-width: 75%; }
+ flex: 0 0 auto;
+ width: 75%; }
.col-sm-10 {
- flex: 0 0 83.33333%;
- max-width: 83.33333%; }
+ flex: 0 0 auto;
+ width: 83.33333%; }
.col-sm-11 {
- flex: 0 0 91.66667%;
- max-width: 91.66667%; }
+ flex: 0 0 auto;
+ width: 91.66667%; }
.col-sm-12 {
- flex: 0 0 100%;
- max-width: 100%; }
- .order-sm-first {
- order: -1; }
- .order-sm-last {
- order: 13; }
- .order-sm-0 {
- order: 0; }
- .order-sm-1 {
- order: 1; }
- .order-sm-2 {
- order: 2; }
- .order-sm-3 {
- order: 3; }
- .order-sm-4 {
- order: 4; }
- .order-sm-5 {
- order: 5; }
- .order-sm-6 {
- order: 6; }
- .order-sm-7 {
- order: 7; }
- .order-sm-8 {
- order: 8; }
- .order-sm-9 {
- order: 9; }
- .order-sm-10 {
- order: 10; }
- .order-sm-11 {
- order: 11; }
- .order-sm-12 {
- order: 12; }
+ flex: 0 0 auto;
+ width: 100%; }
.offset-sm-0 {
margin-left: 0; }
.offset-sm-1 {
@@ -732,83 +796,107 @@ pre {
.offset-sm-10 {
margin-left: 83.33333%; }
.offset-sm-11 {
- margin-left: 91.66667%; } }
+ margin-left: 91.66667%; }
+ .g-sm-0,
+ .gx-sm-0 {
+ --bs-gutter-x: 0; }
+ .g-sm-0,
+ .gy-sm-0 {
+ --bs-gutter-y: 0; }
+ .g-sm-1,
+ .gx-sm-1 {
+ --bs-gutter-x: 0.25rem; }
+ .g-sm-1,
+ .gy-sm-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-sm-2,
+ .gx-sm-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-sm-2,
+ .gy-sm-2 {
+ --bs-gutter-y: 0.5rem; }
+ .g-sm-3,
+ .gx-sm-3 {
+ --bs-gutter-x: 1rem; }
+ .g-sm-3,
+ .gy-sm-3 {
+ --bs-gutter-y: 1rem; }
+ .g-sm-4,
+ .gx-sm-4 {
+ --bs-gutter-x: 1.5rem; }
+ .g-sm-4,
+ .gy-sm-4 {
+ --bs-gutter-y: 1.5rem; }
+ .g-sm-5,
+ .gx-sm-5 {
+ --bs-gutter-x: 3rem; }
+ .g-sm-5,
+ .gy-sm-5 {
+ --bs-gutter-y: 3rem; } }
@media (min-width: 768px) {
.col-md {
- flex-basis: 0;
- flex-grow: 1;
- max-width: 100%; }
+ flex: 1 0 0%; }
+ .row-cols-md-auto > * {
+ flex: 0 0 auto;
+ width: auto; }
+ .row-cols-md-1 > * {
+ flex: 0 0 auto;
+ width: 100%; }
+ .row-cols-md-2 > * {
+ flex: 0 0 auto;
+ width: 50%; }
+ .row-cols-md-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .row-cols-md-4 > * {
+ flex: 0 0 auto;
+ width: 25%; }
+ .row-cols-md-5 > * {
+ flex: 0 0 auto;
+ width: 20%; }
+ .row-cols-md-6 > * {
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-md-auto {
flex: 0 0 auto;
- width: auto;
- max-width: 100%; }
+ width: auto; }
.col-md-1 {
- flex: 0 0 8.33333%;
- max-width: 8.33333%; }
+ flex: 0 0 auto;
+ width: 8.33333%; }
.col-md-2 {
- flex: 0 0 16.66667%;
- max-width: 16.66667%; }
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-md-3 {
- flex: 0 0 25%;
- max-width: 25%; }
+ flex: 0 0 auto;
+ width: 25%; }
.col-md-4 {
- flex: 0 0 33.33333%;
- max-width: 33.33333%; }
+ flex: 0 0 auto;
+ width: 33.33333%; }
.col-md-5 {
- flex: 0 0 41.66667%;
- max-width: 41.66667%; }
+ flex: 0 0 auto;
+ width: 41.66667%; }
.col-md-6 {
- flex: 0 0 50%;
- max-width: 50%; }
+ flex: 0 0 auto;
+ width: 50%; }
.col-md-7 {
- flex: 0 0 58.33333%;
- max-width: 58.33333%; }
+ flex: 0 0 auto;
+ width: 58.33333%; }
.col-md-8 {
- flex: 0 0 66.66667%;
- max-width: 66.66667%; }
+ flex: 0 0 auto;
+ width: 66.66667%; }
.col-md-9 {
- flex: 0 0 75%;
- max-width: 75%; }
+ flex: 0 0 auto;
+ width: 75%; }
.col-md-10 {
- flex: 0 0 83.33333%;
- max-width: 83.33333%; }
+ flex: 0 0 auto;
+ width: 83.33333%; }
.col-md-11 {
- flex: 0 0 91.66667%;
- max-width: 91.66667%; }
+ flex: 0 0 auto;
+ width: 91.66667%; }
.col-md-12 {
- flex: 0 0 100%;
- max-width: 100%; }
- .order-md-first {
- order: -1; }
- .order-md-last {
- order: 13; }
- .order-md-0 {
- order: 0; }
- .order-md-1 {
- order: 1; }
- .order-md-2 {
- order: 2; }
- .order-md-3 {
- order: 3; }
- .order-md-4 {
- order: 4; }
- .order-md-5 {
- order: 5; }
- .order-md-6 {
- order: 6; }
- .order-md-7 {
- order: 7; }
- .order-md-8 {
- order: 8; }
- .order-md-9 {
- order: 9; }
- .order-md-10 {
- order: 10; }
- .order-md-11 {
- order: 11; }
- .order-md-12 {
- order: 12; }
+ flex: 0 0 auto;
+ width: 100%; }
.offset-md-0 {
margin-left: 0; }
.offset-md-1 {
@@ -832,83 +920,107 @@ pre {
.offset-md-10 {
margin-left: 83.33333%; }
.offset-md-11 {
- margin-left: 91.66667%; } }
+ margin-left: 91.66667%; }
+ .g-md-0,
+ .gx-md-0 {
+ --bs-gutter-x: 0; }
+ .g-md-0,
+ .gy-md-0 {
+ --bs-gutter-y: 0; }
+ .g-md-1,
+ .gx-md-1 {
+ --bs-gutter-x: 0.25rem; }
+ .g-md-1,
+ .gy-md-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-md-2,
+ .gx-md-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-md-2,
+ .gy-md-2 {
+ --bs-gutter-y: 0.5rem; }
+ .g-md-3,
+ .gx-md-3 {
+ --bs-gutter-x: 1rem; }
+ .g-md-3,
+ .gy-md-3 {
+ --bs-gutter-y: 1rem; }
+ .g-md-4,
+ .gx-md-4 {
+ --bs-gutter-x: 1.5rem; }
+ .g-md-4,
+ .gy-md-4 {
+ --bs-gutter-y: 1.5rem; }
+ .g-md-5,
+ .gx-md-5 {
+ --bs-gutter-x: 3rem; }
+ .g-md-5,
+ .gy-md-5 {
+ --bs-gutter-y: 3rem; } }
@media (min-width: 992px) {
.col-lg {
- flex-basis: 0;
- flex-grow: 1;
- max-width: 100%; }
+ flex: 1 0 0%; }
+ .row-cols-lg-auto > * {
+ flex: 0 0 auto;
+ width: auto; }
+ .row-cols-lg-1 > * {
+ flex: 0 0 auto;
+ width: 100%; }
+ .row-cols-lg-2 > * {
+ flex: 0 0 auto;
+ width: 50%; }
+ .row-cols-lg-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .row-cols-lg-4 > * {
+ flex: 0 0 auto;
+ width: 25%; }
+ .row-cols-lg-5 > * {
+ flex: 0 0 auto;
+ width: 20%; }
+ .row-cols-lg-6 > * {
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-lg-auto {
flex: 0 0 auto;
- width: auto;
- max-width: 100%; }
+ width: auto; }
.col-lg-1 {
- flex: 0 0 8.33333%;
- max-width: 8.33333%; }
+ flex: 0 0 auto;
+ width: 8.33333%; }
.col-lg-2 {
- flex: 0 0 16.66667%;
- max-width: 16.66667%; }
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-lg-3 {
- flex: 0 0 25%;
- max-width: 25%; }
+ flex: 0 0 auto;
+ width: 25%; }
.col-lg-4 {
- flex: 0 0 33.33333%;
- max-width: 33.33333%; }
+ flex: 0 0 auto;
+ width: 33.33333%; }
.col-lg-5 {
- flex: 0 0 41.66667%;
- max-width: 41.66667%; }
+ flex: 0 0 auto;
+ width: 41.66667%; }
.col-lg-6 {
- flex: 0 0 50%;
- max-width: 50%; }
+ flex: 0 0 auto;
+ width: 50%; }
.col-lg-7 {
- flex: 0 0 58.33333%;
- max-width: 58.33333%; }
+ flex: 0 0 auto;
+ width: 58.33333%; }
.col-lg-8 {
- flex: 0 0 66.66667%;
- max-width: 66.66667%; }
+ flex: 0 0 auto;
+ width: 66.66667%; }
.col-lg-9 {
- flex: 0 0 75%;
- max-width: 75%; }
+ flex: 0 0 auto;
+ width: 75%; }
.col-lg-10 {
- flex: 0 0 83.33333%;
- max-width: 83.33333%; }
+ flex: 0 0 auto;
+ width: 83.33333%; }
.col-lg-11 {
- flex: 0 0 91.66667%;
- max-width: 91.66667%; }
+ flex: 0 0 auto;
+ width: 91.66667%; }
.col-lg-12 {
- flex: 0 0 100%;
- max-width: 100%; }
- .order-lg-first {
- order: -1; }
- .order-lg-last {
- order: 13; }
- .order-lg-0 {
- order: 0; }
- .order-lg-1 {
- order: 1; }
- .order-lg-2 {
- order: 2; }
- .order-lg-3 {
- order: 3; }
- .order-lg-4 {
- order: 4; }
- .order-lg-5 {
- order: 5; }
- .order-lg-6 {
- order: 6; }
- .order-lg-7 {
- order: 7; }
- .order-lg-8 {
- order: 8; }
- .order-lg-9 {
- order: 9; }
- .order-lg-10 {
- order: 10; }
- .order-lg-11 {
- order: 11; }
- .order-lg-12 {
- order: 12; }
+ flex: 0 0 auto;
+ width: 100%; }
.offset-lg-0 {
margin-left: 0; }
.offset-lg-1 {
@@ -932,83 +1044,107 @@ pre {
.offset-lg-10 {
margin-left: 83.33333%; }
.offset-lg-11 {
- margin-left: 91.66667%; } }
+ margin-left: 91.66667%; }
+ .g-lg-0,
+ .gx-lg-0 {
+ --bs-gutter-x: 0; }
+ .g-lg-0,
+ .gy-lg-0 {
+ --bs-gutter-y: 0; }
+ .g-lg-1,
+ .gx-lg-1 {
+ --bs-gutter-x: 0.25rem; }
+ .g-lg-1,
+ .gy-lg-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-lg-2,
+ .gx-lg-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-lg-2,
+ .gy-lg-2 {
+ --bs-gutter-y: 0.5rem; }
+ .g-lg-3,
+ .gx-lg-3 {
+ --bs-gutter-x: 1rem; }
+ .g-lg-3,
+ .gy-lg-3 {
+ --bs-gutter-y: 1rem; }
+ .g-lg-4,
+ .gx-lg-4 {
+ --bs-gutter-x: 1.5rem; }
+ .g-lg-4,
+ .gy-lg-4 {
+ --bs-gutter-y: 1.5rem; }
+ .g-lg-5,
+ .gx-lg-5 {
+ --bs-gutter-x: 3rem; }
+ .g-lg-5,
+ .gy-lg-5 {
+ --bs-gutter-y: 3rem; } }
@media (min-width: 1200px) {
.col-xl {
- flex-basis: 0;
- flex-grow: 1;
- max-width: 100%; }
+ flex: 1 0 0%; }
+ .row-cols-xl-auto > * {
+ flex: 0 0 auto;
+ width: auto; }
+ .row-cols-xl-1 > * {
+ flex: 0 0 auto;
+ width: 100%; }
+ .row-cols-xl-2 > * {
+ flex: 0 0 auto;
+ width: 50%; }
+ .row-cols-xl-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .row-cols-xl-4 > * {
+ flex: 0 0 auto;
+ width: 25%; }
+ .row-cols-xl-5 > * {
+ flex: 0 0 auto;
+ width: 20%; }
+ .row-cols-xl-6 > * {
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-xl-auto {
flex: 0 0 auto;
- width: auto;
- max-width: 100%; }
+ width: auto; }
.col-xl-1 {
- flex: 0 0 8.33333%;
- max-width: 8.33333%; }
+ flex: 0 0 auto;
+ width: 8.33333%; }
.col-xl-2 {
- flex: 0 0 16.66667%;
- max-width: 16.66667%; }
+ flex: 0 0 auto;
+ width: 16.66667%; }
.col-xl-3 {
- flex: 0 0 25%;
- max-width: 25%; }
+ flex: 0 0 auto;
+ width: 25%; }
.col-xl-4 {
- flex: 0 0 33.33333%;
- max-width: 33.33333%; }
+ flex: 0 0 auto;
+ width: 33.33333%; }
.col-xl-5 {
- flex: 0 0 41.66667%;
- max-width: 41.66667%; }
+ flex: 0 0 auto;
+ width: 41.66667%; }
.col-xl-6 {
- flex: 0 0 50%;
- max-width: 50%; }
+ flex: 0 0 auto;
+ width: 50%; }
.col-xl-7 {
- flex: 0 0 58.33333%;
- max-width: 58.33333%; }
+ flex: 0 0 auto;
+ width: 58.33333%; }
.col-xl-8 {
- flex: 0 0 66.66667%;
- max-width: 66.66667%; }
+ flex: 0 0 auto;
+ width: 66.66667%; }
.col-xl-9 {
- flex: 0 0 75%;
- max-width: 75%; }
+ flex: 0 0 auto;
+ width: 75%; }
.col-xl-10 {
- flex: 0 0 83.33333%;
- max-width: 83.33333%; }
+ flex: 0 0 auto;
+ width: 83.33333%; }
.col-xl-11 {
- flex: 0 0 91.66667%;
- max-width: 91.66667%; }
+ flex: 0 0 auto;
+ width: 91.66667%; }
.col-xl-12 {
- flex: 0 0 100%;
- max-width: 100%; }
- .order-xl-first {
- order: -1; }
- .order-xl-last {
- order: 13; }
- .order-xl-0 {
- order: 0; }
- .order-xl-1 {
- order: 1; }
- .order-xl-2 {
- order: 2; }
- .order-xl-3 {
- order: 3; }
- .order-xl-4 {
- order: 4; }
- .order-xl-5 {
- order: 5; }
- .order-xl-6 {
- order: 6; }
- .order-xl-7 {
- order: 7; }
- .order-xl-8 {
- order: 8; }
- .order-xl-9 {
- order: 9; }
- .order-xl-10 {
- order: 10; }
- .order-xl-11 {
- order: 11; }
- .order-xl-12 {
- order: 12; }
+ flex: 0 0 auto;
+ width: 100%; }
.offset-xl-0 {
margin-left: 0; }
.offset-xl-1 {
@@ -1032,436 +1168,853 @@ pre {
.offset-xl-10 {
margin-left: 83.33333%; }
.offset-xl-11 {
- margin-left: 91.66667%; } }
-
-.table,
-table.docutils {
+ margin-left: 91.66667%; }
+ .g-xl-0,
+ .gx-xl-0 {
+ --bs-gutter-x: 0; }
+ .g-xl-0,
+ .gy-xl-0 {
+ --bs-gutter-y: 0; }
+ .g-xl-1,
+ .gx-xl-1 {
+ --bs-gutter-x: 0.25rem; }
+ .g-xl-1,
+ .gy-xl-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-xl-2,
+ .gx-xl-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-xl-2,
+ .gy-xl-2 {
+ --bs-gutter-y: 0.5rem; }
+ .g-xl-3,
+ .gx-xl-3 {
+ --bs-gutter-x: 1rem; }
+ .g-xl-3,
+ .gy-xl-3 {
+ --bs-gutter-y: 1rem; }
+ .g-xl-4,
+ .gx-xl-4 {
+ --bs-gutter-x: 1.5rem; }
+ .g-xl-4,
+ .gy-xl-4 {
+ --bs-gutter-y: 1.5rem; }
+ .g-xl-5,
+ .gx-xl-5 {
+ --bs-gutter-x: 3rem; }
+ .g-xl-5,
+ .gy-xl-5 {
+ --bs-gutter-y: 3rem; } }
+
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%; }
+ .row-cols-xxl-auto > * {
+ flex: 0 0 auto;
+ width: auto; }
+ .row-cols-xxl-1 > * {
+ flex: 0 0 auto;
+ width: 100%; }
+ .row-cols-xxl-2 > * {
+ flex: 0 0 auto;
+ width: 50%; }
+ .row-cols-xxl-3 > * {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .row-cols-xxl-4 > * {
+ flex: 0 0 auto;
+ width: 25%; }
+ .row-cols-xxl-5 > * {
+ flex: 0 0 auto;
+ width: 20%; }
+ .row-cols-xxl-6 > * {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto; }
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333%; }
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66667%; }
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%; }
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333%; }
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66667%; }
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%; }
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333%; }
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66667%; }
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%; }
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333%; }
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66667%; }
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%; }
+ .offset-xxl-0 {
+ margin-left: 0; }
+ .offset-xxl-1 {
+ margin-left: 8.33333%; }
+ .offset-xxl-2 {
+ margin-left: 16.66667%; }
+ .offset-xxl-3 {
+ margin-left: 25%; }
+ .offset-xxl-4 {
+ margin-left: 33.33333%; }
+ .offset-xxl-5 {
+ margin-left: 41.66667%; }
+ .offset-xxl-6 {
+ margin-left: 50%; }
+ .offset-xxl-7 {
+ margin-left: 58.33333%; }
+ .offset-xxl-8 {
+ margin-left: 66.66667%; }
+ .offset-xxl-9 {
+ margin-left: 75%; }
+ .offset-xxl-10 {
+ margin-left: 83.33333%; }
+ .offset-xxl-11 {
+ margin-left: 91.66667%; }
+ .g-xxl-0,
+ .gx-xxl-0 {
+ --bs-gutter-x: 0; }
+ .g-xxl-0,
+ .gy-xxl-0 {
+ --bs-gutter-y: 0; }
+ .g-xxl-1,
+ .gx-xxl-1 {
+ --bs-gutter-x: 0.25rem; }
+ .g-xxl-1,
+ .gy-xxl-1 {
+ --bs-gutter-y: 0.25rem; }
+ .g-xxl-2,
+ .gx-xxl-2 {
+ --bs-gutter-x: 0.5rem; }
+ .g-xxl-2,
+ .gy-xxl-2 {
+ --bs-gutter-y: 0.5rem; }
+ .g-xxl-3,
+ .gx-xxl-3 {
+ --bs-gutter-x: 1rem; }
+ .g-xxl-3,
+ .gy-xxl-3 {
+ --bs-gutter-y: 1rem; }
+ .g-xxl-4,
+ .gx-xxl-4 {
+ --bs-gutter-x: 1.5rem; }
+ .g-xxl-4,
+ .gy-xxl-4 {
+ --bs-gutter-y: 1.5rem; }
+ .g-xxl-5,
+ .gx-xxl-5 {
+ --bs-gutter-x: 3rem; }
+ .g-xxl-5,
+ .gy-xxl-5 {
+ --bs-gutter-y: 3rem; } }
+
+.table, table.docutils {
+ --bs-table-color: var(--bs-body-color);
+ --bs-table-bg: transparent;
+ --bs-table-border-color: var(--bs-border-color);
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: var(--bs-body-color);
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: var(--bs-body-color);
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: var(--bs-body-color);
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
width: 100%;
margin-bottom: 1rem;
- background-color: transparent; }
- .table th,
- table.docutils th,
- .table td,
- table.docutils td {
- padding: 0.75rem;
- vertical-align: top;
- border-top: 1px solid #dee2e6; }
- .table thead th,
- table.docutils thead th {
- vertical-align: bottom;
- border-bottom: 2px solid #dee2e6; }
- .table tbody + tbody,
- table.docutils tbody + tbody {
- border-top: 2px solid #dee2e6; }
- .table .table,
- table.docutils .table,
- .table table.docutils,
- table.docutils table.docutils {
- background-color: #fff; }
-
-.table-sm th,
-.table-sm td {
- padding: 0.3rem; }
-
-.table-bordered,
-table.docutils {
- border: 1px solid #dee2e6; }
- .table-bordered th,
- table.docutils th,
- .table-bordered td,
- table.docutils td {
- border: 1px solid #dee2e6; }
- .table-bordered thead th,
- table.docutils thead th,
- .table-bordered thead td,
- table.docutils thead td {
- border-bottom-width: 2px; }
-
-.table-borderless th,
-.table-borderless td,
-.table-borderless thead th,
-.table-borderless tbody + tbody {
- border: 0; }
-
-.table-striped tbody tr:nth-of-type(odd) {
- background-color: rgba(0, 0, 0, 0.05); }
-
-.table-hover tbody tr:hover {
- background-color: rgba(0, 0, 0, 0.075); }
-
-.table-primary,
-.table-primary > th,
-.table-primary > td {
- background-color: #e3e9b8; }
-
-.table-primary th,
-.table-primary td,
-.table-primary thead th,
-.table-primary tbody + tbody {
- border-color: #cbd57a; }
-
-.table-hover .table-primary:hover {
- background-color: #dbe3a5; }
- .table-hover .table-primary:hover > td,
- .table-hover .table-primary:hover > th {
- background-color: #dbe3a5; }
-
-.table-secondary,
-.table-secondary > th,
-.table-secondary > td {
- background-color: #d6d8db; }
-
-.table-secondary th,
-.table-secondary td,
-.table-secondary thead th,
-.table-secondary tbody + tbody {
- border-color: #b3b7bb; }
-
-.table-hover .table-secondary:hover {
- background-color: #c8cbcf; }
- .table-hover .table-secondary:hover > td,
- .table-hover .table-secondary:hover > th {
- background-color: #c8cbcf; }
-
-.table-success,
-.table-success > th,
-.table-success > td {
- background-color: #c3e6cb; }
-
-.table-success th,
-.table-success td,
-.table-success thead th,
-.table-success tbody + tbody {
- border-color: #8fd19e; }
-
-.table-hover .table-success:hover {
- background-color: #b1dfbb; }
- .table-hover .table-success:hover > td,
- .table-hover .table-success:hover > th {
- background-color: #b1dfbb; }
-
-.table-info,
-.table-info > th,
-.table-info > td {
- background-color: #bee5eb; }
-
-.table-info th,
-.table-info td,
-.table-info thead th,
-.table-info tbody + tbody {
- border-color: #86cfda; }
-
-.table-hover .table-info:hover {
- background-color: #abdde5; }
- .table-hover .table-info:hover > td,
- .table-hover .table-info:hover > th {
- background-color: #abdde5; }
-
-.table-warning,
-.table-warning > th,
-.table-warning > td {
- background-color: #f4f6c1; }
-
-.table-warning th,
-.table-warning td,
-.table-warning thead th,
-.table-warning tbody + tbody {
- border-color: #ebef8c; }
-
-.table-hover .table-warning:hover {
- background-color: #f0f3ab; }
- .table-hover .table-warning:hover > td,
- .table-hover .table-warning:hover > th {
- background-color: #f0f3ab; }
-
-.table-danger,
-.table-danger > th,
-.table-danger > td {
- background-color: #f5c6cb; }
-
-.table-danger th,
-.table-danger td,
-.table-danger thead th,
-.table-danger tbody + tbody {
- border-color: #ed969e; }
-
-.table-hover .table-danger:hover {
- background-color: #f1b0b7; }
- .table-hover .table-danger:hover > td,
- .table-hover .table-danger:hover > th {
- background-color: #f1b0b7; }
-
-.table-light,
-.table-light > th,
-.table-light > td {
- background-color: #f7f7f8; }
-
-.table-light th,
-.table-light td,
-.table-light thead th,
-.table-light tbody + tbody {
- border-color: #eff1f1; }
-
-.table-hover .table-light:hover {
- background-color: #e9e9ec; }
- .table-hover .table-light:hover > td,
- .table-hover .table-light:hover > th {
- background-color: #e9e9ec; }
-
-.table-dark,
-.table-dark > th,
-.table-dark > td {
- background-color: #c7c7c7; }
-
-.table-dark th,
-.table-dark td,
-.table-dark thead th,
-.table-dark tbody + tbody {
- border-color: #979798; }
-
-.table-hover .table-dark:hover {
- background-color: #bababa; }
- .table-hover .table-dark:hover > td,
- .table-hover .table-dark:hover > th {
- background-color: #bababa; }
-
-.table-active,
-.table-active > th,
-.table-active > td {
- background-color: rgba(0, 0, 0, 0.075); }
-
-.table-hover .table-active:hover {
- background-color: rgba(0, 0, 0, 0.075); }
- .table-hover .table-active:hover > td,
- .table-hover .table-active:hover > th {
- background-color: rgba(0, 0, 0, 0.075); }
-
-.table .thead-dark th,
-table.docutils .thead-dark th {
- color: #fff;
- background-color: #212529;
- border-color: #32383e; }
-
-.table .thead-light th,
-table.docutils .thead-light th {
- color: #495057;
- background-color: #e9ecef;
- border-color: #dee2e6; }
+ color: var(--bs-table-color);
+ vertical-align: top;
+ border-color: var(--bs-table-border-color); }
+ .table > :not(caption) > * > *, table.docutils > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); }
+ .table > tbody, table.docutils > tbody {
+ vertical-align: inherit; }
+ .table > thead, table.docutils > thead {
+ vertical-align: bottom; }
+
+.table-group-divider {
+ border-top: 2px solid currentcolor; }
+
+.caption-top {
+ caption-side: top; }
+
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem; }
+
+.table-bordered > :not(caption) > *, table.docutils > :not(caption) > * {
+ border-width: 1px 0; }
+ .table-bordered > :not(caption) > * > *, table.docutils > :not(caption) > * > * {
+ border-width: 0 1px; }
+
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0; }
+
+.table-borderless > :not(:first-child) {
+ border-top-width: 0; }
+
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color); }
+
+.table-striped-columns > :not(caption) > tr > :nth-child(even) {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color); }
+
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color); }
+
+.table-hover > tbody > tr:hover > * {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color); }
+
+.table-primary {
+ --bs-table-color: #000;
+ --bs-table-bg: #e2e5cc;
+ --bs-table-border-color: #cbceb8;
+ --bs-table-striped-bg: #d7dac2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbceb8;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d4bd;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-secondary {
+ --bs-table-color: #000;
+ --bs-table-bg: #e2e3e5;
+ --bs-table-border-color: #cbccce;
+ --bs-table-striped-bg: #d7d8da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbccce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d2d4;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-success {
+ --bs-table-color: #000;
+ --bs-table-bg: #d1e7dd;
+ --bs-table-border-color: #bcd0c7;
+ --bs-table-striped-bg: #c7dbd2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bcd0c7;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c1d6cc;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-info {
+ --bs-table-color: #000;
+ --bs-table-bg: #cff4fc;
+ --bs-table-border-color: #badce3;
+ --bs-table-striped-bg: #c5e8ef;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #badce3;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfe2e9;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-warning {
+ --bs-table-color: #000;
+ --bs-table-bg: #f7f9d3;
+ --bs-table-border-color: #dee0be;
+ --bs-table-striped-bg: #ebedc8;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dee0be;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e4e6c3;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-danger {
+ --bs-table-color: #000;
+ --bs-table-bg: #f8d7da;
+ --bs-table-border-color: #dfc2c4;
+ --bs-table-striped-bg: #eccccf;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfc2c4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5c7ca;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-light {
+ --bs-table-color: #000;
+ --bs-table-bg: #e1e4e5;
+ --bs-table-border-color: #cbcdce;
+ --bs-table-striped-bg: #d6d9da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbcdce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d0d3d4;
+ --bs-table-hover-color: #000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
.table-dark {
- color: #fff;
- background-color: #212529; }
- .table-dark th,
- .table-dark td,
- .table-dark thead th {
- border-color: #32383e; }
- .table-dark.table-bordered,
- table.table-dark.docutils {
- border: 0; }
- .table-dark.table-striped tbody tr:nth-of-type(odd) {
- background-color: rgba(255, 255, 255, 0.05); }
- .table-dark.table-hover tbody tr:hover {
- background-color: rgba(255, 255, 255, 0.075); }
+ --bs-table-color: #fff;
+ --bs-table-bg: #373738;
+ --bs-table-border-color: #4b4b4c;
+ --bs-table-striped-bg: #414142;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #4b4b4c;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #464647;
+ --bs-table-hover-color: #fff;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color); }
+
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch; }
@media (max-width: 575.98px) {
.table-responsive-sm {
- display: block;
- width: 100%;
overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar; }
- .table-responsive-sm > .table-bordered,
- .table-responsive-sm > table.docutils {
- border: 0; } }
+ -webkit-overflow-scrolling: touch; } }
@media (max-width: 767.98px) {
.table-responsive-md {
- display: block;
- width: 100%;
overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar; }
- .table-responsive-md > .table-bordered,
- .table-responsive-md > table.docutils {
- border: 0; } }
+ -webkit-overflow-scrolling: touch; } }
@media (max-width: 991.98px) {
.table-responsive-lg {
- display: block;
- width: 100%;
overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar; }
- .table-responsive-lg > .table-bordered,
- .table-responsive-lg > table.docutils {
- border: 0; } }
+ -webkit-overflow-scrolling: touch; } }
@media (max-width: 1199.98px) {
.table-responsive-xl {
- display: block;
- width: 100%;
overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar; }
- .table-responsive-xl > .table-bordered,
- .table-responsive-xl > table.docutils {
- border: 0; } }
+ -webkit-overflow-scrolling: touch; } }
-.table-responsive {
- display: block;
- width: 100%;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar; }
- .table-responsive > .table-bordered,
- .table-responsive > table.docutils {
- border: 0; }
+@media (max-width: 1399.98px) {
+ .table-responsive-xxl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch; } }
+
+.form-label {
+ margin-bottom: 0.5rem; }
+
+.col-form-label {
+ padding-top: calc(0.375rem + 1px);
+ padding-bottom: calc(0.375rem + 1px);
+ margin-bottom: 0;
+ font-size: inherit;
+ line-height: 1.5; }
+
+.col-form-label-lg {
+ padding-top: calc(0.5rem + 1px);
+ padding-bottom: calc(0.5rem + 1px);
+ font-size: 1.25rem; }
+
+.col-form-label-sm {
+ padding-top: calc(0.25rem + 1px);
+ padding-bottom: calc(0.25rem + 1px);
+ font-size: 0.875rem; }
+
+.form-text {
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #6c757d; }
.form-control {
display: block;
width: 100%;
- height: calc(2.25rem + 2px);
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
- color: #495057;
+ color: #212529;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
- border-radius: 0.25rem;
+ appearance: none;
+ border-radius: 0.375rem;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.form-control {
transition: none; } }
- .form-control::-ms-expand {
- background-color: transparent;
- border: 0; }
+ .form-control[type="file"] {
+ overflow: hidden; }
+ .form-control[type="file"]:not(:disabled):not([readonly]) {
+ cursor: pointer; }
.form-control:focus {
- color: #495057;
+ color: #212529;
background-color: #fff;
- border-color: #e7ff30;
+ border-color: #b7bf80;
outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
+ box-shadow: 0 0 0 0.25rem rgba(111, 126, 0, 0.25); }
+ .form-control::-webkit-date-and-time-value {
+ height: 1.5em; }
.form-control::placeholder {
color: #6c757d;
opacity: 1; }
- .form-control:disabled, .form-control[readonly] {
+ .form-control:disabled {
background-color: #e9ecef;
opacity: 1; }
+ .form-control::file-selector-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ margin-inline-end: 0.75rem;
+ color: #212529;
+ background-color: #e9ecef;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-control::file-selector-button {
+ transition: none; } }
+ .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+ background-color: #dde0e3; }
-select.form-control:focus::-ms-value {
- color: #495057;
- background-color: #fff; }
-
-.form-control-file,
-.form-control-range {
+.form-control-plaintext {
display: block;
- width: 100%; }
-
-.col-form-label {
- padding-top: calc(0.375rem + 1px);
- padding-bottom: calc(0.375rem + 1px);
- margin-bottom: 0;
- font-size: inherit;
- line-height: 1.5; }
-
-.col-form-label-lg {
- padding-top: calc(0.5rem + 1px);
- padding-bottom: calc(0.5rem + 1px);
- font-size: 1.25rem;
- line-height: 1.5; }
-
-.col-form-label-sm {
- padding-top: calc(0.25rem + 1px);
- padding-bottom: calc(0.25rem + 1px);
- font-size: 0.875rem;
- line-height: 1.5; }
-
-.form-control-plaintext {
- display: block;
- width: 100%;
- padding-top: 0.375rem;
- padding-bottom: 0.375rem;
+ width: 100%;
+ padding: 0.375rem 0;
margin-bottom: 0;
line-height: 1.5;
color: #212529;
background-color: transparent;
border: solid transparent;
border-width: 1px 0; }
+ .form-control-plaintext:focus {
+ outline: 0; }
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
padding-right: 0;
padding-left: 0; }
.form-control-sm {
- height: calc(1.8125rem + 2px);
+ min-height: calc(1.5em + 0.5rem + 2px);
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
- line-height: 1.5;
- border-radius: 0.2rem; }
+ border-radius: 0.25rem; }
+ .form-control-sm::file-selector-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ margin-inline-end: 0.5rem; }
.form-control-lg {
- height: calc(2.875rem + 2px);
+ min-height: calc(1.5em + 1rem + 2px);
padding: 0.5rem 1rem;
font-size: 1.25rem;
- line-height: 1.5;
- border-radius: 0.3rem; }
-
-select.form-control[size], select.form-control[multiple] {
- height: auto; }
+ border-radius: 0.5rem; }
+ .form-control-lg::file-selector-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ margin-inline-end: 1rem; }
textarea.form-control {
- height: auto; }
+ min-height: calc(1.5em + 0.75rem + 2px); }
-.form-group {
- margin-bottom: 1rem; }
+textarea.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + 2px); }
-.form-text {
+textarea.form-control-lg {
+ min-height: calc(1.5em + 1rem + 2px); }
+
+.form-control-color {
+ width: 3rem;
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0.375rem; }
+ .form-control-color:not(:disabled):not([readonly]) {
+ cursor: pointer; }
+ .form-control-color::-moz-color-swatch {
+ border: 0 !important;
+ border-radius: 0.375rem; }
+ .form-control-color::-webkit-color-swatch {
+ border-radius: 0.375rem; }
+ .form-control-color.form-control-sm {
+ height: calc(1.5em + 0.5rem + 2px); }
+ .form-control-color.form-control-lg {
+ height: calc(1.5em + 1rem + 2px); }
+
+.form-select {
display: block;
- margin-top: 0.25rem; }
+ width: 100%;
+ padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+ -moz-padding-start: calc(0.75rem - 3px);
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ background-color: #fff;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right 0.75rem center;
+ background-size: 16px 12px;
+ border: 1px solid #ced4da;
+ border-radius: 0.375rem;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ appearance: none; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-select {
+ transition: none; } }
+ .form-select:focus {
+ border-color: #b7bf80;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(111, 126, 0, 0.25); }
+ .form-select[multiple], .form-select[size]:not([size="1"]) {
+ padding-right: 0.75rem;
+ background-image: none; }
+ .form-select:disabled {
+ background-color: #e9ecef; }
+ .form-select:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 #212529; }
-.form-row {
- display: flex;
- flex-wrap: wrap;
- margin-right: -5px;
- margin-left: -5px; }
- .form-row > .col,
- .form-row > [class*="col-"] {
- padding-right: 5px;
- padding-left: 5px; }
+.form-select-sm {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ padding-left: 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.25rem; }
+
+.form-select-lg {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ padding-left: 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.5rem; }
.form-check {
- position: relative;
display: block;
- padding-left: 1.25rem; }
+ min-height: 1.5rem;
+ padding-left: 1.5em;
+ margin-bottom: 0.125rem; }
+ .form-check .form-check-input {
+ float: left;
+ margin-left: -1.5em; }
+
+.form-check-reverse {
+ padding-right: 1.5em;
+ padding-left: 0;
+ text-align: right; }
+ .form-check-reverse .form-check-input {
+ float: right;
+ margin-right: -1.5em;
+ margin-left: 0; }
.form-check-input {
- position: absolute;
- margin-top: 0.3rem;
- margin-left: -1.25rem; }
- .form-check-input:disabled ~ .form-check-label {
- color: #6c757d; }
+ width: 1em;
+ height: 1em;
+ margin-top: 0.25em;
+ vertical-align: top;
+ background-color: #fff;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: 1px solid rgba(0, 0, 0, 0.25);
+ appearance: none;
+ print-color-adjust: exact; }
+ .form-check-input[type="checkbox"] {
+ border-radius: 0.25em; }
+ .form-check-input[type="radio"] {
+ border-radius: 50%; }
+ .form-check-input:active {
+ filter: brightness(90%); }
+ .form-check-input:focus {
+ border-color: #b7bf80;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(111, 126, 0, 0.25); }
+ .form-check-input:checked {
+ background-color: #6f7e00;
+ border-color: #6f7e00; }
+ .form-check-input:checked[type="checkbox"] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
+ .form-check-input:checked[type="radio"] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); }
+ .form-check-input[type="checkbox"]:indeterminate {
+ background-color: #6f7e00;
+ border-color: #6f7e00;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); }
+ .form-check-input:disabled {
+ pointer-events: none;
+ filter: none;
+ opacity: 0.5; }
+ .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+ cursor: default;
+ opacity: 0.5; }
-.form-check-label {
- margin-bottom: 0; }
+.form-switch {
+ padding-left: 2.5em; }
+ .form-switch .form-check-input {
+ width: 2em;
+ margin-left: -2.5em;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
+ background-position: left center;
+ border-radius: 2em;
+ transition: background-position 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-switch .form-check-input {
+ transition: none; } }
+ .form-switch .form-check-input:focus {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23b7bf80'/%3e%3c/svg%3e"); }
+ .form-switch .form-check-input:checked {
+ background-position: right center;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); }
+ .form-switch.form-check-reverse {
+ padding-right: 2.5em;
+ padding-left: 0; }
+ .form-switch.form-check-reverse .form-check-input {
+ margin-right: -2.5em;
+ margin-left: 0; }
.form-check-inline {
- display: inline-flex;
+ display: inline-block;
+ margin-right: 1rem; }
+
+.btn-check {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none; }
+ .btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+ pointer-events: none;
+ filter: none;
+ opacity: 0.65; }
+
+.form-range {
+ width: 100%;
+ height: 1.5rem;
+ padding: 0;
+ background-color: transparent;
+ appearance: none; }
+ .form-range:focus {
+ outline: 0; }
+ .form-range:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(111, 126, 0, 0.25); }
+ .form-range:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(111, 126, 0, 0.25); }
+ .form-range::-moz-focus-outer {
+ border: 0; }
+ .form-range::-webkit-slider-thumb {
+ width: 1rem;
+ height: 1rem;
+ margin-top: -0.25rem;
+ background-color: #6f7e00;
+ border: 0;
+ border-radius: 1rem;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ appearance: none; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-range::-webkit-slider-thumb {
+ transition: none; } }
+ .form-range::-webkit-slider-thumb:active {
+ background-color: #d4d8b3; }
+ .form-range::-webkit-slider-runnable-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+ border-radius: 1rem; }
+ .form-range::-moz-range-thumb {
+ width: 1rem;
+ height: 1rem;
+ background-color: #6f7e00;
+ border: 0;
+ border-radius: 1rem;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ appearance: none; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-range::-moz-range-thumb {
+ transition: none; } }
+ .form-range::-moz-range-thumb:active {
+ background-color: #d4d8b3; }
+ .form-range::-moz-range-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+ border-radius: 1rem; }
+ .form-range:disabled {
+ pointer-events: none; }
+ .form-range:disabled::-webkit-slider-thumb {
+ background-color: #adb5bd; }
+ .form-range:disabled::-moz-range-thumb {
+ background-color: #adb5bd; }
+
+.form-floating {
+ position: relative; }
+ .form-floating > .form-control,
+ .form-floating > .form-control-plaintext,
+ .form-floating > .form-select {
+ height: calc(3.5rem + 2px);
+ line-height: 1.25; }
+ .form-floating > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 1rem 0.75rem;
+ overflow: hidden;
+ text-align: start;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ pointer-events: none;
+ border: 1px solid transparent;
+ transform-origin: 0 0;
+ transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .form-floating > label {
+ transition: none; } }
+ .form-floating > .form-control,
+ .form-floating > .form-control-plaintext {
+ padding: 1rem 0.75rem; }
+ .form-floating > .form-control::placeholder,
+ .form-floating > .form-control-plaintext::placeholder {
+ color: transparent; }
+ .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
+ .form-floating > .form-control-plaintext:focus,
+ .form-floating > .form-control-plaintext:not(:placeholder-shown) {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-control:-webkit-autofill,
+ .form-floating > .form-control-plaintext:-webkit-autofill {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-select {
+ padding-top: 1.625rem;
+ padding-bottom: 0.625rem; }
+ .form-floating > .form-control:focus ~ label,
+ .form-floating > .form-control:not(:placeholder-shown) ~ label,
+ .form-floating > .form-control-plaintext ~ label,
+ .form-floating > .form-select ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }
+ .form-floating > .form-control:-webkit-autofill ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); }
+ .form-floating > .form-control-plaintext ~ label {
+ border-width: 1px 0; }
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ width: 100%; }
+ .input-group > .form-control,
+ .input-group > .form-select,
+ .input-group > .form-floating {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0; }
+ .input-group > .form-control:focus,
+ .input-group > .form-select:focus,
+ .input-group > .form-floating:focus-within {
+ z-index: 5; }
+ .input-group .btn {
+ position: relative;
+ z-index: 2; }
+ .input-group .btn:focus {
+ z-index: 5; }
+
+.input-group-text {
+ display: flex;
align-items: center;
- padding-left: 0;
- margin-right: 0.75rem; }
- .form-check-inline .form-check-input {
- position: static;
- margin-top: 0;
- margin-right: 0.3125rem;
- margin-left: 0; }
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ white-space: nowrap;
+ background-color: #e9ecef;
+ border: 1px solid #ced4da;
+ border-radius: 0.375rem; }
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0.5rem; }
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.25rem; }
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+ padding-right: 3rem; }
+
+.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3),
+.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,
+.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4),
+.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-control,
+.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-select {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+
+.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+ margin-left: -1px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.input-group > .form-floating:not(:first-child) > .form-control,
+.input-group > .form-floating:not(:first-child) > .form-select {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
.valid-feedback {
display: none;
width: 100%;
margin-top: 0.25rem;
- font-size: 80%;
- color: #28a745; }
+ font-size: 0.875em;
+ color: #198754; }
.valid-tooltip {
position: absolute;
@@ -1472,92 +2025,67 @@ textarea.form-control {
padding: 0.25rem 0.5rem;
margin-top: .1rem;
font-size: 0.875rem;
- line-height: 1.5;
color: #fff;
- background-color: rgba(40, 167, 69, 0.9);
- border-radius: 0.25rem; }
+ background-color: rgba(25, 135, 84, 0.9);
+ border-radius: 0.375rem; }
+
+.was-validated :valid ~ .valid-feedback,
+.was-validated :valid ~ .valid-tooltip,
+.is-valid ~ .valid-feedback,
+.is-valid ~ .valid-tooltip {
+ display: block; }
.was-validated .form-control:valid, .form-control.is-valid {
- border-color: #28a745;
- padding-right: 2.25rem;
+ border-color: #198754;
+ padding-right: calc(1.5em + 0.75rem);
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
background-repeat: no-repeat;
- background-position: center right calc(2.25rem / 4);
- background-size: calc(2.25rem / 2) calc(2.25rem / 2);
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); }
+ background-position: right calc(0.375em + 0.1875rem) center;
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
- border-color: #28a745;
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
- .was-validated .form-control:valid ~ .valid-feedback,
- .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
- .form-control.is-valid ~ .valid-tooltip {
- display: block; }
+ border-color: #198754;
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); }
.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
- padding-right: 2.25rem;
- background-position: top calc(2.25rem / 4) right calc(2.25rem / 4); }
-
-.was-validated .custom-select:valid, .custom-select.is-valid {
- border-color: #28a745;
- padding-right: 3.4375rem;
- background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") no-repeat center right 1.75rem/1.125rem 1.125rem; }
- .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
- border-color: #28a745;
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
- .was-validated .custom-select:valid ~ .valid-feedback,
- .was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,
- .custom-select.is-valid ~ .valid-tooltip {
- display: block; }
-
-.was-validated .form-control-file:valid ~ .valid-feedback,
-.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,
-.form-control-file.is-valid ~ .valid-tooltip {
- display: block; }
-
-.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
- color: #28a745; }
-
-.was-validated .form-check-input:valid ~ .valid-feedback,
-.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
-.form-check-input.is-valid ~ .valid-tooltip {
- display: block; }
-
-.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
- color: #28a745; }
- .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
- border-color: #28a745; }
-
-.was-validated .custom-control-input:valid ~ .valid-feedback,
-.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
-.custom-control-input.is-valid ~ .valid-tooltip {
- display: block; }
-
-.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
- border-color: #34ce57;
- background-color: #34ce57; }
-
-.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
-
-.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
- border-color: #28a745; }
-
-.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
- border-color: #28a745; }
-
-.was-validated .custom-file-input:valid ~ .valid-feedback,
-.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
-.custom-file-input.is-valid ~ .valid-tooltip {
- display: block; }
-
-.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
- border-color: #28a745;
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
+ padding-right: calc(1.5em + 0.75rem);
+ background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }
+
+.was-validated .form-select:valid, .form-select.is-valid {
+ border-color: #198754; }
+ .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
+ padding-right: 4.125rem;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+ background-position: right 0.75rem center, center right 2.25rem;
+ background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
+ .was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+ border-color: #198754;
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); }
+
+.was-validated .form-control-color:valid, .form-control-color.is-valid {
+ width: calc(3rem + calc(1.5em + 0.75rem)); }
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+ border-color: #198754; }
+ .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+ background-color: #198754; }
+ .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); }
+ .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+ color: #198754; }
+
+.form-check-inline .form-check-input ~ .valid-feedback {
+ margin-left: .5em; }
+
+.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, .was-validated .input-group > .form-select:not(:focus):valid,
+.input-group > .form-select:not(:focus).is-valid, .was-validated .input-group > .form-floating:not(:focus-within):valid,
+.input-group > .form-floating:not(:focus-within).is-valid {
+ z-index: 3; }
.invalid-feedback {
display: none;
width: 100%;
margin-top: 0.25rem;
- font-size: 80%;
+ font-size: 0.875em;
color: #dc3545; }
.invalid-tooltip {
@@ -1569,554 +2097,418 @@ textarea.form-control {
padding: 0.25rem 0.5rem;
margin-top: .1rem;
font-size: 0.875rem;
- line-height: 1.5;
color: #fff;
background-color: rgba(220, 53, 69, 0.9);
- border-radius: 0.25rem; }
+ border-radius: 0.375rem; }
+
+.was-validated :invalid ~ .invalid-feedback,
+.was-validated :invalid ~ .invalid-tooltip,
+.is-invalid ~ .invalid-feedback,
+.is-invalid ~ .invalid-tooltip {
+ display: block; }
.was-validated .form-control:invalid, .form-control.is-invalid {
border-color: #dc3545;
- padding-right: 2.25rem;
+ padding-right: calc(1.5em + 0.75rem);
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
background-repeat: no-repeat;
- background-position: center right calc(2.25rem / 4);
- background-size: calc(2.25rem / 2) calc(2.25rem / 2);
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); }
+ background-position: right calc(0.375em + 0.1875rem) center;
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
border-color: #dc3545;
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
- .was-validated .form-control:invalid ~ .invalid-feedback,
- .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
- .form-control.is-invalid ~ .invalid-tooltip {
- display: block; }
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); }
.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
- padding-right: 2.25rem;
- background-position: top calc(2.25rem / 4) right calc(2.25rem / 4); }
+ padding-right: calc(1.5em + 0.75rem);
+ background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }
-.was-validated .custom-select:invalid, .custom-select.is-invalid {
- border-color: #dc3545;
- padding-right: 3.4375rem;
- background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") no-repeat center right 1.75rem/1.125rem 1.125rem; }
- .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
+.was-validated .form-select:invalid, .form-select.is-invalid {
+ border-color: #dc3545; }
+ .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
+ padding-right: 4.125rem;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+ background-position: right 0.75rem center, center right 2.25rem;
+ background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
+ .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
border-color: #dc3545;
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
- .was-validated .custom-select:invalid ~ .invalid-feedback,
- .was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,
- .custom-select.is-invalid ~ .invalid-tooltip {
- display: block; }
-
-.was-validated .form-control-file:invalid ~ .invalid-feedback,
-.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,
-.form-control-file.is-invalid ~ .invalid-tooltip {
- display: block; }
-
-.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
- color: #dc3545; }
-
-.was-validated .form-check-input:invalid ~ .invalid-feedback,
-.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
-.form-check-input.is-invalid ~ .invalid-tooltip {
- display: block; }
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); }
-.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
- color: #dc3545; }
- .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
- border-color: #dc3545; }
-
-.was-validated .custom-control-input:invalid ~ .invalid-feedback,
-.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
-.custom-control-input.is-invalid ~ .invalid-tooltip {
- display: block; }
-
-.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
- border-color: #e4606d;
- background-color: #e4606d; }
+.was-validated .form-control-color:invalid, .form-control-color.is-invalid {
+ width: calc(3rem + calc(1.5em + 0.75rem)); }
-.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
-
-.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
- border-color: #dc3545; }
-
-.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
border-color: #dc3545; }
+ .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+ background-color: #dc3545; }
+ .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); }
+ .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+ color: #dc3545; }
-.was-validated .custom-file-input:invalid ~ .invalid-feedback,
-.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
-.custom-file-input.is-invalid ~ .invalid-tooltip {
- display: block; }
-
-.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
- border-color: #dc3545;
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
+.form-check-inline .form-check-input ~ .invalid-feedback {
+ margin-left: .5em; }
-.form-inline {
- display: flex;
- flex-flow: row wrap;
- align-items: center; }
- .form-inline .form-check {
- width: 100%; }
- @media (min-width: 576px) {
- .form-inline label {
- display: flex;
- align-items: center;
- justify-content: center;
- margin-bottom: 0; }
- .form-inline .form-group {
- display: flex;
- flex: 0 0 auto;
- flex-flow: row wrap;
- align-items: center;
- margin-bottom: 0; }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle; }
- .form-inline .form-control-plaintext {
- display: inline-block; }
- .form-inline .input-group,
- .form-inline .custom-select {
- width: auto; }
- .form-inline .form-check {
- display: flex;
- align-items: center;
- justify-content: center;
- width: auto;
- padding-left: 0; }
- .form-inline .form-check-input {
- position: relative;
- margin-top: 0;
- margin-right: 0.25rem;
- margin-left: 0; }
- .form-inline .custom-control {
- align-items: center;
- justify-content: center; }
- .form-inline .custom-control-label {
- margin-bottom: 0; } }
+.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, .was-validated .input-group > .form-select:not(:focus):invalid,
+.input-group > .form-select:not(:focus).is-invalid, .was-validated .input-group > .form-floating:not(:focus-within):invalid,
+.input-group > .form-floating:not(:focus-within).is-invalid {
+ z-index: 4; }
.btn {
+ --bs-btn-padding-x: 0.75rem;
+ --bs-btn-padding-y: 0.375rem;
+ --bs-btn-font-family: ;
+ --bs-btn-font-size: 1rem;
+ --bs-btn-font-weight: 400;
+ --bs-btn-line-height: 1.5;
+ --bs-btn-color: #212529;
+ --bs-btn-bg: transparent;
+ --bs-btn-border-width: 1px;
+ --bs-btn-border-color: transparent;
+ --bs-btn-border-radius: 0.375rem;
+ --bs-btn-hover-border-color: transparent;
+ --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --bs-btn-disabled-opacity: 0.65;
+ --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
display: inline-block;
- font-weight: 400;
- color: #212529;
+ padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+ font-family: var(--bs-btn-font-family);
+ font-size: var(--bs-btn-font-size);
+ font-weight: var(--bs-btn-font-weight);
+ line-height: var(--bs-btn-line-height);
+ color: var(--bs-btn-color);
text-align: center;
+ text-decoration: none;
vertical-align: middle;
+ cursor: pointer;
user-select: none;
- background-color: transparent;
- border: 1px solid transparent;
- padding: 0.375rem 0.75rem;
- font-size: 1rem;
- line-height: 1.5;
- border-radius: 0.25rem;
+ border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+ border-radius: var(--bs-btn-border-radius);
+ background-color: var(--bs-btn-bg);
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.btn {
transition: none; } }
.btn:hover {
- color: #212529;
- text-decoration: none; }
- .btn:focus, .btn.focus {
+ color: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color); }
+ .btn-check + .btn:hover {
+ color: var(--bs-btn-color);
+ background-color: var(--bs-btn-bg);
+ border-color: var(--bs-btn-border-color); }
+ .btn:focus-visible {
+ color: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color);
outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .btn.disabled, .btn:disabled {
- opacity: 0.65; }
- .btn:not(:disabled):not(.disabled) {
- cursor: pointer; }
-
-a.btn.disabled,
-fieldset:disabled a.btn {
- pointer-events: none; }
+ box-shadow: var(--bs-btn-focus-box-shadow); }
+ .btn-check:focus-visible + .btn {
+ border-color: var(--bs-btn-hover-border-color);
+ outline: 0;
+ box-shadow: var(--bs-btn-focus-box-shadow); }
+ .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
+ color: var(--bs-btn-active-color);
+ background-color: var(--bs-btn-active-bg);
+ border-color: var(--bs-btn-active-border-color); }
+ .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
+ box-shadow: var(--bs-btn-focus-box-shadow); }
+ .btn:disabled, .btn.disabled, fieldset:disabled .btn {
+ color: var(--bs-btn-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-btn-disabled-bg);
+ border-color: var(--bs-btn-disabled-border-color);
+ opacity: var(--bs-btn-disabled-opacity); }
.btn-primary {
- color: #fff;
- background-color: #9BAF00;
- border-color: #9BAF00; }
- .btn-primary:hover {
- color: #fff;
- background-color: #798900;
- border-color: #6e7c00; }
- .btn-primary:focus, .btn-primary.focus {
- box-shadow: 0 0 0 0.2rem rgba(170, 187, 38, 0.5); }
- .btn-primary.disabled, .btn-primary:disabled {
- color: #fff;
- background-color: #9BAF00;
- border-color: #9BAF00; }
- .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
- .show > .btn-primary.dropdown-toggle {
- color: #fff;
- background-color: #6e7c00;
- border-color: #636f00; }
- .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
- .show > .btn-primary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(170, 187, 38, 0.5); }
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #6f7e00;
+ --bs-btn-border-color: #6f7e00;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #5e6b00;
+ --bs-btn-hover-border-color: #596500;
+ --bs-btn-focus-shadow-rgb: 133, 145, 38;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #596500;
+ --bs-btn-active-border-color: #535f00;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #6f7e00;
+ --bs-btn-disabled-border-color: #6f7e00; }
.btn-secondary {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d; }
- .btn-secondary:hover {
- color: #fff;
- background-color: #5a6268;
- border-color: #545b62; }
- .btn-secondary:focus, .btn-secondary.focus {
- box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }
- .btn-secondary.disabled, .btn-secondary:disabled {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d; }
- .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,
- .show > .btn-secondary.dropdown-toggle {
- color: #fff;
- background-color: #545b62;
- border-color: #4e555b; }
- .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,
- .show > .btn-secondary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #6c757d;
+ --bs-btn-border-color: #6c757d;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #5c636a;
+ --bs-btn-hover-border-color: #565e64;
+ --bs-btn-focus-shadow-rgb: 130, 138, 145;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #565e64;
+ --bs-btn-active-border-color: #51585e;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #6c757d;
+ --bs-btn-disabled-border-color: #6c757d; }
.btn-success {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745; }
- .btn-success:hover {
- color: #fff;
- background-color: #218838;
- border-color: #1e7e34; }
- .btn-success:focus, .btn-success.focus {
- box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }
- .btn-success.disabled, .btn-success:disabled {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745; }
- .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
- .show > .btn-success.dropdown-toggle {
- color: #fff;
- background-color: #1e7e34;
- border-color: #1c7430; }
- .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
- .show > .btn-success.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #198754;
+ --bs-btn-border-color: #198754;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #157347;
+ --bs-btn-hover-border-color: #146c43;
+ --bs-btn-focus-shadow-rgb: 60, 153, 110;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #146c43;
+ --bs-btn-active-border-color: #13653f;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #198754;
+ --bs-btn-disabled-border-color: #198754; }
.btn-info {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8; }
- .btn-info:hover {
- color: #fff;
- background-color: #138496;
- border-color: #117a8b; }
- .btn-info:focus, .btn-info.focus {
- box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }
- .btn-info.disabled, .btn-info:disabled {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8; }
- .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
- .show > .btn-info.dropdown-toggle {
- color: #fff;
- background-color: #117a8b;
- border-color: #10707f; }
- .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
- .show > .btn-info.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }
+ --bs-btn-color: #000;
+ --bs-btn-bg: #0dcaf0;
+ --bs-btn-border-color: #0dcaf0;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #31d2f2;
+ --bs-btn-hover-border-color: #25cff2;
+ --bs-btn-focus-shadow-rgb: 11, 172, 204;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #3dd5f3;
+ --bs-btn-active-border-color: #25cff2;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000;
+ --bs-btn-disabled-bg: #0dcaf0;
+ --bs-btn-disabled-border-color: #0dcaf0; }
.btn-warning {
- color: #212529;
- background-color: #d9e021;
- border-color: #d9e021; }
- .btn-warning:hover {
- color: #212529;
- background-color: #bac01b;
- border-color: #afb519; }
- .btn-warning:focus, .btn-warning.focus {
- box-shadow: 0 0 0 0.2rem rgba(189, 196, 34, 0.5); }
- .btn-warning.disabled, .btn-warning:disabled {
- color: #212529;
- background-color: #d9e021;
- border-color: #d9e021; }
- .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
- .show > .btn-warning.dropdown-toggle {
- color: #212529;
- background-color: #afb519;
- border-color: #a4aa18; }
- .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
- .show > .btn-warning.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(189, 196, 34, 0.5); }
+ --bs-btn-color: #000;
+ --bs-btn-bg: #d9e021;
+ --bs-btn-border-color: #d9e021;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #dfe542;
+ --bs-btn-hover-border-color: #dde337;
+ --bs-btn-focus-shadow-rgb: 184, 190, 28;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #e1e64d;
+ --bs-btn-active-border-color: #dde337;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000;
+ --bs-btn-disabled-bg: #d9e021;
+ --bs-btn-disabled-border-color: #d9e021; }
.btn-danger {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545; }
- .btn-danger:hover {
- color: #fff;
- background-color: #c82333;
- border-color: #bd2130; }
- .btn-danger:focus, .btn-danger.focus {
- box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }
- .btn-danger.disabled, .btn-danger:disabled {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545; }
- .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
- .show > .btn-danger.dropdown-toggle {
- color: #fff;
- background-color: #bd2130;
- border-color: #b21f2d; }
- .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
- .show > .btn-danger.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #dc3545;
+ --bs-btn-border-color: #dc3545;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #bb2d3b;
+ --bs-btn-hover-border-color: #b02a37;
+ --bs-btn-focus-shadow-rgb: 225, 83, 97;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #b02a37;
+ --bs-btn-active-border-color: #a52834;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #dc3545;
+ --bs-btn-disabled-border-color: #dc3545; }
.btn-light {
- color: #212529;
- background-color: #e1e4e5;
- border-color: #e1e4e5; }
- .btn-light:hover {
- color: #212529;
- background-color: #cdd2d3;
- border-color: #c6cbcd; }
- .btn-light:focus, .btn-light.focus {
- box-shadow: 0 0 0 0.2rem rgba(196, 199, 201, 0.5); }
- .btn-light.disabled, .btn-light:disabled {
- color: #212529;
- background-color: #e1e4e5;
- border-color: #e1e4e5; }
- .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,
- .show > .btn-light.dropdown-toggle {
- color: #212529;
- background-color: #c6cbcd;
- border-color: #bfc5c7; }
- .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,
- .show > .btn-light.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(196, 199, 201, 0.5); }
+ --bs-btn-color: #000;
+ --bs-btn-bg: #e1e4e5;
+ --bs-btn-border-color: #e1e4e5;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #bfc2c3;
+ --bs-btn-hover-border-color: #b4b6b7;
+ --bs-btn-focus-shadow-rgb: 191, 194, 195;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #b4b6b7;
+ --bs-btn-active-border-color: #a9abac;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000;
+ --bs-btn-disabled-bg: #e1e4e5;
+ --bs-btn-disabled-border-color: #e1e4e5; }
.btn-dark {
- color: #fff;
- background-color: #373738;
- border-color: #373738; }
- .btn-dark:hover {
- color: #fff;
- background-color: #242425;
- border-color: #1e1e1e; }
- .btn-dark:focus, .btn-dark.focus {
- box-shadow: 0 0 0 0.2rem rgba(85, 85, 86, 0.5); }
- .btn-dark.disabled, .btn-dark:disabled {
- color: #fff;
- background-color: #373738;
- border-color: #373738; }
- .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,
- .show > .btn-dark.dropdown-toggle {
- color: #fff;
- background-color: #1e1e1e;
- border-color: #171718; }
- .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,
- .show > .btn-dark.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(85, 85, 86, 0.5); }
+ --bs-btn-color: #fff;
+ --bs-btn-bg: #373738;
+ --bs-btn-border-color: #373738;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #555556;
+ --bs-btn-hover-border-color: #4b4b4c;
+ --bs-btn-focus-shadow-rgb: 85, 85, 86;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #5f5f60;
+ --bs-btn-active-border-color: #4b4b4c;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #fff;
+ --bs-btn-disabled-bg: #373738;
+ --bs-btn-disabled-border-color: #373738; }
.btn-outline-primary {
- color: #9BAF00;
- border-color: #9BAF00; }
- .btn-outline-primary:hover {
- color: #fff;
- background-color: #9BAF00;
- border-color: #9BAF00; }
- .btn-outline-primary:focus, .btn-outline-primary.focus {
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.5); }
- .btn-outline-primary.disabled, .btn-outline-primary:disabled {
- color: #9BAF00;
- background-color: transparent; }
- .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
- .show > .btn-outline-primary.dropdown-toggle {
- color: #fff;
- background-color: #9BAF00;
- border-color: #9BAF00; }
- .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-primary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.5); }
+ --bs-btn-color: #6f7e00;
+ --bs-btn-border-color: #6f7e00;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #6f7e00;
+ --bs-btn-hover-border-color: #6f7e00;
+ --bs-btn-focus-shadow-rgb: 111, 126, 0;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #6f7e00;
+ --bs-btn-active-border-color: #6f7e00;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #6f7e00;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #6f7e00;
+ --bs-gradient: none; }
.btn-outline-secondary {
- color: #6c757d;
- border-color: #6c757d; }
- .btn-outline-secondary:hover {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d; }
- .btn-outline-secondary:focus, .btn-outline-secondary.focus {
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
- .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
- color: #6c757d;
- background-color: transparent; }
- .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,
- .show > .btn-outline-secondary.dropdown-toggle {
- color: #fff;
- background-color: #6c757d;
- border-color: #6c757d; }
- .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-secondary.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
+ --bs-btn-color: #6c757d;
+ --bs-btn-border-color: #6c757d;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #6c757d;
+ --bs-btn-hover-border-color: #6c757d;
+ --bs-btn-focus-shadow-rgb: 108, 117, 125;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #6c757d;
+ --bs-btn-active-border-color: #6c757d;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #6c757d;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #6c757d;
+ --bs-gradient: none; }
.btn-outline-success {
- color: #28a745;
- border-color: #28a745; }
- .btn-outline-success:hover {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745; }
- .btn-outline-success:focus, .btn-outline-success.focus {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
- .btn-outline-success.disabled, .btn-outline-success:disabled {
- color: #28a745;
- background-color: transparent; }
- .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
- .show > .btn-outline-success.dropdown-toggle {
- color: #fff;
- background-color: #28a745;
- border-color: #28a745; }
- .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-success.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }
+ --bs-btn-color: #198754;
+ --bs-btn-border-color: #198754;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #198754;
+ --bs-btn-hover-border-color: #198754;
+ --bs-btn-focus-shadow-rgb: 25, 135, 84;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #198754;
+ --bs-btn-active-border-color: #198754;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #198754;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #198754;
+ --bs-gradient: none; }
.btn-outline-info {
- color: #17a2b8;
- border-color: #17a2b8; }
- .btn-outline-info:hover {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8; }
- .btn-outline-info:focus, .btn-outline-info.focus {
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
- .btn-outline-info.disabled, .btn-outline-info:disabled {
- color: #17a2b8;
- background-color: transparent; }
- .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
- .show > .btn-outline-info.dropdown-toggle {
- color: #fff;
- background-color: #17a2b8;
- border-color: #17a2b8; }
- .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-info.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }
+ --bs-btn-color: #0dcaf0;
+ --bs-btn-border-color: #0dcaf0;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #0dcaf0;
+ --bs-btn-hover-border-color: #0dcaf0;
+ --bs-btn-focus-shadow-rgb: 13, 202, 240;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #0dcaf0;
+ --bs-btn-active-border-color: #0dcaf0;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #0dcaf0;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #0dcaf0;
+ --bs-gradient: none; }
.btn-outline-warning {
- color: #d9e021;
- border-color: #d9e021; }
- .btn-outline-warning:hover {
- color: #212529;
- background-color: #d9e021;
- border-color: #d9e021; }
- .btn-outline-warning:focus, .btn-outline-warning.focus {
- box-shadow: 0 0 0 0.2rem rgba(217, 224, 33, 0.5); }
- .btn-outline-warning.disabled, .btn-outline-warning:disabled {
- color: #d9e021;
- background-color: transparent; }
- .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
- .show > .btn-outline-warning.dropdown-toggle {
- color: #212529;
- background-color: #d9e021;
- border-color: #d9e021; }
- .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-warning.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(217, 224, 33, 0.5); }
+ --bs-btn-color: #d9e021;
+ --bs-btn-border-color: #d9e021;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #d9e021;
+ --bs-btn-hover-border-color: #d9e021;
+ --bs-btn-focus-shadow-rgb: 217, 224, 33;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #d9e021;
+ --bs-btn-active-border-color: #d9e021;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #d9e021;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #d9e021;
+ --bs-gradient: none; }
.btn-outline-danger {
- color: #dc3545;
- border-color: #dc3545; }
- .btn-outline-danger:hover {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545; }
- .btn-outline-danger:focus, .btn-outline-danger.focus {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
- .btn-outline-danger.disabled, .btn-outline-danger:disabled {
- color: #dc3545;
- background-color: transparent; }
- .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
- .show > .btn-outline-danger.dropdown-toggle {
- color: #fff;
- background-color: #dc3545;
- border-color: #dc3545; }
- .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-danger.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }
+ --bs-btn-color: #dc3545;
+ --bs-btn-border-color: #dc3545;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #dc3545;
+ --bs-btn-hover-border-color: #dc3545;
+ --bs-btn-focus-shadow-rgb: 220, 53, 69;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #dc3545;
+ --bs-btn-active-border-color: #dc3545;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #dc3545;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #dc3545;
+ --bs-gradient: none; }
.btn-outline-light {
- color: #e1e4e5;
- border-color: #e1e4e5; }
- .btn-outline-light:hover {
- color: #212529;
- background-color: #e1e4e5;
- border-color: #e1e4e5; }
- .btn-outline-light:focus, .btn-outline-light.focus {
- box-shadow: 0 0 0 0.2rem rgba(225, 228, 229, 0.5); }
- .btn-outline-light.disabled, .btn-outline-light:disabled {
- color: #e1e4e5;
- background-color: transparent; }
- .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,
- .show > .btn-outline-light.dropdown-toggle {
- color: #212529;
- background-color: #e1e4e5;
- border-color: #e1e4e5; }
- .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-light.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(225, 228, 229, 0.5); }
+ --bs-btn-color: #e1e4e5;
+ --bs-btn-border-color: #e1e4e5;
+ --bs-btn-hover-color: #000;
+ --bs-btn-hover-bg: #e1e4e5;
+ --bs-btn-hover-border-color: #e1e4e5;
+ --bs-btn-focus-shadow-rgb: 225, 228, 229;
+ --bs-btn-active-color: #000;
+ --bs-btn-active-bg: #e1e4e5;
+ --bs-btn-active-border-color: #e1e4e5;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #e1e4e5;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #e1e4e5;
+ --bs-gradient: none; }
.btn-outline-dark {
- color: #373738;
- border-color: #373738; }
- .btn-outline-dark:hover {
- color: #fff;
- background-color: #373738;
- border-color: #373738; }
- .btn-outline-dark:focus, .btn-outline-dark.focus {
- box-shadow: 0 0 0 0.2rem rgba(55, 55, 56, 0.5); }
- .btn-outline-dark.disabled, .btn-outline-dark:disabled {
- color: #373738;
- background-color: transparent; }
- .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,
- .show > .btn-outline-dark.dropdown-toggle {
- color: #fff;
- background-color: #373738;
- border-color: #373738; }
- .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,
- .show > .btn-outline-dark.dropdown-toggle:focus {
- box-shadow: 0 0 0 0.2rem rgba(55, 55, 56, 0.5); }
+ --bs-btn-color: #373738;
+ --bs-btn-border-color: #373738;
+ --bs-btn-hover-color: #fff;
+ --bs-btn-hover-bg: #373738;
+ --bs-btn-hover-border-color: #373738;
+ --bs-btn-focus-shadow-rgb: 55, 55, 56;
+ --bs-btn-active-color: #fff;
+ --bs-btn-active-bg: #373738;
+ --bs-btn-active-border-color: #373738;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #373738;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #373738;
+ --bs-gradient: none; }
.btn-link {
- font-weight: 400;
- color: #9BAF00; }
+ --bs-btn-font-weight: 400;
+ --bs-btn-color: var(--bs-link-color);
+ --bs-btn-bg: transparent;
+ --bs-btn-border-color: transparent;
+ --bs-btn-hover-color: var(--bs-link-hover-color);
+ --bs-btn-hover-border-color: transparent;
+ --bs-btn-active-color: var(--bs-link-hover-color);
+ --bs-btn-active-border-color: transparent;
+ --bs-btn-disabled-color: #6c757d;
+ --bs-btn-disabled-border-color: transparent;
+ --bs-btn-box-shadow: none;
+ --bs-btn-focus-shadow-rgb: 133, 145, 38;
+ text-decoration: underline; }
+ .btn-link:focus-visible {
+ color: var(--bs-btn-color); }
.btn-link:hover {
- color: #576300;
- text-decoration: underline; }
- .btn-link:focus, .btn-link.focus {
- text-decoration: underline;
- box-shadow: none; }
- .btn-link:disabled, .btn-link.disabled {
- color: #6c757d;
- pointer-events: none; }
+ color: var(--bs-btn-hover-color); }
.btn-lg, .btn-group-lg > .btn {
- padding: 0.5rem 1rem;
- font-size: 1.25rem;
- line-height: 1.5;
- border-radius: 0.3rem; }
+ --bs-btn-padding-y: 0.5rem;
+ --bs-btn-padding-x: 1rem;
+ --bs-btn-font-size: 1.25rem;
+ --bs-btn-border-radius: 0.5rem; }
.btn-sm, .btn-group-sm > .btn {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5;
- border-radius: 0.2rem; }
-
-.btn-block {
- display: block;
- width: 100%; }
- .btn-block + .btn-block {
- margin-top: 0.5rem; }
-
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
- width: 100%; }
+ --bs-btn-padding-y: 0.25rem;
+ --bs-btn-padding-x: 0.5rem;
+ --bs-btn-font-size: 0.875rem;
+ --bs-btn-border-radius: 0.25rem; }
.fade {
transition: opacity 0.15s linear; }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.fade {
transition: none; } }
.fade:not(.show) {
@@ -2126,105 +2518,164 @@ input[type="button"].btn-block {
display: none; }
.collapsing {
- position: relative;
height: 0;
overflow: hidden;
transition: height 0.35s ease; }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.collapsing {
transition: none; } }
-
+ .collapsing.collapse-horizontal {
+ width: 0;
+ height: auto;
+ transition: width 0.35s ease; }
+ @media (prefers-reduced-motion: reduce) {
+ .collapsing.collapse-horizontal {
+ transition: none; } }
.dropup,
-.dropright,
+.dropend,
.dropdown,
-.dropleft {
+.dropstart,
+.dropup-center,
+.dropdown-center {
position: relative; }
-.dropdown-toggle::after {
- display: inline-block;
- margin-left: 0.255em;
- vertical-align: 0.255em;
- content: "";
- border-top: 0.3em solid;
- border-right: 0.3em solid transparent;
- border-bottom: 0;
- border-left: 0.3em solid transparent; }
-
-.dropdown-toggle:empty::after {
- margin-left: 0; }
+.dropdown-toggle {
+ white-space: nowrap; }
+ .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent; }
+ .dropdown-toggle:empty::after {
+ margin-left: 0; }
.dropdown-menu {
+ --bs-dropdown-zindex: 1000;
+ --bs-dropdown-min-width: 10rem;
+ --bs-dropdown-padding-x: 0;
+ --bs-dropdown-padding-y: 0.5rem;
+ --bs-dropdown-spacer: 0.125rem;
+ --bs-dropdown-font-size: 1rem;
+ --bs-dropdown-color: #212529;
+ --bs-dropdown-bg: #fff;
+ --bs-dropdown-border-color: var(--bs-border-color-translucent);
+ --bs-dropdown-border-radius: 0.375rem;
+ --bs-dropdown-border-width: 1px;
+ --bs-dropdown-inner-border-radius: calc(0.375rem - 1px);
+ --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+ --bs-dropdown-divider-margin-y: 0.5rem;
+ --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ --bs-dropdown-link-color: #212529;
+ --bs-dropdown-link-hover-color: #1e2125;
+ --bs-dropdown-link-hover-bg: #e9ecef;
+ --bs-dropdown-link-active-color: #fff;
+ --bs-dropdown-link-active-bg: #6f7e00;
+ --bs-dropdown-link-disabled-color: #adb5bd;
+ --bs-dropdown-item-padding-x: 1rem;
+ --bs-dropdown-item-padding-y: 0.25rem;
+ --bs-dropdown-header-color: #6c757d;
+ --bs-dropdown-header-padding-x: 1rem;
+ --bs-dropdown-header-padding-y: 0.5rem;
position: absolute;
- top: 100%;
- left: 0;
- z-index: 1000;
+ z-index: var(--bs-dropdown-zindex);
display: none;
- float: left;
- min-width: 10rem;
- padding: 0.5rem 0;
- margin: 0.125rem 0 0;
- font-size: 1rem;
- color: #212529;
+ min-width: var(--bs-dropdown-min-width);
+ padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
+ margin: 0;
+ font-size: var(--bs-dropdown-font-size);
+ color: var(--bs-dropdown-color);
text-align: left;
list-style: none;
- background-color: #fff;
+ background-color: var(--bs-dropdown-bg);
background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 0.25rem; }
-
-.dropdown-menu-right {
- right: 0;
- left: auto; }
-
-@media (min-width: 576px) {
- .dropdown-menu-sm-right {
- right: 0;
- left: auto; } }
-
-@media (min-width: 768px) {
- .dropdown-menu-md-right {
- right: 0;
- left: auto; } }
+ border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
+ border-radius: var(--bs-dropdown-border-radius); }
+ .dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: var(--bs-dropdown-spacer); }
-@media (min-width: 992px) {
- .dropdown-menu-lg-right {
- right: 0;
- left: auto; } }
+.dropdown-menu-start {
+ --bs-position: start; }
+ .dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0; }
-@media (min-width: 1200px) {
- .dropdown-menu-xl-right {
+.dropdown-menu-end {
+ --bs-position: end; }
+ .dropdown-menu-end[data-bs-popper] {
right: 0;
- left: auto; } }
-
-.dropdown-menu-left {
- right: auto;
- left: 0; }
+ left: auto; }
@media (min-width: 576px) {
- .dropdown-menu-sm-left {
- right: auto;
- left: 0; } }
+ .dropdown-menu-sm-start {
+ --bs-position: start; }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0; }
+ .dropdown-menu-sm-end {
+ --bs-position: end; }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto; } }
@media (min-width: 768px) {
- .dropdown-menu-md-left {
- right: auto;
- left: 0; } }
+ .dropdown-menu-md-start {
+ --bs-position: start; }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0; }
+ .dropdown-menu-md-end {
+ --bs-position: end; }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto; } }
@media (min-width: 992px) {
- .dropdown-menu-lg-left {
- right: auto;
- left: 0; } }
+ .dropdown-menu-lg-start {
+ --bs-position: start; }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0; }
+ .dropdown-menu-lg-end {
+ --bs-position: end; }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto; } }
@media (min-width: 1200px) {
- .dropdown-menu-xl-left {
- right: auto;
- left: 0; } }
+ .dropdown-menu-xl-start {
+ --bs-position: start; }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0; }
+ .dropdown-menu-xl-end {
+ --bs-position: end; }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto; } }
+
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start; }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0; }
+ .dropdown-menu-xxl-end {
+ --bs-position: end; }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto; } }
-.dropup .dropdown-menu {
+.dropup .dropdown-menu[data-bs-popper] {
top: auto;
bottom: 100%;
margin-top: 0;
- margin-bottom: 0.125rem; }
+ margin-bottom: var(--bs-dropdown-spacer); }
.dropup .dropdown-toggle::after {
display: inline-block;
@@ -2239,14 +2690,14 @@ input[type="button"].btn-block {
.dropup .dropdown-toggle:empty::after {
margin-left: 0; }
-.dropright .dropdown-menu {
+.dropend .dropdown-menu[data-bs-popper] {
top: 0;
right: auto;
left: 100%;
margin-top: 0;
- margin-left: 0.125rem; }
+ margin-left: var(--bs-dropdown-spacer); }
-.dropright .dropdown-toggle::after {
+.dropend .dropdown-toggle::after {
display: inline-block;
margin-left: 0.255em;
vertical-align: 0.255em;
@@ -2256,29 +2707,29 @@ input[type="button"].btn-block {
border-bottom: 0.3em solid transparent;
border-left: 0.3em solid; }
-.dropright .dropdown-toggle:empty::after {
+.dropend .dropdown-toggle:empty::after {
margin-left: 0; }
-.dropright .dropdown-toggle::after {
+.dropend .dropdown-toggle::after {
vertical-align: 0; }
-.dropleft .dropdown-menu {
+.dropstart .dropdown-menu[data-bs-popper] {
top: 0;
right: 100%;
left: auto;
margin-top: 0;
- margin-right: 0.125rem; }
+ margin-right: var(--bs-dropdown-spacer); }
-.dropleft .dropdown-toggle::after {
+.dropstart .dropdown-toggle::after {
display: inline-block;
margin-left: 0.255em;
vertical-align: 0.255em;
content: ""; }
-.dropleft .dropdown-toggle::after {
+.dropstart .dropdown-toggle::after {
display: none; }
-.dropleft .dropdown-toggle::before {
+.dropstart .dropdown-toggle::before {
display: inline-block;
margin-right: 0.255em;
vertical-align: 0.255em;
@@ -2287,49 +2738,40 @@ input[type="button"].btn-block {
border-right: 0.3em solid;
border-bottom: 0.3em solid transparent; }
-.dropleft .dropdown-toggle:empty::after {
+.dropstart .dropdown-toggle:empty::after {
margin-left: 0; }
-.dropleft .dropdown-toggle::before {
+.dropstart .dropdown-toggle::before {
vertical-align: 0; }
-.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
- right: auto;
- bottom: auto; }
-
.dropdown-divider {
height: 0;
- margin: 0.5rem 0;
+ margin: var(--bs-dropdown-divider-margin-y) 0;
overflow: hidden;
- border-top: 1px solid #e9ecef; }
+ border-top: 1px solid var(--bs-dropdown-divider-bg);
+ opacity: 1; }
.dropdown-item {
display: block;
width: 100%;
- padding: 0.25rem 1.5rem;
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
clear: both;
font-weight: 400;
- color: #212529;
+ color: var(--bs-dropdown-link-color);
text-align: inherit;
+ text-decoration: none;
white-space: nowrap;
background-color: transparent;
border: 0; }
- .dropdown-item:first-child {
- border-top-left-radius: calc(0.25rem - 1px);
- border-top-right-radius: calc(0.25rem - 1px); }
- .dropdown-item:last-child {
- border-bottom-right-radius: calc(0.25rem - 1px);
- border-bottom-left-radius: calc(0.25rem - 1px); }
.dropdown-item:hover, .dropdown-item:focus {
- color: #16181b;
- text-decoration: none;
- background-color: #f8f9fa; }
+ color: var(--bs-dropdown-link-hover-color);
+ background-color: var(--bs-dropdown-link-hover-bg); }
.dropdown-item.active, .dropdown-item:active {
- color: #fff;
+ color: var(--bs-dropdown-link-active-color);
text-decoration: none;
- background-color: #9BAF00; }
+ background-color: var(--bs-dropdown-link-active-bg); }
.dropdown-item.disabled, .dropdown-item:disabled {
- color: #6c757d;
+ color: var(--bs-dropdown-link-disabled-color);
pointer-events: none;
background-color: transparent; }
@@ -2338,16 +2780,30 @@ input[type="button"].btn-block {
.dropdown-header {
display: block;
- padding: 0.5rem 1.5rem;
+ padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0;
font-size: 0.875rem;
- color: #6c757d;
+ color: var(--bs-dropdown-header-color);
white-space: nowrap; }
.dropdown-item-text {
display: block;
- padding: 0.25rem 1.5rem;
- color: #212529; }
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+ color: var(--bs-dropdown-link-color); }
+
+.dropdown-menu-dark {
+ --bs-dropdown-color: #dee2e6;
+ --bs-dropdown-bg: #343a40;
+ --bs-dropdown-border-color: var(--bs-border-color-translucent);
+ --bs-dropdown-box-shadow: ;
+ --bs-dropdown-link-color: #dee2e6;
+ --bs-dropdown-link-hover-color: #fff;
+ --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+ --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
+ --bs-dropdown-link-active-color: #fff;
+ --bs-dropdown-link-active-bg: #6f7e00;
+ --bs-dropdown-link-disabled-color: #adb5bd;
+ --bs-dropdown-header-color: #adb5bd; }
.btn-group,
.btn-group-vertical {
@@ -2358,14 +2814,19 @@ input[type="button"].btn-block {
.btn-group-vertical > .btn {
position: relative;
flex: 1 1 auto; }
- .btn-group > .btn:hover,
- .btn-group-vertical > .btn:hover {
- z-index: 1; }
- .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
- .btn-group-vertical > .btn:focus,
- .btn-group-vertical > .btn:active,
- .btn-group-vertical > .btn.active {
- z-index: 1; }
+ .btn-group > .btn-check:checked + .btn,
+ .btn-group > .btn-check:focus + .btn,
+ .btn-group > .btn:hover,
+ .btn-group > .btn:focus,
+ .btn-group > .btn:active,
+ .btn-group > .btn.active,
+ .btn-group-vertical > .btn-check:checked + .btn,
+ .btn-group-vertical > .btn-check:focus + .btn,
+ .btn-group-vertical > .btn:hover,
+ .btn-group-vertical > .btn:focus,
+ .btn-group-vertical > .btn:active,
+ .btn-group-vertical > .btn.active {
+ z-index: 1; }
.btn-toolbar {
display: flex;
@@ -2374,28 +2835,28 @@ input[type="button"].btn-block {
.btn-toolbar .input-group {
width: auto; }
-.btn-group > .btn:not(:first-child),
-.btn-group > .btn-group:not(:first-child) {
- margin-left: -1px; }
-
-.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
-.btn-group > .btn-group:not(:last-child) > .btn {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0; }
-
-.btn-group > .btn:not(:first-child),
-.btn-group > .btn-group:not(:first-child) > .btn {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0; }
+.btn-group {
+ border-radius: 0.375rem; }
+ .btn-group > :not(.btn-check:first-child) + .btn,
+ .btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px; }
+ .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+ .btn-group > .btn.dropdown-toggle-split:first-child,
+ .btn-group > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+ .btn-group > .btn:nth-child(n + 3),
+ .btn-group > :not(.btn-check) + .btn,
+ .btn-group > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
.dropdown-toggle-split {
padding-right: 0.5625rem;
padding-left: 0.5625rem; }
- .dropdown-toggle-split::after,
- .dropup .dropdown-toggle-split::after,
- .dropright .dropdown-toggle-split::after {
+ .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
margin-left: 0; }
- .dropleft .dropdown-toggle-split::before {
+ .dropstart .dropdown-toggle-split::before {
margin-right: 0; }
.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
@@ -2420,596 +2881,187 @@ input[type="button"].btn-block {
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0; }
- .btn-group-vertical > .btn:not(:first-child),
+ .btn-group-vertical > .btn ~ .btn,
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
border-top-left-radius: 0;
border-top-right-radius: 0; }
-.btn-group-toggle > .btn,
-.btn-group-toggle > .btn-group > .btn {
- margin-bottom: 0; }
- .btn-group-toggle > .btn input[type="radio"],
- .btn-group-toggle > .btn input[type="checkbox"],
- .btn-group-toggle > .btn-group > .btn input[type="radio"],
- .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
- position: absolute;
- clip: rect(0, 0, 0, 0);
- pointer-events: none; }
-
-.input-group {
- position: relative;
+.nav {
+ --bs-nav-link-padding-x: 1rem;
+ --bs-nav-link-padding-y: 0.5rem;
+ --bs-nav-link-font-weight: ;
+ --bs-nav-link-color: var(--bs-link-color);
+ --bs-nav-link-hover-color: var(--bs-link-hover-color);
+ --bs-nav-link-disabled-color: #6c757d;
display: flex;
flex-wrap: wrap;
- align-items: stretch;
- width: 100%; }
- .input-group > .form-control,
- .input-group > .form-control-plaintext,
- .input-group > .custom-select,
- .input-group > .custom-file {
- position: relative;
- flex: 1 1 auto;
- width: 1%;
- margin-bottom: 0; }
- .input-group > .form-control + .form-control,
- .input-group > .form-control + .custom-select,
- .input-group > .form-control + .custom-file,
- .input-group > .form-control-plaintext + .form-control,
- .input-group > .form-control-plaintext + .custom-select,
- .input-group > .form-control-plaintext + .custom-file,
- .input-group > .custom-select + .form-control,
- .input-group > .custom-select + .custom-select,
- .input-group > .custom-select + .custom-file,
- .input-group > .custom-file + .form-control,
- .input-group > .custom-file + .custom-select,
- .input-group > .custom-file + .custom-file {
- margin-left: -1px; }
- .input-group > .form-control:focus,
- .input-group > .custom-select:focus,
- .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
- z-index: 3; }
- .input-group > .custom-file .custom-file-input:focus {
- z-index: 4; }
- .input-group > .form-control:not(:last-child),
- .input-group > .custom-select:not(:last-child) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0; }
- .input-group > .form-control:not(:first-child),
- .input-group > .custom-select:not(:first-child) {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0; }
- .input-group > .custom-file {
- display: flex;
- align-items: center; }
- .input-group > .custom-file:not(:last-child) .custom-file-label,
- .input-group > .custom-file:not(:last-child) .custom-file-label::after {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0; }
- .input-group > .custom-file:not(:first-child) .custom-file-label {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0; }
-
-.input-group-prepend,
-.input-group-append {
- display: flex; }
- .input-group-prepend .btn,
- .input-group-append .btn {
- position: relative;
- z-index: 2; }
- .input-group-prepend .btn:focus,
- .input-group-append .btn:focus {
- z-index: 3; }
- .input-group-prepend .btn + .btn,
- .input-group-prepend .btn + .input-group-text,
- .input-group-prepend .input-group-text + .input-group-text,
- .input-group-prepend .input-group-text + .btn,
- .input-group-append .btn + .btn,
- .input-group-append .btn + .input-group-text,
- .input-group-append .input-group-text + .input-group-text,
- .input-group-append .input-group-text + .btn {
- margin-left: -1px; }
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none; }
-.input-group-prepend {
- margin-right: -1px; }
+.nav-link {
+ display: block;
+ padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
+ font-size: var(--bs-nav-link-font-size);
+ font-weight: var(--bs-nav-link-font-weight);
+ color: var(--bs-nav-link-color);
+ text-decoration: none;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .nav-link {
+ transition: none; } }
+ .nav-link:hover, .nav-link:focus {
+ color: var(--bs-nav-link-hover-color); }
+ .nav-link.disabled {
+ color: var(--bs-nav-link-disabled-color);
+ pointer-events: none;
+ cursor: default; }
-.input-group-append {
- margin-left: -1px; }
+.nav-tabs {
+ --bs-nav-tabs-border-width: 1px;
+ --bs-nav-tabs-border-color: #dee2e6;
+ --bs-nav-tabs-border-radius: 0.375rem;
+ --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6;
+ --bs-nav-tabs-link-active-color: #495057;
+ --bs-nav-tabs-link-active-bg: #fff;
+ --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;
+ border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); }
+ .nav-tabs .nav-link {
+ margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
+ background: none;
+ border: var(--bs-nav-tabs-border-width) solid transparent;
+ border-top-left-radius: var(--bs-nav-tabs-border-radius);
+ border-top-right-radius: var(--bs-nav-tabs-border-radius); }
+ .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ isolation: isolate;
+ border-color: var(--bs-nav-tabs-link-hover-border-color); }
+ .nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled {
+ color: var(--bs-nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent; }
+ .nav-tabs .nav-link.active,
+ .nav-tabs .nav-item.show .nav-link {
+ color: var(--bs-nav-tabs-link-active-color);
+ background-color: var(--bs-nav-tabs-link-active-bg);
+ border-color: var(--bs-nav-tabs-link-active-border-color); }
+ .nav-tabs .dropdown-menu {
+ margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
+ border-top-left-radius: 0;
+ border-top-right-radius: 0; }
-.input-group-text {
- display: flex;
- align-items: center;
- padding: 0.375rem 0.75rem;
- margin-bottom: 0;
- font-size: 1rem;
- font-weight: 400;
- line-height: 1.5;
- color: #495057;
- text-align: center;
- white-space: nowrap;
- background-color: #e9ecef;
- border: 1px solid #ced4da;
- border-radius: 0.25rem; }
- .input-group-text input[type="radio"],
- .input-group-text input[type="checkbox"] {
- margin-top: 0; }
+.nav-pills {
+ --bs-nav-pills-border-radius: 0.375rem;
+ --bs-nav-pills-link-active-color: #fff;
+ --bs-nav-pills-link-active-bg: #6f7e00; }
+ .nav-pills .nav-link {
+ background: none;
+ border: 0;
+ border-radius: var(--bs-nav-pills-border-radius); }
+ .nav-pills .nav-link:disabled {
+ color: var(--bs-nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent; }
+ .nav-pills .nav-link.active,
+ .nav-pills .show > .nav-link {
+ color: var(--bs-nav-pills-link-active-color);
+ background-color: var(--bs-nav-pills-link-active-bg); }
-.input-group-lg > .form-control:not(textarea),
-.input-group-lg > .custom-select {
- height: calc(2.875rem + 2px); }
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center; }
-.input-group-lg > .form-control,
-.input-group-lg > .custom-select,
-.input-group-lg > .input-group-prepend > .input-group-text,
-.input-group-lg > .input-group-append > .input-group-text,
-.input-group-lg > .input-group-prepend > .btn,
-.input-group-lg > .input-group-append > .btn {
- padding: 0.5rem 1rem;
- font-size: 1.25rem;
- line-height: 1.5;
- border-radius: 0.3rem; }
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center; }
-.input-group-sm > .form-control:not(textarea),
-.input-group-sm > .custom-select {
- height: calc(1.8125rem + 2px); }
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+ width: 100%; }
-.input-group-sm > .form-control,
-.input-group-sm > .custom-select,
-.input-group-sm > .input-group-prepend > .input-group-text,
-.input-group-sm > .input-group-append > .input-group-text,
-.input-group-sm > .input-group-prepend > .btn,
-.input-group-sm > .input-group-append > .btn {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5;
- border-radius: 0.2rem; }
-
-.input-group-lg > .custom-select,
-.input-group-sm > .custom-select {
- padding-right: 1.75rem; }
-
-.input-group > .input-group-prepend > .btn,
-.input-group > .input-group-prepend > .input-group-text,
-.input-group > .input-group-append:not(:last-child) > .btn,
-.input-group > .input-group-append:not(:last-child) > .input-group-text,
-.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) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0; }
+.tab-content > .tab-pane {
+ display: none; }
-.input-group > .input-group-append > .btn,
-.input-group > .input-group-append > .input-group-text,
-.input-group > .input-group-prepend:not(:first-child) > .btn,
-.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
-.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
-.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0; }
+.tab-content > .active {
+ display: block; }
-.custom-control {
+.navbar {
+ --bs-navbar-padding-x: 0;
+ --bs-navbar-padding-y: 0.5rem;
+ --bs-navbar-color: rgba(0, 0, 0, 0.55);
+ --bs-navbar-hover-color: rgba(0, 0, 0, 0.7);
+ --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3);
+ --bs-navbar-active-color: rgba(0, 0, 0, 0.9);
+ --bs-navbar-brand-padding-y: 0.3125rem;
+ --bs-navbar-brand-margin-end: 1rem;
+ --bs-navbar-brand-font-size: 1.25rem;
+ --bs-navbar-brand-color: rgba(0, 0, 0, 0.9);
+ --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9);
+ --bs-navbar-nav-link-padding-x: 0.5rem;
+ --bs-navbar-toggler-padding-y: 0.25rem;
+ --bs-navbar-toggler-padding-x: 0.75rem;
+ --bs-navbar-toggler-font-size: 1.25rem;
+ --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+ --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1);
+ --bs-navbar-toggler-border-radius: 0.375rem;
+ --bs-navbar-toggler-focus-width: 0.25rem;
+ --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
position: relative;
- display: block;
- min-height: 1.5rem;
- padding-left: 1.5rem; }
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); }
+ .navbar > .container,
+ .navbar > .container-fluid,
+ .navbar > .container-sm,
+ .navbar > .container-md,
+ .navbar > .container-lg,
+ .navbar > .container-xl {
+ display: flex;
+ flex-wrap: inherit;
+ align-items: center;
+ justify-content: space-between; }
-.custom-control-inline {
- display: inline-flex;
- margin-right: 1rem; }
+.navbar-brand {
+ padding-top: var(--bs-navbar-brand-padding-y);
+ padding-bottom: var(--bs-navbar-brand-padding-y);
+ margin-right: var(--bs-navbar-brand-margin-end);
+ font-size: var(--bs-navbar-brand-font-size);
+ color: var(--bs-navbar-brand-color);
+ text-decoration: none;
+ white-space: nowrap; }
+ .navbar-brand:hover, .navbar-brand:focus {
+ color: var(--bs-navbar-brand-hover-color); }
-.custom-control-input {
- position: absolute;
- z-index: -1;
- opacity: 0; }
- .custom-control-input:checked ~ .custom-control-label::before {
- color: #fff;
- border-color: #9BAF00;
- background-color: #9BAF00; }
- .custom-control-input:focus ~ .custom-control-label::before {
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
- border-color: #e7ff30; }
- .custom-control-input:not(:disabled):active ~ .custom-control-label::before {
- color: #fff;
- background-color: #edff63;
- border-color: #edff63; }
- .custom-control-input:disabled ~ .custom-control-label {
- color: #6c757d; }
- .custom-control-input:disabled ~ .custom-control-label::before {
- background-color: #e9ecef; }
-
-.custom-control-label {
- position: relative;
- margin-bottom: 0;
- vertical-align: top; }
- .custom-control-label::before {
- position: absolute;
- top: 0.25rem;
- left: -1.5rem;
- display: block;
- width: 1rem;
- height: 1rem;
- pointer-events: none;
- content: "";
- background-color: #fff;
- border: #adb5bd solid 1px; }
- .custom-control-label::after {
- position: absolute;
- top: 0.25rem;
- left: -1.5rem;
- display: block;
- width: 1rem;
- height: 1rem;
- content: "";
- background-repeat: no-repeat;
- background-position: center center;
- background-size: 50% 50%; }
-
-.custom-checkbox .custom-control-label::before {
- border-radius: 0.25rem; }
-
-.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); }
-
-.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
- border-color: #9BAF00;
- background-color: #9BAF00; }
-
-.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); }
-
-.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
- background-color: rgba(155, 175, 0, 0.5); }
-
-.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
- background-color: rgba(155, 175, 0, 0.5); }
-
-.custom-radio .custom-control-label::before {
- border-radius: 50%; }
-
-.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); }
-
-.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
- background-color: rgba(155, 175, 0, 0.5); }
-
-.custom-switch {
- padding-left: 2.25rem; }
- .custom-switch .custom-control-label::before {
- left: -2.25rem;
- width: 1.75rem;
- pointer-events: all;
- border-radius: 0.5rem; }
- .custom-switch .custom-control-label::after {
- top: calc(0.25rem + 2px);
- left: calc(-2.25rem + 2px);
- width: calc(1rem - 4px);
- height: calc(1rem - 4px);
- background-color: #adb5bd;
- border-radius: 0.5rem;
- transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
- @media screen and (prefers-reduced-motion: reduce) {
- .custom-switch .custom-control-label::after {
- transition: none; } }
- .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
- background-color: #fff;
- transform: translateX(0.75rem); }
- .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
- background-color: rgba(155, 175, 0, 0.5); }
-
-.custom-select {
- display: inline-block;
- width: 100%;
- height: calc(2.25rem + 2px);
- padding: 0.375rem 1.75rem 0.375rem 0.75rem;
- font-weight: 400;
- line-height: 1.5;
- color: #495057;
- vertical-align: middle;
- background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
- background-color: #fff;
- border: 1px solid #ced4da;
- border-radius: 0.25rem;
- appearance: none; }
- .custom-select:focus {
- border-color: #e7ff30;
- outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(231, 255, 48, 0.5); }
- .custom-select:focus::-ms-value {
- color: #495057;
- background-color: #fff; }
- .custom-select[multiple], .custom-select[size]:not([size="1"]) {
- height: auto;
- padding-right: 0.75rem;
- background-image: none; }
- .custom-select:disabled {
- color: #6c757d;
- background-color: #e9ecef; }
- .custom-select::-ms-expand {
- opacity: 0; }
-
-.custom-select-sm {
- height: calc(1.8125rem + 2px);
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
- padding-left: 0.5rem;
- font-size: 0.875rem; }
-
-.custom-select-lg {
- height: calc(2.875rem + 2px);
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
- padding-left: 1rem;
- font-size: 1.25rem; }
-
-.custom-file {
- position: relative;
- display: inline-block;
- width: 100%;
- height: calc(2.25rem + 2px);
- margin-bottom: 0; }
-
-.custom-file-input {
- position: relative;
- z-index: 2;
- width: 100%;
- height: calc(2.25rem + 2px);
- margin: 0;
- opacity: 0; }
- .custom-file-input:focus ~ .custom-file-label {
- border-color: #e7ff30;
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .custom-file-input:disabled ~ .custom-file-label {
- background-color: #e9ecef; }
- .custom-file-input:lang(en) ~ .custom-file-label::after {
- content: "Browse"; }
- .custom-file-input ~ .custom-file-label[data-browse]::after {
- content: attr(data-browse); }
-
-.custom-file-label {
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- z-index: 1;
- height: calc(2.25rem + 2px);
- padding: 0.375rem 0.75rem;
- font-weight: 400;
- line-height: 1.5;
- color: #495057;
- background-color: #fff;
- border: 1px solid #ced4da;
- border-radius: 0.25rem; }
- .custom-file-label::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- z-index: 3;
- display: block;
- height: 2.25rem;
- padding: 0.375rem 0.75rem;
- line-height: 1.5;
- color: #495057;
- content: "Browse";
- background-color: #e9ecef;
- border-left: inherit;
- border-radius: 0 0.25rem 0.25rem 0; }
-
-.custom-range {
- width: 100%;
- height: calc(1rem + 0.4rem);
- padding: 0;
- background-color: transparent;
- appearance: none; }
- .custom-range:focus {
- outline: none; }
- .custom-range:focus::-webkit-slider-thumb {
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .custom-range:focus::-moz-range-thumb {
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .custom-range:focus::-ms-thumb {
- box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .custom-range::-moz-focus-outer {
- border: 0; }
- .custom-range::-webkit-slider-thumb {
- width: 1rem;
- height: 1rem;
- margin-top: -0.25rem;
- background-color: #9BAF00;
- border: 0;
- border-radius: 1rem;
- transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
- appearance: none; }
- @media screen and (prefers-reduced-motion: reduce) {
- .custom-range::-webkit-slider-thumb {
- transition: none; } }
- .custom-range::-webkit-slider-thumb:active {
- background-color: #edff63; }
- .custom-range::-webkit-slider-runnable-track {
- width: 100%;
- height: 0.5rem;
- color: transparent;
- cursor: pointer;
- background-color: #dee2e6;
- border-color: transparent;
- border-radius: 1rem; }
- .custom-range::-moz-range-thumb {
- width: 1rem;
- height: 1rem;
- background-color: #9BAF00;
- border: 0;
- border-radius: 1rem;
- transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
- appearance: none; }
- @media screen and (prefers-reduced-motion: reduce) {
- .custom-range::-moz-range-thumb {
- transition: none; } }
- .custom-range::-moz-range-thumb:active {
- background-color: #edff63; }
- .custom-range::-moz-range-track {
- width: 100%;
- height: 0.5rem;
- color: transparent;
- cursor: pointer;
- background-color: #dee2e6;
- border-color: transparent;
- border-radius: 1rem; }
- .custom-range::-ms-thumb {
- width: 1rem;
- height: 1rem;
- margin-top: 0;
- margin-right: 0.2rem;
- margin-left: 0.2rem;
- background-color: #9BAF00;
- border: 0;
- border-radius: 1rem;
- transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
- appearance: none; }
- @media screen and (prefers-reduced-motion: reduce) {
- .custom-range::-ms-thumb {
- transition: none; } }
- .custom-range::-ms-thumb:active {
- background-color: #edff63; }
- .custom-range::-ms-track {
- width: 100%;
- height: 0.5rem;
- color: transparent;
- cursor: pointer;
- background-color: transparent;
- border-color: transparent;
- border-width: 0.5rem; }
- .custom-range::-ms-fill-lower {
- background-color: #dee2e6;
- border-radius: 1rem; }
- .custom-range::-ms-fill-upper {
- margin-right: 15px;
- background-color: #dee2e6;
- border-radius: 1rem; }
- .custom-range:disabled::-webkit-slider-thumb {
- background-color: #adb5bd; }
- .custom-range:disabled::-webkit-slider-runnable-track {
- cursor: default; }
- .custom-range:disabled::-moz-range-thumb {
- background-color: #adb5bd; }
- .custom-range:disabled::-moz-range-track {
- cursor: default; }
- .custom-range:disabled::-ms-thumb {
- background-color: #adb5bd; }
-
-.custom-control-label::before,
-.custom-file-label,
-.custom-select {
- transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
- @media screen and (prefers-reduced-motion: reduce) {
- .custom-control-label::before,
- .custom-file-label,
- .custom-select {
- transition: none; } }
-
-.nav {
- display: flex;
- flex-wrap: wrap;
- padding-left: 0;
- margin-bottom: 0;
- list-style: none; }
-
-.nav-link {
- display: block;
- padding: 0.5rem 1rem; }
- .nav-link:hover, .nav-link:focus {
- text-decoration: none; }
- .nav-link.disabled {
- color: #6c757d;
- pointer-events: none;
- cursor: default; }
-
-.nav-tabs {
- border-bottom: 1px solid #dee2e6; }
- .nav-tabs .nav-item {
- margin-bottom: -1px; }
- .nav-tabs .nav-link {
- border: 1px solid transparent;
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem; }
- .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
- border-color: #e9ecef #e9ecef #dee2e6; }
- .nav-tabs .nav-link.disabled {
- color: #6c757d;
- background-color: transparent;
- border-color: transparent; }
- .nav-tabs .nav-link.active,
- .nav-tabs .nav-item.show .nav-link {
- color: #495057;
- background-color: #fff;
- border-color: #dee2e6 #dee2e6 #fff; }
- .nav-tabs .dropdown-menu {
- margin-top: -1px;
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
-
-.nav-pills .nav-link {
- border-radius: 0.25rem; }
-
-.nav-pills .nav-link.active,
-.nav-pills .show > .nav-link {
- color: #fff;
- background-color: #9BAF00; }
-
-.nav-fill .nav-item {
- flex: 1 1 auto;
- text-align: center; }
-
-.nav-justified .nav-item {
- flex-basis: 0;
- flex-grow: 1;
- text-align: center; }
-
-.tab-content > .tab-pane {
- display: none; }
-
-.tab-content > .active {
- display: block; }
-
-.navbar {
- position: relative;
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between;
- padding: 0.5rem 1rem; }
- .navbar > .container,
- .navbar > .container-fluid {
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between; }
-
-.navbar-brand {
- display: inline-block;
- padding-top: 0.3125rem;
- padding-bottom: 0.3125rem;
- margin-right: 1rem;
- font-size: 1.25rem;
- line-height: inherit;
- white-space: nowrap; }
- .navbar-brand:hover, .navbar-brand:focus {
- text-decoration: none; }
-
-.navbar-nav {
- display: flex;
- flex-direction: column;
- padding-left: 0;
+.navbar-nav {
+ --bs-nav-link-padding-x: 0;
+ --bs-nav-link-padding-y: 0.5rem;
+ --bs-nav-link-font-weight: ;
+ --bs-nav-link-color: var(--bs-navbar-color);
+ --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
+ --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
margin-bottom: 0;
list-style: none; }
- .navbar-nav .nav-link {
- padding-right: 0;
- padding-left: 0; }
+ .navbar-nav .show > .nav-link,
+ .navbar-nav .nav-link.active {
+ color: var(--bs-navbar-active-color); }
.navbar-nav .dropdown-menu {
- position: static;
- float: none; }
+ position: static; }
.navbar-text {
- display: inline-block;
padding-top: 0.5rem;
- padding-bottom: 0.5rem; }
+ padding-bottom: 0.5rem;
+ color: var(--bs-navbar-color); }
+ .navbar-text a,
+ .navbar-text a:hover,
+ .navbar-text a:focus {
+ color: var(--bs-navbar-active-color); }
.navbar-collapse {
flex-basis: 100%;
@@ -3017,284 +3069,362 @@ input[type="button"].btn-block {
align-items: center; }
.navbar-toggler {
- padding: 0.25rem 0.75rem;
- font-size: 1.25rem;
+ padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
+ font-size: var(--bs-navbar-toggler-font-size);
line-height: 1;
+ color: var(--bs-navbar-color);
background-color: transparent;
- border: 1px solid transparent;
- border-radius: 0.25rem; }
- .navbar-toggler:hover, .navbar-toggler:focus {
+ border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
+ border-radius: var(--bs-navbar-toggler-border-radius);
+ transition: var(--bs-navbar-toggler-transition); }
+ @media (prefers-reduced-motion: reduce) {
+ .navbar-toggler {
+ transition: none; } }
+ .navbar-toggler:hover {
text-decoration: none; }
- .navbar-toggler:not(:disabled):not(.disabled) {
- cursor: pointer; }
+ .navbar-toggler:focus {
+ text-decoration: none;
+ outline: 0;
+ box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); }
.navbar-toggler-icon {
display: inline-block;
width: 1.5em;
height: 1.5em;
vertical-align: middle;
- content: "";
- background: no-repeat center center;
- background-size: 100% 100%; }
+ background-image: var(--bs-navbar-toggler-icon-bg);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%; }
-@media (max-width: 575.98px) {
- .navbar-expand-sm > .container,
- .navbar-expand-sm > .container-fluid {
- padding-right: 0;
- padding-left: 0; } }
+.navbar-nav-scroll {
+ max-height: var(--bs-scroll-height, 75vh);
+ overflow-y: auto; }
@media (min-width: 576px) {
.navbar-expand-sm {
- flex-flow: row nowrap;
+ flex-wrap: nowrap;
justify-content: flex-start; }
.navbar-expand-sm .navbar-nav {
flex-direction: row; }
.navbar-expand-sm .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-sm .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem; }
- .navbar-expand-sm > .container,
- .navbar-expand-sm > .container-fluid {
- flex-wrap: nowrap; }
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x); }
+ .navbar-expand-sm .navbar-nav-scroll {
+ overflow: visible; }
.navbar-expand-sm .navbar-collapse {
display: flex !important;
flex-basis: auto; }
.navbar-expand-sm .navbar-toggler {
- display: none; } }
-
-@media (max-width: 767.98px) {
- .navbar-expand-md > .container,
- .navbar-expand-md > .container-fluid {
- padding-right: 0;
- padding-left: 0; } }
+ display: none; }
+ .navbar-expand-sm .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none; }
+ .navbar-expand-sm .offcanvas .offcanvas-header {
+ display: none; }
+ .navbar-expand-sm .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible; } }
@media (min-width: 768px) {
.navbar-expand-md {
- flex-flow: row nowrap;
+ flex-wrap: nowrap;
justify-content: flex-start; }
.navbar-expand-md .navbar-nav {
flex-direction: row; }
.navbar-expand-md .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-md .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem; }
- .navbar-expand-md > .container,
- .navbar-expand-md > .container-fluid {
- flex-wrap: nowrap; }
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x); }
+ .navbar-expand-md .navbar-nav-scroll {
+ overflow: visible; }
.navbar-expand-md .navbar-collapse {
display: flex !important;
flex-basis: auto; }
.navbar-expand-md .navbar-toggler {
- display: none; } }
-
-@media (max-width: 991.98px) {
- .navbar-expand-lg > .container,
- .navbar-expand-lg > .container-fluid {
- padding-right: 0;
- padding-left: 0; } }
+ display: none; }
+ .navbar-expand-md .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none; }
+ .navbar-expand-md .offcanvas .offcanvas-header {
+ display: none; }
+ .navbar-expand-md .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible; } }
@media (min-width: 992px) {
.navbar-expand-lg {
- flex-flow: row nowrap;
+ flex-wrap: nowrap;
justify-content: flex-start; }
.navbar-expand-lg .navbar-nav {
flex-direction: row; }
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-lg .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem; }
- .navbar-expand-lg > .container,
- .navbar-expand-lg > .container-fluid {
- flex-wrap: nowrap; }
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x); }
+ .navbar-expand-lg .navbar-nav-scroll {
+ overflow: visible; }
.navbar-expand-lg .navbar-collapse {
display: flex !important;
flex-basis: auto; }
.navbar-expand-lg .navbar-toggler {
- display: none; } }
-
-@media (max-width: 1199.98px) {
- .navbar-expand-xl > .container,
- .navbar-expand-xl > .container-fluid {
- padding-right: 0;
- padding-left: 0; } }
+ display: none; }
+ .navbar-expand-lg .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none; }
+ .navbar-expand-lg .offcanvas .offcanvas-header {
+ display: none; }
+ .navbar-expand-lg .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible; } }
@media (min-width: 1200px) {
.navbar-expand-xl {
- flex-flow: row nowrap;
+ flex-wrap: nowrap;
justify-content: flex-start; }
.navbar-expand-xl .navbar-nav {
flex-direction: row; }
.navbar-expand-xl .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand-xl .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem; }
- .navbar-expand-xl > .container,
- .navbar-expand-xl > .container-fluid {
- flex-wrap: nowrap; }
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x); }
+ .navbar-expand-xl .navbar-nav-scroll {
+ overflow: visible; }
.navbar-expand-xl .navbar-collapse {
display: flex !important;
flex-basis: auto; }
.navbar-expand-xl .navbar-toggler {
- display: none; } }
+ display: none; }
+ .navbar-expand-xl .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none; }
+ .navbar-expand-xl .offcanvas .offcanvas-header {
+ display: none; }
+ .navbar-expand-xl .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible; } }
+
+@media (min-width: 1400px) {
+ .navbar-expand-xxl {
+ flex-wrap: nowrap;
+ justify-content: flex-start; }
+ .navbar-expand-xxl .navbar-nav {
+ flex-direction: row; }
+ .navbar-expand-xxl .navbar-nav .dropdown-menu {
+ position: absolute; }
+ .navbar-expand-xxl .navbar-nav .nav-link {
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x); }
+ .navbar-expand-xxl .navbar-nav-scroll {
+ overflow: visible; }
+ .navbar-expand-xxl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto; }
+ .navbar-expand-xxl .navbar-toggler {
+ display: none; }
+ .navbar-expand-xxl .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none; }
+ .navbar-expand-xxl .offcanvas .offcanvas-header {
+ display: none; }
+ .navbar-expand-xxl .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible; } }
.navbar-expand {
- flex-flow: row nowrap;
+ flex-wrap: nowrap;
justify-content: flex-start; }
- .navbar-expand > .container,
- .navbar-expand > .container-fluid {
- padding-right: 0;
- padding-left: 0; }
.navbar-expand .navbar-nav {
flex-direction: row; }
.navbar-expand .navbar-nav .dropdown-menu {
position: absolute; }
.navbar-expand .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem; }
- .navbar-expand > .container,
- .navbar-expand > .container-fluid {
- flex-wrap: nowrap; }
+ padding-right: var(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x); }
+ .navbar-expand .navbar-nav-scroll {
+ overflow: visible; }
.navbar-expand .navbar-collapse {
display: flex !important;
flex-basis: auto; }
.navbar-expand .navbar-toggler {
display: none; }
-
-.navbar-light .navbar-brand {
- color: rgba(0, 0, 0, 0.9); }
- .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
- color: rgba(0, 0, 0, 0.9); }
-
-.navbar-light .navbar-nav .nav-link {
- color: rgba(0, 0, 0, 0.5); }
- .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
- color: rgba(0, 0, 0, 0.7); }
- .navbar-light .navbar-nav .nav-link.disabled {
- color: rgba(0, 0, 0, 0.3); }
-
-.navbar-light .navbar-nav .show > .nav-link,
-.navbar-light .navbar-nav .active > .nav-link,
-.navbar-light .navbar-nav .nav-link.show,
-.navbar-light .navbar-nav .nav-link.active {
- color: rgba(0, 0, 0, 0.9); }
-
-.navbar-light .navbar-toggler {
- color: rgba(0, 0, 0, 0.5);
- border-color: rgba(0, 0, 0, 0.1); }
-
-.navbar-light .navbar-toggler-icon {
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
-
-.navbar-light .navbar-text {
- color: rgba(0, 0, 0, 0.5); }
- .navbar-light .navbar-text a {
- color: rgba(0, 0, 0, 0.9); }
- .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
- color: rgba(0, 0, 0, 0.9); }
-
-.navbar-dark .navbar-brand {
- color: #fff; }
- .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
- color: #fff; }
-
-.navbar-dark .navbar-nav .nav-link {
- color: rgba(255, 255, 255, 0.5); }
- .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
- color: rgba(255, 255, 255, 0.75); }
- .navbar-dark .navbar-nav .nav-link.disabled {
- color: rgba(255, 255, 255, 0.25); }
-
-.navbar-dark .navbar-nav .show > .nav-link,
-.navbar-dark .navbar-nav .active > .nav-link,
-.navbar-dark .navbar-nav .nav-link.show,
-.navbar-dark .navbar-nav .nav-link.active {
- color: #fff; }
-
-.navbar-dark .navbar-toggler {
- color: rgba(255, 255, 255, 0.5);
- border-color: rgba(255, 255, 255, 0.1); }
-
-.navbar-dark .navbar-toggler-icon {
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
-
-.navbar-dark .navbar-text {
- color: rgba(255, 255, 255, 0.5); }
- .navbar-dark .navbar-text a {
- color: #fff; }
- .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
- color: #fff; }
+ .navbar-expand .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ transition: none; }
+ .navbar-expand .offcanvas .offcanvas-header {
+ display: none; }
+ .navbar-expand .offcanvas .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible; }
+
+.navbar-dark {
+ --bs-navbar-color: rgba(255, 255, 255, 0.55);
+ --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
+ --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
+ --bs-navbar-active-color: #fff;
+ --bs-navbar-brand-color: #fff;
+ --bs-navbar-brand-hover-color: #fff;
+ --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
+ --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
.card {
+ --bs-card-spacer-y: 1rem;
+ --bs-card-spacer-x: 1rem;
+ --bs-card-title-spacer-y: 0.5rem;
+ --bs-card-border-width: 1px;
+ --bs-card-border-color: var(--bs-border-color-translucent);
+ --bs-card-border-radius: 0.375rem;
+ --bs-card-box-shadow: ;
+ --bs-card-inner-border-radius: calc(0.375rem - 1px);
+ --bs-card-cap-padding-y: 0.5rem;
+ --bs-card-cap-padding-x: 1rem;
+ --bs-card-cap-bg: rgba(0, 0, 0, 0.03);
+ --bs-card-cap-color: ;
+ --bs-card-height: ;
+ --bs-card-color: ;
+ --bs-card-bg: #fff;
+ --bs-card-img-overlay-padding: 1rem;
+ --bs-card-group-margin: 0.75rem;
position: relative;
display: flex;
flex-direction: column;
min-width: 0;
+ height: var(--bs-card-height);
word-wrap: break-word;
- background-color: #fff;
+ background-color: var(--bs-card-bg);
background-clip: border-box;
- border: 1px solid rgba(0, 0, 0, 0.125);
- border-radius: 0.25rem; }
+ border: var(--bs-card-border-width) solid var(--bs-card-border-color);
+ border-radius: var(--bs-card-border-radius); }
.card > hr {
margin-right: 0;
margin-left: 0; }
- .card > .list-group:first-child .list-group-item:first-child {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem; }
- .card > .list-group:last-child .list-group-item:last-child {
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem; }
+ .card > .list-group {
+ border-top: inherit;
+ border-bottom: inherit; }
+ .card > .list-group:first-child {
+ border-top-width: 0;
+ border-top-left-radius: var(--bs-card-inner-border-radius);
+ border-top-right-radius: var(--bs-card-inner-border-radius); }
+ .card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: var(--bs-card-inner-border-radius);
+ border-bottom-left-radius: var(--bs-card-inner-border-radius); }
+ .card > .card-header + .list-group,
+ .card > .list-group + .card-footer {
+ border-top: 0; }
.card-body {
flex: 1 1 auto;
- padding: 1.25rem; }
+ padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
+ color: var(--bs-card-color); }
.card-title {
- margin-bottom: 0.75rem; }
+ margin-bottom: var(--bs-card-title-spacer-y); }
.card-subtitle {
- margin-top: -0.375rem;
+ margin-top: calc(-.5 * var(--bs-card-title-spacer-y));
margin-bottom: 0; }
.card-text:last-child {
margin-bottom: 0; }
-.card-link:hover {
- text-decoration: none; }
-
.card-link + .card-link {
- margin-left: 1.25rem; }
+ margin-left: var(--bs-card-spacer-x); }
.card-header {
- padding: 0.75rem 1.25rem;
+ padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
margin-bottom: 0;
- color: inherit;
- background-color: rgba(0, 0, 0, 0.03);
- border-bottom: 1px solid rgba(0, 0, 0, 0.125); }
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); }
.card-header:first-child {
- border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }
- .card-header + .list-group .list-group-item:first-child {
- border-top: 0; }
+ border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; }
.card-footer {
- padding: 0.75rem 1.25rem;
- background-color: rgba(0, 0, 0, 0.03);
- border-top: 1px solid rgba(0, 0, 0, 0.125); }
+ padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); }
.card-footer:last-child {
- border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }
+ border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); }
.card-header-tabs {
- margin-right: -0.625rem;
- margin-bottom: -0.75rem;
- margin-left: -0.625rem;
+ margin-right: calc(-.5 * var(--bs-card-cap-padding-x));
+ margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
+ margin-left: calc(-.5 * var(--bs-card-cap-padding-x));
border-bottom: 0; }
+ .card-header-tabs .nav-link.active {
+ background-color: var(--bs-card-bg);
+ border-bottom-color: var(--bs-card-bg); }
.card-header-pills {
- margin-right: -0.625rem;
- margin-left: -0.625rem; }
+ margin-right: calc(-.5 * var(--bs-card-cap-padding-x));
+ margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); }
.card-img-overlay {
position: absolute;
@@ -3302,234 +3432,296 @@ input[type="button"].btn-block {
right: 0;
bottom: 0;
left: 0;
- padding: 1.25rem; }
+ padding: var(--bs-card-img-overlay-padding);
+ border-radius: var(--bs-card-inner-border-radius); }
-.card-img {
- width: 100%;
- border-radius: calc(0.25rem - 1px); }
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%; }
+.card-img,
.card-img-top {
- width: 100%;
- border-top-left-radius: calc(0.25rem - 1px);
- border-top-right-radius: calc(0.25rem - 1px); }
+ border-top-left-radius: var(--bs-card-inner-border-radius);
+ border-top-right-radius: var(--bs-card-inner-border-radius); }
+.card-img,
.card-img-bottom {
- width: 100%;
- border-bottom-right-radius: calc(0.25rem - 1px);
- border-bottom-left-radius: calc(0.25rem - 1px); }
+ border-bottom-right-radius: var(--bs-card-inner-border-radius);
+ border-bottom-left-radius: var(--bs-card-inner-border-radius); }
-.card-deck {
- display: flex;
- flex-direction: column; }
- .card-deck .card {
- margin-bottom: 15px; }
- @media (min-width: 576px) {
- .card-deck {
- flex-flow: row wrap;
- margin-right: -15px;
- margin-left: -15px; }
- .card-deck .card {
- display: flex;
- flex: 1 0 0%;
- flex-direction: column;
- margin-right: 15px;
- margin-bottom: 0;
- margin-left: 15px; } }
+.card-group > .card {
+ margin-bottom: var(--bs-card-group-margin); }
-.card-group {
- display: flex;
- flex-direction: column; }
- .card-group > .card {
- margin-bottom: 15px; }
- @media (min-width: 576px) {
- .card-group {
- flex-flow: row wrap; }
- .card-group > .card {
- flex: 1 0 0%;
- margin-bottom: 0; }
- .card-group > .card + .card {
- margin-left: 0;
- border-left: 0; }
- .card-group > .card:first-child {
- border-top-right-radius: 0;
+@media (min-width: 576px) {
+ .card-group {
+ display: flex;
+ flex-flow: row wrap; }
+ .card-group > .card {
+ flex: 1 0 0%;
+ margin-bottom: 0; }
+ .card-group > .card + .card {
+ margin-left: 0;
+ border-left: 0; }
+ .card-group > .card:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0; }
+ .card-group > .card:not(:last-child) .card-img-top,
+ .card-group > .card:not(:last-child) .card-header {
+ border-top-right-radius: 0; }
+ .card-group > .card:not(:last-child) .card-img-bottom,
+ .card-group > .card:not(:last-child) .card-footer {
border-bottom-right-radius: 0; }
- .card-group > .card:first-child .card-img-top,
- .card-group > .card:first-child .card-header {
- border-top-right-radius: 0; }
- .card-group > .card:first-child .card-img-bottom,
- .card-group > .card:first-child .card-footer {
- border-bottom-right-radius: 0; }
- .card-group > .card:last-child {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0; }
- .card-group > .card:last-child .card-img-top,
- .card-group > .card:last-child .card-header {
- border-top-left-radius: 0; }
- .card-group > .card:last-child .card-img-bottom,
- .card-group > .card:last-child .card-footer {
- border-bottom-left-radius: 0; }
- .card-group > .card:only-child {
- border-radius: 0.25rem; }
- .card-group > .card:only-child .card-img-top,
- .card-group > .card:only-child .card-header {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem; }
- .card-group > .card:only-child .card-img-bottom,
- .card-group > .card:only-child .card-footer {
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem; }
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
- border-radius: 0; }
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
- .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
- border-radius: 0; } }
-
-.card-columns .card {
- margin-bottom: 0.75rem; }
+ .card-group > .card:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0; }
+ .card-group > .card:not(:first-child) .card-img-top,
+ .card-group > .card:not(:first-child) .card-header {
+ border-top-left-radius: 0; }
+ .card-group > .card:not(:first-child) .card-img-bottom,
+ .card-group > .card:not(:first-child) .card-footer {
+ border-bottom-left-radius: 0; } }
+
+.accordion {
+ --bs-accordion-color: #212529;
+ --bs-accordion-bg: #fff;
+ --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
+ --bs-accordion-border-color: var(--bs-border-color);
+ --bs-accordion-border-width: 1px;
+ --bs-accordion-border-radius: 0.375rem;
+ --bs-accordion-inner-border-radius: calc(0.375rem - 1px);
+ --bs-accordion-btn-padding-x: 1.25rem;
+ --bs-accordion-btn-padding-y: 1rem;
+ --bs-accordion-btn-color: #212529;
+ --bs-accordion-btn-bg: var(--bs-accordion-bg);
+ --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ --bs-accordion-btn-icon-width: 1.25rem;
+ --bs-accordion-btn-icon-transform: rotate(-180deg);
+ --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
+ --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23647100'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ --bs-accordion-btn-focus-border-color: #b7bf80;
+ --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(111, 126, 0, 0.25);
+ --bs-accordion-body-padding-x: 1.25rem;
+ --bs-accordion-body-padding-y: 1rem;
+ --bs-accordion-active-color: #647100;
+ --bs-accordion-active-bg: #f1f2e6; }
+
+.accordion-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
+ font-size: 1rem;
+ color: var(--bs-accordion-btn-color);
+ text-align: left;
+ background-color: var(--bs-accordion-btn-bg);
+ border: 0;
+ border-radius: 0;
+ overflow-anchor: none;
+ transition: var(--bs-accordion-transition); }
+ @media (prefers-reduced-motion: reduce) {
+ .accordion-button {
+ transition: none; } }
+ .accordion-button:not(.collapsed) {
+ color: var(--bs-accordion-active-color);
+ background-color: var(--bs-accordion-active-bg);
+ box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); }
+ .accordion-button:not(.collapsed)::after {
+ background-image: var(--bs-accordion-btn-active-icon);
+ transform: var(--bs-accordion-btn-icon-transform); }
+ .accordion-button::after {
+ flex-shrink: 0;
+ width: var(--bs-accordion-btn-icon-width);
+ height: var(--bs-accordion-btn-icon-width);
+ margin-left: auto;
+ content: "";
+ background-image: var(--bs-accordion-btn-icon);
+ background-repeat: no-repeat;
+ background-size: var(--bs-accordion-btn-icon-width);
+ transition: var(--bs-accordion-btn-icon-transition); }
+ @media (prefers-reduced-motion: reduce) {
+ .accordion-button::after {
+ transition: none; } }
+ .accordion-button:hover {
+ z-index: 2; }
+ .accordion-button:focus {
+ z-index: 3;
+ border-color: var(--bs-accordion-btn-focus-border-color);
+ outline: 0;
+ box-shadow: var(--bs-accordion-btn-focus-box-shadow); }
-@media (min-width: 576px) {
- .card-columns {
- column-count: 3;
- column-gap: 1.25rem;
- orphans: 1;
- widows: 1; }
- .card-columns .card {
- display: inline-block;
- width: 100%; } }
-
-.accordion .card {
- overflow: hidden; }
- .accordion .card:not(:first-of-type) .card-header:first-child {
- border-radius: 0; }
- .accordion .card:not(:first-of-type):not(:last-of-type) {
- border-bottom: 0;
+.accordion-header {
+ margin-bottom: 0; }
+
+.accordion-item {
+ color: var(--bs-accordion-color);
+ background-color: var(--bs-accordion-bg);
+ border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); }
+ .accordion-item:first-of-type {
+ border-top-left-radius: var(--bs-accordion-border-radius);
+ border-top-right-radius: var(--bs-accordion-border-radius); }
+ .accordion-item:first-of-type .accordion-button {
+ border-top-left-radius: var(--bs-accordion-inner-border-radius);
+ border-top-right-radius: var(--bs-accordion-inner-border-radius); }
+ .accordion-item:not(:first-of-type) {
+ border-top: 0; }
+ .accordion-item:last-of-type {
+ border-bottom-right-radius: var(--bs-accordion-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-border-radius); }
+ .accordion-item:last-of-type .accordion-button.collapsed {
+ border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-inner-border-radius); }
+ .accordion-item:last-of-type .accordion-collapse {
+ border-bottom-right-radius: var(--bs-accordion-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-border-radius); }
+
+.accordion-body {
+ padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); }
+
+.accordion-flush .accordion-collapse {
+ border-width: 0; }
+
+.accordion-flush .accordion-item {
+ border-right: 0;
+ border-left: 0;
+ border-radius: 0; }
+ .accordion-flush .accordion-item:first-child {
+ border-top: 0; }
+ .accordion-flush .accordion-item:last-child {
+ border-bottom: 0; }
+ .accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
border-radius: 0; }
- .accordion .card:first-of-type {
- border-bottom: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0; }
- .accordion .card:last-of-type {
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
- .accordion .card .card-header {
- margin-bottom: -1px; }
.breadcrumb {
+ --bs-breadcrumb-padding-x: 0;
+ --bs-breadcrumb-padding-y: 0;
+ --bs-breadcrumb-margin-bottom: 1rem;
+ --bs-breadcrumb-bg: ;
+ --bs-breadcrumb-border-radius: ;
+ --bs-breadcrumb-divider-color: #6c757d;
+ --bs-breadcrumb-item-padding-x: 0.5rem;
+ --bs-breadcrumb-item-active-color: #6c757d;
display: flex;
flex-wrap: wrap;
- padding: 0.75rem 1rem;
- margin-bottom: 1rem;
+ padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
+ margin-bottom: var(--bs-breadcrumb-margin-bottom);
+ font-size: var(--bs-breadcrumb-font-size);
list-style: none;
- background-color: #e9ecef;
- border-radius: 0.25rem; }
+ background-color: var(--bs-breadcrumb-bg);
+ border-radius: var(--bs-breadcrumb-border-radius); }
.breadcrumb-item + .breadcrumb-item {
- padding-left: 0.5rem; }
+ padding-left: var(--bs-breadcrumb-item-padding-x); }
.breadcrumb-item + .breadcrumb-item::before {
- display: inline-block;
- padding-right: 0.5rem;
- color: #6c757d;
- content: "/"; }
-
-.breadcrumb-item + .breadcrumb-item:hover::before {
- text-decoration: underline; }
-
-.breadcrumb-item + .breadcrumb-item:hover::before {
- text-decoration: none; }
+ float: left;
+ padding-right: var(--bs-breadcrumb-item-padding-x);
+ color: var(--bs-breadcrumb-divider-color);
+ content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; }
.breadcrumb-item.active {
- color: #6c757d; }
+ color: var(--bs-breadcrumb-item-active-color); }
.pagination {
+ --bs-pagination-padding-x: 0.75rem;
+ --bs-pagination-padding-y: 0.375rem;
+ --bs-pagination-font-size: 1rem;
+ --bs-pagination-color: var(--bs-link-color);
+ --bs-pagination-bg: #fff;
+ --bs-pagination-border-width: 1px;
+ --bs-pagination-border-color: #dee2e6;
+ --bs-pagination-border-radius: 0.375rem;
+ --bs-pagination-hover-color: var(--bs-link-hover-color);
+ --bs-pagination-hover-bg: #e9ecef;
+ --bs-pagination-hover-border-color: #dee2e6;
+ --bs-pagination-focus-color: var(--bs-link-hover-color);
+ --bs-pagination-focus-bg: #e9ecef;
+ --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(111, 126, 0, 0.25);
+ --bs-pagination-active-color: #fff;
+ --bs-pagination-active-bg: #6f7e00;
+ --bs-pagination-active-border-color: #6f7e00;
+ --bs-pagination-disabled-color: #6c757d;
+ --bs-pagination-disabled-bg: #fff;
+ --bs-pagination-disabled-border-color: #dee2e6;
display: flex;
padding-left: 0;
- list-style: none;
- border-radius: 0.25rem; }
+ list-style: none; }
.page-link {
position: relative;
display: block;
- padding: 0.5rem 0.75rem;
- margin-left: -1px;
- line-height: 1.25;
- color: #9BAF00;
- background-color: #fff;
- border: 1px solid #dee2e6; }
+ padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
+ font-size: var(--bs-pagination-font-size);
+ color: var(--bs-pagination-color);
+ text-decoration: none;
+ background-color: var(--bs-pagination-bg);
+ border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .page-link {
+ transition: none; } }
.page-link:hover {
z-index: 2;
- color: #576300;
- text-decoration: none;
- background-color: #e9ecef;
- border-color: #dee2e6; }
+ color: var(--bs-pagination-hover-color);
+ background-color: var(--bs-pagination-hover-bg);
+ border-color: var(--bs-pagination-hover-border-color); }
.page-link:focus {
- z-index: 2;
+ z-index: 3;
+ color: var(--bs-pagination-focus-color);
+ background-color: var(--bs-pagination-focus-bg);
outline: 0;
- box-shadow: 0 0 0 0.2rem rgba(155, 175, 0, 0.25); }
- .page-link:not(:disabled):not(.disabled) {
- cursor: pointer; }
+ box-shadow: var(--bs-pagination-focus-box-shadow); }
+ .page-link.active, .active > .page-link {
+ z-index: 3;
+ color: var(--bs-pagination-active-color);
+ background-color: var(--bs-pagination-active-bg);
+ border-color: var(--bs-pagination-active-border-color); }
+ .page-link.disabled, .disabled > .page-link {
+ color: var(--bs-pagination-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-pagination-disabled-bg);
+ border-color: var(--bs-pagination-disabled-border-color); }
+
+.page-item:not(:first-child) .page-link {
+ margin-left: -1px; }
.page-item:first-child .page-link {
- margin-left: 0;
- border-top-left-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem; }
+ border-top-left-radius: var(--bs-pagination-border-radius);
+ border-bottom-left-radius: var(--bs-pagination-border-radius); }
.page-item:last-child .page-link {
- border-top-right-radius: 0.25rem;
- border-bottom-right-radius: 0.25rem; }
-
-.page-item.active .page-link {
- z-index: 1;
- color: #fff;
- background-color: #9BAF00;
- border-color: #9BAF00; }
-
-.page-item.disabled .page-link {
- color: #6c757d;
- pointer-events: none;
- cursor: auto;
- background-color: #fff;
- border-color: #dee2e6; }
-
-.pagination-lg .page-link {
- padding: 0.75rem 1.5rem;
- font-size: 1.25rem;
- line-height: 1.5; }
-
-.pagination-lg .page-item:first-child .page-link {
- border-top-left-radius: 0.3rem;
- border-bottom-left-radius: 0.3rem; }
-
-.pagination-lg .page-item:last-child .page-link {
- border-top-right-radius: 0.3rem;
- border-bottom-right-radius: 0.3rem; }
-
-.pagination-sm .page-link {
- padding: 0.25rem 0.5rem;
- font-size: 0.875rem;
- line-height: 1.5; }
+ border-top-right-radius: var(--bs-pagination-border-radius);
+ border-bottom-right-radius: var(--bs-pagination-border-radius); }
-.pagination-sm .page-item:first-child .page-link {
- border-top-left-radius: 0.2rem;
- border-bottom-left-radius: 0.2rem; }
+.pagination-lg {
+ --bs-pagination-padding-x: 1.5rem;
+ --bs-pagination-padding-y: 0.75rem;
+ --bs-pagination-font-size: 1.25rem;
+ --bs-pagination-border-radius: 0.5rem; }
-.pagination-sm .page-item:last-child .page-link {
- border-top-right-radius: 0.2rem;
- border-bottom-right-radius: 0.2rem; }
+.pagination-sm {
+ --bs-pagination-padding-x: 0.5rem;
+ --bs-pagination-padding-y: 0.25rem;
+ --bs-pagination-font-size: 0.875rem;
+ --bs-pagination-border-radius: 0.25rem; }
.badge {
+ --bs-badge-padding-x: 0.65em;
+ --bs-badge-padding-y: 0.35em;
+ --bs-badge-font-size: 0.75em;
+ --bs-badge-font-weight: 700;
+ --bs-badge-color: #fff;
+ --bs-badge-border-radius: 0.375rem;
display: inline-block;
- padding: 0.25em 0.4em;
- font-size: 75%;
- font-weight: 700;
+ padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
+ font-size: var(--bs-badge-font-size);
+ font-weight: var(--bs-badge-font-weight);
line-height: 1;
+ color: var(--bs-badge-color);
text-align: center;
white-space: nowrap;
vertical-align: baseline;
- border-radius: 0.25rem; }
- a.badge:hover, a.badge:focus {
- text-decoration: none; }
+ border-radius: var(--bs-badge-border-radius); }
.badge:empty {
display: none; }
@@ -3537,87 +3729,22 @@ input[type="button"].btn-block {
position: relative;
top: -1px; }
-.badge-pill {
- padding-right: 0.6em;
- padding-left: 0.6em;
- border-radius: 10rem; }
-
-.badge-primary {
- color: #fff;
- background-color: #9BAF00; }
- a.badge-primary:hover, a.badge-primary:focus {
- color: #fff;
- background-color: #6e7c00; }
-
-.badge-secondary {
- color: #fff;
- background-color: #6c757d; }
- a.badge-secondary:hover, a.badge-secondary:focus {
- color: #fff;
- background-color: #545b62; }
-
-.badge-success {
- color: #fff;
- background-color: #28a745; }
- a.badge-success:hover, a.badge-success:focus {
- color: #fff;
- background-color: #1e7e34; }
-
-.badge-info {
- color: #fff;
- background-color: #17a2b8; }
- a.badge-info:hover, a.badge-info:focus {
- color: #fff;
- background-color: #117a8b; }
-
-.badge-warning {
- color: #212529;
- background-color: #d9e021; }
- a.badge-warning:hover, a.badge-warning:focus {
- color: #212529;
- background-color: #afb519; }
-
-.badge-danger {
- color: #fff;
- background-color: #dc3545; }
- a.badge-danger:hover, a.badge-danger:focus {
- color: #fff;
- background-color: #bd2130; }
-
-.badge-light {
- color: #212529;
- background-color: #e1e4e5; }
- a.badge-light:hover, a.badge-light:focus {
- color: #212529;
- background-color: #c6cbcd; }
-
-.badge-dark {
- color: #fff;
- background-color: #373738; }
- a.badge-dark:hover, a.badge-dark:focus {
- color: #fff;
- background-color: #1e1e1e; }
-
-.jumbotron {
- padding: 2rem 1rem;
- margin-bottom: 2rem;
- background-color: #e9ecef;
- border-radius: 0.3rem; }
- @media (min-width: 576px) {
- .jumbotron {
- padding: 4rem 2rem; } }
-
-.jumbotron-fluid {
- padding-right: 0;
- padding-left: 0;
- border-radius: 0; }
-
.alert {
+ --bs-alert-bg: transparent;
+ --bs-alert-padding-x: 1rem;
+ --bs-alert-padding-y: 1rem;
+ --bs-alert-margin-bottom: 1rem;
+ --bs-alert-color: inherit;
+ --bs-alert-border-color: transparent;
+ --bs-alert-border: 1px solid var(--bs-alert-border-color);
+ --bs-alert-border-radius: 0.375rem;
position: relative;
- padding: 0.75rem 1.25rem;
- margin-bottom: 1rem;
- border: 1px solid transparent;
- border-radius: 0.25rem; }
+ padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
+ margin-bottom: var(--bs-alert-margin-bottom);
+ color: var(--bs-alert-color);
+ background-color: var(--bs-alert-bg);
+ border: var(--bs-alert-border);
+ border-radius: var(--bs-alert-border-radius); }
.alert-heading {
color: inherit; }
@@ -3626,464 +3753,732 @@ input[type="button"].btn-block {
font-weight: 700; }
.alert-dismissible {
- padding-right: 4rem; }
- .alert-dismissible .close {
+ padding-right: 3rem; }
+ .alert-dismissible .btn-close {
position: absolute;
top: 0;
right: 0;
- padding: 0.75rem 1.25rem;
- color: inherit; }
+ z-index: 2;
+ padding: 1.25rem 1rem; }
.alert-primary {
- color: #515b00;
- background-color: #ebefcc;
- border-color: #e3e9b8; }
- .alert-primary hr {
- border-top-color: #dbe3a5; }
+ --bs-alert-color: #434c00;
+ --bs-alert-bg: #e2e5cc;
+ --bs-alert-border-color: #d4d8b3; }
.alert-primary .alert-link {
- color: #242800; }
+ color: #363d00; }
.alert-secondary {
- color: #383d41;
- background-color: #e2e3e5;
- border-color: #d6d8db; }
- .alert-secondary hr {
- border-top-color: #c8cbcf; }
+ --bs-alert-color: #41464b;
+ --bs-alert-bg: #e2e3e5;
+ --bs-alert-border-color: #d3d6d8; }
.alert-secondary .alert-link {
- color: #202326; }
+ color: #34383c; }
.alert-success {
- color: #155724;
- background-color: #d4edda;
- border-color: #c3e6cb; }
- .alert-success hr {
- border-top-color: #b1dfbb; }
+ --bs-alert-color: #0f5132;
+ --bs-alert-bg: #d1e7dd;
+ --bs-alert-border-color: #badbcc; }
.alert-success .alert-link {
- color: #0b2e13; }
+ color: #0c4128; }
.alert-info {
- color: #0c5460;
- background-color: #d1ecf1;
- border-color: #bee5eb; }
- .alert-info hr {
- border-top-color: #abdde5; }
+ --bs-alert-color: #055160;
+ --bs-alert-bg: #cff4fc;
+ --bs-alert-border-color: #b6effb; }
.alert-info .alert-link {
- color: #062c33; }
+ color: #04414d; }
.alert-warning {
- color: #717411;
- background-color: #f7f9d3;
- border-color: #f4f6c1; }
- .alert-warning hr {
- border-top-color: #f0f3ab; }
+ --bs-alert-color: #575a0d;
+ --bs-alert-bg: #f7f9d3;
+ --bs-alert-border-color: #f4f6bc; }
.alert-warning .alert-link {
color: #46480a; }
.alert-danger {
- color: #721c24;
- background-color: #f8d7da;
- border-color: #f5c6cb; }
- .alert-danger hr {
- border-top-color: #f1b0b7; }
+ --bs-alert-color: #842029;
+ --bs-alert-bg: #f8d7da;
+ --bs-alert-border-color: #f5c2c7; }
.alert-danger .alert-link {
- color: #491217; }
+ color: #6a1a21; }
.alert-light {
- color: #757777;
- background-color: #f9fafa;
- border-color: #f7f7f8; }
- .alert-light hr {
- border-top-color: #e9e9ec; }
+ --bs-alert-color: #5a5b5c;
+ --bs-alert-bg: #f9fafa;
+ --bs-alert-border-color: #f6f7f7; }
.alert-light .alert-link {
- color: #5c5d5d; }
+ color: #48494a; }
.alert-dark {
- color: #1d1d1d;
- background-color: #d7d7d7;
- border-color: #c7c7c7; }
- .alert-dark hr {
- border-top-color: #bababa; }
+ --bs-alert-color: #212122;
+ --bs-alert-bg: #d7d7d7;
+ --bs-alert-border-color: #c3c3c3; }
.alert-dark .alert-link {
- color: #040404; }
+ color: #1a1a1b; }
@keyframes progress-bar-stripes {
- from {
- background-position: 1rem 0; }
- to {
- background-position: 0 0; } }
+ 0% {
+ background-position-x: 1rem; } }
.progress {
+ --bs-progress-height: 1rem;
+ --bs-progress-font-size: 0.75rem;
+ --bs-progress-bg: #e9ecef;
+ --bs-progress-border-radius: 0.375rem;
+ --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+ --bs-progress-bar-color: #fff;
+ --bs-progress-bar-bg: #6f7e00;
+ --bs-progress-bar-transition: width 0.6s ease;
display: flex;
- height: 1rem;
+ height: var(--bs-progress-height);
overflow: hidden;
- font-size: 0.75rem;
- background-color: #e9ecef;
- border-radius: 0.25rem; }
+ font-size: var(--bs-progress-font-size);
+ background-color: var(--bs-progress-bg);
+ border-radius: var(--bs-progress-border-radius); }
.progress-bar {
display: flex;
flex-direction: column;
justify-content: center;
- color: #fff;
+ overflow: hidden;
+ color: var(--bs-progress-bar-color);
text-align: center;
white-space: nowrap;
- background-color: #9BAF00;
- transition: width 0.6s ease; }
- @media screen and (prefers-reduced-motion: reduce) {
+ background-color: var(--bs-progress-bar-bg);
+ transition: var(--bs-progress-bar-transition); }
+ @media (prefers-reduced-motion: reduce) {
.progress-bar {
transition: none; } }
-
.progress-bar-striped {
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-size: 1rem 1rem; }
+ background-size: var(--bs-progress-height) var(--bs-progress-height); }
.progress-bar-animated {
- animation: progress-bar-stripes 1s linear infinite; }
-
-.media {
- display: flex;
- align-items: flex-start; }
-
-.media-body {
- flex: 1; }
-
+ animation: 1s linear infinite progress-bar-stripes; }
+ @media (prefers-reduced-motion: reduce) {
+ .progress-bar-animated {
+ animation: none; } }
.list-group {
+ --bs-list-group-color: #212529;
+ --bs-list-group-bg: #fff;
+ --bs-list-group-border-color: rgba(0, 0, 0, 0.125);
+ --bs-list-group-border-width: 1px;
+ --bs-list-group-border-radius: 0.375rem;
+ --bs-list-group-item-padding-x: 1rem;
+ --bs-list-group-item-padding-y: 0.5rem;
+ --bs-list-group-action-color: #495057;
+ --bs-list-group-action-hover-color: #495057;
+ --bs-list-group-action-hover-bg: #f8f9fa;
+ --bs-list-group-action-active-color: #212529;
+ --bs-list-group-action-active-bg: #e9ecef;
+ --bs-list-group-disabled-color: #6c757d;
+ --bs-list-group-disabled-bg: #fff;
+ --bs-list-group-active-color: #fff;
+ --bs-list-group-active-bg: #6f7e00;
+ --bs-list-group-active-border-color: #6f7e00;
display: flex;
flex-direction: column;
padding-left: 0;
- margin-bottom: 0; }
+ margin-bottom: 0;
+ border-radius: var(--bs-list-group-border-radius); }
+
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset: section; }
+ .list-group-numbered > .list-group-item::before {
+ content: counters(section, ".") ". ";
+ counter-increment: section; }
.list-group-item-action {
width: 100%;
- color: #495057;
+ color: var(--bs-list-group-action-color);
text-align: inherit; }
.list-group-item-action:hover, .list-group-item-action:focus {
- color: #495057;
+ z-index: 1;
+ color: var(--bs-list-group-action-hover-color);
text-decoration: none;
- background-color: #f8f9fa; }
+ background-color: var(--bs-list-group-action-hover-bg); }
.list-group-item-action:active {
- color: #212529;
- background-color: #e9ecef; }
+ color: var(--bs-list-group-action-active-color);
+ background-color: var(--bs-list-group-action-active-bg); }
.list-group-item {
position: relative;
display: block;
- padding: 0.75rem 1.25rem;
- margin-bottom: -1px;
- background-color: #fff;
- border: 1px solid rgba(0, 0, 0, 0.125); }
+ padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
+ color: var(--bs-list-group-color);
+ text-decoration: none;
+ background-color: var(--bs-list-group-bg);
+ border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); }
.list-group-item:first-child {
- border-top-left-radius: 0.25rem;
- border-top-right-radius: 0.25rem; }
+ border-top-left-radius: inherit;
+ border-top-right-radius: inherit; }
.list-group-item:last-child {
- margin-bottom: 0;
- border-bottom-right-radius: 0.25rem;
- border-bottom-left-radius: 0.25rem; }
- .list-group-item:hover, .list-group-item:focus {
- z-index: 1;
- text-decoration: none; }
+ border-bottom-right-radius: inherit;
+ border-bottom-left-radius: inherit; }
.list-group-item.disabled, .list-group-item:disabled {
- color: #6c757d;
+ color: var(--bs-list-group-disabled-color);
pointer-events: none;
- background-color: #fff; }
+ background-color: var(--bs-list-group-disabled-bg); }
.list-group-item.active {
z-index: 2;
- color: #fff;
- background-color: #9BAF00;
- border-color: #9BAF00; }
+ color: var(--bs-list-group-active-color);
+ background-color: var(--bs-list-group-active-bg);
+ border-color: var(--bs-list-group-active-border-color); }
+ .list-group-item + .list-group-item {
+ border-top-width: 0; }
+ .list-group-item + .list-group-item.active {
+ margin-top: calc(-1 * var(--bs-list-group-border-width));
+ border-top-width: var(--bs-list-group-border-width); }
+
+.list-group-horizontal {
+ flex-direction: row; }
+ .list-group-horizontal > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0; }
+ .list-group-horizontal > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0; }
+ .list-group-horizontal > .list-group-item.active {
+ margin-top: 0; }
+ .list-group-horizontal > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0; }
+ .list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width); }
-.list-group-flush .list-group-item {
- border-right: 0;
- border-left: 0;
- border-radius: 0; }
- .list-group-flush .list-group-item:last-child {
- margin-bottom: -1px; }
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row; }
+ .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0; }
+ .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0; }
+ .list-group-horizontal-sm > .list-group-item.active {
+ margin-top: 0; }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0; }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width); } }
+
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row; }
+ .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0; }
+ .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0; }
+ .list-group-horizontal-md > .list-group-item.active {
+ margin-top: 0; }
+ .list-group-horizontal-md > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0; }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width); } }
-.list-group-flush:first-child .list-group-item:first-child {
- border-top: 0; }
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row; }
+ .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0; }
+ .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0; }
+ .list-group-horizontal-lg > .list-group-item.active {
+ margin-top: 0; }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0; }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width); } }
-.list-group-flush:last-child .list-group-item:last-child {
- margin-bottom: 0;
- border-bottom: 0; }
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row; }
+ .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0; }
+ .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0; }
+ .list-group-horizontal-xl > .list-group-item.active {
+ margin-top: 0; }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0; }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width); } }
+
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row; }
+ .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
+ border-bottom-left-radius: var(--bs-list-group-border-radius);
+ border-top-right-radius: 0; }
+ .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
+ border-top-right-radius: var(--bs-list-group-border-radius);
+ border-bottom-left-radius: 0; }
+ .list-group-horizontal-xxl > .list-group-item.active {
+ margin-top: 0; }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+ border-top-width: var(--bs-list-group-border-width);
+ border-left-width: 0; }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width); } }
+
+.list-group-flush {
+ border-radius: 0; }
+ .list-group-flush > .list-group-item {
+ border-width: 0 0 var(--bs-list-group-border-width); }
+ .list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0; }
.list-group-item-primary {
- color: #515b00;
- background-color: #e3e9b8; }
+ color: #434c00;
+ background-color: #e2e5cc; }
.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
- color: #515b00;
- background-color: #dbe3a5; }
+ color: #434c00;
+ background-color: #cbceb8; }
.list-group-item-primary.list-group-item-action.active {
color: #fff;
- background-color: #515b00;
- border-color: #515b00; }
+ background-color: #434c00;
+ border-color: #434c00; }
.list-group-item-secondary {
- color: #383d41;
- background-color: #d6d8db; }
+ color: #41464b;
+ background-color: #e2e3e5; }
.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
- color: #383d41;
- background-color: #c8cbcf; }
+ color: #41464b;
+ background-color: #cbccce; }
.list-group-item-secondary.list-group-item-action.active {
color: #fff;
- background-color: #383d41;
- border-color: #383d41; }
+ background-color: #41464b;
+ border-color: #41464b; }
.list-group-item-success {
- color: #155724;
- background-color: #c3e6cb; }
+ color: #0f5132;
+ background-color: #d1e7dd; }
.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
- color: #155724;
- background-color: #b1dfbb; }
+ color: #0f5132;
+ background-color: #bcd0c7; }
.list-group-item-success.list-group-item-action.active {
color: #fff;
- background-color: #155724;
- border-color: #155724; }
+ background-color: #0f5132;
+ border-color: #0f5132; }
.list-group-item-info {
- color: #0c5460;
- background-color: #bee5eb; }
+ color: #055160;
+ background-color: #cff4fc; }
.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
- color: #0c5460;
- background-color: #abdde5; }
+ color: #055160;
+ background-color: #badce3; }
.list-group-item-info.list-group-item-action.active {
color: #fff;
- background-color: #0c5460;
- border-color: #0c5460; }
+ background-color: #055160;
+ border-color: #055160; }
.list-group-item-warning {
- color: #717411;
- background-color: #f4f6c1; }
+ color: #575a0d;
+ background-color: #f7f9d3; }
.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
- color: #717411;
- background-color: #f0f3ab; }
+ color: #575a0d;
+ background-color: #dee0be; }
.list-group-item-warning.list-group-item-action.active {
color: #fff;
- background-color: #717411;
- border-color: #717411; }
+ background-color: #575a0d;
+ border-color: #575a0d; }
.list-group-item-danger {
- color: #721c24;
- background-color: #f5c6cb; }
+ color: #842029;
+ background-color: #f8d7da; }
.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
- color: #721c24;
- background-color: #f1b0b7; }
+ color: #842029;
+ background-color: #dfc2c4; }
.list-group-item-danger.list-group-item-action.active {
color: #fff;
- background-color: #721c24;
- border-color: #721c24; }
+ background-color: #842029;
+ border-color: #842029; }
.list-group-item-light {
- color: #757777;
- background-color: #f7f7f8; }
+ color: #5a5b5c;
+ background-color: #f9fafa; }
.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
- color: #757777;
- background-color: #e9e9ec; }
+ color: #5a5b5c;
+ background-color: #e0e1e1; }
.list-group-item-light.list-group-item-action.active {
color: #fff;
- background-color: #757777;
- border-color: #757777; }
+ background-color: #5a5b5c;
+ border-color: #5a5b5c; }
.list-group-item-dark {
- color: #1d1d1d;
- background-color: #c7c7c7; }
+ color: #212122;
+ background-color: #d7d7d7; }
.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
- color: #1d1d1d;
- background-color: #bababa; }
+ color: #212122;
+ background-color: #c2c2c2; }
.list-group-item-dark.list-group-item-action.active {
color: #fff;
- background-color: #1d1d1d;
- border-color: #1d1d1d; }
+ background-color: #212122;
+ border-color: #212122; }
-.close {
- float: right;
- font-size: 1.5rem;
- font-weight: 700;
- line-height: 1;
+.btn-close {
+ box-sizing: content-box;
+ width: 1em;
+ height: 1em;
+ padding: 0.25em 0.25em;
color: #000;
- text-shadow: 0 1px 0 #fff;
- opacity: .5; }
- .close:hover {
- color: #000;
- text-decoration: none; }
- .close:not(:disabled):not(.disabled) {
- cursor: pointer; }
- .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
- opacity: .75; }
-
-button.close {
- padding: 0;
- background-color: transparent;
+ background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
border: 0;
- appearance: none; }
+ border-radius: 0.375rem;
+ opacity: 0.5; }
+ .btn-close:hover {
+ color: #000;
+ text-decoration: none;
+ opacity: 0.75; }
+ .btn-close:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(111, 126, 0, 0.25);
+ opacity: 1; }
+ .btn-close:disabled, .btn-close.disabled {
+ pointer-events: none;
+ user-select: none;
+ opacity: 0.25; }
-a.close.disabled {
- pointer-events: none; }
+.btn-close-white {
+ filter: invert(1) grayscale(100%) brightness(200%); }
.toast {
- max-width: 350px;
- overflow: hidden;
- font-size: 0.875rem;
- background-color: rgba(255, 255, 255, 0.85);
+ --bs-toast-zindex: 1090;
+ --bs-toast-padding-x: 0.75rem;
+ --bs-toast-padding-y: 0.5rem;
+ --bs-toast-spacing: 1.5rem;
+ --bs-toast-max-width: 350px;
+ --bs-toast-font-size: 0.875rem;
+ --bs-toast-color: ;
+ --bs-toast-bg: rgba(255, 255, 255, 0.85);
+ --bs-toast-border-width: 1px;
+ --bs-toast-border-color: var(--bs-border-color-translucent);
+ --bs-toast-border-radius: 0.375rem;
+ --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ --bs-toast-header-color: #6c757d;
+ --bs-toast-header-bg: rgba(255, 255, 255, 0.85);
+ --bs-toast-header-border-color: rgba(0, 0, 0, 0.05);
+ width: var(--bs-toast-max-width);
+ max-width: 100%;
+ font-size: var(--bs-toast-font-size);
+ color: var(--bs-toast-color);
+ pointer-events: auto;
+ background-color: var(--bs-toast-bg);
background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.1);
- border-radius: 0.25rem;
- box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
- backdrop-filter: blur(10px);
- opacity: 0; }
- .toast:not(:last-child) {
- margin-bottom: 0.75rem; }
+ border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
+ box-shadow: var(--bs-toast-box-shadow);
+ border-radius: var(--bs-toast-border-radius); }
.toast.showing {
- opacity: 1; }
- .toast.show {
- display: block;
- opacity: 1; }
- .toast.hide {
+ opacity: 0; }
+ .toast:not(.show) {
display: none; }
+.toast-container {
+ --bs-toast-zindex: 1090;
+ position: absolute;
+ z-index: var(--bs-toast-zindex);
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none; }
+ .toast-container > :not(:last-child) {
+ margin-bottom: var(--bs-toast-spacing); }
+
.toast-header {
display: flex;
align-items: center;
- padding: 0.25rem 0.75rem;
- color: #6c757d;
- background-color: rgba(255, 255, 255, 0.85);
+ padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
+ color: var(--bs-toast-header-color);
+ background-color: var(--bs-toast-header-bg);
background-clip: padding-box;
- border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
+ border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
+ border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+ border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); }
+ .toast-header .btn-close {
+ margin-right: calc(-.5 * var(--bs-toast-padding-x));
+ margin-left: var(--bs-toast-padding-x); }
.toast-body {
- padding: 0.75rem; }
-
-.modal-open {
- overflow: hidden; }
- .modal-open .modal {
- overflow-x: hidden;
- overflow-y: auto; }
+ padding: var(--bs-toast-padding-x);
+ word-wrap: break-word; }
.modal {
+ --bs-modal-zindex: 1055;
+ --bs-modal-width: 500px;
+ --bs-modal-padding: 1rem;
+ --bs-modal-margin: 0.5rem;
+ --bs-modal-color: ;
+ --bs-modal-bg: #fff;
+ --bs-modal-border-color: var(--bs-border-color-translucent);
+ --bs-modal-border-width: 1px;
+ --bs-modal-border-radius: 0.5rem;
+ --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+ --bs-modal-inner-border-radius: calc(0.5rem - 1px);
+ --bs-modal-header-padding-x: 1rem;
+ --bs-modal-header-padding-y: 1rem;
+ --bs-modal-header-padding: 1rem 1rem;
+ --bs-modal-header-border-color: var(--bs-border-color);
+ --bs-modal-header-border-width: 1px;
+ --bs-modal-title-line-height: 1.5;
+ --bs-modal-footer-gap: 0.5rem;
+ --bs-modal-footer-bg: ;
+ --bs-modal-footer-border-color: var(--bs-border-color);
+ --bs-modal-footer-border-width: 1px;
position: fixed;
top: 0;
left: 0;
- z-index: 1050;
+ z-index: var(--bs-modal-zindex);
display: none;
width: 100%;
height: 100%;
- overflow: hidden;
+ overflow-x: hidden;
+ overflow-y: auto;
outline: 0; }
.modal-dialog {
position: relative;
width: auto;
- margin: 0.5rem;
+ margin: var(--bs-modal-margin);
pointer-events: none; }
.modal.fade .modal-dialog {
transition: transform 0.3s ease-out;
transform: translate(0, -50px); }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.modal.fade .modal-dialog {
transition: none; } }
.modal.show .modal-dialog {
transform: none; }
+ .modal.modal-static .modal-dialog {
+ transform: scale(1.02); }
+
+.modal-dialog-scrollable {
+ height: calc(100% - var(--bs-modal-margin) * 2); }
+ .modal-dialog-scrollable .modal-content {
+ max-height: 100%;
+ overflow: hidden; }
+ .modal-dialog-scrollable .modal-body {
+ overflow-y: auto; }
.modal-dialog-centered {
display: flex;
align-items: center;
- min-height: calc(100% - (0.5rem * 2)); }
- .modal-dialog-centered::before {
- display: block;
- height: calc(100vh - (0.5rem * 2));
- content: ""; }
+ min-height: calc(100% - var(--bs-modal-margin) * 2); }
.modal-content {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
+ color: var(--bs-modal-color);
pointer-events: auto;
- background-color: #fff;
+ background-color: var(--bs-modal-bg);
background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 0.3rem;
+ border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+ border-radius: var(--bs-modal-border-radius);
outline: 0; }
.modal-backdrop {
+ --bs-backdrop-zindex: 1050;
+ --bs-backdrop-bg: #000;
+ --bs-backdrop-opacity: 0.5;
position: fixed;
top: 0;
left: 0;
- z-index: 1040;
+ z-index: var(--bs-backdrop-zindex);
width: 100vw;
height: 100vh;
- background-color: #000; }
+ background-color: var(--bs-backdrop-bg); }
.modal-backdrop.fade {
opacity: 0; }
.modal-backdrop.show {
- opacity: 0.5; }
+ opacity: var(--bs-backdrop-opacity); }
.modal-header {
display: flex;
- align-items: flex-start;
+ flex-shrink: 0;
+ align-items: center;
justify-content: space-between;
- padding: 1rem 1rem;
- border-bottom: 1px solid #e9ecef;
- border-top-left-radius: 0.3rem;
- border-top-right-radius: 0.3rem; }
- .modal-header .close {
- padding: 1rem 1rem;
- margin: -1rem -1rem -1rem auto; }
+ padding: var(--bs-modal-header-padding);
+ border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
+ border-top-left-radius: var(--bs-modal-inner-border-radius);
+ border-top-right-radius: var(--bs-modal-inner-border-radius); }
+ .modal-header .btn-close {
+ padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);
+ margin: calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto; }
.modal-title {
margin-bottom: 0;
- line-height: 1.5; }
+ line-height: var(--bs-modal-title-line-height); }
.modal-body {
position: relative;
flex: 1 1 auto;
- padding: 1rem; }
+ padding: var(--bs-modal-padding); }
.modal-footer {
display: flex;
+ flex-shrink: 0;
+ flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
- padding: 1rem;
- border-top: 1px solid #e9ecef;
- border-bottom-right-radius: 0.3rem;
- border-bottom-left-radius: 0.3rem; }
- .modal-footer > :not(:first-child) {
- margin-left: .25rem; }
- .modal-footer > :not(:last-child) {
- margin-right: .25rem; }
-
-.modal-scrollbar-measure {
- position: absolute;
- top: -9999px;
- width: 50px;
- height: 50px;
- overflow: scroll; }
+ padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);
+ background-color: var(--bs-modal-footer-bg);
+ border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
+ border-bottom-right-radius: var(--bs-modal-inner-border-radius);
+ border-bottom-left-radius: var(--bs-modal-inner-border-radius); }
+ .modal-footer > * {
+ margin: calc(var(--bs-modal-footer-gap) * .5); }
@media (min-width: 576px) {
+ .modal {
+ --bs-modal-margin: 1.75rem;
+ --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); }
.modal-dialog {
- max-width: 500px;
- margin: 1.75rem auto; }
- .modal-dialog-centered {
- min-height: calc(100% - (1.75rem * 2)); }
- .modal-dialog-centered::before {
- height: calc(100vh - (1.75rem * 2)); }
+ max-width: var(--bs-modal-width);
+ margin-right: auto;
+ margin-left: auto; }
.modal-sm {
- max-width: 300px; } }
+ --bs-modal-width: 300px; } }
@media (min-width: 992px) {
.modal-lg,
.modal-xl {
- max-width: 800px; } }
+ --bs-modal-width: 800px; } }
@media (min-width: 1200px) {
.modal-xl {
- max-width: 1140px; } }
+ --bs-modal-width: 1140px; } }
+
+.modal-fullscreen {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0; }
+ .modal-fullscreen .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0; }
+ .modal-fullscreen .modal-header,
+ .modal-fullscreen .modal-footer {
+ border-radius: 0; }
+ .modal-fullscreen .modal-body {
+ overflow-y: auto; }
+
+@media (max-width: 575.98px) {
+ .modal-fullscreen-sm-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0; }
+ .modal-fullscreen-sm-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0; }
+ .modal-fullscreen-sm-down .modal-header,
+ .modal-fullscreen-sm-down .modal-footer {
+ border-radius: 0; }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto; } }
+
+@media (max-width: 767.98px) {
+ .modal-fullscreen-md-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0; }
+ .modal-fullscreen-md-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0; }
+ .modal-fullscreen-md-down .modal-header,
+ .modal-fullscreen-md-down .modal-footer {
+ border-radius: 0; }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto; } }
+
+@media (max-width: 991.98px) {
+ .modal-fullscreen-lg-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0; }
+ .modal-fullscreen-lg-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0; }
+ .modal-fullscreen-lg-down .modal-header,
+ .modal-fullscreen-lg-down .modal-footer {
+ border-radius: 0; }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto; } }
+
+@media (max-width: 1199.98px) {
+ .modal-fullscreen-xl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0; }
+ .modal-fullscreen-xl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0; }
+ .modal-fullscreen-xl-down .modal-header,
+ .modal-fullscreen-xl-down .modal-footer {
+ border-radius: 0; }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto; } }
+
+@media (max-width: 1399.98px) {
+ .modal-fullscreen-xxl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0; }
+ .modal-fullscreen-xxl-down .modal-content {
+ height: 100%;
+ border: 0;
+ border-radius: 0; }
+ .modal-fullscreen-xxl-down .modal-header,
+ .modal-fullscreen-xxl-down .modal-footer {
+ border-radius: 0; }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto; } }
.tooltip {
- position: absolute;
- z-index: 1070;
+ --bs-tooltip-zindex: 1080;
+ --bs-tooltip-max-width: 200px;
+ --bs-tooltip-padding-x: 0.5rem;
+ --bs-tooltip-padding-y: 0.25rem;
+ --bs-tooltip-margin: ;
+ --bs-tooltip-font-size: 0.875rem;
+ --bs-tooltip-color: #fff;
+ --bs-tooltip-bg: #000;
+ --bs-tooltip-border-radius: 0.375rem;
+ --bs-tooltip-opacity: 0.9;
+ --bs-tooltip-arrow-width: 0.8rem;
+ --bs-tooltip-arrow-height: 0.4rem;
+ z-index: var(--bs-tooltip-zindex);
display: block;
- margin: 0;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ padding: var(--bs-tooltip-arrow-height);
+ margin: var(--bs-tooltip-margin);
+ font-family: var(--bs-font-sans-serif);
font-style: normal;
font-weight: 400;
line-height: 1.5;
@@ -4094,81 +4489,93 @@ a.close.disabled {
text-transform: none;
letter-spacing: normal;
word-break: normal;
- word-spacing: normal;
white-space: normal;
+ word-spacing: normal;
line-break: auto;
- font-size: 0.875rem;
+ font-size: var(--bs-tooltip-font-size);
word-wrap: break-word;
opacity: 0; }
.tooltip.show {
- opacity: 0.9; }
- .tooltip .arrow {
- position: absolute;
+ opacity: var(--bs-tooltip-opacity); }
+ .tooltip .tooltip-arrow {
display: block;
- width: 0.8rem;
- height: 0.4rem; }
- .tooltip .arrow::before {
+ width: var(--bs-tooltip-arrow-width);
+ height: var(--bs-tooltip-arrow-height); }
+ .tooltip .tooltip-arrow::before {
position: absolute;
content: "";
border-color: transparent;
border-style: solid; }
-.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
- padding: 0.4rem 0; }
- .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
- bottom: 0; }
- .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
- top: 0;
- border-width: 0.4rem 0.4rem 0;
- border-top-color: #000; }
-
-.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
- padding: 0 0.4rem; }
- .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
- left: 0;
- width: 0.4rem;
- height: 0.8rem; }
- .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
- right: 0;
- border-width: 0.4rem 0.4rem 0.4rem 0;
- border-right-color: #000; }
-
-.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
- padding: 0.4rem 0; }
- .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
- top: 0; }
- .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
- bottom: 0;
- border-width: 0 0.4rem 0.4rem;
- border-bottom-color: #000; }
-
-.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
- padding: 0 0.4rem; }
- .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
- right: 0;
- width: 0.4rem;
- height: 0.8rem; }
- .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
- left: 0;
- border-width: 0.4rem 0 0.4rem 0.4rem;
- border-left-color: #000; }
+.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow {
+ bottom: 0; }
+ .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
+ top: -1px;
+ border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
+ border-top-color: var(--bs-tooltip-bg); }
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow {
+ left: 0;
+ width: var(--bs-tooltip-arrow-height);
+ height: var(--bs-tooltip-arrow-width); }
+ .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
+ right: -1px;
+ border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
+ border-right-color: var(--bs-tooltip-bg); }
+
+/* rtl:end:ignore */
+.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow {
+ top: 0; }
+ .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);
+ border-bottom-color: var(--bs-tooltip-bg); }
+
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow {
+ right: 0;
+ width: var(--bs-tooltip-arrow-height);
+ height: var(--bs-tooltip-arrow-width); }
+ .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
+ left: -1px;
+ border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);
+ border-left-color: var(--bs-tooltip-bg); }
+
+/* rtl:end:ignore */
.tooltip-inner {
- max-width: 200px;
- padding: 0.25rem 0.5rem;
- color: #fff;
+ max-width: var(--bs-tooltip-max-width);
+ padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
+ color: var(--bs-tooltip-color);
text-align: center;
- background-color: #000;
- border-radius: 0.25rem; }
+ background-color: var(--bs-tooltip-bg);
+ border-radius: var(--bs-tooltip-border-radius); }
.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 1060;
+ --bs-popover-zindex: 1070;
+ --bs-popover-max-width: 276px;
+ --bs-popover-font-size: 0.875rem;
+ --bs-popover-bg: #fff;
+ --bs-popover-border-width: 1px;
+ --bs-popover-border-color: var(--bs-border-color-translucent);
+ --bs-popover-border-radius: 0.5rem;
+ --bs-popover-inner-border-radius: calc(0.5rem - 1px);
+ --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ --bs-popover-header-padding-x: 1rem;
+ --bs-popover-header-padding-y: 0.5rem;
+ --bs-popover-header-font-size: 1rem;
+ --bs-popover-header-color: ;
+ --bs-popover-header-bg: #f0f0f0;
+ --bs-popover-body-padding-x: 1rem;
+ --bs-popover-body-padding-y: 1rem;
+ --bs-popover-body-color: #212529;
+ --bs-popover-arrow-width: 1rem;
+ --bs-popover-arrow-height: 0.5rem;
+ --bs-popover-arrow-border: var(--bs-popover-border-color);
+ z-index: var(--bs-popover-zindex);
display: block;
- max-width: 276px;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ max-width: var(--bs-popover-max-width);
+ font-family: var(--bs-font-sans-serif);
font-style: normal;
font-weight: 400;
line-height: 1.5;
@@ -4179,126 +4586,104 @@ a.close.disabled {
text-transform: none;
letter-spacing: normal;
word-break: normal;
- word-spacing: normal;
white-space: normal;
+ word-spacing: normal;
line-break: auto;
- font-size: 0.875rem;
+ font-size: var(--bs-popover-font-size);
word-wrap: break-word;
- background-color: #fff;
+ background-color: var(--bs-popover-bg);
background-clip: padding-box;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 0.3rem; }
- .popover .arrow {
- position: absolute;
+ border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+ border-radius: var(--bs-popover-border-radius); }
+ .popover .popover-arrow {
display: block;
- width: 1rem;
- height: 0.5rem;
- margin: 0 0.3rem; }
- .popover .arrow::before, .popover .arrow::after {
+ width: var(--bs-popover-arrow-width);
+ height: var(--bs-popover-arrow-height); }
+ .popover .popover-arrow::before, .popover .popover-arrow::after {
position: absolute;
display: block;
content: "";
border-color: transparent;
- border-style: solid; }
-
-.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
- margin-bottom: 0.5rem; }
- .bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
- bottom: calc((0.5rem + 1px) * -1); }
- .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
- .bs-popover-top .arrow::after,
- .bs-popover-auto[x-placement^="top"] .arrow::after {
- border-width: 0.5rem 0.5rem 0; }
- .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
+ border-style: solid;
+ border-width: 0; }
+
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow {
+ bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); }
+ .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
+ border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; }
+ .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
bottom: 0;
- border-top-color: rgba(0, 0, 0, 0.25); }
-
- .bs-popover-top .arrow::after,
- .bs-popover-auto[x-placement^="top"] .arrow::after {
- bottom: 1px;
- border-top-color: #fff; }
-
-.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
- margin-left: 0.5rem; }
- .bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
- left: calc((0.5rem + 1px) * -1);
- width: 0.5rem;
- height: 1rem;
- margin: 0.3rem 0; }
- .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
- .bs-popover-right .arrow::after,
- .bs-popover-auto[x-placement^="right"] .arrow::after {
- border-width: 0.5rem 0.5rem 0.5rem 0; }
- .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
+ border-top-color: var(--bs-popover-arrow-border); }
+ .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
+ bottom: var(--bs-popover-border-width);
+ border-top-color: var(--bs-popover-bg); }
+
+/* rtl:begin:ignore */
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow {
+ left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+ width: var(--bs-popover-arrow-height);
+ height: var(--bs-popover-arrow-width); }
+ .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
+ border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; }
+ .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before {
left: 0;
- border-right-color: rgba(0, 0, 0, 0.25); }
-
- .bs-popover-right .arrow::after,
- .bs-popover-auto[x-placement^="right"] .arrow::after {
- left: 1px;
- border-right-color: #fff; }
-
-.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
- margin-top: 0.5rem; }
- .bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
- top: calc((0.5rem + 1px) * -1); }
- .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
- .bs-popover-bottom .arrow::after,
- .bs-popover-auto[x-placement^="bottom"] .arrow::after {
- border-width: 0 0.5rem 0.5rem 0.5rem; }
- .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
- top: 0;
- border-bottom-color: rgba(0, 0, 0, 0.25); }
-
- .bs-popover-bottom .arrow::after,
- .bs-popover-auto[x-placement^="bottom"] .arrow::after {
- top: 1px;
- border-bottom-color: #fff; }
- .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
- position: absolute;
+ border-right-color: var(--bs-popover-arrow-border); }
+ .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
+ left: var(--bs-popover-border-width);
+ border-right-color: var(--bs-popover-bg); }
+
+/* rtl:end:ignore */
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow {
+ top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); }
+ .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
+ border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); }
+ .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
top: 0;
- left: 50%;
- display: block;
- width: 1rem;
- margin-left: -0.5rem;
- content: "";
- border-bottom: 1px solid #f7f7f7; }
+ border-bottom-color: var(--bs-popover-arrow-border); }
+ .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
+ top: var(--bs-popover-border-width);
+ border-bottom-color: var(--bs-popover-bg); }
-.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
- margin-right: 0.5rem; }
- .bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
- right: calc((0.5rem + 1px) * -1);
- width: 0.5rem;
- height: 1rem;
- margin: 0.3rem 0; }
- .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
- .bs-popover-left .arrow::after,
- .bs-popover-auto[x-placement^="left"] .arrow::after {
- border-width: 0.5rem 0 0.5rem 0.5rem; }
- .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: var(--bs-popover-arrow-width);
+ margin-left: calc(-.5 * var(--bs-popover-arrow-width));
+ content: "";
+ border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); }
+
+/* rtl:begin:ignore */
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow {
+ right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+ width: var(--bs-popover-arrow-height);
+ height: var(--bs-popover-arrow-width); }
+ .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
+ border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); }
+ .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before {
right: 0;
- border-left-color: rgba(0, 0, 0, 0.25); }
-
- .bs-popover-left .arrow::after,
- .bs-popover-auto[x-placement^="left"] .arrow::after {
- right: 1px;
- border-left-color: #fff; }
+ border-left-color: var(--bs-popover-arrow-border); }
+ .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
+ right: var(--bs-popover-border-width);
+ border-left-color: var(--bs-popover-bg); }
+/* rtl:end:ignore */
.popover-header {
- padding: 0.5rem 0.75rem;
+ padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
margin-bottom: 0;
- font-size: 1rem;
- color: inherit;
- background-color: #f7f7f7;
- border-bottom: 1px solid #ebebeb;
- border-top-left-radius: calc(0.3rem - 1px);
- border-top-right-radius: calc(0.3rem - 1px); }
+ font-size: var(--bs-popover-header-font-size);
+ color: var(--bs-popover-header-color);
+ background-color: var(--bs-popover-header-bg);
+ border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+ border-top-left-radius: var(--bs-popover-inner-border-radius);
+ border-top-right-radius: var(--bs-popover-inner-border-radius); }
.popover-header:empty {
display: none; }
.popover-body {
- padding: 0.5rem 0.75rem;
- color: #212529; }
+ padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
+ color: var(--bs-popover-body-color); }
.carousel {
position: relative; }
@@ -4323,21 +4708,20 @@ a.close.disabled {
margin-right: -100%;
backface-visibility: hidden;
transition: transform 0.6s ease-in-out; }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.carousel-item {
transition: none; } }
-
.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
display: block; }
-.carousel-item-next:not(.carousel-item-left),
-.active.carousel-item-right {
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
transform: translateX(100%); }
-.carousel-item-prev:not(.carousel-item-right),
-.active.carousel-item-left {
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
transform: translateX(-100%); }
.carousel-fade .carousel-item {
@@ -4346,21 +4730,20 @@ a.close.disabled {
transform: none; }
.carousel-fade .carousel-item.active,
-.carousel-fade .carousel-item-next.carousel-item-left,
-.carousel-fade .carousel-item-prev.carousel-item-right {
+.carousel-fade .carousel-item-next.carousel-item-start,
+.carousel-fade .carousel-item-prev.carousel-item-end {
z-index: 1;
opacity: 1; }
-.carousel-fade .active.carousel-item-left,
-.carousel-fade .active.carousel-item-right {
+.carousel-fade .active.carousel-item-start,
+.carousel-fade .active.carousel-item-end {
z-index: 0;
opacity: 0;
- transition: 0s 0.6s opacity; }
- @media screen and (prefers-reduced-motion: reduce) {
- .carousel-fade .active.carousel-item-left,
- .carousel-fade .active.carousel-item-right {
+ transition: opacity 0s 0.6s; }
+ @media (prefers-reduced-motion: reduce) {
+ .carousel-fade .active.carousel-item-start,
+ .carousel-fade .active.carousel-item-end {
transition: none; } }
-
.carousel-control-prev,
.carousel-control-next {
position: absolute;
@@ -4371,11 +4754,14 @@ a.close.disabled {
align-items: center;
justify-content: center;
width: 15%;
+ padding: 0;
color: #fff;
text-align: center;
+ background: none;
+ border: 0;
opacity: 0.5;
transition: opacity 0.15s ease; }
- @media screen and (prefers-reduced-motion: reduce) {
+ @media (prefers-reduced-motion: reduce) {
.carousel-control-prev,
.carousel-control-next {
transition: none; } }
@@ -4396,46 +4782,58 @@ a.close.disabled {
.carousel-control-prev-icon,
.carousel-control-next-icon {
display: inline-block;
- width: 20px;
- height: 20px;
- background: transparent no-repeat center center;
+ width: 2rem;
+ height: 2rem;
+ background-repeat: no-repeat;
+ background-position: 50%;
background-size: 100% 100%; }
+/* rtl:options: {
+ "autoRename": true,
+ "stringMap":[ {
+ "name" : "prev-next",
+ "search" : "prev",
+ "replace" : "next"
+ } ]
+} */
.carousel-control-prev-icon {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"); }
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); }
.carousel-control-next-icon {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); }
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); }
.carousel-indicators {
position: absolute;
right: 0;
bottom: 0;
left: 0;
- z-index: 15;
+ z-index: 2;
display: flex;
justify-content: center;
- padding-left: 0;
+ padding: 0;
margin-right: 15%;
+ margin-bottom: 1rem;
margin-left: 15%;
list-style: none; }
- .carousel-indicators li {
+ .carousel-indicators [data-bs-target] {
box-sizing: content-box;
flex: 0 1 auto;
width: 30px;
height: 3px;
+ padding: 0;
margin-right: 3px;
margin-left: 3px;
text-indent: -999px;
cursor: pointer;
background-color: #fff;
background-clip: padding-box;
+ border: 0;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
- opacity: .5;
+ opacity: 0.5;
transition: opacity 0.6s ease; }
- @media screen and (prefers-reduced-motion: reduce) {
- .carousel-indicators li {
+ @media (prefers-reduced-motion: reduce) {
+ .carousel-indicators [data-bs-target] {
transition: none; } }
.carousel-indicators .active {
opacity: 1; }
@@ -4443,233 +4841,801 @@ a.close.disabled {
.carousel-caption {
position: absolute;
right: 15%;
- bottom: 20px;
+ bottom: 1.25rem;
left: 15%;
- z-index: 10;
- padding-top: 20px;
- padding-bottom: 20px;
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
color: #fff;
text-align: center; }
-@keyframes spinner-border {
- to {
- transform: rotate(360deg); } }
+.carousel-dark .carousel-control-prev-icon,
+.carousel-dark .carousel-control-next-icon {
+ filter: invert(1) grayscale(100); }
+
+.carousel-dark .carousel-indicators [data-bs-target] {
+ background-color: #000; }
+
+.carousel-dark .carousel-caption {
+ color: #000; }
+.spinner-grow,
.spinner-border {
display: inline-block;
- width: 2rem;
- height: 2rem;
- vertical-align: text-bottom;
- border: 0.25em solid currentColor;
- border-right-color: transparent;
+ width: var(--bs-spinner-width);
+ height: var(--bs-spinner-height);
+ vertical-align: var(--bs-spinner-vertical-align);
border-radius: 50%;
- animation: spinner-border .75s linear infinite; }
+ animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); }
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */; } }
+
+.spinner-border {
+ --bs-spinner-width: 2rem;
+ --bs-spinner-height: 2rem;
+ --bs-spinner-vertical-align: -0.125em;
+ --bs-spinner-border-width: 0.25em;
+ --bs-spinner-animation-speed: 0.75s;
+ --bs-spinner-animation-name: spinner-border;
+ border: var(--bs-spinner-border-width) solid currentcolor;
+ border-right-color: transparent; }
.spinner-border-sm {
- width: 1rem;
- height: 1rem;
- border-width: 0.2em; }
+ --bs-spinner-width: 1rem;
+ --bs-spinner-height: 1rem;
+ --bs-spinner-border-width: 0.2em; }
@keyframes spinner-grow {
0% {
transform: scale(0); }
50% {
- opacity: 1; } }
+ opacity: 1;
+ transform: none; } }
.spinner-grow {
- display: inline-block;
- width: 2rem;
- height: 2rem;
- vertical-align: text-bottom;
- background-color: currentColor;
- border-radius: 50%;
- opacity: 0;
- animation: spinner-grow .75s linear infinite; }
+ --bs-spinner-width: 2rem;
+ --bs-spinner-height: 2rem;
+ --bs-spinner-vertical-align: -0.125em;
+ --bs-spinner-animation-speed: 0.75s;
+ --bs-spinner-animation-name: spinner-grow;
+ background-color: currentcolor;
+ opacity: 0; }
.spinner-grow-sm {
- width: 1rem;
- height: 1rem; }
+ --bs-spinner-width: 1rem;
+ --bs-spinner-height: 1rem; }
+
+@media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+ .spinner-grow {
+ --bs-spinner-animation-speed: 1.5s; } }
+
+.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
+ --bs-offcanvas-zindex: 1045;
+ --bs-offcanvas-width: 400px;
+ --bs-offcanvas-height: 30vh;
+ --bs-offcanvas-padding-x: 1rem;
+ --bs-offcanvas-padding-y: 1rem;
+ --bs-offcanvas-color: ;
+ --bs-offcanvas-bg: #fff;
+ --bs-offcanvas-border-width: 1px;
+ --bs-offcanvas-border-color: var(--bs-border-color-translucent);
+ --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); }
-.align-baseline {
- vertical-align: baseline !important; }
+@media (max-width: 575.98px) {
+ .offcanvas-sm {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out; } }
+ @media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-sm {
+ transition: none; } }
+@media (max-width: 575.98px) {
+ .offcanvas-sm.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%); }
+ .offcanvas-sm.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%); }
+ .offcanvas-sm.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%); }
+ .offcanvas-sm.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%); }
+ .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
+ transform: none; }
+ .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
+ visibility: visible; } }
-.align-top {
- vertical-align: top !important; }
+@media (min-width: 576px) {
+ .offcanvas-sm {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important; }
+ .offcanvas-sm .offcanvas-header {
+ display: none; }
+ .offcanvas-sm .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important; } }
-.align-middle {
- vertical-align: middle !important; }
+@media (max-width: 767.98px) {
+ .offcanvas-md {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out; } }
+ @media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-md {
+ transition: none; } }
+@media (max-width: 767.98px) {
+ .offcanvas-md.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%); }
+ .offcanvas-md.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%); }
+ .offcanvas-md.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%); }
+ .offcanvas-md.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%); }
+ .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
+ transform: none; }
+ .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
+ visibility: visible; } }
-.align-bottom {
- vertical-align: bottom !important; }
+@media (min-width: 768px) {
+ .offcanvas-md {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important; }
+ .offcanvas-md .offcanvas-header {
+ display: none; }
+ .offcanvas-md .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important; } }
-.align-text-bottom {
- vertical-align: text-bottom !important; }
+@media (max-width: 991.98px) {
+ .offcanvas-lg {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out; } }
+ @media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-lg {
+ transition: none; } }
+@media (max-width: 991.98px) {
+ .offcanvas-lg.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%); }
+ .offcanvas-lg.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%); }
+ .offcanvas-lg.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%); }
+ .offcanvas-lg.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%); }
+ .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
+ transform: none; }
+ .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
+ visibility: visible; } }
-.align-text-top {
- vertical-align: text-top !important; }
+@media (min-width: 992px) {
+ .offcanvas-lg {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important; }
+ .offcanvas-lg .offcanvas-header {
+ display: none; }
+ .offcanvas-lg .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important; } }
-.bg-primary {
- background-color: #9BAF00 !important; }
+@media (max-width: 1199.98px) {
+ .offcanvas-xl {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out; } }
+ @media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-xl {
+ transition: none; } }
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%); }
+ .offcanvas-xl.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%); }
+ .offcanvas-xl.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%); }
+ .offcanvas-xl.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%); }
+ .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
+ transform: none; }
+ .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
+ visibility: visible; } }
-a.bg-primary:hover, a.bg-primary:focus,
-button.bg-primary:hover,
-button.bg-primary:focus {
- background-color: #6e7c00 !important; }
+@media (min-width: 1200px) {
+ .offcanvas-xl {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important; }
+ .offcanvas-xl .offcanvas-header {
+ display: none; }
+ .offcanvas-xl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important; } }
+
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out; } }
+ @media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
+ .offcanvas-xxl {
+ transition: none; } }
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%); }
+ .offcanvas-xxl.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%); }
+ .offcanvas-xxl.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%); }
+ .offcanvas-xxl.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%); }
+ .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
+ transform: none; }
+ .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
+ visibility: visible; } }
+
+@media (min-width: 1400px) {
+ .offcanvas-xxl {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important; }
+ .offcanvas-xxl .offcanvas-header {
+ display: none; }
+ .offcanvas-xxl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important; } }
-.bg-secondary {
- background-color: #6c757d !important; }
+.offcanvas {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out; }
+ @media (prefers-reduced-motion: reduce) {
+ .offcanvas {
+ transition: none; } }
+ .offcanvas.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%); }
+ .offcanvas.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%); }
+ .offcanvas.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%); }
+ .offcanvas.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%); }
+ .offcanvas.showing, .offcanvas.show:not(.hiding) {
+ transform: none; }
+ .offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
+ visibility: visible; }
-a.bg-secondary:hover, a.bg-secondary:focus,
-button.bg-secondary:hover,
-button.bg-secondary:focus {
- background-color: #545b62 !important; }
+.offcanvas-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1040;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000; }
+ .offcanvas-backdrop.fade {
+ opacity: 0; }
+ .offcanvas-backdrop.show {
+ opacity: 0.5; }
-.bg-success {
- background-color: #28a745 !important; }
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); }
+ .offcanvas-header .btn-close {
+ padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);
+ margin-top: calc(-.5 * var(--bs-offcanvas-padding-y));
+ margin-right: calc(-.5 * var(--bs-offcanvas-padding-x));
+ margin-bottom: calc(-.5 * var(--bs-offcanvas-padding-y)); }
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: 1.5; }
-a.bg-success:hover, a.bg-success:focus,
-button.bg-success:hover,
-button.bg-success:focus {
- background-color: #1e7e34 !important; }
+.offcanvas-body {
+ flex-grow: 1;
+ padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+ overflow-y: auto; }
-.bg-info {
- background-color: #17a2b8 !important; }
+.placeholder {
+ display: inline-block;
+ min-height: 1em;
+ vertical-align: middle;
+ cursor: wait;
+ background-color: currentcolor;
+ opacity: 0.5; }
+ .placeholder.btn::before {
+ display: inline-block;
+ content: ""; }
-a.bg-info:hover, a.bg-info:focus,
-button.bg-info:hover,
-button.bg-info:focus {
- background-color: #117a8b !important; }
+.placeholder-xs {
+ min-height: .6em; }
-.bg-warning {
- background-color: #d9e021 !important; }
+.placeholder-sm {
+ min-height: .8em; }
-a.bg-warning:hover, a.bg-warning:focus,
-button.bg-warning:hover,
-button.bg-warning:focus {
- background-color: #afb519 !important; }
+.placeholder-lg {
+ min-height: 1.2em; }
-.bg-danger {
- background-color: #dc3545 !important; }
+.placeholder-glow .placeholder {
+ animation: placeholder-glow 2s ease-in-out infinite; }
-a.bg-danger:hover, a.bg-danger:focus,
-button.bg-danger:hover,
-button.bg-danger:focus {
- background-color: #bd2130 !important; }
+@keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2; } }
-.bg-light {
- background-color: #e1e4e5 !important; }
+.placeholder-wave {
+ mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
+ mask-size: 200% 100%;
+ animation: placeholder-wave 2s linear infinite; }
-a.bg-light:hover, a.bg-light:focus,
-button.bg-light:hover,
-button.bg-light:focus {
- background-color: #c6cbcd !important; }
+@keyframes placeholder-wave {
+ 100% {
+ mask-position: -200% 0%; } }
-.bg-dark {
- background-color: #373738 !important; }
+.clearfix::after {
+ display: block;
+ clear: both;
+ content: ""; }
-a.bg-dark:hover, a.bg-dark:focus,
-button.bg-dark:hover,
-button.bg-dark:focus {
- background-color: #1e1e1e !important; }
+.text-bg-primary {
+ color: #fff !important;
+ background-color: RGBA(111, 126, 0, var(--bs-bg-opacity, 1)) !important; }
-.bg-white {
- background-color: #fff !important; }
+.text-bg-secondary {
+ color: #fff !important;
+ background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; }
-.bg-transparent {
- background-color: transparent !important; }
+.text-bg-success {
+ color: #fff !important;
+ background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; }
-.border {
- border: 1px solid #dee2e6 !important; }
+.text-bg-info {
+ color: #000 !important;
+ background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; }
-.border-top {
- border-top: 1px solid #dee2e6 !important; }
+.text-bg-warning {
+ color: #000 !important;
+ background-color: RGBA(217, 224, 33, var(--bs-bg-opacity, 1)) !important; }
-.border-right {
- border-right: 1px solid #dee2e6 !important; }
+.text-bg-danger {
+ color: #fff !important;
+ background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; }
-.border-bottom {
- border-bottom: 1px solid #dee2e6 !important; }
+.text-bg-light {
+ color: #000 !important;
+ background-color: RGBA(225, 228, 229, var(--bs-bg-opacity, 1)) !important; }
-.border-left {
- border-left: 1px solid #dee2e6 !important; }
+.text-bg-dark {
+ color: #fff !important;
+ background-color: RGBA(55, 55, 56, var(--bs-bg-opacity, 1)) !important; }
-.border-0 {
- border: 0 !important; }
+.link-primary {
+ color: #6f7e00 !important; }
+ .link-primary:hover, .link-primary:focus {
+ color: #596500 !important; }
-.border-top-0 {
- border-top: 0 !important; }
+.link-secondary {
+ color: #6c757d !important; }
+ .link-secondary:hover, .link-secondary:focus {
+ color: #565e64 !important; }
-.border-right-0 {
- border-right: 0 !important; }
+.link-success {
+ color: #198754 !important; }
+ .link-success:hover, .link-success:focus {
+ color: #146c43 !important; }
-.border-bottom-0 {
- border-bottom: 0 !important; }
+.link-info {
+ color: #0dcaf0 !important; }
+ .link-info:hover, .link-info:focus {
+ color: #3dd5f3 !important; }
-.border-left-0 {
- border-left: 0 !important; }
+.link-warning {
+ color: #d9e021 !important; }
+ .link-warning:hover, .link-warning:focus {
+ color: #e1e64d !important; }
-.border-primary {
- border-color: #9BAF00 !important; }
+.link-danger {
+ color: #dc3545 !important; }
+ .link-danger:hover, .link-danger:focus {
+ color: #b02a37 !important; }
-.border-secondary {
- border-color: #6c757d !important; }
+.link-light {
+ color: #e1e4e5 !important; }
+ .link-light:hover, .link-light:focus {
+ color: #e7e9ea !important; }
-.border-success {
- border-color: #28a745 !important; }
+.link-dark {
+ color: #373738 !important; }
+ .link-dark:hover, .link-dark:focus {
+ color: #2c2c2d !important; }
-.border-info {
- border-color: #17a2b8 !important; }
+.ratio {
+ position: relative;
+ width: 100%; }
+ .ratio::before {
+ display: block;
+ padding-top: var(--bs-aspect-ratio);
+ content: ""; }
+ .ratio > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%; }
-.border-warning {
- border-color: #d9e021 !important; }
+.ratio-1x1 {
+ --bs-aspect-ratio: 100%; }
-.border-danger {
- border-color: #dc3545 !important; }
+.ratio-4x3 {
+ --bs-aspect-ratio: calc(3 / 4 * 100%); }
-.border-light {
- border-color: #e1e4e5 !important; }
+.ratio-16x9 {
+ --bs-aspect-ratio: calc(9 / 16 * 100%); }
-.border-dark {
- border-color: #373738 !important; }
+.ratio-21x9 {
+ --bs-aspect-ratio: calc(9 / 21 * 100%); }
-.border-white {
- border-color: #fff !important; }
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1030; }
-.rounded {
- border-radius: 0.25rem !important; }
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030; }
-.rounded-top {
- border-top-left-radius: 0.25rem !important;
- border-top-right-radius: 0.25rem !important; }
+.sticky-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; }
-.rounded-right {
- border-top-right-radius: 0.25rem !important;
- border-bottom-right-radius: 0.25rem !important; }
+.sticky-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020; }
-.rounded-bottom {
- border-bottom-right-radius: 0.25rem !important;
- border-bottom-left-radius: 0.25rem !important; }
+@media (min-width: 576px) {
+ .sticky-sm-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; }
+ .sticky-sm-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020; } }
-.rounded-left {
- border-top-left-radius: 0.25rem !important;
- border-bottom-left-radius: 0.25rem !important; }
+@media (min-width: 768px) {
+ .sticky-md-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; }
+ .sticky-md-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020; } }
-.rounded-circle {
- border-radius: 50% !important; }
+@media (min-width: 992px) {
+ .sticky-lg-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; }
+ .sticky-lg-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020; } }
-.rounded-pill {
- border-radius: 50rem !important; }
+@media (min-width: 1200px) {
+ .sticky-xl-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; }
+ .sticky-xl-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020; } }
-.rounded-0 {
- border-radius: 0 !important; }
+@media (min-width: 1400px) {
+ .sticky-xxl-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020; }
+ .sticky-xxl-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: 1020; } }
-.clearfix::after {
- display: block;
- clear: both;
+.hstack {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ align-self: stretch; }
+
+.vstack {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ align-self: stretch; }
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important; }
+
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
content: ""; }
-.d-none {
- display: none !important; }
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+
+.vr {
+ display: inline-block;
+ align-self: stretch;
+ width: 1px;
+ min-height: 1em;
+ background-color: currentcolor;
+ opacity: 0.25; }
+
+.align-baseline {
+ vertical-align: baseline !important; }
+
+.align-top {
+ vertical-align: top !important; }
+
+.align-middle {
+ vertical-align: middle !important; }
+
+.align-bottom {
+ vertical-align: bottom !important; }
+
+.align-text-bottom {
+ vertical-align: text-bottom !important; }
+
+.align-text-top {
+ vertical-align: text-top !important; }
+
+.float-start {
+ float: left !important; }
+
+.float-end {
+ float: right !important; }
+
+.float-none {
+ float: none !important; }
+
+.opacity-0 {
+ opacity: 0 !important; }
+
+.opacity-25 {
+ opacity: 0.25 !important; }
+
+.opacity-50 {
+ opacity: 0.5 !important; }
+
+.opacity-75 {
+ opacity: 0.75 !important; }
+
+.opacity-100 {
+ opacity: 1 !important; }
+
+.overflow-auto {
+ overflow: auto !important; }
+
+.overflow-hidden {
+ overflow: hidden !important; }
+
+.overflow-visible {
+ overflow: visible !important; }
+
+.overflow-scroll {
+ overflow: scroll !important; }
.d-inline {
display: inline !important; }
@@ -4680,6 +5646,9 @@ button.bg-dark:focus {
.d-block {
display: block !important; }
+.d-grid {
+ display: grid !important; }
+
.d-table {
display: table !important; }
@@ -4695,191 +5664,279 @@ button.bg-dark:focus {
.d-inline-flex {
display: inline-flex !important; }
-@media (min-width: 576px) {
- .d-sm-none {
- display: none !important; }
- .d-sm-inline {
- display: inline !important; }
- .d-sm-inline-block {
- display: inline-block !important; }
- .d-sm-block {
- display: block !important; }
- .d-sm-table {
- display: table !important; }
- .d-sm-table-row {
- display: table-row !important; }
- .d-sm-table-cell {
- display: table-cell !important; }
- .d-sm-flex {
- display: flex !important; }
- .d-sm-inline-flex {
- display: inline-flex !important; } }
+.d-none {
+ display: none !important; }
-@media (min-width: 768px) {
- .d-md-none {
- display: none !important; }
- .d-md-inline {
- display: inline !important; }
- .d-md-inline-block {
- display: inline-block !important; }
- .d-md-block {
- display: block !important; }
- .d-md-table {
- display: table !important; }
- .d-md-table-row {
- display: table-row !important; }
- .d-md-table-cell {
- display: table-cell !important; }
- .d-md-flex {
- display: flex !important; }
- .d-md-inline-flex {
- display: inline-flex !important; } }
+.shadow {
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }
-@media (min-width: 992px) {
- .d-lg-none {
- display: none !important; }
- .d-lg-inline {
- display: inline !important; }
- .d-lg-inline-block {
- display: inline-block !important; }
- .d-lg-block {
- display: block !important; }
- .d-lg-table {
- display: table !important; }
- .d-lg-table-row {
- display: table-row !important; }
- .d-lg-table-cell {
- display: table-cell !important; }
- .d-lg-flex {
- display: flex !important; }
- .d-lg-inline-flex {
- display: inline-flex !important; } }
+.shadow-sm {
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
-@media (min-width: 1200px) {
- .d-xl-none {
- display: none !important; }
- .d-xl-inline {
- display: inline !important; }
- .d-xl-inline-block {
- display: inline-block !important; }
- .d-xl-block {
- display: block !important; }
- .d-xl-table {
- display: table !important; }
- .d-xl-table-row {
- display: table-row !important; }
- .d-xl-table-cell {
- display: table-cell !important; }
- .d-xl-flex {
- display: flex !important; }
- .d-xl-inline-flex {
- display: inline-flex !important; } }
+.shadow-lg {
+ box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }
-@media print {
- .d-print-none {
- display: none !important; }
- .d-print-inline {
- display: inline !important; }
- .d-print-inline-block {
- display: inline-block !important; }
- .d-print-block {
- display: block !important; }
- .d-print-table {
- display: table !important; }
- .d-print-table-row {
- display: table-row !important; }
- .d-print-table-cell {
- display: table-cell !important; }
- .d-print-flex {
- display: flex !important; }
- .d-print-inline-flex {
- display: inline-flex !important; } }
+.shadow-none {
+ box-shadow: none !important; }
-.embed-responsive {
- position: relative;
- display: block;
- width: 100%;
- padding: 0;
- overflow: hidden; }
- .embed-responsive::before {
- display: block;
- content: ""; }
- .embed-responsive .embed-responsive-item,
- .embed-responsive iframe,
- .embed-responsive embed,
- .embed-responsive object,
- .embed-responsive video {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 0; }
+.position-static {
+ position: static !important; }
-.embed-responsive-21by9::before {
- padding-top: 42.85714%; }
+.position-relative {
+ position: relative !important; }
-.embed-responsive-16by9::before {
- padding-top: 56.25%; }
+.position-absolute {
+ position: absolute !important; }
-.embed-responsive-3by4::before {
- padding-top: 133.33333%; }
+.position-fixed {
+ position: fixed !important; }
-.embed-responsive-1by1::before {
- padding-top: 100%; }
+.position-sticky {
+ position: sticky !important; }
-.flex-row {
- flex-direction: row !important; }
+.top-0 {
+ top: 0 !important; }
-.flex-column {
- flex-direction: column !important; }
+.top-50 {
+ top: 50% !important; }
-.flex-row-reverse {
- flex-direction: row-reverse !important; }
+.top-100 {
+ top: 100% !important; }
-.flex-column-reverse {
- flex-direction: column-reverse !important; }
+.bottom-0 {
+ bottom: 0 !important; }
-.flex-wrap {
- flex-wrap: wrap !important; }
+.bottom-50 {
+ bottom: 50% !important; }
-.flex-nowrap {
- flex-wrap: nowrap !important; }
+.bottom-100 {
+ bottom: 100% !important; }
-.flex-wrap-reverse {
- flex-wrap: wrap-reverse !important; }
+.start-0 {
+ left: 0 !important; }
-.flex-fill {
- flex: 1 1 auto !important; }
+.start-50 {
+ left: 50% !important; }
-.flex-grow-0 {
- flex-grow: 0 !important; }
+.start-100 {
+ left: 100% !important; }
-.flex-grow-1 {
- flex-grow: 1 !important; }
+.end-0 {
+ right: 0 !important; }
-.flex-shrink-0 {
- flex-shrink: 0 !important; }
+.end-50 {
+ right: 50% !important; }
-.flex-shrink-1 {
- flex-shrink: 1 !important; }
+.end-100 {
+ right: 100% !important; }
-.justify-content-start {
- justify-content: flex-start !important; }
+.translate-middle {
+ transform: translate(-50%, -50%) !important; }
-.justify-content-end {
- justify-content: flex-end !important; }
+.translate-middle-x {
+ transform: translateX(-50%) !important; }
-.justify-content-center {
- justify-content: center !important; }
+.translate-middle-y {
+ transform: translateY(-50%) !important; }
-.justify-content-between {
- justify-content: space-between !important; }
+.border {
+ border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; }
+
+.border-0 {
+ border: 0 !important; }
+
+.border-top {
+ border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; }
+
+.border-top-0 {
+ border-top: 0 !important; }
+
+.border-end {
+ border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; }
+
+.border-end-0 {
+ border-right: 0 !important; }
+
+.border-bottom {
+ border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; }
+
+.border-bottom-0 {
+ border-bottom: 0 !important; }
+
+.border-start {
+ border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; }
+
+.border-start-0 {
+ border-left: 0 !important; }
+
+.border-primary {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; }
+
+.border-secondary {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; }
+
+.border-success {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; }
+
+.border-info {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; }
+
+.border-warning {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; }
+
+.border-danger {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; }
+
+.border-light {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; }
+
+.border-dark {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; }
+
+.border-white {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; }
+
+.border-1 {
+ --bs-border-width: 1px; }
+
+.border-2 {
+ --bs-border-width: 2px; }
+
+.border-3 {
+ --bs-border-width: 3px; }
+
+.border-4 {
+ --bs-border-width: 4px; }
+
+.border-5 {
+ --bs-border-width: 5px; }
+
+.border-opacity-10 {
+ --bs-border-opacity: 0.1; }
+
+.border-opacity-25 {
+ --bs-border-opacity: 0.25; }
+
+.border-opacity-50 {
+ --bs-border-opacity: 0.5; }
+
+.border-opacity-75 {
+ --bs-border-opacity: 0.75; }
+
+.border-opacity-100 {
+ --bs-border-opacity: 1; }
+
+.w-25 {
+ width: 25% !important; }
+
+.w-50 {
+ width: 50% !important; }
+
+.w-75 {
+ width: 75% !important; }
+
+.w-100 {
+ width: 100% !important; }
+
+.w-auto {
+ width: auto !important; }
+
+.mw-100 {
+ max-width: 100% !important; }
+
+.vw-100 {
+ width: 100vw !important; }
+
+.min-vw-100 {
+ min-width: 100vw !important; }
+
+.h-25 {
+ height: 25% !important; }
+
+.h-50 {
+ height: 50% !important; }
+
+.h-75 {
+ height: 75% !important; }
+
+.h-100 {
+ height: 100% !important; }
+
+.h-auto {
+ height: auto !important; }
+
+.mh-100 {
+ max-height: 100% !important; }
+
+.vh-100 {
+ height: 100vh !important; }
+
+.min-vh-100 {
+ min-height: 100vh !important; }
+
+.flex-fill {
+ flex: 1 1 auto !important; }
+
+.flex-row {
+ flex-direction: row !important; }
+
+.flex-column {
+ flex-direction: column !important; }
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important; }
+
+.flex-column-reverse {
+ flex-direction: column-reverse !important; }
+
+.flex-grow-0 {
+ flex-grow: 0 !important; }
+
+.flex-grow-1 {
+ flex-grow: 1 !important; }
+
+.flex-shrink-0 {
+ flex-shrink: 0 !important; }
+
+.flex-shrink-1 {
+ flex-shrink: 1 !important; }
+
+.flex-wrap {
+ flex-wrap: wrap !important; }
+
+.flex-nowrap {
+ flex-wrap: nowrap !important; }
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+
+.justify-content-start {
+ justify-content: flex-start !important; }
+
+.justify-content-end {
+ justify-content: flex-end !important; }
+
+.justify-content-center {
+ justify-content: center !important; }
+
+.justify-content-between {
+ justify-content: space-between !important; }
.justify-content-around {
justify-content: space-around !important; }
+.justify-content-evenly {
+ justify-content: space-evenly !important; }
+
.align-items-start {
align-items: flex-start !important; }
@@ -4931,2040 +5988,2381 @@ button.bg-dark:focus {
.align-self-stretch {
align-self: stretch !important; }
-@media (min-width: 576px) {
- .flex-sm-row {
- flex-direction: row !important; }
- .flex-sm-column {
- flex-direction: column !important; }
- .flex-sm-row-reverse {
- flex-direction: row-reverse !important; }
- .flex-sm-column-reverse {
- flex-direction: column-reverse !important; }
- .flex-sm-wrap {
- flex-wrap: wrap !important; }
- .flex-sm-nowrap {
- flex-wrap: nowrap !important; }
- .flex-sm-wrap-reverse {
- flex-wrap: wrap-reverse !important; }
- .flex-sm-fill {
- flex: 1 1 auto !important; }
- .flex-sm-grow-0 {
- flex-grow: 0 !important; }
- .flex-sm-grow-1 {
- flex-grow: 1 !important; }
- .flex-sm-shrink-0 {
- flex-shrink: 0 !important; }
- .flex-sm-shrink-1 {
- flex-shrink: 1 !important; }
- .justify-content-sm-start {
- justify-content: flex-start !important; }
- .justify-content-sm-end {
- justify-content: flex-end !important; }
- .justify-content-sm-center {
- justify-content: center !important; }
- .justify-content-sm-between {
- justify-content: space-between !important; }
- .justify-content-sm-around {
- justify-content: space-around !important; }
- .align-items-sm-start {
- align-items: flex-start !important; }
- .align-items-sm-end {
- align-items: flex-end !important; }
- .align-items-sm-center {
- align-items: center !important; }
- .align-items-sm-baseline {
- align-items: baseline !important; }
- .align-items-sm-stretch {
- align-items: stretch !important; }
- .align-content-sm-start {
- align-content: flex-start !important; }
- .align-content-sm-end {
- align-content: flex-end !important; }
- .align-content-sm-center {
- align-content: center !important; }
- .align-content-sm-between {
- align-content: space-between !important; }
- .align-content-sm-around {
- align-content: space-around !important; }
- .align-content-sm-stretch {
- align-content: stretch !important; }
- .align-self-sm-auto {
- align-self: auto !important; }
- .align-self-sm-start {
- align-self: flex-start !important; }
- .align-self-sm-end {
- align-self: flex-end !important; }
- .align-self-sm-center {
- align-self: center !important; }
- .align-self-sm-baseline {
- align-self: baseline !important; }
- .align-self-sm-stretch {
- align-self: stretch !important; } }
+.order-first {
+ order: -1 !important; }
-@media (min-width: 768px) {
- .flex-md-row {
- flex-direction: row !important; }
- .flex-md-column {
- flex-direction: column !important; }
- .flex-md-row-reverse {
- flex-direction: row-reverse !important; }
- .flex-md-column-reverse {
- flex-direction: column-reverse !important; }
- .flex-md-wrap {
- flex-wrap: wrap !important; }
- .flex-md-nowrap {
- flex-wrap: nowrap !important; }
- .flex-md-wrap-reverse {
- flex-wrap: wrap-reverse !important; }
- .flex-md-fill {
- flex: 1 1 auto !important; }
- .flex-md-grow-0 {
- flex-grow: 0 !important; }
- .flex-md-grow-1 {
- flex-grow: 1 !important; }
- .flex-md-shrink-0 {
- flex-shrink: 0 !important; }
- .flex-md-shrink-1 {
- flex-shrink: 1 !important; }
- .justify-content-md-start {
- justify-content: flex-start !important; }
- .justify-content-md-end {
- justify-content: flex-end !important; }
- .justify-content-md-center {
- justify-content: center !important; }
- .justify-content-md-between {
- justify-content: space-between !important; }
- .justify-content-md-around {
- justify-content: space-around !important; }
- .align-items-md-start {
- align-items: flex-start !important; }
- .align-items-md-end {
- align-items: flex-end !important; }
- .align-items-md-center {
- align-items: center !important; }
- .align-items-md-baseline {
- align-items: baseline !important; }
- .align-items-md-stretch {
- align-items: stretch !important; }
- .align-content-md-start {
- align-content: flex-start !important; }
- .align-content-md-end {
- align-content: flex-end !important; }
- .align-content-md-center {
- align-content: center !important; }
- .align-content-md-between {
- align-content: space-between !important; }
- .align-content-md-around {
- align-content: space-around !important; }
- .align-content-md-stretch {
- align-content: stretch !important; }
- .align-self-md-auto {
- align-self: auto !important; }
- .align-self-md-start {
- align-self: flex-start !important; }
- .align-self-md-end {
- align-self: flex-end !important; }
- .align-self-md-center {
- align-self: center !important; }
- .align-self-md-baseline {
- align-self: baseline !important; }
- .align-self-md-stretch {
- align-self: stretch !important; } }
+.order-0 {
+ order: 0 !important; }
-@media (min-width: 992px) {
- .flex-lg-row {
- flex-direction: row !important; }
- .flex-lg-column {
- flex-direction: column !important; }
- .flex-lg-row-reverse {
- flex-direction: row-reverse !important; }
- .flex-lg-column-reverse {
- flex-direction: column-reverse !important; }
- .flex-lg-wrap {
- flex-wrap: wrap !important; }
- .flex-lg-nowrap {
- flex-wrap: nowrap !important; }
- .flex-lg-wrap-reverse {
- flex-wrap: wrap-reverse !important; }
- .flex-lg-fill {
- flex: 1 1 auto !important; }
- .flex-lg-grow-0 {
- flex-grow: 0 !important; }
- .flex-lg-grow-1 {
- flex-grow: 1 !important; }
- .flex-lg-shrink-0 {
- flex-shrink: 0 !important; }
- .flex-lg-shrink-1 {
- flex-shrink: 1 !important; }
- .justify-content-lg-start {
- justify-content: flex-start !important; }
- .justify-content-lg-end {
- justify-content: flex-end !important; }
- .justify-content-lg-center {
- justify-content: center !important; }
- .justify-content-lg-between {
- justify-content: space-between !important; }
- .justify-content-lg-around {
- justify-content: space-around !important; }
- .align-items-lg-start {
- align-items: flex-start !important; }
- .align-items-lg-end {
- align-items: flex-end !important; }
- .align-items-lg-center {
- align-items: center !important; }
- .align-items-lg-baseline {
- align-items: baseline !important; }
- .align-items-lg-stretch {
- align-items: stretch !important; }
- .align-content-lg-start {
- align-content: flex-start !important; }
- .align-content-lg-end {
- align-content: flex-end !important; }
- .align-content-lg-center {
- align-content: center !important; }
- .align-content-lg-between {
- align-content: space-between !important; }
- .align-content-lg-around {
- align-content: space-around !important; }
- .align-content-lg-stretch {
- align-content: stretch !important; }
- .align-self-lg-auto {
- align-self: auto !important; }
- .align-self-lg-start {
- align-self: flex-start !important; }
- .align-self-lg-end {
- align-self: flex-end !important; }
- .align-self-lg-center {
- align-self: center !important; }
- .align-self-lg-baseline {
- align-self: baseline !important; }
- .align-self-lg-stretch {
- align-self: stretch !important; } }
+.order-1 {
+ order: 1 !important; }
-@media (min-width: 1200px) {
- .flex-xl-row {
- flex-direction: row !important; }
- .flex-xl-column {
- flex-direction: column !important; }
- .flex-xl-row-reverse {
- flex-direction: row-reverse !important; }
- .flex-xl-column-reverse {
- flex-direction: column-reverse !important; }
- .flex-xl-wrap {
- flex-wrap: wrap !important; }
- .flex-xl-nowrap {
- flex-wrap: nowrap !important; }
- .flex-xl-wrap-reverse {
- flex-wrap: wrap-reverse !important; }
- .flex-xl-fill {
- flex: 1 1 auto !important; }
- .flex-xl-grow-0 {
- flex-grow: 0 !important; }
- .flex-xl-grow-1 {
- flex-grow: 1 !important; }
- .flex-xl-shrink-0 {
- flex-shrink: 0 !important; }
- .flex-xl-shrink-1 {
- flex-shrink: 1 !important; }
- .justify-content-xl-start {
- justify-content: flex-start !important; }
- .justify-content-xl-end {
- justify-content: flex-end !important; }
- .justify-content-xl-center {
- justify-content: center !important; }
- .justify-content-xl-between {
- justify-content: space-between !important; }
- .justify-content-xl-around {
- justify-content: space-around !important; }
- .align-items-xl-start {
- align-items: flex-start !important; }
- .align-items-xl-end {
- align-items: flex-end !important; }
- .align-items-xl-center {
- align-items: center !important; }
- .align-items-xl-baseline {
- align-items: baseline !important; }
- .align-items-xl-stretch {
- align-items: stretch !important; }
- .align-content-xl-start {
- align-content: flex-start !important; }
- .align-content-xl-end {
- align-content: flex-end !important; }
- .align-content-xl-center {
- align-content: center !important; }
- .align-content-xl-between {
- align-content: space-between !important; }
- .align-content-xl-around {
- align-content: space-around !important; }
- .align-content-xl-stretch {
- align-content: stretch !important; }
- .align-self-xl-auto {
- align-self: auto !important; }
- .align-self-xl-start {
- align-self: flex-start !important; }
- .align-self-xl-end {
- align-self: flex-end !important; }
- .align-self-xl-center {
- align-self: center !important; }
- .align-self-xl-baseline {
- align-self: baseline !important; }
- .align-self-xl-stretch {
- align-self: stretch !important; } }
+.order-2 {
+ order: 2 !important; }
-.float-left {
- float: left !important; }
+.order-3 {
+ order: 3 !important; }
-.float-right {
- float: right !important; }
+.order-4 {
+ order: 4 !important; }
-.float-none {
- float: none !important; }
+.order-5 {
+ order: 5 !important; }
-@media (min-width: 576px) {
- .float-sm-left {
- float: left !important; }
- .float-sm-right {
- float: right !important; }
- .float-sm-none {
- float: none !important; } }
+.order-last {
+ order: 6 !important; }
-@media (min-width: 768px) {
- .float-md-left {
- float: left !important; }
- .float-md-right {
- float: right !important; }
- .float-md-none {
- float: none !important; } }
+.m-0 {
+ margin: 0 !important; }
-@media (min-width: 992px) {
- .float-lg-left {
- float: left !important; }
- .float-lg-right {
- float: right !important; }
- .float-lg-none {
- float: none !important; } }
+.m-1 {
+ margin: 0.25rem !important; }
-@media (min-width: 1200px) {
- .float-xl-left {
- float: left !important; }
- .float-xl-right {
- float: right !important; }
- .float-xl-none {
- float: none !important; } }
+.m-2 {
+ margin: 0.5rem !important; }
-.overflow-auto {
- overflow: auto !important; }
+.m-3 {
+ margin: 1rem !important; }
-.overflow-hidden {
- overflow: hidden !important; }
+.m-4 {
+ margin: 1.5rem !important; }
-.position-static {
- position: static !important; }
+.m-5 {
+ margin: 3rem !important; }
-.position-relative {
- position: relative !important; }
+.m-auto {
+ margin: auto !important; }
-.position-absolute {
- position: absolute !important; }
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important; }
-.position-fixed {
- position: fixed !important; }
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important; }
-.position-sticky {
- position: sticky !important; }
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important; }
-.fixed-top {
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- z-index: 1030; }
+.mx-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
-.fixed-bottom {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1030; }
+.mx-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important; }
-@supports (position: sticky) {
- .sticky-top {
- position: sticky;
- top: 0;
- z-index: 1020; } }
+.mx-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border: 0; }
+.mx-auto {
+ margin-right: auto !important;
+ margin-left: auto !important; }
-.sr-only-focusable:active, .sr-only-focusable:focus {
- position: static;
- width: auto;
- height: auto;
- overflow: visible;
- clip: auto;
- white-space: normal; }
+.my-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important; }
-.shadow-sm {
- box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
-
-.shadow {
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }
-
-.shadow-lg {
- box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }
-
-.shadow-none {
- box-shadow: none !important; }
+.my-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
-.w-25 {
- width: 25% !important; }
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important; }
-.w-50 {
- width: 50% !important; }
+.my-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
-.w-75 {
- width: 75% !important; }
+.my-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important; }
-.w-100 {
- width: 100% !important; }
+.my-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
-.w-auto {
- width: auto !important; }
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important; }
-.h-25 {
- height: 25% !important; }
+.mt-0 {
+ margin-top: 0 !important; }
-.h-50 {
- height: 50% !important; }
+.mt-1 {
+ margin-top: 0.25rem !important; }
-.h-75 {
- height: 75% !important; }
+.mt-2 {
+ margin-top: 0.5rem !important; }
-.h-100 {
- height: 100% !important; }
+.mt-3 {
+ margin-top: 1rem !important; }
-.h-auto {
- height: auto !important; }
+.mt-4 {
+ margin-top: 1.5rem !important; }
-.mw-100 {
- max-width: 100% !important; }
+.mt-5 {
+ margin-top: 3rem !important; }
-.mh-100 {
- max-height: 100% !important; }
+.mt-auto {
+ margin-top: auto !important; }
-.min-vw-100 {
- min-width: 100vw !important; }
+.me-0 {
+ margin-right: 0 !important; }
-.min-vh-100 {
- min-height: 100vh !important; }
+.me-1 {
+ margin-right: 0.25rem !important; }
-.vw-100 {
- width: 100vw !important; }
+.me-2 {
+ margin-right: 0.5rem !important; }
-.vh-100 {
- height: 100vh !important; }
+.me-3 {
+ margin-right: 1rem !important; }
-.m-0 {
- margin: 0 !important; }
+.me-4 {
+ margin-right: 1.5rem !important; }
-.mt-0,
-.my-0 {
- margin-top: 0 !important; }
+.me-5 {
+ margin-right: 3rem !important; }
-.mr-0,
-.mx-0 {
- margin-right: 0 !important; }
+.me-auto {
+ margin-right: auto !important; }
-.mb-0,
-.my-0 {
+.mb-0 {
margin-bottom: 0 !important; }
-.ml-0,
-.mx-0 {
- margin-left: 0 !important; }
-
-.m-1 {
- margin: 0.25rem !important; }
-
-.mt-1,
-.my-1 {
- margin-top: 0.25rem !important; }
-
-.mr-1,
-.mx-1 {
- margin-right: 0.25rem !important; }
-
-.mb-1,
-.my-1 {
+.mb-1 {
margin-bottom: 0.25rem !important; }
-.ml-1,
-.mx-1 {
- margin-left: 0.25rem !important; }
-
-.m-2 {
- margin: 0.5rem !important; }
-
-.mt-2,
-.my-2 {
- margin-top: 0.5rem !important; }
-
-.mr-2,
-.mx-2 {
- margin-right: 0.5rem !important; }
-
-.mb-2,
-.my-2 {
+.mb-2 {
margin-bottom: 0.5rem !important; }
-.ml-2,
-.mx-2 {
- margin-left: 0.5rem !important; }
-
-.m-3 {
- margin: 1rem !important; }
-
-.mt-3,
-.my-3 {
- margin-top: 1rem !important; }
-
-.mr-3,
-.mx-3 {
- margin-right: 1rem !important; }
-
-.mb-3,
-.my-3 {
+.mb-3 {
margin-bottom: 1rem !important; }
-.ml-3,
-.mx-3 {
- margin-left: 1rem !important; }
-
-.m-4 {
- margin: 1.5rem !important; }
-
-.mt-4,
-.my-4 {
- margin-top: 1.5rem !important; }
+.mb-4 {
+ margin-bottom: 1.5rem !important; }
-.mr-4,
-.mx-4 {
- margin-right: 1.5rem !important; }
+.mb-5 {
+ margin-bottom: 3rem !important; }
-.mb-4,
-.my-4 {
- margin-bottom: 1.5rem !important; }
+.mb-auto {
+ margin-bottom: auto !important; }
-.ml-4,
-.mx-4 {
- margin-left: 1.5rem !important; }
+.ms-0 {
+ margin-left: 0 !important; }
-.m-5 {
- margin: 3rem !important; }
+.ms-1 {
+ margin-left: 0.25rem !important; }
-.mt-5,
-.my-5 {
- margin-top: 3rem !important; }
+.ms-2 {
+ margin-left: 0.5rem !important; }
-.mr-5,
-.mx-5 {
- margin-right: 3rem !important; }
+.ms-3 {
+ margin-left: 1rem !important; }
-.mb-5,
-.my-5 {
- margin-bottom: 3rem !important; }
+.ms-4 {
+ margin-left: 1.5rem !important; }
-.ml-5,
-.mx-5 {
+.ms-5 {
margin-left: 3rem !important; }
+.ms-auto {
+ margin-left: auto !important; }
+
.p-0 {
padding: 0 !important; }
-.pt-0,
-.py-0 {
- padding-top: 0 !important; }
+.p-1 {
+ padding: 0.25rem !important; }
-.pr-0,
-.px-0 {
- padding-right: 0 !important; }
+.p-2 {
+ padding: 0.5rem !important; }
-.pb-0,
-.py-0 {
- padding-bottom: 0 !important; }
+.p-3 {
+ padding: 1rem !important; }
-.pl-0,
-.px-0 {
- padding-left: 0 !important; }
+.p-4 {
+ padding: 1.5rem !important; }
-.p-1 {
- padding: 0.25rem !important; }
+.p-5 {
+ padding: 3rem !important; }
-.pt-1,
-.py-1 {
- padding-top: 0.25rem !important; }
+.px-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important; }
-.pr-1,
.px-1 {
- padding-right: 0.25rem !important; }
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important; }
-.pb-1,
-.py-1 {
- padding-bottom: 0.25rem !important; }
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important; }
-.pl-1,
-.px-1 {
- padding-left: 0.25rem !important; }
+.px-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
-.p-2 {
- padding: 0.5rem !important; }
+.px-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important; }
-.pt-2,
-.py-2 {
- padding-top: 0.5rem !important; }
+.px-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
-.pr-2,
-.px-2 {
- padding-right: 0.5rem !important; }
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important; }
+
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
-.pb-2,
.py-2 {
+ padding-top: 0.5rem !important;
padding-bottom: 0.5rem !important; }
-.pl-2,
-.px-2 {
- padding-left: 0.5rem !important; }
+.py-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
-.p-3 {
- padding: 1rem !important; }
+.py-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important; }
-.pt-3,
-.py-3 {
- padding-top: 1rem !important; }
+.py-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
-.pr-3,
-.px-3 {
- padding-right: 1rem !important; }
+.pt-0 {
+ padding-top: 0 !important; }
-.pb-3,
-.py-3 {
- padding-bottom: 1rem !important; }
+.pt-1 {
+ padding-top: 0.25rem !important; }
-.pl-3,
-.px-3 {
- padding-left: 1rem !important; }
+.pt-2 {
+ padding-top: 0.5rem !important; }
-.p-4 {
- padding: 1.5rem !important; }
+.pt-3 {
+ padding-top: 1rem !important; }
-.pt-4,
-.py-4 {
+.pt-4 {
padding-top: 1.5rem !important; }
-.pr-4,
-.px-4 {
- padding-right: 1.5rem !important; }
+.pt-5 {
+ padding-top: 3rem !important; }
-.pb-4,
-.py-4 {
- padding-bottom: 1.5rem !important; }
+.pe-0 {
+ padding-right: 0 !important; }
-.pl-4,
-.px-4 {
- padding-left: 1.5rem !important; }
+.pe-1 {
+ padding-right: 0.25rem !important; }
-.p-5 {
- padding: 3rem !important; }
+.pe-2 {
+ padding-right: 0.5rem !important; }
-.pt-5,
-.py-5 {
- padding-top: 3rem !important; }
+.pe-3 {
+ padding-right: 1rem !important; }
-.pr-5,
-.px-5 {
+.pe-4 {
+ padding-right: 1.5rem !important; }
+
+.pe-5 {
padding-right: 3rem !important; }
-.pb-5,
-.py-5 {
- padding-bottom: 3rem !important; }
+.pb-0 {
+ padding-bottom: 0 !important; }
-.pl-5,
-.px-5 {
- padding-left: 3rem !important; }
+.pb-1 {
+ padding-bottom: 0.25rem !important; }
-.m-n1 {
- margin: -0.25rem !important; }
+.pb-2 {
+ padding-bottom: 0.5rem !important; }
-.mt-n1,
-.my-n1 {
- margin-top: -0.25rem !important; }
+.pb-3 {
+ padding-bottom: 1rem !important; }
-.mr-n1,
-.mx-n1 {
- margin-right: -0.25rem !important; }
+.pb-4 {
+ padding-bottom: 1.5rem !important; }
-.mb-n1,
-.my-n1 {
- margin-bottom: -0.25rem !important; }
+.pb-5 {
+ padding-bottom: 3rem !important; }
-.ml-n1,
-.mx-n1 {
- margin-left: -0.25rem !important; }
+.ps-0 {
+ padding-left: 0 !important; }
-.m-n2 {
- margin: -0.5rem !important; }
+.ps-1 {
+ padding-left: 0.25rem !important; }
-.mt-n2,
-.my-n2 {
- margin-top: -0.5rem !important; }
+.ps-2 {
+ padding-left: 0.5rem !important; }
-.mr-n2,
-.mx-n2 {
- margin-right: -0.5rem !important; }
+.ps-3 {
+ padding-left: 1rem !important; }
-.mb-n2,
-.my-n2 {
- margin-bottom: -0.5rem !important; }
+.ps-4 {
+ padding-left: 1.5rem !important; }
-.ml-n2,
-.mx-n2 {
- margin-left: -0.5rem !important; }
+.ps-5 {
+ padding-left: 3rem !important; }
-.m-n3 {
- margin: -1rem !important; }
+.gap-0 {
+ gap: 0 !important; }
-.mt-n3,
-.my-n3 {
- margin-top: -1rem !important; }
+.gap-1 {
+ gap: 0.25rem !important; }
-.mr-n3,
-.mx-n3 {
- margin-right: -1rem !important; }
+.gap-2 {
+ gap: 0.5rem !important; }
-.mb-n3,
-.my-n3 {
- margin-bottom: -1rem !important; }
+.gap-3 {
+ gap: 1rem !important; }
-.ml-n3,
-.mx-n3 {
- margin-left: -1rem !important; }
+.gap-4 {
+ gap: 1.5rem !important; }
-.m-n4 {
- margin: -1.5rem !important; }
+.gap-5 {
+ gap: 3rem !important; }
-.mt-n4,
-.my-n4 {
- margin-top: -1.5rem !important; }
+.font-monospace {
+ font-family: var(--bs-font-monospace) !important; }
-.mr-n4,
-.mx-n4 {
- margin-right: -1.5rem !important; }
+.fs-1 {
+ font-size: calc(1.375rem + 1.5vw) !important; }
-.mb-n4,
-.my-n4 {
- margin-bottom: -1.5rem !important; }
+.fs-2 {
+ font-size: calc(1.325rem + 0.9vw) !important; }
-.ml-n4,
-.mx-n4 {
- margin-left: -1.5rem !important; }
+.fs-3 {
+ font-size: calc(1.3rem + 0.6vw) !important; }
-.m-n5 {
- margin: -3rem !important; }
+.fs-4 {
+ font-size: calc(1.275rem + 0.3vw) !important; }
-.mt-n5,
-.my-n5 {
- margin-top: -3rem !important; }
+.fs-5 {
+ font-size: 1.25rem !important; }
-.mr-n5,
-.mx-n5 {
- margin-right: -3rem !important; }
+.fs-6 {
+ font-size: 1rem !important; }
-.mb-n5,
-.my-n5 {
- margin-bottom: -3rem !important; }
+.fst-italic {
+ font-style: italic !important; }
-.ml-n5,
-.mx-n5 {
- margin-left: -3rem !important; }
+.fst-normal {
+ font-style: normal !important; }
-.m-auto {
- margin: auto !important; }
+.fw-light {
+ font-weight: 300 !important; }
-.mt-auto,
-.my-auto {
- margin-top: auto !important; }
+.fw-lighter {
+ font-weight: lighter !important; }
-.mr-auto,
-.mx-auto {
- margin-right: auto !important; }
+.fw-normal {
+ font-weight: 400 !important; }
-.mb-auto,
-.my-auto {
- margin-bottom: auto !important; }
+.fw-bold {
+ font-weight: 700 !important; }
-.ml-auto,
-.mx-auto {
- margin-left: auto !important; }
+.fw-semibold {
+ font-weight: 600 !important; }
+
+.fw-bolder {
+ font-weight: bolder !important; }
+
+.lh-1 {
+ line-height: 1 !important; }
+
+.lh-sm {
+ line-height: 1.25 !important; }
+
+.lh-base {
+ line-height: 1.5 !important; }
+
+.lh-lg {
+ line-height: 2 !important; }
+
+.text-start {
+ text-align: left !important; }
+
+.text-end {
+ text-align: right !important; }
+
+.text-center {
+ text-align: center !important; }
+
+.text-decoration-none {
+ text-decoration: none !important; }
+
+.text-decoration-underline {
+ text-decoration: underline !important; }
+
+.text-decoration-line-through {
+ text-decoration: line-through !important; }
+
+.text-lowercase {
+ text-transform: lowercase !important; }
+
+.text-uppercase {
+ text-transform: uppercase !important; }
+
+.text-capitalize {
+ text-transform: capitalize !important; }
+
+.text-wrap {
+ white-space: normal !important; }
+
+.text-nowrap {
+ white-space: nowrap !important; }
+
+/* rtl:begin:remove */
+.text-break {
+ word-wrap: break-word !important;
+ word-break: break-word !important; }
+
+/* rtl:end:remove */
+.text-primary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; }
+
+.text-secondary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; }
+
+.text-success {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; }
+
+.text-info {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; }
+
+.text-warning {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; }
+
+.text-danger {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; }
+
+.text-light {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; }
+
+.text-dark {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; }
+
+.text-black {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; }
+
+.text-white {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; }
+
+.text-body {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; }
+
+.text-muted {
+ --bs-text-opacity: 1;
+ color: #6c757d !important; }
+
+.text-black-50 {
+ --bs-text-opacity: 1;
+ color: rgba(0, 0, 0, 0.5) !important; }
+
+.text-white-50 {
+ --bs-text-opacity: 1;
+ color: rgba(255, 255, 255, 0.5) !important; }
+
+.text-reset {
+ --bs-text-opacity: 1;
+ color: inherit !important; }
+
+.text-opacity-25 {
+ --bs-text-opacity: 0.25; }
+
+.text-opacity-50 {
+ --bs-text-opacity: 0.5; }
+
+.text-opacity-75 {
+ --bs-text-opacity: 0.75; }
+
+.text-opacity-100 {
+ --bs-text-opacity: 1; }
+
+.bg-primary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-secondary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-success {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-info {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-warning {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-danger {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-light {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-dark {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-black {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-white {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-body {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; }
+
+.bg-transparent {
+ --bs-bg-opacity: 1;
+ background-color: transparent !important; }
+
+.bg-opacity-10 {
+ --bs-bg-opacity: 0.1; }
+
+.bg-opacity-25 {
+ --bs-bg-opacity: 0.25; }
+
+.bg-opacity-50 {
+ --bs-bg-opacity: 0.5; }
+
+.bg-opacity-75 {
+ --bs-bg-opacity: 0.75; }
+
+.bg-opacity-100 {
+ --bs-bg-opacity: 1; }
+
+.bg-gradient {
+ background-image: var(--bs-gradient) !important; }
+
+.user-select-all {
+ user-select: all !important; }
+
+.user-select-auto {
+ user-select: auto !important; }
+
+.user-select-none {
+ user-select: none !important; }
+
+.pe-none {
+ pointer-events: none !important; }
+
+.pe-auto {
+ pointer-events: auto !important; }
+
+.rounded {
+ border-radius: var(--bs-border-radius) !important; }
+
+.rounded-0 {
+ border-radius: 0 !important; }
+
+.rounded-1 {
+ border-radius: var(--bs-border-radius-sm) !important; }
+
+.rounded-2 {
+ border-radius: var(--bs-border-radius) !important; }
+
+.rounded-3 {
+ border-radius: var(--bs-border-radius-lg) !important; }
+
+.rounded-4 {
+ border-radius: var(--bs-border-radius-xl) !important; }
+
+.rounded-5 {
+ border-radius: var(--bs-border-radius-2xl) !important; }
+
+.rounded-circle {
+ border-radius: 50% !important; }
+
+.rounded-pill {
+ border-radius: var(--bs-border-radius-pill) !important; }
+
+.rounded-top {
+ border-top-left-radius: var(--bs-border-radius) !important;
+ border-top-right-radius: var(--bs-border-radius) !important; }
+
+.rounded-end {
+ border-top-right-radius: var(--bs-border-radius) !important;
+ border-bottom-right-radius: var(--bs-border-radius) !important; }
+
+.rounded-bottom {
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+ border-bottom-left-radius: var(--bs-border-radius) !important; }
+
+.rounded-start {
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+ border-top-left-radius: var(--bs-border-radius) !important; }
+
+.visible {
+ visibility: visible !important; }
+
+.invisible {
+ visibility: hidden !important; }
@media (min-width: 576px) {
+ .float-sm-start {
+ float: left !important; }
+ .float-sm-end {
+ float: right !important; }
+ .float-sm-none {
+ float: none !important; }
+ .d-sm-inline {
+ display: inline !important; }
+ .d-sm-inline-block {
+ display: inline-block !important; }
+ .d-sm-block {
+ display: block !important; }
+ .d-sm-grid {
+ display: grid !important; }
+ .d-sm-table {
+ display: table !important; }
+ .d-sm-table-row {
+ display: table-row !important; }
+ .d-sm-table-cell {
+ display: table-cell !important; }
+ .d-sm-flex {
+ display: flex !important; }
+ .d-sm-inline-flex {
+ display: inline-flex !important; }
+ .d-sm-none {
+ display: none !important; }
+ .flex-sm-fill {
+ flex: 1 1 auto !important; }
+ .flex-sm-row {
+ flex-direction: row !important; }
+ .flex-sm-column {
+ flex-direction: column !important; }
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-sm-grow-0 {
+ flex-grow: 0 !important; }
+ .flex-sm-grow-1 {
+ flex-grow: 1 !important; }
+ .flex-sm-shrink-0 {
+ flex-shrink: 0 !important; }
+ .flex-sm-shrink-1 {
+ flex-shrink: 1 !important; }
+ .flex-sm-wrap {
+ flex-wrap: wrap !important; }
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-sm-start {
+ justify-content: flex-start !important; }
+ .justify-content-sm-end {
+ justify-content: flex-end !important; }
+ .justify-content-sm-center {
+ justify-content: center !important; }
+ .justify-content-sm-between {
+ justify-content: space-between !important; }
+ .justify-content-sm-around {
+ justify-content: space-around !important; }
+ .justify-content-sm-evenly {
+ justify-content: space-evenly !important; }
+ .align-items-sm-start {
+ align-items: flex-start !important; }
+ .align-items-sm-end {
+ align-items: flex-end !important; }
+ .align-items-sm-center {
+ align-items: center !important; }
+ .align-items-sm-baseline {
+ align-items: baseline !important; }
+ .align-items-sm-stretch {
+ align-items: stretch !important; }
+ .align-content-sm-start {
+ align-content: flex-start !important; }
+ .align-content-sm-end {
+ align-content: flex-end !important; }
+ .align-content-sm-center {
+ align-content: center !important; }
+ .align-content-sm-between {
+ align-content: space-between !important; }
+ .align-content-sm-around {
+ align-content: space-around !important; }
+ .align-content-sm-stretch {
+ align-content: stretch !important; }
+ .align-self-sm-auto {
+ align-self: auto !important; }
+ .align-self-sm-start {
+ align-self: flex-start !important; }
+ .align-self-sm-end {
+ align-self: flex-end !important; }
+ .align-self-sm-center {
+ align-self: center !important; }
+ .align-self-sm-baseline {
+ align-self: baseline !important; }
+ .align-self-sm-stretch {
+ align-self: stretch !important; }
+ .order-sm-first {
+ order: -1 !important; }
+ .order-sm-0 {
+ order: 0 !important; }
+ .order-sm-1 {
+ order: 1 !important; }
+ .order-sm-2 {
+ order: 2 !important; }
+ .order-sm-3 {
+ order: 3 !important; }
+ .order-sm-4 {
+ order: 4 !important; }
+ .order-sm-5 {
+ order: 5 !important; }
+ .order-sm-last {
+ order: 6 !important; }
.m-sm-0 {
margin: 0 !important; }
- .mt-sm-0,
- .my-sm-0 {
- margin-top: 0 !important; }
- .mr-sm-0,
- .mx-sm-0 {
- margin-right: 0 !important; }
- .mb-sm-0,
- .my-sm-0 {
- margin-bottom: 0 !important; }
- .ml-sm-0,
- .mx-sm-0 {
- margin-left: 0 !important; }
- .m-sm-1 {
+ .m-sm-1 {
+ margin: 0.25rem !important; }
+ .m-sm-2 {
+ margin: 0.5rem !important; }
+ .m-sm-3 {
+ margin: 1rem !important; }
+ .m-sm-4 {
+ margin: 1.5rem !important; }
+ .m-sm-5 {
+ margin: 3rem !important; }
+ .m-sm-auto {
+ margin: auto !important; }
+ .mx-sm-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important; }
+ .mx-sm-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important; }
+ .mx-sm-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
+ .mx-sm-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important; }
+ .mx-sm-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
+ .mx-sm-auto {
+ margin-right: auto !important;
+ margin-left: auto !important; }
+ .my-sm-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important; }
+ .my-sm-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-sm-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important; }
+ .my-sm-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
+ .my-sm-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important; }
+ .my-sm-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
+ .my-sm-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important; }
+ .mt-sm-0 {
+ margin-top: 0 !important; }
+ .mt-sm-1 {
+ margin-top: 0.25rem !important; }
+ .mt-sm-2 {
+ margin-top: 0.5rem !important; }
+ .mt-sm-3 {
+ margin-top: 1rem !important; }
+ .mt-sm-4 {
+ margin-top: 1.5rem !important; }
+ .mt-sm-5 {
+ margin-top: 3rem !important; }
+ .mt-sm-auto {
+ margin-top: auto !important; }
+ .me-sm-0 {
+ margin-right: 0 !important; }
+ .me-sm-1 {
+ margin-right: 0.25rem !important; }
+ .me-sm-2 {
+ margin-right: 0.5rem !important; }
+ .me-sm-3 {
+ margin-right: 1rem !important; }
+ .me-sm-4 {
+ margin-right: 1.5rem !important; }
+ .me-sm-5 {
+ margin-right: 3rem !important; }
+ .me-sm-auto {
+ margin-right: auto !important; }
+ .mb-sm-0 {
+ margin-bottom: 0 !important; }
+ .mb-sm-1 {
+ margin-bottom: 0.25rem !important; }
+ .mb-sm-2 {
+ margin-bottom: 0.5rem !important; }
+ .mb-sm-3 {
+ margin-bottom: 1rem !important; }
+ .mb-sm-4 {
+ margin-bottom: 1.5rem !important; }
+ .mb-sm-5 {
+ margin-bottom: 3rem !important; }
+ .mb-sm-auto {
+ margin-bottom: auto !important; }
+ .ms-sm-0 {
+ margin-left: 0 !important; }
+ .ms-sm-1 {
+ margin-left: 0.25rem !important; }
+ .ms-sm-2 {
+ margin-left: 0.5rem !important; }
+ .ms-sm-3 {
+ margin-left: 1rem !important; }
+ .ms-sm-4 {
+ margin-left: 1.5rem !important; }
+ .ms-sm-5 {
+ margin-left: 3rem !important; }
+ .ms-sm-auto {
+ margin-left: auto !important; }
+ .p-sm-0 {
+ padding: 0 !important; }
+ .p-sm-1 {
+ padding: 0.25rem !important; }
+ .p-sm-2 {
+ padding: 0.5rem !important; }
+ .p-sm-3 {
+ padding: 1rem !important; }
+ .p-sm-4 {
+ padding: 1.5rem !important; }
+ .p-sm-5 {
+ padding: 3rem !important; }
+ .px-sm-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important; }
+ .px-sm-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important; }
+ .px-sm-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
+ .px-sm-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important; }
+ .px-sm-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
+ .py-sm-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important; }
+ .py-sm-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-sm-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important; }
+ .py-sm-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
+ .py-sm-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important; }
+ .py-sm-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
+ .pt-sm-0 {
+ padding-top: 0 !important; }
+ .pt-sm-1 {
+ padding-top: 0.25rem !important; }
+ .pt-sm-2 {
+ padding-top: 0.5rem !important; }
+ .pt-sm-3 {
+ padding-top: 1rem !important; }
+ .pt-sm-4 {
+ padding-top: 1.5rem !important; }
+ .pt-sm-5 {
+ padding-top: 3rem !important; }
+ .pe-sm-0 {
+ padding-right: 0 !important; }
+ .pe-sm-1 {
+ padding-right: 0.25rem !important; }
+ .pe-sm-2 {
+ padding-right: 0.5rem !important; }
+ .pe-sm-3 {
+ padding-right: 1rem !important; }
+ .pe-sm-4 {
+ padding-right: 1.5rem !important; }
+ .pe-sm-5 {
+ padding-right: 3rem !important; }
+ .pb-sm-0 {
+ padding-bottom: 0 !important; }
+ .pb-sm-1 {
+ padding-bottom: 0.25rem !important; }
+ .pb-sm-2 {
+ padding-bottom: 0.5rem !important; }
+ .pb-sm-3 {
+ padding-bottom: 1rem !important; }
+ .pb-sm-4 {
+ padding-bottom: 1.5rem !important; }
+ .pb-sm-5 {
+ padding-bottom: 3rem !important; }
+ .ps-sm-0 {
+ padding-left: 0 !important; }
+ .ps-sm-1 {
+ padding-left: 0.25rem !important; }
+ .ps-sm-2 {
+ padding-left: 0.5rem !important; }
+ .ps-sm-3 {
+ padding-left: 1rem !important; }
+ .ps-sm-4 {
+ padding-left: 1.5rem !important; }
+ .ps-sm-5 {
+ padding-left: 3rem !important; }
+ .gap-sm-0 {
+ gap: 0 !important; }
+ .gap-sm-1 {
+ gap: 0.25rem !important; }
+ .gap-sm-2 {
+ gap: 0.5rem !important; }
+ .gap-sm-3 {
+ gap: 1rem !important; }
+ .gap-sm-4 {
+ gap: 1.5rem !important; }
+ .gap-sm-5 {
+ gap: 3rem !important; }
+ .text-sm-start {
+ text-align: left !important; }
+ .text-sm-end {
+ text-align: right !important; }
+ .text-sm-center {
+ text-align: center !important; } }
+
+@media (min-width: 768px) {
+ .float-md-start {
+ float: left !important; }
+ .float-md-end {
+ float: right !important; }
+ .float-md-none {
+ float: none !important; }
+ .d-md-inline {
+ display: inline !important; }
+ .d-md-inline-block {
+ display: inline-block !important; }
+ .d-md-block {
+ display: block !important; }
+ .d-md-grid {
+ display: grid !important; }
+ .d-md-table {
+ display: table !important; }
+ .d-md-table-row {
+ display: table-row !important; }
+ .d-md-table-cell {
+ display: table-cell !important; }
+ .d-md-flex {
+ display: flex !important; }
+ .d-md-inline-flex {
+ display: inline-flex !important; }
+ .d-md-none {
+ display: none !important; }
+ .flex-md-fill {
+ flex: 1 1 auto !important; }
+ .flex-md-row {
+ flex-direction: row !important; }
+ .flex-md-column {
+ flex-direction: column !important; }
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-md-grow-0 {
+ flex-grow: 0 !important; }
+ .flex-md-grow-1 {
+ flex-grow: 1 !important; }
+ .flex-md-shrink-0 {
+ flex-shrink: 0 !important; }
+ .flex-md-shrink-1 {
+ flex-shrink: 1 !important; }
+ .flex-md-wrap {
+ flex-wrap: wrap !important; }
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-md-start {
+ justify-content: flex-start !important; }
+ .justify-content-md-end {
+ justify-content: flex-end !important; }
+ .justify-content-md-center {
+ justify-content: center !important; }
+ .justify-content-md-between {
+ justify-content: space-between !important; }
+ .justify-content-md-around {
+ justify-content: space-around !important; }
+ .justify-content-md-evenly {
+ justify-content: space-evenly !important; }
+ .align-items-md-start {
+ align-items: flex-start !important; }
+ .align-items-md-end {
+ align-items: flex-end !important; }
+ .align-items-md-center {
+ align-items: center !important; }
+ .align-items-md-baseline {
+ align-items: baseline !important; }
+ .align-items-md-stretch {
+ align-items: stretch !important; }
+ .align-content-md-start {
+ align-content: flex-start !important; }
+ .align-content-md-end {
+ align-content: flex-end !important; }
+ .align-content-md-center {
+ align-content: center !important; }
+ .align-content-md-between {
+ align-content: space-between !important; }
+ .align-content-md-around {
+ align-content: space-around !important; }
+ .align-content-md-stretch {
+ align-content: stretch !important; }
+ .align-self-md-auto {
+ align-self: auto !important; }
+ .align-self-md-start {
+ align-self: flex-start !important; }
+ .align-self-md-end {
+ align-self: flex-end !important; }
+ .align-self-md-center {
+ align-self: center !important; }
+ .align-self-md-baseline {
+ align-self: baseline !important; }
+ .align-self-md-stretch {
+ align-self: stretch !important; }
+ .order-md-first {
+ order: -1 !important; }
+ .order-md-0 {
+ order: 0 !important; }
+ .order-md-1 {
+ order: 1 !important; }
+ .order-md-2 {
+ order: 2 !important; }
+ .order-md-3 {
+ order: 3 !important; }
+ .order-md-4 {
+ order: 4 !important; }
+ .order-md-5 {
+ order: 5 !important; }
+ .order-md-last {
+ order: 6 !important; }
+ .m-md-0 {
+ margin: 0 !important; }
+ .m-md-1 {
+ margin: 0.25rem !important; }
+ .m-md-2 {
+ margin: 0.5rem !important; }
+ .m-md-3 {
+ margin: 1rem !important; }
+ .m-md-4 {
+ margin: 1.5rem !important; }
+ .m-md-5 {
+ margin: 3rem !important; }
+ .m-md-auto {
+ margin: auto !important; }
+ .mx-md-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important; }
+ .mx-md-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important; }
+ .mx-md-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
+ .mx-md-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important; }
+ .mx-md-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
+ .mx-md-auto {
+ margin-right: auto !important;
+ margin-left: auto !important; }
+ .my-md-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important; }
+ .my-md-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-md-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important; }
+ .my-md-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
+ .my-md-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important; }
+ .my-md-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
+ .my-md-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important; }
+ .mt-md-0 {
+ margin-top: 0 !important; }
+ .mt-md-1 {
+ margin-top: 0.25rem !important; }
+ .mt-md-2 {
+ margin-top: 0.5rem !important; }
+ .mt-md-3 {
+ margin-top: 1rem !important; }
+ .mt-md-4 {
+ margin-top: 1.5rem !important; }
+ .mt-md-5 {
+ margin-top: 3rem !important; }
+ .mt-md-auto {
+ margin-top: auto !important; }
+ .me-md-0 {
+ margin-right: 0 !important; }
+ .me-md-1 {
+ margin-right: 0.25rem !important; }
+ .me-md-2 {
+ margin-right: 0.5rem !important; }
+ .me-md-3 {
+ margin-right: 1rem !important; }
+ .me-md-4 {
+ margin-right: 1.5rem !important; }
+ .me-md-5 {
+ margin-right: 3rem !important; }
+ .me-md-auto {
+ margin-right: auto !important; }
+ .mb-md-0 {
+ margin-bottom: 0 !important; }
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important; }
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important; }
+ .mb-md-3 {
+ margin-bottom: 1rem !important; }
+ .mb-md-4 {
+ margin-bottom: 1.5rem !important; }
+ .mb-md-5 {
+ margin-bottom: 3rem !important; }
+ .mb-md-auto {
+ margin-bottom: auto !important; }
+ .ms-md-0 {
+ margin-left: 0 !important; }
+ .ms-md-1 {
+ margin-left: 0.25rem !important; }
+ .ms-md-2 {
+ margin-left: 0.5rem !important; }
+ .ms-md-3 {
+ margin-left: 1rem !important; }
+ .ms-md-4 {
+ margin-left: 1.5rem !important; }
+ .ms-md-5 {
+ margin-left: 3rem !important; }
+ .ms-md-auto {
+ margin-left: auto !important; }
+ .p-md-0 {
+ padding: 0 !important; }
+ .p-md-1 {
+ padding: 0.25rem !important; }
+ .p-md-2 {
+ padding: 0.5rem !important; }
+ .p-md-3 {
+ padding: 1rem !important; }
+ .p-md-4 {
+ padding: 1.5rem !important; }
+ .p-md-5 {
+ padding: 3rem !important; }
+ .px-md-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important; }
+ .px-md-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important; }
+ .px-md-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
+ .px-md-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important; }
+ .px-md-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
+ .py-md-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important; }
+ .py-md-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-md-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important; }
+ .py-md-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
+ .py-md-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important; }
+ .py-md-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
+ .pt-md-0 {
+ padding-top: 0 !important; }
+ .pt-md-1 {
+ padding-top: 0.25rem !important; }
+ .pt-md-2 {
+ padding-top: 0.5rem !important; }
+ .pt-md-3 {
+ padding-top: 1rem !important; }
+ .pt-md-4 {
+ padding-top: 1.5rem !important; }
+ .pt-md-5 {
+ padding-top: 3rem !important; }
+ .pe-md-0 {
+ padding-right: 0 !important; }
+ .pe-md-1 {
+ padding-right: 0.25rem !important; }
+ .pe-md-2 {
+ padding-right: 0.5rem !important; }
+ .pe-md-3 {
+ padding-right: 1rem !important; }
+ .pe-md-4 {
+ padding-right: 1.5rem !important; }
+ .pe-md-5 {
+ padding-right: 3rem !important; }
+ .pb-md-0 {
+ padding-bottom: 0 !important; }
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important; }
+ .pb-md-2 {
+ padding-bottom: 0.5rem !important; }
+ .pb-md-3 {
+ padding-bottom: 1rem !important; }
+ .pb-md-4 {
+ padding-bottom: 1.5rem !important; }
+ .pb-md-5 {
+ padding-bottom: 3rem !important; }
+ .ps-md-0 {
+ padding-left: 0 !important; }
+ .ps-md-1 {
+ padding-left: 0.25rem !important; }
+ .ps-md-2 {
+ padding-left: 0.5rem !important; }
+ .ps-md-3 {
+ padding-left: 1rem !important; }
+ .ps-md-4 {
+ padding-left: 1.5rem !important; }
+ .ps-md-5 {
+ padding-left: 3rem !important; }
+ .gap-md-0 {
+ gap: 0 !important; }
+ .gap-md-1 {
+ gap: 0.25rem !important; }
+ .gap-md-2 {
+ gap: 0.5rem !important; }
+ .gap-md-3 {
+ gap: 1rem !important; }
+ .gap-md-4 {
+ gap: 1.5rem !important; }
+ .gap-md-5 {
+ gap: 3rem !important; }
+ .text-md-start {
+ text-align: left !important; }
+ .text-md-end {
+ text-align: right !important; }
+ .text-md-center {
+ text-align: center !important; } }
+
+@media (min-width: 992px) {
+ .float-lg-start {
+ float: left !important; }
+ .float-lg-end {
+ float: right !important; }
+ .float-lg-none {
+ float: none !important; }
+ .d-lg-inline {
+ display: inline !important; }
+ .d-lg-inline-block {
+ display: inline-block !important; }
+ .d-lg-block {
+ display: block !important; }
+ .d-lg-grid {
+ display: grid !important; }
+ .d-lg-table {
+ display: table !important; }
+ .d-lg-table-row {
+ display: table-row !important; }
+ .d-lg-table-cell {
+ display: table-cell !important; }
+ .d-lg-flex {
+ display: flex !important; }
+ .d-lg-inline-flex {
+ display: inline-flex !important; }
+ .d-lg-none {
+ display: none !important; }
+ .flex-lg-fill {
+ flex: 1 1 auto !important; }
+ .flex-lg-row {
+ flex-direction: row !important; }
+ .flex-lg-column {
+ flex-direction: column !important; }
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-lg-grow-0 {
+ flex-grow: 0 !important; }
+ .flex-lg-grow-1 {
+ flex-grow: 1 !important; }
+ .flex-lg-shrink-0 {
+ flex-shrink: 0 !important; }
+ .flex-lg-shrink-1 {
+ flex-shrink: 1 !important; }
+ .flex-lg-wrap {
+ flex-wrap: wrap !important; }
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-lg-start {
+ justify-content: flex-start !important; }
+ .justify-content-lg-end {
+ justify-content: flex-end !important; }
+ .justify-content-lg-center {
+ justify-content: center !important; }
+ .justify-content-lg-between {
+ justify-content: space-between !important; }
+ .justify-content-lg-around {
+ justify-content: space-around !important; }
+ .justify-content-lg-evenly {
+ justify-content: space-evenly !important; }
+ .align-items-lg-start {
+ align-items: flex-start !important; }
+ .align-items-lg-end {
+ align-items: flex-end !important; }
+ .align-items-lg-center {
+ align-items: center !important; }
+ .align-items-lg-baseline {
+ align-items: baseline !important; }
+ .align-items-lg-stretch {
+ align-items: stretch !important; }
+ .align-content-lg-start {
+ align-content: flex-start !important; }
+ .align-content-lg-end {
+ align-content: flex-end !important; }
+ .align-content-lg-center {
+ align-content: center !important; }
+ .align-content-lg-between {
+ align-content: space-between !important; }
+ .align-content-lg-around {
+ align-content: space-around !important; }
+ .align-content-lg-stretch {
+ align-content: stretch !important; }
+ .align-self-lg-auto {
+ align-self: auto !important; }
+ .align-self-lg-start {
+ align-self: flex-start !important; }
+ .align-self-lg-end {
+ align-self: flex-end !important; }
+ .align-self-lg-center {
+ align-self: center !important; }
+ .align-self-lg-baseline {
+ align-self: baseline !important; }
+ .align-self-lg-stretch {
+ align-self: stretch !important; }
+ .order-lg-first {
+ order: -1 !important; }
+ .order-lg-0 {
+ order: 0 !important; }
+ .order-lg-1 {
+ order: 1 !important; }
+ .order-lg-2 {
+ order: 2 !important; }
+ .order-lg-3 {
+ order: 3 !important; }
+ .order-lg-4 {
+ order: 4 !important; }
+ .order-lg-5 {
+ order: 5 !important; }
+ .order-lg-last {
+ order: 6 !important; }
+ .m-lg-0 {
+ margin: 0 !important; }
+ .m-lg-1 {
margin: 0.25rem !important; }
- .mt-sm-1,
- .my-sm-1 {
- margin-top: 0.25rem !important; }
- .mr-sm-1,
- .mx-sm-1 {
- margin-right: 0.25rem !important; }
- .mb-sm-1,
- .my-sm-1 {
- margin-bottom: 0.25rem !important; }
- .ml-sm-1,
- .mx-sm-1 {
- margin-left: 0.25rem !important; }
- .m-sm-2 {
+ .m-lg-2 {
margin: 0.5rem !important; }
- .mt-sm-2,
- .my-sm-2 {
- margin-top: 0.5rem !important; }
- .mr-sm-2,
- .mx-sm-2 {
- margin-right: 0.5rem !important; }
- .mb-sm-2,
- .my-sm-2 {
- margin-bottom: 0.5rem !important; }
- .ml-sm-2,
- .mx-sm-2 {
- margin-left: 0.5rem !important; }
- .m-sm-3 {
+ .m-lg-3 {
margin: 1rem !important; }
- .mt-sm-3,
- .my-sm-3 {
- margin-top: 1rem !important; }
- .mr-sm-3,
- .mx-sm-3 {
- margin-right: 1rem !important; }
- .mb-sm-3,
- .my-sm-3 {
- margin-bottom: 1rem !important; }
- .ml-sm-3,
- .mx-sm-3 {
- margin-left: 1rem !important; }
- .m-sm-4 {
+ .m-lg-4 {
margin: 1.5rem !important; }
- .mt-sm-4,
- .my-sm-4 {
- margin-top: 1.5rem !important; }
- .mr-sm-4,
- .mx-sm-4 {
- margin-right: 1.5rem !important; }
- .mb-sm-4,
- .my-sm-4 {
- margin-bottom: 1.5rem !important; }
- .ml-sm-4,
- .mx-sm-4 {
- margin-left: 1.5rem !important; }
- .m-sm-5 {
+ .m-lg-5 {
margin: 3rem !important; }
- .mt-sm-5,
- .my-sm-5 {
- margin-top: 3rem !important; }
- .mr-sm-5,
- .mx-sm-5 {
- margin-right: 3rem !important; }
- .mb-sm-5,
- .my-sm-5 {
- margin-bottom: 3rem !important; }
- .ml-sm-5,
- .mx-sm-5 {
- margin-left: 3rem !important; }
- .p-sm-0 {
- padding: 0 !important; }
- .pt-sm-0,
- .py-sm-0 {
- padding-top: 0 !important; }
- .pr-sm-0,
- .px-sm-0 {
- padding-right: 0 !important; }
- .pb-sm-0,
- .py-sm-0 {
- padding-bottom: 0 !important; }
- .pl-sm-0,
- .px-sm-0 {
- padding-left: 0 !important; }
- .p-sm-1 {
- padding: 0.25rem !important; }
- .pt-sm-1,
- .py-sm-1 {
- padding-top: 0.25rem !important; }
- .pr-sm-1,
- .px-sm-1 {
- padding-right: 0.25rem !important; }
- .pb-sm-1,
- .py-sm-1 {
- padding-bottom: 0.25rem !important; }
- .pl-sm-1,
- .px-sm-1 {
- padding-left: 0.25rem !important; }
- .p-sm-2 {
- padding: 0.5rem !important; }
- .pt-sm-2,
- .py-sm-2 {
- padding-top: 0.5rem !important; }
- .pr-sm-2,
- .px-sm-2 {
- padding-right: 0.5rem !important; }
- .pb-sm-2,
- .py-sm-2 {
- padding-bottom: 0.5rem !important; }
- .pl-sm-2,
- .px-sm-2 {
- padding-left: 0.5rem !important; }
- .p-sm-3 {
- padding: 1rem !important; }
- .pt-sm-3,
- .py-sm-3 {
- padding-top: 1rem !important; }
- .pr-sm-3,
- .px-sm-3 {
- padding-right: 1rem !important; }
- .pb-sm-3,
- .py-sm-3 {
- padding-bottom: 1rem !important; }
- .pl-sm-3,
- .px-sm-3 {
- padding-left: 1rem !important; }
- .p-sm-4 {
- padding: 1.5rem !important; }
- .pt-sm-4,
- .py-sm-4 {
- padding-top: 1.5rem !important; }
- .pr-sm-4,
- .px-sm-4 {
- padding-right: 1.5rem !important; }
- .pb-sm-4,
- .py-sm-4 {
- padding-bottom: 1.5rem !important; }
- .pl-sm-4,
- .px-sm-4 {
- padding-left: 1.5rem !important; }
- .p-sm-5 {
- padding: 3rem !important; }
- .pt-sm-5,
- .py-sm-5 {
- padding-top: 3rem !important; }
- .pr-sm-5,
- .px-sm-5 {
- padding-right: 3rem !important; }
- .pb-sm-5,
- .py-sm-5 {
- padding-bottom: 3rem !important; }
- .pl-sm-5,
- .px-sm-5 {
- padding-left: 3rem !important; }
- .m-sm-n1 {
- margin: -0.25rem !important; }
- .mt-sm-n1,
- .my-sm-n1 {
- margin-top: -0.25rem !important; }
- .mr-sm-n1,
- .mx-sm-n1 {
- margin-right: -0.25rem !important; }
- .mb-sm-n1,
- .my-sm-n1 {
- margin-bottom: -0.25rem !important; }
- .ml-sm-n1,
- .mx-sm-n1 {
- margin-left: -0.25rem !important; }
- .m-sm-n2 {
- margin: -0.5rem !important; }
- .mt-sm-n2,
- .my-sm-n2 {
- margin-top: -0.5rem !important; }
- .mr-sm-n2,
- .mx-sm-n2 {
- margin-right: -0.5rem !important; }
- .mb-sm-n2,
- .my-sm-n2 {
- margin-bottom: -0.5rem !important; }
- .ml-sm-n2,
- .mx-sm-n2 {
- margin-left: -0.5rem !important; }
- .m-sm-n3 {
- margin: -1rem !important; }
- .mt-sm-n3,
- .my-sm-n3 {
- margin-top: -1rem !important; }
- .mr-sm-n3,
- .mx-sm-n3 {
- margin-right: -1rem !important; }
- .mb-sm-n3,
- .my-sm-n3 {
- margin-bottom: -1rem !important; }
- .ml-sm-n3,
- .mx-sm-n3 {
- margin-left: -1rem !important; }
- .m-sm-n4 {
- margin: -1.5rem !important; }
- .mt-sm-n4,
- .my-sm-n4 {
- margin-top: -1.5rem !important; }
- .mr-sm-n4,
- .mx-sm-n4 {
- margin-right: -1.5rem !important; }
- .mb-sm-n4,
- .my-sm-n4 {
- margin-bottom: -1.5rem !important; }
- .ml-sm-n4,
- .mx-sm-n4 {
- margin-left: -1.5rem !important; }
- .m-sm-n5 {
- margin: -3rem !important; }
- .mt-sm-n5,
- .my-sm-n5 {
- margin-top: -3rem !important; }
- .mr-sm-n5,
- .mx-sm-n5 {
- margin-right: -3rem !important; }
- .mb-sm-n5,
- .my-sm-n5 {
- margin-bottom: -3rem !important; }
- .ml-sm-n5,
- .mx-sm-n5 {
- margin-left: -3rem !important; }
- .m-sm-auto {
+ .m-lg-auto {
margin: auto !important; }
- .mt-sm-auto,
- .my-sm-auto {
- margin-top: auto !important; }
- .mr-sm-auto,
- .mx-sm-auto {
- margin-right: auto !important; }
- .mb-sm-auto,
- .my-sm-auto {
+ .mx-lg-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important; }
+ .mx-lg-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important; }
+ .mx-lg-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
+ .mx-lg-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important; }
+ .mx-lg-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
+ .mx-lg-auto {
+ margin-right: auto !important;
+ margin-left: auto !important; }
+ .my-lg-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important; }
+ .my-lg-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-lg-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important; }
+ .my-lg-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
+ .my-lg-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important; }
+ .my-lg-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
+ .my-lg-auto {
+ margin-top: auto !important;
margin-bottom: auto !important; }
- .ml-sm-auto,
- .mx-sm-auto {
- margin-left: auto !important; } }
-
-@media (min-width: 768px) {
- .m-md-0 {
- margin: 0 !important; }
- .mt-md-0,
- .my-md-0 {
+ .mt-lg-0 {
margin-top: 0 !important; }
- .mr-md-0,
- .mx-md-0 {
- margin-right: 0 !important; }
- .mb-md-0,
- .my-md-0 {
- margin-bottom: 0 !important; }
- .ml-md-0,
- .mx-md-0 {
- margin-left: 0 !important; }
- .m-md-1 {
- margin: 0.25rem !important; }
- .mt-md-1,
- .my-md-1 {
+ .mt-lg-1 {
margin-top: 0.25rem !important; }
- .mr-md-1,
- .mx-md-1 {
- margin-right: 0.25rem !important; }
- .mb-md-1,
- .my-md-1 {
- margin-bottom: 0.25rem !important; }
- .ml-md-1,
- .mx-md-1 {
- margin-left: 0.25rem !important; }
- .m-md-2 {
- margin: 0.5rem !important; }
- .mt-md-2,
- .my-md-2 {
+ .mt-lg-2 {
margin-top: 0.5rem !important; }
- .mr-md-2,
- .mx-md-2 {
- margin-right: 0.5rem !important; }
- .mb-md-2,
- .my-md-2 {
- margin-bottom: 0.5rem !important; }
- .ml-md-2,
- .mx-md-2 {
- margin-left: 0.5rem !important; }
- .m-md-3 {
- margin: 1rem !important; }
- .mt-md-3,
- .my-md-3 {
+ .mt-lg-3 {
margin-top: 1rem !important; }
- .mr-md-3,
- .mx-md-3 {
- margin-right: 1rem !important; }
- .mb-md-3,
- .my-md-3 {
- margin-bottom: 1rem !important; }
- .ml-md-3,
- .mx-md-3 {
- margin-left: 1rem !important; }
- .m-md-4 {
- margin: 1.5rem !important; }
- .mt-md-4,
- .my-md-4 {
+ .mt-lg-4 {
margin-top: 1.5rem !important; }
- .mr-md-4,
- .mx-md-4 {
- margin-right: 1.5rem !important; }
- .mb-md-4,
- .my-md-4 {
- margin-bottom: 1.5rem !important; }
- .ml-md-4,
- .mx-md-4 {
- margin-left: 1.5rem !important; }
- .m-md-5 {
- margin: 3rem !important; }
- .mt-md-5,
- .my-md-5 {
+ .mt-lg-5 {
margin-top: 3rem !important; }
- .mr-md-5,
- .mx-md-5 {
+ .mt-lg-auto {
+ margin-top: auto !important; }
+ .me-lg-0 {
+ margin-right: 0 !important; }
+ .me-lg-1 {
+ margin-right: 0.25rem !important; }
+ .me-lg-2 {
+ margin-right: 0.5rem !important; }
+ .me-lg-3 {
+ margin-right: 1rem !important; }
+ .me-lg-4 {
+ margin-right: 1.5rem !important; }
+ .me-lg-5 {
margin-right: 3rem !important; }
- .mb-md-5,
- .my-md-5 {
+ .me-lg-auto {
+ margin-right: auto !important; }
+ .mb-lg-0 {
+ margin-bottom: 0 !important; }
+ .mb-lg-1 {
+ margin-bottom: 0.25rem !important; }
+ .mb-lg-2 {
+ margin-bottom: 0.5rem !important; }
+ .mb-lg-3 {
+ margin-bottom: 1rem !important; }
+ .mb-lg-4 {
+ margin-bottom: 1.5rem !important; }
+ .mb-lg-5 {
margin-bottom: 3rem !important; }
- .ml-md-5,
- .mx-md-5 {
+ .mb-lg-auto {
+ margin-bottom: auto !important; }
+ .ms-lg-0 {
+ margin-left: 0 !important; }
+ .ms-lg-1 {
+ margin-left: 0.25rem !important; }
+ .ms-lg-2 {
+ margin-left: 0.5rem !important; }
+ .ms-lg-3 {
+ margin-left: 1rem !important; }
+ .ms-lg-4 {
+ margin-left: 1.5rem !important; }
+ .ms-lg-5 {
margin-left: 3rem !important; }
- .p-md-0 {
+ .ms-lg-auto {
+ margin-left: auto !important; }
+ .p-lg-0 {
padding: 0 !important; }
- .pt-md-0,
- .py-md-0 {
+ .p-lg-1 {
+ padding: 0.25rem !important; }
+ .p-lg-2 {
+ padding: 0.5rem !important; }
+ .p-lg-3 {
+ padding: 1rem !important; }
+ .p-lg-4 {
+ padding: 1.5rem !important; }
+ .p-lg-5 {
+ padding: 3rem !important; }
+ .px-lg-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important; }
+ .px-lg-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important; }
+ .px-lg-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
+ .px-lg-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important; }
+ .px-lg-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
+ .py-lg-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important; }
+ .py-lg-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-lg-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important; }
+ .py-lg-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
+ .py-lg-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important; }
+ .py-lg-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
+ .pt-lg-0 {
padding-top: 0 !important; }
- .pr-md-0,
- .px-md-0 {
- padding-right: 0 !important; }
- .pb-md-0,
- .py-md-0 {
- padding-bottom: 0 !important; }
- .pl-md-0,
- .px-md-0 {
- padding-left: 0 !important; }
- .p-md-1 {
- padding: 0.25rem !important; }
- .pt-md-1,
- .py-md-1 {
+ .pt-lg-1 {
padding-top: 0.25rem !important; }
- .pr-md-1,
- .px-md-1 {
- padding-right: 0.25rem !important; }
- .pb-md-1,
- .py-md-1 {
- padding-bottom: 0.25rem !important; }
- .pl-md-1,
- .px-md-1 {
- padding-left: 0.25rem !important; }
- .p-md-2 {
- padding: 0.5rem !important; }
- .pt-md-2,
- .py-md-2 {
+ .pt-lg-2 {
padding-top: 0.5rem !important; }
- .pr-md-2,
- .px-md-2 {
- padding-right: 0.5rem !important; }
- .pb-md-2,
- .py-md-2 {
- padding-bottom: 0.5rem !important; }
- .pl-md-2,
- .px-md-2 {
- padding-left: 0.5rem !important; }
- .p-md-3 {
- padding: 1rem !important; }
- .pt-md-3,
- .py-md-3 {
+ .pt-lg-3 {
padding-top: 1rem !important; }
- .pr-md-3,
- .px-md-3 {
- padding-right: 1rem !important; }
- .pb-md-3,
- .py-md-3 {
- padding-bottom: 1rem !important; }
- .pl-md-3,
- .px-md-3 {
- padding-left: 1rem !important; }
- .p-md-4 {
- padding: 1.5rem !important; }
- .pt-md-4,
- .py-md-4 {
+ .pt-lg-4 {
padding-top: 1.5rem !important; }
- .pr-md-4,
- .px-md-4 {
- padding-right: 1.5rem !important; }
- .pb-md-4,
- .py-md-4 {
- padding-bottom: 1.5rem !important; }
- .pl-md-4,
- .px-md-4 {
- padding-left: 1.5rem !important; }
- .p-md-5 {
- padding: 3rem !important; }
- .pt-md-5,
- .py-md-5 {
+ .pt-lg-5 {
padding-top: 3rem !important; }
- .pr-md-5,
- .px-md-5 {
+ .pe-lg-0 {
+ padding-right: 0 !important; }
+ .pe-lg-1 {
+ padding-right: 0.25rem !important; }
+ .pe-lg-2 {
+ padding-right: 0.5rem !important; }
+ .pe-lg-3 {
+ padding-right: 1rem !important; }
+ .pe-lg-4 {
+ padding-right: 1.5rem !important; }
+ .pe-lg-5 {
padding-right: 3rem !important; }
- .pb-md-5,
- .py-md-5 {
+ .pb-lg-0 {
+ padding-bottom: 0 !important; }
+ .pb-lg-1 {
+ padding-bottom: 0.25rem !important; }
+ .pb-lg-2 {
+ padding-bottom: 0.5rem !important; }
+ .pb-lg-3 {
+ padding-bottom: 1rem !important; }
+ .pb-lg-4 {
+ padding-bottom: 1.5rem !important; }
+ .pb-lg-5 {
padding-bottom: 3rem !important; }
- .pl-md-5,
- .px-md-5 {
+ .ps-lg-0 {
+ padding-left: 0 !important; }
+ .ps-lg-1 {
+ padding-left: 0.25rem !important; }
+ .ps-lg-2 {
+ padding-left: 0.5rem !important; }
+ .ps-lg-3 {
+ padding-left: 1rem !important; }
+ .ps-lg-4 {
+ padding-left: 1.5rem !important; }
+ .ps-lg-5 {
padding-left: 3rem !important; }
- .m-md-n1 {
- margin: -0.25rem !important; }
- .mt-md-n1,
- .my-md-n1 {
- margin-top: -0.25rem !important; }
- .mr-md-n1,
- .mx-md-n1 {
- margin-right: -0.25rem !important; }
- .mb-md-n1,
- .my-md-n1 {
- margin-bottom: -0.25rem !important; }
- .ml-md-n1,
- .mx-md-n1 {
- margin-left: -0.25rem !important; }
- .m-md-n2 {
- margin: -0.5rem !important; }
- .mt-md-n2,
- .my-md-n2 {
- margin-top: -0.5rem !important; }
- .mr-md-n2,
- .mx-md-n2 {
- margin-right: -0.5rem !important; }
- .mb-md-n2,
- .my-md-n2 {
- margin-bottom: -0.5rem !important; }
- .ml-md-n2,
- .mx-md-n2 {
- margin-left: -0.5rem !important; }
- .m-md-n3 {
- margin: -1rem !important; }
- .mt-md-n3,
- .my-md-n3 {
- margin-top: -1rem !important; }
- .mr-md-n3,
- .mx-md-n3 {
- margin-right: -1rem !important; }
- .mb-md-n3,
- .my-md-n3 {
- margin-bottom: -1rem !important; }
- .ml-md-n3,
- .mx-md-n3 {
- margin-left: -1rem !important; }
- .m-md-n4 {
- margin: -1.5rem !important; }
- .mt-md-n4,
- .my-md-n4 {
- margin-top: -1.5rem !important; }
- .mr-md-n4,
- .mx-md-n4 {
- margin-right: -1.5rem !important; }
- .mb-md-n4,
- .my-md-n4 {
- margin-bottom: -1.5rem !important; }
- .ml-md-n4,
- .mx-md-n4 {
- margin-left: -1.5rem !important; }
- .m-md-n5 {
- margin: -3rem !important; }
- .mt-md-n5,
- .my-md-n5 {
- margin-top: -3rem !important; }
- .mr-md-n5,
- .mx-md-n5 {
- margin-right: -3rem !important; }
- .mb-md-n5,
- .my-md-n5 {
- margin-bottom: -3rem !important; }
- .ml-md-n5,
- .mx-md-n5 {
- margin-left: -3rem !important; }
- .m-md-auto {
- margin: auto !important; }
- .mt-md-auto,
- .my-md-auto {
- margin-top: auto !important; }
- .mr-md-auto,
- .mx-md-auto {
- margin-right: auto !important; }
- .mb-md-auto,
- .my-md-auto {
- margin-bottom: auto !important; }
- .ml-md-auto,
- .mx-md-auto {
- margin-left: auto !important; } }
+ .gap-lg-0 {
+ gap: 0 !important; }
+ .gap-lg-1 {
+ gap: 0.25rem !important; }
+ .gap-lg-2 {
+ gap: 0.5rem !important; }
+ .gap-lg-3 {
+ gap: 1rem !important; }
+ .gap-lg-4 {
+ gap: 1.5rem !important; }
+ .gap-lg-5 {
+ gap: 3rem !important; }
+ .text-lg-start {
+ text-align: left !important; }
+ .text-lg-end {
+ text-align: right !important; }
+ .text-lg-center {
+ text-align: center !important; } }
-@media (min-width: 992px) {
- .m-lg-0 {
+@media (min-width: 1200px) {
+ .float-xl-start {
+ float: left !important; }
+ .float-xl-end {
+ float: right !important; }
+ .float-xl-none {
+ float: none !important; }
+ .d-xl-inline {
+ display: inline !important; }
+ .d-xl-inline-block {
+ display: inline-block !important; }
+ .d-xl-block {
+ display: block !important; }
+ .d-xl-grid {
+ display: grid !important; }
+ .d-xl-table {
+ display: table !important; }
+ .d-xl-table-row {
+ display: table-row !important; }
+ .d-xl-table-cell {
+ display: table-cell !important; }
+ .d-xl-flex {
+ display: flex !important; }
+ .d-xl-inline-flex {
+ display: inline-flex !important; }
+ .d-xl-none {
+ display: none !important; }
+ .flex-xl-fill {
+ flex: 1 1 auto !important; }
+ .flex-xl-row {
+ flex-direction: row !important; }
+ .flex-xl-column {
+ flex-direction: column !important; }
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-xl-grow-0 {
+ flex-grow: 0 !important; }
+ .flex-xl-grow-1 {
+ flex-grow: 1 !important; }
+ .flex-xl-shrink-0 {
+ flex-shrink: 0 !important; }
+ .flex-xl-shrink-1 {
+ flex-shrink: 1 !important; }
+ .flex-xl-wrap {
+ flex-wrap: wrap !important; }
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-xl-start {
+ justify-content: flex-start !important; }
+ .justify-content-xl-end {
+ justify-content: flex-end !important; }
+ .justify-content-xl-center {
+ justify-content: center !important; }
+ .justify-content-xl-between {
+ justify-content: space-between !important; }
+ .justify-content-xl-around {
+ justify-content: space-around !important; }
+ .justify-content-xl-evenly {
+ justify-content: space-evenly !important; }
+ .align-items-xl-start {
+ align-items: flex-start !important; }
+ .align-items-xl-end {
+ align-items: flex-end !important; }
+ .align-items-xl-center {
+ align-items: center !important; }
+ .align-items-xl-baseline {
+ align-items: baseline !important; }
+ .align-items-xl-stretch {
+ align-items: stretch !important; }
+ .align-content-xl-start {
+ align-content: flex-start !important; }
+ .align-content-xl-end {
+ align-content: flex-end !important; }
+ .align-content-xl-center {
+ align-content: center !important; }
+ .align-content-xl-between {
+ align-content: space-between !important; }
+ .align-content-xl-around {
+ align-content: space-around !important; }
+ .align-content-xl-stretch {
+ align-content: stretch !important; }
+ .align-self-xl-auto {
+ align-self: auto !important; }
+ .align-self-xl-start {
+ align-self: flex-start !important; }
+ .align-self-xl-end {
+ align-self: flex-end !important; }
+ .align-self-xl-center {
+ align-self: center !important; }
+ .align-self-xl-baseline {
+ align-self: baseline !important; }
+ .align-self-xl-stretch {
+ align-self: stretch !important; }
+ .order-xl-first {
+ order: -1 !important; }
+ .order-xl-0 {
+ order: 0 !important; }
+ .order-xl-1 {
+ order: 1 !important; }
+ .order-xl-2 {
+ order: 2 !important; }
+ .order-xl-3 {
+ order: 3 !important; }
+ .order-xl-4 {
+ order: 4 !important; }
+ .order-xl-5 {
+ order: 5 !important; }
+ .order-xl-last {
+ order: 6 !important; }
+ .m-xl-0 {
margin: 0 !important; }
- .mt-lg-0,
- .my-lg-0 {
- margin-top: 0 !important; }
- .mr-lg-0,
- .mx-lg-0 {
- margin-right: 0 !important; }
- .mb-lg-0,
- .my-lg-0 {
- margin-bottom: 0 !important; }
- .ml-lg-0,
- .mx-lg-0 {
- margin-left: 0 !important; }
- .m-lg-1 {
+ .m-xl-1 {
margin: 0.25rem !important; }
- .mt-lg-1,
- .my-lg-1 {
- margin-top: 0.25rem !important; }
- .mr-lg-1,
- .mx-lg-1 {
- margin-right: 0.25rem !important; }
- .mb-lg-1,
- .my-lg-1 {
- margin-bottom: 0.25rem !important; }
- .ml-lg-1,
- .mx-lg-1 {
- margin-left: 0.25rem !important; }
- .m-lg-2 {
+ .m-xl-2 {
margin: 0.5rem !important; }
- .mt-lg-2,
- .my-lg-2 {
- margin-top: 0.5rem !important; }
- .mr-lg-2,
- .mx-lg-2 {
- margin-right: 0.5rem !important; }
- .mb-lg-2,
- .my-lg-2 {
- margin-bottom: 0.5rem !important; }
- .ml-lg-2,
- .mx-lg-2 {
- margin-left: 0.5rem !important; }
- .m-lg-3 {
+ .m-xl-3 {
margin: 1rem !important; }
- .mt-lg-3,
- .my-lg-3 {
- margin-top: 1rem !important; }
- .mr-lg-3,
- .mx-lg-3 {
- margin-right: 1rem !important; }
- .mb-lg-3,
- .my-lg-3 {
- margin-bottom: 1rem !important; }
- .ml-lg-3,
- .mx-lg-3 {
- margin-left: 1rem !important; }
- .m-lg-4 {
+ .m-xl-4 {
margin: 1.5rem !important; }
- .mt-lg-4,
- .my-lg-4 {
- margin-top: 1.5rem !important; }
- .mr-lg-4,
- .mx-lg-4 {
- margin-right: 1.5rem !important; }
- .mb-lg-4,
- .my-lg-4 {
- margin-bottom: 1.5rem !important; }
- .ml-lg-4,
- .mx-lg-4 {
- margin-left: 1.5rem !important; }
- .m-lg-5 {
+ .m-xl-5 {
margin: 3rem !important; }
- .mt-lg-5,
- .my-lg-5 {
+ .m-xl-auto {
+ margin: auto !important; }
+ .mx-xl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important; }
+ .mx-xl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important; }
+ .mx-xl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
+ .mx-xl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important; }
+ .mx-xl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
+ .mx-xl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important; }
+ .my-xl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important; }
+ .my-xl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-xl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important; }
+ .my-xl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
+ .my-xl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important; }
+ .my-xl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
+ .my-xl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important; }
+ .mt-xl-0 {
+ margin-top: 0 !important; }
+ .mt-xl-1 {
+ margin-top: 0.25rem !important; }
+ .mt-xl-2 {
+ margin-top: 0.5rem !important; }
+ .mt-xl-3 {
+ margin-top: 1rem !important; }
+ .mt-xl-4 {
+ margin-top: 1.5rem !important; }
+ .mt-xl-5 {
margin-top: 3rem !important; }
- .mr-lg-5,
- .mx-lg-5 {
+ .mt-xl-auto {
+ margin-top: auto !important; }
+ .me-xl-0 {
+ margin-right: 0 !important; }
+ .me-xl-1 {
+ margin-right: 0.25rem !important; }
+ .me-xl-2 {
+ margin-right: 0.5rem !important; }
+ .me-xl-3 {
+ margin-right: 1rem !important; }
+ .me-xl-4 {
+ margin-right: 1.5rem !important; }
+ .me-xl-5 {
margin-right: 3rem !important; }
- .mb-lg-5,
- .my-lg-5 {
+ .me-xl-auto {
+ margin-right: auto !important; }
+ .mb-xl-0 {
+ margin-bottom: 0 !important; }
+ .mb-xl-1 {
+ margin-bottom: 0.25rem !important; }
+ .mb-xl-2 {
+ margin-bottom: 0.5rem !important; }
+ .mb-xl-3 {
+ margin-bottom: 1rem !important; }
+ .mb-xl-4 {
+ margin-bottom: 1.5rem !important; }
+ .mb-xl-5 {
margin-bottom: 3rem !important; }
- .ml-lg-5,
- .mx-lg-5 {
+ .mb-xl-auto {
+ margin-bottom: auto !important; }
+ .ms-xl-0 {
+ margin-left: 0 !important; }
+ .ms-xl-1 {
+ margin-left: 0.25rem !important; }
+ .ms-xl-2 {
+ margin-left: 0.5rem !important; }
+ .ms-xl-3 {
+ margin-left: 1rem !important; }
+ .ms-xl-4 {
+ margin-left: 1.5rem !important; }
+ .ms-xl-5 {
margin-left: 3rem !important; }
- .p-lg-0 {
+ .ms-xl-auto {
+ margin-left: auto !important; }
+ .p-xl-0 {
padding: 0 !important; }
- .pt-lg-0,
- .py-lg-0 {
- padding-top: 0 !important; }
- .pr-lg-0,
- .px-lg-0 {
- padding-right: 0 !important; }
- .pb-lg-0,
- .py-lg-0 {
- padding-bottom: 0 !important; }
- .pl-lg-0,
- .px-lg-0 {
- padding-left: 0 !important; }
- .p-lg-1 {
+ .p-xl-1 {
padding: 0.25rem !important; }
- .pt-lg-1,
- .py-lg-1 {
- padding-top: 0.25rem !important; }
- .pr-lg-1,
- .px-lg-1 {
- padding-right: 0.25rem !important; }
- .pb-lg-1,
- .py-lg-1 {
- padding-bottom: 0.25rem !important; }
- .pl-lg-1,
- .px-lg-1 {
- padding-left: 0.25rem !important; }
- .p-lg-2 {
+ .p-xl-2 {
padding: 0.5rem !important; }
- .pt-lg-2,
- .py-lg-2 {
- padding-top: 0.5rem !important; }
- .pr-lg-2,
- .px-lg-2 {
- padding-right: 0.5rem !important; }
- .pb-lg-2,
- .py-lg-2 {
- padding-bottom: 0.5rem !important; }
- .pl-lg-2,
- .px-lg-2 {
- padding-left: 0.5rem !important; }
- .p-lg-3 {
+ .p-xl-3 {
padding: 1rem !important; }
- .pt-lg-3,
- .py-lg-3 {
- padding-top: 1rem !important; }
- .pr-lg-3,
- .px-lg-3 {
- padding-right: 1rem !important; }
- .pb-lg-3,
- .py-lg-3 {
- padding-bottom: 1rem !important; }
- .pl-lg-3,
- .px-lg-3 {
- padding-left: 1rem !important; }
- .p-lg-4 {
+ .p-xl-4 {
padding: 1.5rem !important; }
- .pt-lg-4,
- .py-lg-4 {
- padding-top: 1.5rem !important; }
- .pr-lg-4,
- .px-lg-4 {
- padding-right: 1.5rem !important; }
- .pb-lg-4,
- .py-lg-4 {
- padding-bottom: 1.5rem !important; }
- .pl-lg-4,
- .px-lg-4 {
- padding-left: 1.5rem !important; }
- .p-lg-5 {
+ .p-xl-5 {
padding: 3rem !important; }
- .pt-lg-5,
- .py-lg-5 {
+ .px-xl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important; }
+ .px-xl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important; }
+ .px-xl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
+ .px-xl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important; }
+ .px-xl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
+ .py-xl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important; }
+ .py-xl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-xl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important; }
+ .py-xl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
+ .py-xl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important; }
+ .py-xl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
+ .pt-xl-0 {
+ padding-top: 0 !important; }
+ .pt-xl-1 {
+ padding-top: 0.25rem !important; }
+ .pt-xl-2 {
+ padding-top: 0.5rem !important; }
+ .pt-xl-3 {
+ padding-top: 1rem !important; }
+ .pt-xl-4 {
+ padding-top: 1.5rem !important; }
+ .pt-xl-5 {
padding-top: 3rem !important; }
- .pr-lg-5,
- .px-lg-5 {
+ .pe-xl-0 {
+ padding-right: 0 !important; }
+ .pe-xl-1 {
+ padding-right: 0.25rem !important; }
+ .pe-xl-2 {
+ padding-right: 0.5rem !important; }
+ .pe-xl-3 {
+ padding-right: 1rem !important; }
+ .pe-xl-4 {
+ padding-right: 1.5rem !important; }
+ .pe-xl-5 {
padding-right: 3rem !important; }
- .pb-lg-5,
- .py-lg-5 {
+ .pb-xl-0 {
+ padding-bottom: 0 !important; }
+ .pb-xl-1 {
+ padding-bottom: 0.25rem !important; }
+ .pb-xl-2 {
+ padding-bottom: 0.5rem !important; }
+ .pb-xl-3 {
+ padding-bottom: 1rem !important; }
+ .pb-xl-4 {
+ padding-bottom: 1.5rem !important; }
+ .pb-xl-5 {
padding-bottom: 3rem !important; }
- .pl-lg-5,
- .px-lg-5 {
+ .ps-xl-0 {
+ padding-left: 0 !important; }
+ .ps-xl-1 {
+ padding-left: 0.25rem !important; }
+ .ps-xl-2 {
+ padding-left: 0.5rem !important; }
+ .ps-xl-3 {
+ padding-left: 1rem !important; }
+ .ps-xl-4 {
+ padding-left: 1.5rem !important; }
+ .ps-xl-5 {
padding-left: 3rem !important; }
- .m-lg-n1 {
- margin: -0.25rem !important; }
- .mt-lg-n1,
- .my-lg-n1 {
- margin-top: -0.25rem !important; }
- .mr-lg-n1,
- .mx-lg-n1 {
- margin-right: -0.25rem !important; }
- .mb-lg-n1,
- .my-lg-n1 {
- margin-bottom: -0.25rem !important; }
- .ml-lg-n1,
- .mx-lg-n1 {
- margin-left: -0.25rem !important; }
- .m-lg-n2 {
- margin: -0.5rem !important; }
- .mt-lg-n2,
- .my-lg-n2 {
- margin-top: -0.5rem !important; }
- .mr-lg-n2,
- .mx-lg-n2 {
- margin-right: -0.5rem !important; }
- .mb-lg-n2,
- .my-lg-n2 {
- margin-bottom: -0.5rem !important; }
- .ml-lg-n2,
- .mx-lg-n2 {
- margin-left: -0.5rem !important; }
- .m-lg-n3 {
- margin: -1rem !important; }
- .mt-lg-n3,
- .my-lg-n3 {
- margin-top: -1rem !important; }
- .mr-lg-n3,
- .mx-lg-n3 {
- margin-right: -1rem !important; }
- .mb-lg-n3,
- .my-lg-n3 {
- margin-bottom: -1rem !important; }
- .ml-lg-n3,
- .mx-lg-n3 {
- margin-left: -1rem !important; }
- .m-lg-n4 {
- margin: -1.5rem !important; }
- .mt-lg-n4,
- .my-lg-n4 {
- margin-top: -1.5rem !important; }
- .mr-lg-n4,
- .mx-lg-n4 {
- margin-right: -1.5rem !important; }
- .mb-lg-n4,
- .my-lg-n4 {
- margin-bottom: -1.5rem !important; }
- .ml-lg-n4,
- .mx-lg-n4 {
- margin-left: -1.5rem !important; }
- .m-lg-n5 {
- margin: -3rem !important; }
- .mt-lg-n5,
- .my-lg-n5 {
- margin-top: -3rem !important; }
- .mr-lg-n5,
- .mx-lg-n5 {
- margin-right: -3rem !important; }
- .mb-lg-n5,
- .my-lg-n5 {
- margin-bottom: -3rem !important; }
- .ml-lg-n5,
- .mx-lg-n5 {
- margin-left: -3rem !important; }
- .m-lg-auto {
- margin: auto !important; }
- .mt-lg-auto,
- .my-lg-auto {
- margin-top: auto !important; }
- .mr-lg-auto,
- .mx-lg-auto {
- margin-right: auto !important; }
- .mb-lg-auto,
- .my-lg-auto {
- margin-bottom: auto !important; }
- .ml-lg-auto,
- .mx-lg-auto {
- margin-left: auto !important; } }
+ .gap-xl-0 {
+ gap: 0 !important; }
+ .gap-xl-1 {
+ gap: 0.25rem !important; }
+ .gap-xl-2 {
+ gap: 0.5rem !important; }
+ .gap-xl-3 {
+ gap: 1rem !important; }
+ .gap-xl-4 {
+ gap: 1.5rem !important; }
+ .gap-xl-5 {
+ gap: 3rem !important; }
+ .text-xl-start {
+ text-align: left !important; }
+ .text-xl-end {
+ text-align: right !important; }
+ .text-xl-center {
+ text-align: center !important; } }
-@media (min-width: 1200px) {
- .m-xl-0 {
+@media (min-width: 1400px) {
+ .float-xxl-start {
+ float: left !important; }
+ .float-xxl-end {
+ float: right !important; }
+ .float-xxl-none {
+ float: none !important; }
+ .d-xxl-inline {
+ display: inline !important; }
+ .d-xxl-inline-block {
+ display: inline-block !important; }
+ .d-xxl-block {
+ display: block !important; }
+ .d-xxl-grid {
+ display: grid !important; }
+ .d-xxl-table {
+ display: table !important; }
+ .d-xxl-table-row {
+ display: table-row !important; }
+ .d-xxl-table-cell {
+ display: table-cell !important; }
+ .d-xxl-flex {
+ display: flex !important; }
+ .d-xxl-inline-flex {
+ display: inline-flex !important; }
+ .d-xxl-none {
+ display: none !important; }
+ .flex-xxl-fill {
+ flex: 1 1 auto !important; }
+ .flex-xxl-row {
+ flex-direction: row !important; }
+ .flex-xxl-column {
+ flex-direction: column !important; }
+ .flex-xxl-row-reverse {
+ flex-direction: row-reverse !important; }
+ .flex-xxl-column-reverse {
+ flex-direction: column-reverse !important; }
+ .flex-xxl-grow-0 {
+ flex-grow: 0 !important; }
+ .flex-xxl-grow-1 {
+ flex-grow: 1 !important; }
+ .flex-xxl-shrink-0 {
+ flex-shrink: 0 !important; }
+ .flex-xxl-shrink-1 {
+ flex-shrink: 1 !important; }
+ .flex-xxl-wrap {
+ flex-wrap: wrap !important; }
+ .flex-xxl-nowrap {
+ flex-wrap: nowrap !important; }
+ .flex-xxl-wrap-reverse {
+ flex-wrap: wrap-reverse !important; }
+ .justify-content-xxl-start {
+ justify-content: flex-start !important; }
+ .justify-content-xxl-end {
+ justify-content: flex-end !important; }
+ .justify-content-xxl-center {
+ justify-content: center !important; }
+ .justify-content-xxl-between {
+ justify-content: space-between !important; }
+ .justify-content-xxl-around {
+ justify-content: space-around !important; }
+ .justify-content-xxl-evenly {
+ justify-content: space-evenly !important; }
+ .align-items-xxl-start {
+ align-items: flex-start !important; }
+ .align-items-xxl-end {
+ align-items: flex-end !important; }
+ .align-items-xxl-center {
+ align-items: center !important; }
+ .align-items-xxl-baseline {
+ align-items: baseline !important; }
+ .align-items-xxl-stretch {
+ align-items: stretch !important; }
+ .align-content-xxl-start {
+ align-content: flex-start !important; }
+ .align-content-xxl-end {
+ align-content: flex-end !important; }
+ .align-content-xxl-center {
+ align-content: center !important; }
+ .align-content-xxl-between {
+ align-content: space-between !important; }
+ .align-content-xxl-around {
+ align-content: space-around !important; }
+ .align-content-xxl-stretch {
+ align-content: stretch !important; }
+ .align-self-xxl-auto {
+ align-self: auto !important; }
+ .align-self-xxl-start {
+ align-self: flex-start !important; }
+ .align-self-xxl-end {
+ align-self: flex-end !important; }
+ .align-self-xxl-center {
+ align-self: center !important; }
+ .align-self-xxl-baseline {
+ align-self: baseline !important; }
+ .align-self-xxl-stretch {
+ align-self: stretch !important; }
+ .order-xxl-first {
+ order: -1 !important; }
+ .order-xxl-0 {
+ order: 0 !important; }
+ .order-xxl-1 {
+ order: 1 !important; }
+ .order-xxl-2 {
+ order: 2 !important; }
+ .order-xxl-3 {
+ order: 3 !important; }
+ .order-xxl-4 {
+ order: 4 !important; }
+ .order-xxl-5 {
+ order: 5 !important; }
+ .order-xxl-last {
+ order: 6 !important; }
+ .m-xxl-0 {
margin: 0 !important; }
- .mt-xl-0,
- .my-xl-0 {
- margin-top: 0 !important; }
- .mr-xl-0,
- .mx-xl-0 {
- margin-right: 0 !important; }
- .mb-xl-0,
- .my-xl-0 {
- margin-bottom: 0 !important; }
- .ml-xl-0,
- .mx-xl-0 {
- margin-left: 0 !important; }
- .m-xl-1 {
+ .m-xxl-1 {
margin: 0.25rem !important; }
- .mt-xl-1,
- .my-xl-1 {
- margin-top: 0.25rem !important; }
- .mr-xl-1,
- .mx-xl-1 {
- margin-right: 0.25rem !important; }
- .mb-xl-1,
- .my-xl-1 {
- margin-bottom: 0.25rem !important; }
- .ml-xl-1,
- .mx-xl-1 {
- margin-left: 0.25rem !important; }
- .m-xl-2 {
+ .m-xxl-2 {
margin: 0.5rem !important; }
- .mt-xl-2,
- .my-xl-2 {
- margin-top: 0.5rem !important; }
- .mr-xl-2,
- .mx-xl-2 {
- margin-right: 0.5rem !important; }
- .mb-xl-2,
- .my-xl-2 {
- margin-bottom: 0.5rem !important; }
- .ml-xl-2,
- .mx-xl-2 {
- margin-left: 0.5rem !important; }
- .m-xl-3 {
+ .m-xxl-3 {
margin: 1rem !important; }
- .mt-xl-3,
- .my-xl-3 {
- margin-top: 1rem !important; }
- .mr-xl-3,
- .mx-xl-3 {
- margin-right: 1rem !important; }
- .mb-xl-3,
- .my-xl-3 {
- margin-bottom: 1rem !important; }
- .ml-xl-3,
- .mx-xl-3 {
- margin-left: 1rem !important; }
- .m-xl-4 {
+ .m-xxl-4 {
margin: 1.5rem !important; }
- .mt-xl-4,
- .my-xl-4 {
- margin-top: 1.5rem !important; }
- .mr-xl-4,
- .mx-xl-4 {
- margin-right: 1.5rem !important; }
- .mb-xl-4,
- .my-xl-4 {
- margin-bottom: 1.5rem !important; }
- .ml-xl-4,
- .mx-xl-4 {
- margin-left: 1.5rem !important; }
- .m-xl-5 {
+ .m-xxl-5 {
margin: 3rem !important; }
- .mt-xl-5,
- .my-xl-5 {
+ .m-xxl-auto {
+ margin: auto !important; }
+ .mx-xxl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important; }
+ .mx-xxl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important; }
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important; }
+ .mx-xxl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
+ .mx-xxl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important; }
+ .mx-xxl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
+ .mx-xxl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important; }
+ .my-xxl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important; }
+ .my-xxl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important; }
+ .my-xxl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important; }
+ .my-xxl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
+ .my-xxl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important; }
+ .my-xxl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
+ .my-xxl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important; }
+ .mt-xxl-0 {
+ margin-top: 0 !important; }
+ .mt-xxl-1 {
+ margin-top: 0.25rem !important; }
+ .mt-xxl-2 {
+ margin-top: 0.5rem !important; }
+ .mt-xxl-3 {
+ margin-top: 1rem !important; }
+ .mt-xxl-4 {
+ margin-top: 1.5rem !important; }
+ .mt-xxl-5 {
margin-top: 3rem !important; }
- .mr-xl-5,
- .mx-xl-5 {
+ .mt-xxl-auto {
+ margin-top: auto !important; }
+ .me-xxl-0 {
+ margin-right: 0 !important; }
+ .me-xxl-1 {
+ margin-right: 0.25rem !important; }
+ .me-xxl-2 {
+ margin-right: 0.5rem !important; }
+ .me-xxl-3 {
+ margin-right: 1rem !important; }
+ .me-xxl-4 {
+ margin-right: 1.5rem !important; }
+ .me-xxl-5 {
margin-right: 3rem !important; }
- .mb-xl-5,
- .my-xl-5 {
+ .me-xxl-auto {
+ margin-right: auto !important; }
+ .mb-xxl-0 {
+ margin-bottom: 0 !important; }
+ .mb-xxl-1 {
+ margin-bottom: 0.25rem !important; }
+ .mb-xxl-2 {
+ margin-bottom: 0.5rem !important; }
+ .mb-xxl-3 {
+ margin-bottom: 1rem !important; }
+ .mb-xxl-4 {
+ margin-bottom: 1.5rem !important; }
+ .mb-xxl-5 {
margin-bottom: 3rem !important; }
- .ml-xl-5,
- .mx-xl-5 {
+ .mb-xxl-auto {
+ margin-bottom: auto !important; }
+ .ms-xxl-0 {
+ margin-left: 0 !important; }
+ .ms-xxl-1 {
+ margin-left: 0.25rem !important; }
+ .ms-xxl-2 {
+ margin-left: 0.5rem !important; }
+ .ms-xxl-3 {
+ margin-left: 1rem !important; }
+ .ms-xxl-4 {
+ margin-left: 1.5rem !important; }
+ .ms-xxl-5 {
margin-left: 3rem !important; }
- .p-xl-0 {
+ .ms-xxl-auto {
+ margin-left: auto !important; }
+ .p-xxl-0 {
padding: 0 !important; }
- .pt-xl-0,
- .py-xl-0 {
- padding-top: 0 !important; }
- .pr-xl-0,
- .px-xl-0 {
- padding-right: 0 !important; }
- .pb-xl-0,
- .py-xl-0 {
- padding-bottom: 0 !important; }
- .pl-xl-0,
- .px-xl-0 {
- padding-left: 0 !important; }
- .p-xl-1 {
+ .p-xxl-1 {
padding: 0.25rem !important; }
- .pt-xl-1,
- .py-xl-1 {
- padding-top: 0.25rem !important; }
- .pr-xl-1,
- .px-xl-1 {
- padding-right: 0.25rem !important; }
- .pb-xl-1,
- .py-xl-1 {
- padding-bottom: 0.25rem !important; }
- .pl-xl-1,
- .px-xl-1 {
- padding-left: 0.25rem !important; }
- .p-xl-2 {
+ .p-xxl-2 {
padding: 0.5rem !important; }
- .pt-xl-2,
- .py-xl-2 {
- padding-top: 0.5rem !important; }
- .pr-xl-2,
- .px-xl-2 {
- padding-right: 0.5rem !important; }
- .pb-xl-2,
- .py-xl-2 {
- padding-bottom: 0.5rem !important; }
- .pl-xl-2,
- .px-xl-2 {
- padding-left: 0.5rem !important; }
- .p-xl-3 {
+ .p-xxl-3 {
padding: 1rem !important; }
- .pt-xl-3,
- .py-xl-3 {
- padding-top: 1rem !important; }
- .pr-xl-3,
- .px-xl-3 {
- padding-right: 1rem !important; }
- .pb-xl-3,
- .py-xl-3 {
- padding-bottom: 1rem !important; }
- .pl-xl-3,
- .px-xl-3 {
- padding-left: 1rem !important; }
- .p-xl-4 {
+ .p-xxl-4 {
padding: 1.5rem !important; }
- .pt-xl-4,
- .py-xl-4 {
- padding-top: 1.5rem !important; }
- .pr-xl-4,
- .px-xl-4 {
- padding-right: 1.5rem !important; }
- .pb-xl-4,
- .py-xl-4 {
- padding-bottom: 1.5rem !important; }
- .pl-xl-4,
- .px-xl-4 {
- padding-left: 1.5rem !important; }
- .p-xl-5 {
+ .p-xxl-5 {
padding: 3rem !important; }
- .pt-xl-5,
- .py-xl-5 {
+ .px-xxl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important; }
+ .px-xxl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important; }
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important; }
+ .px-xxl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
+ .px-xxl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important; }
+ .px-xxl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
+ .py-xxl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important; }
+ .py-xxl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important; }
+ .py-xxl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important; }
+ .py-xxl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
+ .py-xxl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important; }
+ .py-xxl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
+ .pt-xxl-0 {
+ padding-top: 0 !important; }
+ .pt-xxl-1 {
+ padding-top: 0.25rem !important; }
+ .pt-xxl-2 {
+ padding-top: 0.5rem !important; }
+ .pt-xxl-3 {
+ padding-top: 1rem !important; }
+ .pt-xxl-4 {
+ padding-top: 1.5rem !important; }
+ .pt-xxl-5 {
padding-top: 3rem !important; }
- .pr-xl-5,
- .px-xl-5 {
+ .pe-xxl-0 {
+ padding-right: 0 !important; }
+ .pe-xxl-1 {
+ padding-right: 0.25rem !important; }
+ .pe-xxl-2 {
+ padding-right: 0.5rem !important; }
+ .pe-xxl-3 {
+ padding-right: 1rem !important; }
+ .pe-xxl-4 {
+ padding-right: 1.5rem !important; }
+ .pe-xxl-5 {
padding-right: 3rem !important; }
- .pb-xl-5,
- .py-xl-5 {
+ .pb-xxl-0 {
+ padding-bottom: 0 !important; }
+ .pb-xxl-1 {
+ padding-bottom: 0.25rem !important; }
+ .pb-xxl-2 {
+ padding-bottom: 0.5rem !important; }
+ .pb-xxl-3 {
+ padding-bottom: 1rem !important; }
+ .pb-xxl-4 {
+ padding-bottom: 1.5rem !important; }
+ .pb-xxl-5 {
padding-bottom: 3rem !important; }
- .pl-xl-5,
- .px-xl-5 {
+ .ps-xxl-0 {
+ padding-left: 0 !important; }
+ .ps-xxl-1 {
+ padding-left: 0.25rem !important; }
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important; }
+ .ps-xxl-3 {
+ padding-left: 1rem !important; }
+ .ps-xxl-4 {
+ padding-left: 1.5rem !important; }
+ .ps-xxl-5 {
padding-left: 3rem !important; }
- .m-xl-n1 {
- margin: -0.25rem !important; }
- .mt-xl-n1,
- .my-xl-n1 {
- margin-top: -0.25rem !important; }
- .mr-xl-n1,
- .mx-xl-n1 {
- margin-right: -0.25rem !important; }
- .mb-xl-n1,
- .my-xl-n1 {
- margin-bottom: -0.25rem !important; }
- .ml-xl-n1,
- .mx-xl-n1 {
- margin-left: -0.25rem !important; }
- .m-xl-n2 {
- margin: -0.5rem !important; }
- .mt-xl-n2,
- .my-xl-n2 {
- margin-top: -0.5rem !important; }
- .mr-xl-n2,
- .mx-xl-n2 {
- margin-right: -0.5rem !important; }
- .mb-xl-n2,
- .my-xl-n2 {
- margin-bottom: -0.5rem !important; }
- .ml-xl-n2,
- .mx-xl-n2 {
- margin-left: -0.5rem !important; }
- .m-xl-n3 {
- margin: -1rem !important; }
- .mt-xl-n3,
- .my-xl-n3 {
- margin-top: -1rem !important; }
- .mr-xl-n3,
- .mx-xl-n3 {
- margin-right: -1rem !important; }
- .mb-xl-n3,
- .my-xl-n3 {
- margin-bottom: -1rem !important; }
- .ml-xl-n3,
- .mx-xl-n3 {
- margin-left: -1rem !important; }
- .m-xl-n4 {
- margin: -1.5rem !important; }
- .mt-xl-n4,
- .my-xl-n4 {
- margin-top: -1.5rem !important; }
- .mr-xl-n4,
- .mx-xl-n4 {
- margin-right: -1.5rem !important; }
- .mb-xl-n4,
- .my-xl-n4 {
- margin-bottom: -1.5rem !important; }
- .ml-xl-n4,
- .mx-xl-n4 {
- margin-left: -1.5rem !important; }
- .m-xl-n5 {
- margin: -3rem !important; }
- .mt-xl-n5,
- .my-xl-n5 {
- margin-top: -3rem !important; }
- .mr-xl-n5,
- .mx-xl-n5 {
- margin-right: -3rem !important; }
- .mb-xl-n5,
- .my-xl-n5 {
- margin-bottom: -3rem !important; }
- .ml-xl-n5,
- .mx-xl-n5 {
- margin-left: -3rem !important; }
- .m-xl-auto {
- margin: auto !important; }
- .mt-xl-auto,
- .my-xl-auto {
- margin-top: auto !important; }
- .mr-xl-auto,
- .mx-xl-auto {
- margin-right: auto !important; }
- .mb-xl-auto,
- .my-xl-auto {
- margin-bottom: auto !important; }
- .ml-xl-auto,
- .mx-xl-auto {
- margin-left: auto !important; } }
-
-.text-monospace {
- font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; }
-
-.text-justify {
- text-align: justify !important; }
-
-.text-wrap {
- white-space: normal !important; }
-
-.text-nowrap {
- white-space: nowrap !important; }
-
-.text-truncate {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap; }
-
-.text-left {
- text-align: left !important; }
-
-.text-right {
- text-align: right !important; }
-
-.text-center {
- text-align: center !important; }
-
-@media (min-width: 576px) {
- .text-sm-left {
- text-align: left !important; }
- .text-sm-right {
- text-align: right !important; }
- .text-sm-center {
- text-align: center !important; } }
-
-@media (min-width: 768px) {
- .text-md-left {
+ .gap-xxl-0 {
+ gap: 0 !important; }
+ .gap-xxl-1 {
+ gap: 0.25rem !important; }
+ .gap-xxl-2 {
+ gap: 0.5rem !important; }
+ .gap-xxl-3 {
+ gap: 1rem !important; }
+ .gap-xxl-4 {
+ gap: 1.5rem !important; }
+ .gap-xxl-5 {
+ gap: 3rem !important; }
+ .text-xxl-start {
text-align: left !important; }
- .text-md-right {
+ .text-xxl-end {
text-align: right !important; }
- .text-md-center {
- text-align: center !important; } }
-
-@media (min-width: 992px) {
- .text-lg-left {
- text-align: left !important; }
- .text-lg-right {
- text-align: right !important; }
- .text-lg-center {
+ .text-xxl-center {
text-align: center !important; } }
@media (min-width: 1200px) {
- .text-xl-left {
- text-align: left !important; }
- .text-xl-right {
- text-align: right !important; }
- .text-xl-center {
- text-align: center !important; } }
-
-.text-lowercase {
- text-transform: lowercase !important; }
-
-.text-uppercase {
- text-transform: uppercase !important; }
-
-.text-capitalize {
- text-transform: capitalize !important; }
-
-.font-weight-light {
- font-weight: 300 !important; }
-
-.font-weight-lighter {
- font-weight: lighter !important; }
-
-.font-weight-normal {
- font-weight: 400 !important; }
-
-.font-weight-bold {
- font-weight: 700 !important; }
-
-.font-weight-bolder {
- font-weight: bolder !important; }
-
-.font-italic {
- font-style: italic !important; }
-
-.text-white {
- color: #fff !important; }
-
-.text-primary {
- color: #9BAF00 !important; }
-
-a.text-primary:hover, a.text-primary:focus {
- color: #576300 !important; }
-
-.text-secondary {
- color: #6c757d !important; }
-
-a.text-secondary:hover, a.text-secondary:focus {
- color: #494f54 !important; }
-
-.text-success {
- color: #28a745 !important; }
-
-a.text-success:hover, a.text-success:focus {
- color: #19692c !important; }
-
-.text-info {
- color: #17a2b8 !important; }
-
-a.text-info:hover, a.text-info:focus {
- color: #0f6674 !important; }
-
-.text-warning {
- color: #d9e021 !important; }
-
-a.text-warning:hover, a.text-warning:focus {
- color: #999e16 !important; }
-
-.text-danger {
- color: #dc3545 !important; }
-
-a.text-danger:hover, a.text-danger:focus {
- color: #a71d2a !important; }
-
-.text-light {
- color: #e1e4e5 !important; }
-
-a.text-light:hover, a.text-light:focus {
- color: #b8bfc1 !important; }
-
-.text-dark {
- color: #373738 !important; }
-
-a.text-dark:hover, a.text-dark:focus {
- color: #111111 !important; }
-
-.text-body {
- color: #212529 !important; }
-
-.text-muted {
- color: #6c757d !important; }
-
-.text-black-50 {
- color: rgba(0, 0, 0, 0.5) !important; }
-
-.text-white-50 {
- color: rgba(255, 255, 255, 0.5) !important; }
-
-.text-hide {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0; }
-
-.text-decoration-none {
- text-decoration: none !important; }
-
-.text-reset {
- color: inherit !important; }
-
-.visible {
- visibility: visible !important; }
-
-.invisible {
- visibility: hidden !important; }
+ .fs-1 {
+ font-size: 2.5rem !important; }
+ .fs-2 {
+ font-size: 2rem !important; }
+ .fs-3 {
+ font-size: 1.75rem !important; }
+ .fs-4 {
+ font-size: 1.5rem !important; } }
@media print {
- *,
- *::before,
- *::after {
- text-shadow: none !important;
- box-shadow: none !important; }
- a:not(.btn) {
- text-decoration: underline; }
- abbr[title]::after {
- content: " (" attr(title) ")"; }
- pre {
- white-space: pre-wrap !important; }
- pre,
- blockquote {
- border: 1px solid #adb5bd;
- page-break-inside: avoid; }
- thead {
- display: table-header-group; }
- tr,
- img {
- page-break-inside: avoid; }
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3; }
- h2,
- h3 {
- page-break-after: avoid; }
- @page {
- size: a3; }
- body {
- min-width: 992px !important; }
- .container {
- min-width: 992px !important; }
- .navbar {
- display: none; }
- .badge {
- border: 1px solid #000; }
- .table,
- table.docutils {
- border-collapse: collapse !important; }
-
- .table td,
- table.docutils td,
- .table th,
- table.docutils th {
- background-color: #fff !important; }
- .table-bordered th,
- table.docutils th,
- .table-bordered td,
- table.docutils td {
- border: 1px solid #dee2e6 !important; }
- .table-dark {
- color: inherit; }
- .table-dark th,
- .table-dark td,
- .table-dark thead th,
- .table-dark tbody + tbody {
- border-color: #dee2e6; }
- .table .thead-dark th,
- table.docutils .thead-dark th {
- color: inherit;
- border-color: #dee2e6; } }
+ .d-print-inline {
+ display: inline !important; }
+ .d-print-inline-block {
+ display: inline-block !important; }
+ .d-print-block {
+ display: block !important; }
+ .d-print-grid {
+ display: grid !important; }
+ .d-print-table {
+ display: table !important; }
+ .d-print-table-row {
+ display: table-row !important; }
+ .d-print-table-cell {
+ display: table-cell !important; }
+ .d-print-flex {
+ display: flex !important; }
+ .d-print-inline-flex {
+ display: inline-flex !important; }
+ .d-print-none {
+ display: none !important; } }
-.ee-content > h3:not(:first-child) {
+.ee-content > h3:not(:first-child), .ee-content > .h3:not(:first-child) {
margin-top: 3rem; }
-.ee-content > h4 {
+.ee-content > h4, .ee-content > .h4 {
margin-top: 1.5rem; }
.ee-content > ul li,
@@ -6984,7 +8382,6 @@ a.text-dark:hover, a.text-dark:focus {
@media (min-width: 576px) {
.ee-title {
font-size: 3rem; } }
-
.highlight {
padding: 1rem;
margin-top: 1rem;
@@ -7000,16 +8397,14 @@ a.text-dark:hover, a.text-dark:focus {
margin-bottom: 0;
background-color: transparent;
border: 0; }
- .highlight pre code,
- .highlight pre table.docutils tt,
- table.docutils .highlight pre tt {
+ .highlight pre code, .highlight pre table.docutils tt, table.docutils .highlight pre tt {
font-size: inherit;
color: #212529; }
.ee-masthead {
position: relative;
- padding: 3rem 15px; }
- .ee-masthead h1 {
+ padding: 3rem 0.75rem; }
+ .ee-masthead h1, .ee-masthead .h1 {
line-height: 1; }
.ee-masthead .btn {
padding: .8rem 2rem;
@@ -7019,9 +8414,8 @@ a.text-dark:hover, a.text-dark:focus {
padding-top: 5rem;
padding-bottom: 5rem; } }
@media (min-width: 768px) {
- .ee-masthead h1 {
+ .ee-masthead h1, .ee-masthead .h1 {
font-size: 4rem; } }
-
.ee-navbar {
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.1); }
.ee-navbar .dropdown-item.active {
@@ -7048,7 +8442,6 @@ a.text-dark:hover, a.text-dark:focus {
@media (min-width: 1200px) {
.ee-sidebar {
flex: 0 1 320px; } }
-
.ee-links {
padding: 0.75rem 15px;
margin-right: -15px;
@@ -7061,7 +8454,6 @@ a.text-dark:hover, a.text-dark:focus {
@media (min-width: 768px) {
.ee-links {
display: block !important; } }
-
.ee-search {
padding: 1rem 15px;
margin-right: -15px;
@@ -7079,7 +8471,8 @@ a.text-dark:hover, a.text-dark:focus {
display: block;
padding: .25rem 0;
font-weight: 600;
- color: rgba(0, 0, 0, 0.65); }
+ color: rgba(0, 0, 0, 0.65);
+ text-decoration: none; }
.ee-toc-link:hover {
color: rgba(0, 0, 0, 0.85);
text-decoration: none; }
@@ -7096,7 +8489,8 @@ a.text-dark:hover, a.text-dark:focus {
display: block;
padding: .25rem 1rem;
font-size: 90%;
- color: rgba(0, 0, 0, 0.65); }
+ color: rgba(0, 0, 0, 0.65);
+ text-decoration: none; }
.ee-sidebar .nav > li > a:hover {
color: rgba(0, 0, 0, 0.85);
@@ -7124,20 +8518,22 @@ a.text-dark:hover, a.text-dark:focus {
-webkit-appearance: none;
-moz-appearance: none; }
-table code,
-table.docutils tt {
+table code, table.docutils tt {
word-break: normal; }
-.table-bordered td:nth-child(3),
-table.docutils td:nth-child(3) {
+.table-bordered td:nth-child(3), table.docutils td:nth-child(3) {
padding-bottom: 0; }
- .table-bordered td:nth-child(3) p,
- table.docutils td:nth-child(3) p,
+ .table-bordered td:nth-child(3) p, table.docutils td:nth-child(3) p,
.table-bordered td:nth-child(3) dl,
table.docutils td:nth-child(3) dl {
margin-bottom: 0.75rem; }
-.align-items-center {
- -ms-flex-align: center !important;
- align-items: center !important; }
+.form-inline {
+ flex-flow: row wrap; }
+ .form-inline .form-select {
+ display: inline-block; }
+
+@media (min-width: 576px) {
+ .form-inline .form-select {
+ width: auto; } }
diff --git a/extension_explorer/static/lib/scss/_custom-styles.scss b/extension_explorer/static/lib/scss/_custom-styles.scss
index 0165be901..1115103e7 100644
--- a/extension_explorer/static/lib/scss/_custom-styles.scss
+++ b/extension_explorer/static/lib/scss/_custom-styles.scss
@@ -24,11 +24,6 @@ table code {
// Extra
-.align-items-center {
- -ms-flex-align: center !important;
- align-items: center !important;
-}
-
table.docutils {
@extend .table;
@extend .table-bordered;
@@ -37,3 +32,19 @@ table.docutils {
@extend code;
}
}
+
+.form-inline {
+ flex-flow: row wrap;
+
+ .form-select {
+ display: inline-block;
+ }
+}
+
+@include media-breakpoint-up(sm) {
+ .form-inline {
+ .form-select {
+ width: auto;
+ }
+ }
+}
diff --git a/extension_explorer/static/lib/scss/_custom-variables.scss b/extension_explorer/static/lib/scss/_custom-variables.scss
index a51a898f1..c129d55dc 100644
--- a/extension_explorer/static/lib/scss/_custom-variables.scss
+++ b/extension_explorer/static/lib/scss/_custom-variables.scss
@@ -2,23 +2,20 @@
// You can find them in node_modules/bootstrap/scss/_variables.scss
// Copy the variables you need into this file, don't modify files under node_modules/
-// $table-border-color
+$primary: #9baf00;
+$warning: #d9e021;
$light: #e1e4e5;
-
-// $nav-background-color
$dark: #373738;
-// $link-color
-$primary: #9BAF00;
-
-// .oc-fixed-alert-header
-$warning: #d9e021;
+$container-max-widths: (
+ sm: 540px,
+ md: 720px,
+ lg: 960px,
+ xl: 1140px
+ // xxl: 1320px
+);
-// $base-font-family
$font-family-sans-serif: "Lato", "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
+$font-family-monospace: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
-// $custom-font-family
$headings-font-family: "stratum-1-web", "Helvetica Neue", Helvetica, Arial, sans-serif;
-
-// $code-font-family
-$font-family-monospace: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
diff --git a/extension_explorer/static/lib/scss/_sidebar.scss b/extension_explorer/static/lib/scss/_sidebar.scss
index 767812ffd..c4bdadd90 100644
--- a/extension_explorer/static/lib/scss/_sidebar.scss
+++ b/extension_explorer/static/lib/scss/_sidebar.scss
@@ -57,6 +57,7 @@
padding: .25rem 0;
font-weight: 600;
color: rgba(0, 0, 0, .65);
+ text-decoration: none;
&:hover {
color: rgba(0, 0, 0, .85);
@@ -85,6 +86,7 @@
padding: .25rem 1rem;
font-size: 90%;
color: rgba(0, 0, 0, .65);
+ text-decoration: none;
}
.ee-sidebar .nav > li > a:hover {
diff --git a/extension_explorer/templates/_logo.html b/extension_explorer/templates/_logo.html
index e6d2f2fc0..a059dd8e1 100644
--- a/extension_explorer/templates/_logo.html
+++ b/extension_explorer/templates/_logo.html
@@ -1,4 +1,4 @@
-
+
Open Contracting Partnership
diff --git a/extension_explorer/templates/extension_codelists.html b/extension_explorer/templates/extension_codelists.html
index 73b91d60f..8f0ca956e 100644
--- a/extension_explorer/templates/extension_codelists.html
+++ b/extension_explorer/templates/extension_codelists.html
@@ -47,7 +47,7 @@
{% endif %}
-
+
{% for fieldname in fieldnames %}
diff --git a/extension_explorer/templates/extension_documentation.html b/extension_explorer/templates/extension_documentation.html
index b87e4e332..f27442804 100644
--- a/extension_explorer/templates/extension_documentation.html
+++ b/extension_explorer/templates/extension_documentation.html
@@ -16,7 +16,7 @@
{% for heading in headings %}
-
+
{{ heading.text }}
diff --git a/extension_explorer/templates/extension_schema.html b/extension_explorer/templates/extension_schema.html
index 04c643f25..bddfdc4b8 100644
--- a/extension_explorer/templates/extension_schema.html
+++ b/extension_explorer/templates/extension_schema.html
@@ -56,7 +56,7 @@
-
+
{{ _("Field") }}
@@ -85,13 +85,13 @@