bootstrap 5.1.3 → 5.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +61 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile +1 -0
- data/README.md +35 -14
- data/Rakefile +16 -5
- data/assets/javascripts/bootstrap/alert.js +22 -167
- data/assets/javascripts/bootstrap/base-component.js +34 -133
- data/assets/javascripts/bootstrap/button.js +19 -86
- data/assets/javascripts/bootstrap/carousel.js +209 -564
- data/assets/javascripts/bootstrap/collapse.js +78 -324
- data/assets/javascripts/bootstrap/dom/data.js +8 -14
- data/assets/javascripts/bootstrap/dom/event-handler.js +89 -174
- data/assets/javascripts/bootstrap/dom/manipulator.js +22 -39
- data/assets/javascripts/bootstrap/dom/selector-engine.js +47 -71
- data/assets/javascripts/bootstrap/dropdown.js +135 -420
- data/assets/javascripts/bootstrap/modal.js +115 -837
- data/assets/javascripts/bootstrap/offcanvas.js +93 -714
- data/assets/javascripts/bootstrap/popover.js +42 -130
- data/assets/javascripts/bootstrap/scrollspy.js +180 -296
- data/assets/javascripts/bootstrap/tab.js +197 -245
- data/assets/javascripts/bootstrap/toast.js +52 -276
- data/assets/javascripts/bootstrap/tooltip.js +283 -744
- data/assets/javascripts/bootstrap/util/backdrop.js +138 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
- data/assets/javascripts/bootstrap/util/config.js +67 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +112 -0
- data/assets/javascripts/bootstrap/util/index.js +280 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +113 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
- data/assets/javascripts/bootstrap/util/swipe.js +134 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
- data/assets/javascripts/bootstrap-global-this-define.js +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +15 -6
- data/assets/javascripts/bootstrap.js +2278 -2831
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +4 -9
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -7
- data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
- data/assets/stylesheets/_bootstrap.scss +5 -6
- data/assets/stylesheets/bootstrap/_accordion.scss +68 -33
- data/assets/stylesheets/bootstrap/_alert.scss +25 -14
- data/assets/stylesheets/bootstrap/_badge.scss +14 -5
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -10
- data/assets/stylesheets/bootstrap/_button-group.scss +12 -4
- data/assets/stylesheets/bootstrap/_buttons.scss +133 -28
- data/assets/stylesheets/bootstrap/_card.scss +61 -39
- data/assets/stylesheets/bootstrap/_carousel.scss +22 -25
- data/assets/stylesheets/bootstrap/_close.scss +36 -10
- data/assets/stylesheets/bootstrap/_containers.scss +1 -1
- data/assets/stylesheets/bootstrap/_dropdown.scss +86 -76
- data/assets/stylesheets/bootstrap/_functions.scss +10 -10
- data/assets/stylesheets/bootstrap/_grid.scss +9 -3
- data/assets/stylesheets/bootstrap/_helpers.scss +3 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +81 -56
- data/assets/stylesheets/bootstrap/_maps.scss +174 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
- data/assets/stylesheets/bootstrap/_modal.scss +76 -45
- data/assets/stylesheets/bootstrap/_nav.scss +87 -29
- data/assets/stylesheets/bootstrap/_navbar.scss +102 -148
- data/assets/stylesheets/bootstrap/_offcanvas.scss +125 -61
- data/assets/stylesheets/bootstrap/_pagination.scss +66 -21
- data/assets/stylesheets/bootstrap/_placeholders.scss +1 -1
- data/assets/stylesheets/bootstrap/_popover.scss +90 -52
- data/assets/stylesheets/bootstrap/_progress.scss +31 -11
- data/assets/stylesheets/bootstrap/_reboot.scss +32 -46
- data/assets/stylesheets/bootstrap/_root.scss +155 -22
- data/assets/stylesheets/bootstrap/_spinners.scss +38 -22
- data/assets/stylesheets/bootstrap/_tables.scss +40 -24
- data/assets/stylesheets/bootstrap/_toasts.scss +38 -16
- data/assets/stylesheets/bootstrap/_tooltip.scss +60 -56
- data/assets/stylesheets/bootstrap/_type.scss +3 -1
- data/assets/stylesheets/bootstrap/_utilities.scss +209 -33
- data/assets/stylesheets/bootstrap/_variables-dark.scss +102 -0
- data/assets/stylesheets/bootstrap/_variables.scss +415 -303
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +39 -5
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +51 -14
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +36 -41
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +3 -3
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +12 -4
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +20 -9
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +20 -2
- data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
- data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +7 -1
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -4
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
- data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +38 -19
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +15 -15
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +14 -6
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +6 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
- data/bootstrap.gemspec +3 -3
- data/lib/bootstrap/engine.rb +17 -2
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +10 -5
- data/tasks/updater/network.rb +2 -2
- data/tasks/updater/scss.rb +2 -2
- data/tasks/updater.rb +2 -2
- data/test/dummy_rails/config/application.rb +0 -2
- data/test/dummy_rails/public/favicon.ico +0 -0
- data/test/gemfiles/rails_4_2.gemfile +2 -1
- data/test/gemfiles/rails_5_0.gemfile +1 -2
- data/test/gemfiles/rails_5_1.gemfile +1 -2
- data/test/gemfiles/rails_5_2.gemfile +7 -0
- data/test/gemfiles/rails_6_0.gemfile +1 -1
- data/test/gemfiles/rails_6_1.gemfile +1 -1
- data/test/gemfiles/rails_7_0_dartsass.gemfile +7 -0
- data/test/gemfiles/rails_7_0_sassc.gemfile +7 -0
- data/test/rails_test.rb +0 -5
- data/test/test_helper.rb +3 -2
- metadata +49 -29
- data/.travis.yml +0 -32
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +0 -18
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
display: block;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
/* rtl:begin:ignore */
|
|
46
45
|
.carousel-item-next:not(.carousel-item-start),
|
|
47
46
|
.active.carousel-item-end {
|
|
48
47
|
transform: translateX(100%);
|
|
@@ -53,8 +52,6 @@
|
|
|
53
52
|
transform: translateX(-100%);
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
/* rtl:end:ignore */
|
|
57
|
-
|
|
58
55
|
|
|
59
56
|
//
|
|
60
57
|
// Alternate transitions
|
|
@@ -102,6 +99,7 @@
|
|
|
102
99
|
color: $carousel-control-color;
|
|
103
100
|
text-align: center;
|
|
104
101
|
background: none;
|
|
102
|
+
filter: var(--#{$prefix}carousel-control-icon-filter);
|
|
105
103
|
border: 0;
|
|
106
104
|
opacity: $carousel-control-opacity;
|
|
107
105
|
@include transition($carousel-control-transition);
|
|
@@ -135,19 +133,11 @@
|
|
|
135
133
|
background-size: 100% 100%;
|
|
136
134
|
}
|
|
137
135
|
|
|
138
|
-
/* rtl:options: {
|
|
139
|
-
"autoRename": true,
|
|
140
|
-
"stringMap":[ {
|
|
141
|
-
"name" : "prev-next",
|
|
142
|
-
"search" : "prev",
|
|
143
|
-
"replace" : "next"
|
|
144
|
-
} ]
|
|
145
|
-
} */
|
|
146
136
|
.carousel-control-prev-icon {
|
|
147
|
-
background-image: escape-svg($carousel-control-prev-icon-bg);
|
|
137
|
+
background-image: escape-svg($carousel-control-prev-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-next-icon-bg) + "*/"};
|
|
148
138
|
}
|
|
149
139
|
.carousel-control-next-icon {
|
|
150
|
-
background-image: escape-svg($carousel-control-next-icon-bg);
|
|
140
|
+
background-image: escape-svg($carousel-control-next-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-prev-icon-bg) + "*/"};
|
|
151
141
|
}
|
|
152
142
|
|
|
153
143
|
// Optional indicator pips/controls
|
|
@@ -168,7 +158,6 @@
|
|
|
168
158
|
margin-right: $carousel-control-width;
|
|
169
159
|
margin-bottom: 1rem;
|
|
170
160
|
margin-left: $carousel-control-width;
|
|
171
|
-
list-style: none;
|
|
172
161
|
|
|
173
162
|
[data-bs-target] {
|
|
174
163
|
box-sizing: content-box;
|
|
@@ -180,7 +169,7 @@
|
|
|
180
169
|
margin-left: $carousel-indicator-spacer;
|
|
181
170
|
text-indent: -999px;
|
|
182
171
|
cursor: pointer;
|
|
183
|
-
background-color: $carousel-indicator-active-bg;
|
|
172
|
+
background-color: var(--#{$prefix}carousel-indicator-active-bg);
|
|
184
173
|
background-clip: padding-box;
|
|
185
174
|
border: 0;
|
|
186
175
|
// Use transparent borders to increase the hit area by 10px on top and bottom.
|
|
@@ -207,23 +196,31 @@
|
|
|
207
196
|
left: (100% - $carousel-caption-width) * .5;
|
|
208
197
|
padding-top: $carousel-caption-padding-y;
|
|
209
198
|
padding-bottom: $carousel-caption-padding-y;
|
|
210
|
-
color: $carousel-caption-color;
|
|
199
|
+
color: var(--#{$prefix}carousel-caption-color);
|
|
211
200
|
text-align: center;
|
|
212
201
|
}
|
|
213
202
|
|
|
214
203
|
// Dark mode carousel
|
|
215
204
|
|
|
205
|
+
@mixin carousel-dark() {
|
|
206
|
+
--#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
|
|
207
|
+
--#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark};
|
|
208
|
+
--#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
|
|
209
|
+
}
|
|
210
|
+
|
|
216
211
|
.carousel-dark {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
filter: $carousel-dark-control-icon-filter;
|
|
220
|
-
}
|
|
212
|
+
@include carousel-dark();
|
|
213
|
+
}
|
|
221
214
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
}
|
|
215
|
+
:root,
|
|
216
|
+
[data-bs-theme="light"] {
|
|
217
|
+
--#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
|
|
218
|
+
--#{$prefix}carousel-caption-color: #{$carousel-caption-color};
|
|
219
|
+
--#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter};
|
|
220
|
+
}
|
|
225
221
|
|
|
226
|
-
|
|
227
|
-
|
|
222
|
+
@if $enable-dark-mode {
|
|
223
|
+
@include color-mode(dark, true) {
|
|
224
|
+
@include carousel-dark();
|
|
228
225
|
}
|
|
229
226
|
}
|
|
@@ -1,40 +1,66 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Transparent background and border properties included for button version.
|
|
2
2
|
// iOS requires the button element instead of an anchor tag.
|
|
3
3
|
// If you want the anchor version, it requires `href="#"`.
|
|
4
4
|
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
|
|
5
5
|
|
|
6
6
|
.btn-close {
|
|
7
|
+
// scss-docs-start close-css-vars
|
|
8
|
+
--#{$prefix}btn-close-color: #{$btn-close-color};
|
|
9
|
+
--#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) };
|
|
10
|
+
--#{$prefix}btn-close-opacity: #{$btn-close-opacity};
|
|
11
|
+
--#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity};
|
|
12
|
+
--#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
|
|
13
|
+
--#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity};
|
|
14
|
+
--#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity};
|
|
15
|
+
// scss-docs-end close-css-vars
|
|
16
|
+
|
|
7
17
|
box-sizing: content-box;
|
|
8
18
|
width: $btn-close-width;
|
|
9
19
|
height: $btn-close-height;
|
|
10
20
|
padding: $btn-close-padding-y $btn-close-padding-x;
|
|
11
|
-
color: $btn-close-color;
|
|
12
|
-
background: transparent
|
|
21
|
+
color: var(--#{$prefix}btn-close-color);
|
|
22
|
+
background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
|
|
23
|
+
filter: var(--#{$prefix}btn-close-filter);
|
|
13
24
|
border: 0; // for button elements
|
|
14
25
|
@include border-radius();
|
|
15
|
-
opacity: $btn-close-opacity;
|
|
26
|
+
opacity: var(--#{$prefix}btn-close-opacity);
|
|
16
27
|
|
|
17
28
|
// Override <a>'s hover style
|
|
18
29
|
&:hover {
|
|
19
|
-
color: $btn-close-color;
|
|
30
|
+
color: var(--#{$prefix}btn-close-color);
|
|
20
31
|
text-decoration: none;
|
|
21
|
-
opacity: $btn-close-hover-opacity;
|
|
32
|
+
opacity: var(--#{$prefix}btn-close-hover-opacity);
|
|
22
33
|
}
|
|
23
34
|
|
|
24
35
|
&:focus {
|
|
25
36
|
outline: 0;
|
|
26
|
-
box-shadow: $btn-close-focus-shadow;
|
|
27
|
-
opacity: $btn-close-focus-opacity;
|
|
37
|
+
box-shadow: var(--#{$prefix}btn-close-focus-shadow);
|
|
38
|
+
opacity: var(--#{$prefix}btn-close-focus-opacity);
|
|
28
39
|
}
|
|
29
40
|
|
|
30
41
|
&:disabled,
|
|
31
42
|
&.disabled {
|
|
32
43
|
pointer-events: none;
|
|
33
44
|
user-select: none;
|
|
34
|
-
opacity: $btn-close-disabled-opacity;
|
|
45
|
+
opacity: var(--#{$prefix}btn-close-disabled-opacity);
|
|
35
46
|
}
|
|
36
47
|
}
|
|
37
48
|
|
|
49
|
+
@mixin btn-close-white() {
|
|
50
|
+
--#{$prefix}btn-close-filter: #{$btn-close-filter-dark};
|
|
51
|
+
}
|
|
52
|
+
|
|
38
53
|
.btn-close-white {
|
|
39
|
-
|
|
54
|
+
@include btn-close-white();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:root,
|
|
58
|
+
[data-bs-theme="light"] {
|
|
59
|
+
--#{$prefix}btn-close-filter: #{$btn-close-filter};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@if $enable-dark-mode {
|
|
63
|
+
@include color-mode(dark, true) {
|
|
64
|
+
@include btn-close-white();
|
|
65
|
+
}
|
|
40
66
|
}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
.dropup,
|
|
3
3
|
.dropend,
|
|
4
4
|
.dropdown,
|
|
5
|
-
.dropstart
|
|
5
|
+
.dropstart,
|
|
6
|
+
.dropup-center,
|
|
7
|
+
.dropdown-center {
|
|
6
8
|
position: relative;
|
|
7
9
|
}
|
|
8
10
|
|
|
@@ -15,26 +17,67 @@
|
|
|
15
17
|
|
|
16
18
|
// The dropdown menu
|
|
17
19
|
.dropdown-menu {
|
|
20
|
+
// scss-docs-start dropdown-css-vars
|
|
21
|
+
--#{$prefix}dropdown-zindex: #{$zindex-dropdown};
|
|
22
|
+
--#{$prefix}dropdown-min-width: #{$dropdown-min-width};
|
|
23
|
+
--#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};
|
|
24
|
+
--#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};
|
|
25
|
+
--#{$prefix}dropdown-spacer: #{$dropdown-spacer};
|
|
26
|
+
@include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);
|
|
27
|
+
--#{$prefix}dropdown-color: #{$dropdown-color};
|
|
28
|
+
--#{$prefix}dropdown-bg: #{$dropdown-bg};
|
|
29
|
+
--#{$prefix}dropdown-border-color: #{$dropdown-border-color};
|
|
30
|
+
--#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};
|
|
31
|
+
--#{$prefix}dropdown-border-width: #{$dropdown-border-width};
|
|
32
|
+
--#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};
|
|
33
|
+
--#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};
|
|
34
|
+
--#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};
|
|
35
|
+
--#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};
|
|
36
|
+
--#{$prefix}dropdown-link-color: #{$dropdown-link-color};
|
|
37
|
+
--#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};
|
|
38
|
+
--#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
|
|
39
|
+
--#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};
|
|
40
|
+
--#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};
|
|
41
|
+
--#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};
|
|
42
|
+
--#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};
|
|
43
|
+
--#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};
|
|
44
|
+
--#{$prefix}dropdown-header-color: #{$dropdown-header-color};
|
|
45
|
+
--#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};
|
|
46
|
+
--#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};
|
|
47
|
+
// scss-docs-end dropdown-css-vars
|
|
48
|
+
|
|
18
49
|
position: absolute;
|
|
19
|
-
z-index: $zindex
|
|
50
|
+
z-index: var(--#{$prefix}dropdown-zindex);
|
|
20
51
|
display: none; // none by default, but block on "open" of the menu
|
|
21
|
-
min-width: $dropdown-min-width;
|
|
22
|
-
padding: $dropdown-padding-y $dropdown-padding-x;
|
|
52
|
+
min-width: var(--#{$prefix}dropdown-min-width);
|
|
53
|
+
padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);
|
|
23
54
|
margin: 0; // Override default margin of ul
|
|
24
|
-
@include font-size($dropdown-font-size);
|
|
25
|
-
color: $dropdown-color;
|
|
55
|
+
@include font-size(var(--#{$prefix}dropdown-font-size));
|
|
56
|
+
color: var(--#{$prefix}dropdown-color);
|
|
26
57
|
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
|
|
27
58
|
list-style: none;
|
|
28
|
-
background-color: $dropdown-bg;
|
|
59
|
+
background-color: var(--#{$prefix}dropdown-bg);
|
|
29
60
|
background-clip: padding-box;
|
|
30
|
-
border: $dropdown-border-width solid $dropdown-border-color;
|
|
31
|
-
@include border-radius($dropdown-border-radius);
|
|
32
|
-
@include box-shadow($dropdown-box-shadow);
|
|
61
|
+
border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);
|
|
62
|
+
@include border-radius(var(--#{$prefix}dropdown-border-radius));
|
|
63
|
+
@include box-shadow(var(--#{$prefix}dropdown-box-shadow));
|
|
33
64
|
|
|
34
65
|
&[data-bs-popper] {
|
|
35
66
|
top: 100%;
|
|
36
67
|
left: 0;
|
|
37
|
-
margin-top: $dropdown-spacer;
|
|
68
|
+
margin-top: var(--#{$prefix}dropdown-spacer);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@if $dropdown-padding-y == 0 {
|
|
72
|
+
> .dropdown-item:first-child,
|
|
73
|
+
> li:first-child .dropdown-item {
|
|
74
|
+
@include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));
|
|
75
|
+
}
|
|
76
|
+
> .dropdown-item:last-child,
|
|
77
|
+
> li:last-child .dropdown-item {
|
|
78
|
+
@include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));
|
|
79
|
+
}
|
|
80
|
+
|
|
38
81
|
}
|
|
39
82
|
}
|
|
40
83
|
|
|
@@ -74,7 +117,7 @@
|
|
|
74
117
|
top: auto;
|
|
75
118
|
bottom: 100%;
|
|
76
119
|
margin-top: 0;
|
|
77
|
-
margin-bottom: $dropdown-spacer;
|
|
120
|
+
margin-bottom: var(--#{$prefix}dropdown-spacer);
|
|
78
121
|
}
|
|
79
122
|
|
|
80
123
|
.dropdown-toggle {
|
|
@@ -88,7 +131,7 @@
|
|
|
88
131
|
right: auto;
|
|
89
132
|
left: 100%;
|
|
90
133
|
margin-top: 0;
|
|
91
|
-
margin-left: $dropdown-spacer;
|
|
134
|
+
margin-left: var(--#{$prefix}dropdown-spacer);
|
|
92
135
|
}
|
|
93
136
|
|
|
94
137
|
.dropdown-toggle {
|
|
@@ -105,7 +148,7 @@
|
|
|
105
148
|
right: 100%;
|
|
106
149
|
left: auto;
|
|
107
150
|
margin-top: 0;
|
|
108
|
-
margin-right: $dropdown-spacer;
|
|
151
|
+
margin-right: var(--#{$prefix}dropdown-spacer);
|
|
109
152
|
}
|
|
110
153
|
|
|
111
154
|
.dropdown-toggle {
|
|
@@ -120,9 +163,10 @@
|
|
|
120
163
|
// Dividers (basically an `<hr>`) within the dropdown
|
|
121
164
|
.dropdown-divider {
|
|
122
165
|
height: 0;
|
|
123
|
-
margin: $dropdown-divider-margin-y 0;
|
|
166
|
+
margin: var(--#{$prefix}dropdown-divider-margin-y) 0;
|
|
124
167
|
overflow: hidden;
|
|
125
|
-
border-top: 1px solid $dropdown-divider-bg;
|
|
168
|
+
border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);
|
|
169
|
+
opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element
|
|
126
170
|
}
|
|
127
171
|
|
|
128
172
|
// Links, buttons, and more within the dropdown menu
|
|
@@ -131,45 +175,34 @@
|
|
|
131
175
|
.dropdown-item {
|
|
132
176
|
display: block;
|
|
133
177
|
width: 100%; // For `<button>`s
|
|
134
|
-
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
|
|
178
|
+
padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
|
|
135
179
|
clear: both;
|
|
136
180
|
font-weight: $font-weight-normal;
|
|
137
|
-
color: $dropdown-link-color;
|
|
181
|
+
color: var(--#{$prefix}dropdown-link-color);
|
|
138
182
|
text-align: inherit; // For `<button>`s
|
|
139
183
|
text-decoration: if($link-decoration == none, null, none);
|
|
140
184
|
white-space: nowrap; // prevent links from randomly breaking onto new lines
|
|
141
185
|
background-color: transparent; // For `<button>`s
|
|
142
186
|
border: 0; // For `<button>`s
|
|
143
|
-
|
|
144
|
-
// Prevent dropdown overflow if there's no padding
|
|
145
|
-
// See https://github.com/twbs/bootstrap/pull/27703
|
|
146
|
-
@if $dropdown-padding-y == 0 {
|
|
147
|
-
&:first-child {
|
|
148
|
-
@include border-top-radius($dropdown-inner-border-radius);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
&:last-child {
|
|
152
|
-
@include border-bottom-radius($dropdown-inner-border-radius);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
187
|
+
@include border-radius(var(--#{$prefix}dropdown-item-border-radius, 0));
|
|
155
188
|
|
|
156
189
|
&:hover,
|
|
157
190
|
&:focus {
|
|
158
|
-
color: $dropdown-link-hover-color;
|
|
191
|
+
color: var(--#{$prefix}dropdown-link-hover-color);
|
|
159
192
|
text-decoration: if($link-hover-decoration == underline, none, null);
|
|
160
|
-
@include gradient-bg($dropdown-link-hover-bg);
|
|
193
|
+
@include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));
|
|
161
194
|
}
|
|
162
195
|
|
|
163
196
|
&.active,
|
|
164
197
|
&:active {
|
|
165
|
-
color: $dropdown-link-active-color;
|
|
198
|
+
color: var(--#{$prefix}dropdown-link-active-color);
|
|
166
199
|
text-decoration: none;
|
|
167
|
-
@include gradient-bg($dropdown-link-active-bg);
|
|
200
|
+
@include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));
|
|
168
201
|
}
|
|
169
202
|
|
|
170
203
|
&.disabled,
|
|
171
204
|
&:disabled {
|
|
172
|
-
color: $dropdown-link-disabled-color;
|
|
205
|
+
color: var(--#{$prefix}dropdown-link-disabled-color);
|
|
173
206
|
pointer-events: none;
|
|
174
207
|
background-color: transparent;
|
|
175
208
|
// Remove CSS gradients if they're enabled
|
|
@@ -184,57 +217,34 @@
|
|
|
184
217
|
// Dropdown section headers
|
|
185
218
|
.dropdown-header {
|
|
186
219
|
display: block;
|
|
187
|
-
padding: $dropdown-header-padding;
|
|
220
|
+
padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);
|
|
188
221
|
margin-bottom: 0; // for use with heading elements
|
|
189
222
|
@include font-size($font-size-sm);
|
|
190
|
-
color: $dropdown-header-color;
|
|
223
|
+
color: var(--#{$prefix}dropdown-header-color);
|
|
191
224
|
white-space: nowrap; // as with > li > a
|
|
192
225
|
}
|
|
193
226
|
|
|
194
227
|
// Dropdown text
|
|
195
228
|
.dropdown-item-text {
|
|
196
229
|
display: block;
|
|
197
|
-
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
|
|
198
|
-
color: $dropdown-link-color;
|
|
230
|
+
padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
|
|
231
|
+
color: var(--#{$prefix}dropdown-link-color);
|
|
199
232
|
}
|
|
200
233
|
|
|
201
234
|
// Dark dropdowns
|
|
202
235
|
.dropdown-menu-dark {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
&.active,
|
|
218
|
-
&:active {
|
|
219
|
-
color: $dropdown-dark-link-active-color;
|
|
220
|
-
@include gradient-bg($dropdown-dark-link-active-bg);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
&.disabled,
|
|
224
|
-
&:disabled {
|
|
225
|
-
color: $dropdown-dark-link-disabled-color;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
.dropdown-divider {
|
|
230
|
-
border-color: $dropdown-dark-divider-bg;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.dropdown-item-text {
|
|
234
|
-
color: $dropdown-dark-link-color;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.dropdown-header {
|
|
238
|
-
color: $dropdown-dark-header-color;
|
|
239
|
-
}
|
|
236
|
+
// scss-docs-start dropdown-dark-css-vars
|
|
237
|
+
--#{$prefix}dropdown-color: #{$dropdown-dark-color};
|
|
238
|
+
--#{$prefix}dropdown-bg: #{$dropdown-dark-bg};
|
|
239
|
+
--#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};
|
|
240
|
+
--#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};
|
|
241
|
+
--#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};
|
|
242
|
+
--#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
|
|
243
|
+
--#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
|
|
244
|
+
--#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
|
|
245
|
+
--#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
|
|
246
|
+
--#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
|
|
247
|
+
--#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
|
|
248
|
+
--#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
|
|
249
|
+
// scss-docs-end dropdown-dark-css-vars
|
|
240
250
|
}
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
// stylelint-disable scss/dollar-variable-pattern
|
|
41
41
|
@function rgba-css-var($identifier, $target) {
|
|
42
42
|
@if $identifier == "body" and $target == "bg" {
|
|
43
|
-
@return rgba(var(--#{$
|
|
43
|
+
@return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));
|
|
44
44
|
} @if $identifier == "body" and $target == "text" {
|
|
45
|
-
@return rgba(var(--#{$
|
|
45
|
+
@return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));
|
|
46
46
|
} @else {
|
|
47
|
-
@return rgba(var(--#{$
|
|
47
|
+
@return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
@function varify($list) {
|
|
69
69
|
$result: null;
|
|
70
70
|
@each $entry in $list {
|
|
71
|
-
$result: append($result, var(--#{$
|
|
71
|
+
$result: append($result, var(--#{$prefix}#{$entry}), space);
|
|
72
72
|
}
|
|
73
73
|
@return $result;
|
|
74
74
|
}
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
// Replace `$search` with `$replace` in `$string`
|
|
110
110
|
// Used on our SVG icon backgrounds for custom forms.
|
|
111
111
|
//
|
|
112
|
-
// @author
|
|
112
|
+
// @author Kitty Giraudel
|
|
113
113
|
// @param {String} $string - Initial string
|
|
114
114
|
// @param {String} $search - Substring to replace
|
|
115
115
|
// @param {String} $replace ('') - New value
|
|
@@ -177,9 +177,9 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
|
|
|
177
177
|
@return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
// Return WCAG2.
|
|
181
|
-
// See https://www.w3.org/
|
|
182
|
-
// See https://www.w3.org/TR/
|
|
180
|
+
// Return WCAG2.2 relative luminance
|
|
181
|
+
// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
|
|
182
|
+
// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
|
|
183
183
|
@function luminance($color) {
|
|
184
184
|
$rgb: (
|
|
185
185
|
"r": red($color),
|
|
@@ -188,7 +188,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
|
|
|
188
188
|
);
|
|
189
189
|
|
|
190
190
|
@each $name, $value in $rgb {
|
|
191
|
-
$value: if(divide($value, 255) < .
|
|
191
|
+
$value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
|
|
192
192
|
$rgb: map-merge($rgb, ($name: $value));
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -198,7 +198,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
|
|
|
198
198
|
// Return opaque color
|
|
199
199
|
// opaque(#fff, rgba(0, 0, 0, .5)) => #808080
|
|
200
200
|
@function opaque($background, $foreground) {
|
|
201
|
-
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100);
|
|
201
|
+
@return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
// scss-docs-start color-functions
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
//
|
|
3
3
|
// Rows contain your columns.
|
|
4
4
|
|
|
5
|
+
:root {
|
|
6
|
+
@each $name, $value in $grid-breakpoints {
|
|
7
|
+
--#{$prefix}breakpoint-#{$name}: #{$value};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
5
11
|
@if $enable-grid-classes {
|
|
6
12
|
.row {
|
|
7
13
|
@include make-row();
|
|
@@ -15,9 +21,9 @@
|
|
|
15
21
|
@if $enable-cssgrid {
|
|
16
22
|
.grid {
|
|
17
23
|
display: grid;
|
|
18
|
-
grid-template-rows: repeat(var(--#{$
|
|
19
|
-
grid-template-columns: repeat(var(--#{$
|
|
20
|
-
gap: var(--#{$
|
|
24
|
+
grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);
|
|
25
|
+
grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);
|
|
26
|
+
gap: var(--#{$prefix}gap, #{$grid-gutter-width});
|
|
21
27
|
|
|
22
28
|
@include make-cssgrid();
|
|
23
29
|
}
|