bootstrap 4.6.0 → 5.0.0
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/.travis.yml +2 -1
- data/README.md +7 -4
- data/assets/javascripts/bootstrap/alert.js +181 -109
- data/assets/javascripts/bootstrap/base-component.js +63 -0
- data/assets/javascripts/bootstrap/button.js +85 -173
- data/assets/javascripts/bootstrap/carousel.js +458 -355
- data/assets/javascripts/bootstrap/collapse.js +366 -218
- data/assets/javascripts/bootstrap/dom/data.js +68 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
- data/assets/javascripts/bootstrap/dropdown.js +459 -351
- data/assets/javascripts/bootstrap/modal.js +597 -429
- data/assets/javascripts/bootstrap/offcanvas.js +671 -0
- data/assets/javascripts/bootstrap/popover.js +130 -154
- data/assets/javascripts/bootstrap/scrollspy.js +238 -188
- data/assets/javascripts/bootstrap/tab.js +235 -137
- data/assets/javascripts/bootstrap/toast.js +210 -148
- data/assets/javascripts/bootstrap/tooltip.js +627 -466
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +15 -8
- data/assets/javascripts/bootstrap.js +3174 -2563
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/stylesheets/_bootstrap-grid.scss +51 -16
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
- data/assets/stylesheets/_bootstrap.scss +16 -8
- data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
- data/assets/stylesheets/bootstrap/_alert.scss +15 -10
- data/assets/stylesheets/bootstrap/_badge.scss +2 -27
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
- data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
- data/assets/stylesheets/bootstrap/_buttons.scss +29 -60
- data/assets/stylesheets/bootstrap/_card.scss +20 -91
- data/assets/stylesheets/bootstrap/_carousel.scss +65 -33
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +84 -36
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +84 -23
- data/assets/stylesheets/bootstrap/_grid.scss +3 -54
- data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +28 -8
- data/assets/stylesheets/bootstrap/_mixins.scss +8 -13
- data/assets/stylesheets/bootstrap/_modal.scss +43 -55
- data/assets/stylesheets/bootstrap/_nav.scss +23 -4
- data/assets/stylesheets/bootstrap/_navbar.scss +45 -71
- data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
- data/assets/stylesheets/bootstrap/_popover.scss +15 -27
- data/assets/stylesheets/bootstrap/_progress.scss +5 -4
- data/assets/stylesheets/bootstrap/_reboot.scss +316 -179
- data/assets/stylesheets/bootstrap/_root.scss +5 -8
- data/assets/stylesheets/bootstrap/_spinners.scss +11 -7
- data/assets/stylesheets/bootstrap/_tables.scss +79 -114
- data/assets/stylesheets/bootstrap/_toasts.scss +20 -15
- data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
- data/assets/stylesheets/bootstrap/_transitions.scss +2 -1
- data/assets/stylesheets/bootstrap/_type.scss +38 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +594 -18
- data/assets/stylesheets/bootstrap/_variables.scss +800 -482
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +71 -48
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +38 -86
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +89 -33
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -8
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
- data/bootstrap.gemspec +1 -3
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +20 -5
- data/tasks/updater/network.rb +7 -1
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -3
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- metadata +45 -73
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
- /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
|
|
4
4
|
// even when their scroll action started on a carousel, but for compatibility (with Firefox)
|
|
5
5
|
// we're preventing all actions instead
|
|
6
|
-
// 2. The .carousel-item-
|
|
6
|
+
// 2. The .carousel-item-start and .carousel-item-end is used to indicate where
|
|
7
7
|
// the active slide is heading.
|
|
8
8
|
// 3. .active.carousel-item is the current slide.
|
|
9
|
-
// 4. .active.carousel-item-
|
|
9
|
+
// 4. .active.carousel-item-start and .active.carousel-item-end is the current
|
|
10
10
|
// slide in its in-transition state. Only one of these occurs at a time.
|
|
11
|
-
// 5. .carousel-item-next.carousel-item-
|
|
11
|
+
// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end
|
|
12
12
|
// is the upcoming slide in transition.
|
|
13
13
|
|
|
14
14
|
.carousel {
|
|
@@ -42,16 +42,19 @@
|
|
|
42
42
|
display: block;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
.
|
|
45
|
+
/* rtl:begin:ignore */
|
|
46
|
+
.carousel-item-next:not(.carousel-item-start),
|
|
47
|
+
.active.carousel-item-end {
|
|
47
48
|
transform: translateX(100%);
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
.carousel-item-prev:not(.carousel-item-
|
|
51
|
-
.active.carousel-item-
|
|
51
|
+
.carousel-item-prev:not(.carousel-item-end),
|
|
52
|
+
.active.carousel-item-start {
|
|
52
53
|
transform: translateX(-100%);
|
|
53
54
|
}
|
|
54
55
|
|
|
56
|
+
/* rtl:end:ignore */
|
|
57
|
+
|
|
55
58
|
|
|
56
59
|
//
|
|
57
60
|
// Alternate transitions
|
|
@@ -65,14 +68,14 @@
|
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
.carousel-item.active,
|
|
68
|
-
.carousel-item-next.carousel-item-
|
|
69
|
-
.carousel-item-prev.carousel-item-
|
|
71
|
+
.carousel-item-next.carousel-item-start,
|
|
72
|
+
.carousel-item-prev.carousel-item-end {
|
|
70
73
|
z-index: 1;
|
|
71
74
|
opacity: 1;
|
|
72
75
|
}
|
|
73
76
|
|
|
74
|
-
.active.carousel-item-
|
|
75
|
-
.active.carousel-item-
|
|
77
|
+
.active.carousel-item-start,
|
|
78
|
+
.active.carousel-item-end {
|
|
76
79
|
z-index: 0;
|
|
77
80
|
opacity: 0;
|
|
78
81
|
@include transition(opacity 0s $carousel-transition-duration);
|
|
@@ -95,13 +98,17 @@
|
|
|
95
98
|
align-items: center; // 2. vertically center contents
|
|
96
99
|
justify-content: center; // 3. horizontally center contents
|
|
97
100
|
width: $carousel-control-width;
|
|
101
|
+
padding: 0;
|
|
98
102
|
color: $carousel-control-color;
|
|
99
103
|
text-align: center;
|
|
104
|
+
background: none;
|
|
105
|
+
border: 0;
|
|
100
106
|
opacity: $carousel-control-opacity;
|
|
101
107
|
@include transition($carousel-control-transition);
|
|
102
108
|
|
|
103
109
|
// Hover/focus state
|
|
104
|
-
|
|
110
|
+
&:hover,
|
|
111
|
+
&:focus {
|
|
105
112
|
color: $carousel-control-color;
|
|
106
113
|
text-decoration: none;
|
|
107
114
|
outline: 0;
|
|
@@ -110,15 +117,11 @@
|
|
|
110
117
|
}
|
|
111
118
|
.carousel-control-prev {
|
|
112
119
|
left: 0;
|
|
113
|
-
|
|
114
|
-
background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
|
|
115
|
-
}
|
|
120
|
+
background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);
|
|
116
121
|
}
|
|
117
122
|
.carousel-control-next {
|
|
118
123
|
right: 0;
|
|
119
|
-
|
|
120
|
-
background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
|
|
121
|
-
}
|
|
124
|
+
background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);
|
|
122
125
|
}
|
|
123
126
|
|
|
124
127
|
// Icons for within
|
|
@@ -127,8 +130,19 @@
|
|
|
127
130
|
display: inline-block;
|
|
128
131
|
width: $carousel-control-icon-width;
|
|
129
132
|
height: $carousel-control-icon-width;
|
|
130
|
-
background:
|
|
131
|
-
|
|
133
|
+
background-repeat: no-repeat;
|
|
134
|
+
background-position: 50%;
|
|
135
|
+
background-size: 100% 100%;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* rtl:options: {
|
|
139
|
+
"autoRename": true,
|
|
140
|
+
"stringMap":[ {
|
|
141
|
+
"name" : "prev-next",
|
|
142
|
+
"search" : "prev",
|
|
143
|
+
"replace" : "next"
|
|
144
|
+
} ]
|
|
145
|
+
} */
|
|
132
146
|
.carousel-control-prev-icon {
|
|
133
147
|
background-image: escape-svg($carousel-control-prev-icon-bg);
|
|
134
148
|
}
|
|
@@ -136,46 +150,48 @@
|
|
|
136
150
|
background-image: escape-svg($carousel-control-next-icon-bg);
|
|
137
151
|
}
|
|
138
152
|
|
|
139
|
-
|
|
140
|
-
// Optional indicator pips
|
|
153
|
+
// Optional indicator pips/controls
|
|
141
154
|
//
|
|
142
|
-
// Add
|
|
143
|
-
// slide your carousel holds.
|
|
155
|
+
// Add a container (such as a list) with the following class and add an item (ideally a focusable control,
|
|
156
|
+
// like a button) with data-bs-target for each slide your carousel holds.
|
|
144
157
|
|
|
145
158
|
.carousel-indicators {
|
|
146
159
|
position: absolute;
|
|
147
160
|
right: 0;
|
|
148
161
|
bottom: 0;
|
|
149
162
|
left: 0;
|
|
150
|
-
z-index:
|
|
163
|
+
z-index: 2;
|
|
151
164
|
display: flex;
|
|
152
165
|
justify-content: center;
|
|
153
|
-
padding
|
|
166
|
+
padding: 0;
|
|
154
167
|
// Use the .carousel-control's width as margin so we don't overlay those
|
|
155
168
|
margin-right: $carousel-control-width;
|
|
169
|
+
margin-bottom: 1rem;
|
|
156
170
|
margin-left: $carousel-control-width;
|
|
157
171
|
list-style: none;
|
|
158
172
|
|
|
159
|
-
|
|
173
|
+
[data-bs-target] {
|
|
160
174
|
box-sizing: content-box;
|
|
161
175
|
flex: 0 1 auto;
|
|
162
176
|
width: $carousel-indicator-width;
|
|
163
177
|
height: $carousel-indicator-height;
|
|
178
|
+
padding: 0;
|
|
164
179
|
margin-right: $carousel-indicator-spacer;
|
|
165
180
|
margin-left: $carousel-indicator-spacer;
|
|
166
181
|
text-indent: -999px;
|
|
167
182
|
cursor: pointer;
|
|
168
183
|
background-color: $carousel-indicator-active-bg;
|
|
169
184
|
background-clip: padding-box;
|
|
185
|
+
border: 0;
|
|
170
186
|
// Use transparent borders to increase the hit area by 10px on top and bottom.
|
|
171
187
|
border-top: $carousel-indicator-hit-area-height solid transparent;
|
|
172
188
|
border-bottom: $carousel-indicator-hit-area-height solid transparent;
|
|
173
|
-
opacity:
|
|
189
|
+
opacity: $carousel-indicator-opacity;
|
|
174
190
|
@include transition($carousel-indicator-transition);
|
|
175
191
|
}
|
|
176
192
|
|
|
177
193
|
.active {
|
|
178
|
-
opacity:
|
|
194
|
+
opacity: $carousel-indicator-active-opacity;
|
|
179
195
|
}
|
|
180
196
|
}
|
|
181
197
|
|
|
@@ -187,11 +203,27 @@
|
|
|
187
203
|
.carousel-caption {
|
|
188
204
|
position: absolute;
|
|
189
205
|
right: (100% - $carousel-caption-width) / 2;
|
|
190
|
-
bottom:
|
|
206
|
+
bottom: $carousel-caption-spacer;
|
|
191
207
|
left: (100% - $carousel-caption-width) / 2;
|
|
192
|
-
|
|
193
|
-
padding-
|
|
194
|
-
padding-bottom: 20px;
|
|
208
|
+
padding-top: $carousel-caption-padding-y;
|
|
209
|
+
padding-bottom: $carousel-caption-padding-y;
|
|
195
210
|
color: $carousel-caption-color;
|
|
196
211
|
text-align: center;
|
|
197
212
|
}
|
|
213
|
+
|
|
214
|
+
// Dark mode carousel
|
|
215
|
+
|
|
216
|
+
.carousel-dark {
|
|
217
|
+
.carousel-control-prev-icon,
|
|
218
|
+
.carousel-control-next-icon {
|
|
219
|
+
filter: $carousel-dark-control-icon-filter;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.carousel-indicators [data-bs-target] {
|
|
223
|
+
background-color: $carousel-dark-indicator-active-bg;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.carousel-caption {
|
|
227
|
+
color: $carousel-dark-caption-color;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
// transparent background and border properties included for button version.
|
|
2
|
+
// iOS requires the button element instead of an anchor tag.
|
|
3
|
+
// If you want the anchor version, it requires `href="#"`.
|
|
4
|
+
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
|
|
5
|
+
|
|
6
|
+
.btn-close {
|
|
7
|
+
box-sizing: content-box;
|
|
8
|
+
width: $btn-close-width;
|
|
9
|
+
height: $btn-close-height;
|
|
10
|
+
padding: $btn-close-padding-y $btn-close-padding-x;
|
|
11
|
+
color: $btn-close-color;
|
|
12
|
+
background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
|
|
13
|
+
border: 0; // for button elements
|
|
14
|
+
@include border-radius();
|
|
15
|
+
opacity: $btn-close-opacity;
|
|
9
16
|
|
|
10
17
|
// Override <a>'s hover style
|
|
11
|
-
|
|
12
|
-
color: $close-color;
|
|
18
|
+
&:hover {
|
|
19
|
+
color: $btn-close-color;
|
|
13
20
|
text-decoration: none;
|
|
21
|
+
opacity: $btn-close-hover-opacity;
|
|
14
22
|
}
|
|
15
23
|
|
|
16
|
-
&:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
24
|
+
&:focus {
|
|
25
|
+
outline: 0;
|
|
26
|
+
box-shadow: $btn-close-focus-shadow;
|
|
27
|
+
opacity: $btn-close-focus-opacity;
|
|
20
28
|
}
|
|
21
|
-
}
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
button.close {
|
|
30
|
-
padding: 0;
|
|
31
|
-
background-color: transparent;
|
|
32
|
-
border: 0;
|
|
30
|
+
&:disabled,
|
|
31
|
+
&.disabled {
|
|
32
|
+
pointer-events: none;
|
|
33
|
+
user-select: none;
|
|
34
|
+
opacity: $btn-close-disabled-opacity;
|
|
35
|
+
}
|
|
33
36
|
}
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// stylelint-disable-next-line selector-no-qualifying-type
|
|
38
|
-
a.close.disabled {
|
|
39
|
-
pointer-events: none;
|
|
38
|
+
.btn-close-white {
|
|
39
|
+
filter: $btn-close-white-filter;
|
|
40
40
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Container widths
|
|
2
|
+
//
|
|
3
|
+
// Set the container width, and override it for fixed navbars in media queries.
|
|
4
|
+
|
|
5
|
+
@if $enable-grid-classes {
|
|
6
|
+
// Single container class with breakpoint max-widths
|
|
7
|
+
.container,
|
|
8
|
+
// 100% wide container at all breakpoints
|
|
9
|
+
.container-fluid {
|
|
10
|
+
@include make-container();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Responsive containers that are 100% wide until a breakpoint
|
|
14
|
+
@each $breakpoint, $container-max-width in $container-max-widths {
|
|
15
|
+
.container-#{$breakpoint} {
|
|
16
|
+
@extend .container-fluid;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@include media-breakpoint-up($breakpoint, $grid-breakpoints) {
|
|
20
|
+
%responsive-container-#{$breakpoint} {
|
|
21
|
+
max-width: $container-max-width;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Extend each breakpoint which is smaller or equal to the current breakpoint
|
|
25
|
+
$extend-breakpoint: true;
|
|
26
|
+
|
|
27
|
+
@each $name, $width in $grid-breakpoints {
|
|
28
|
+
@if ($extend-breakpoint) {
|
|
29
|
+
.container#{breakpoint-infix($name, $grid-breakpoints)} {
|
|
30
|
+
@extend %responsive-container-#{$breakpoint};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Once the current breakpoint is reached, stop extending
|
|
34
|
+
@if ($breakpoint == $name) {
|
|
35
|
+
$extend-breakpoint: false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// The dropdown wrapper (`<div>`)
|
|
2
2
|
.dropup,
|
|
3
|
-
.
|
|
3
|
+
.dropend,
|
|
4
4
|
.dropdown,
|
|
5
|
-
.
|
|
5
|
+
.dropstart {
|
|
6
6
|
position: relative;
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -16,14 +16,11 @@
|
|
|
16
16
|
// The dropdown menu
|
|
17
17
|
.dropdown-menu {
|
|
18
18
|
position: absolute;
|
|
19
|
-
top: 100%;
|
|
20
|
-
left: 0;
|
|
21
19
|
z-index: $zindex-dropdown;
|
|
22
20
|
display: none; // none by default, but block on "open" of the menu
|
|
23
|
-
float: left;
|
|
24
21
|
min-width: $dropdown-min-width;
|
|
25
22
|
padding: $dropdown-padding-y $dropdown-padding-x;
|
|
26
|
-
margin:
|
|
23
|
+
margin: 0; // Override default margin of ul
|
|
27
24
|
@include font-size($dropdown-font-size);
|
|
28
25
|
color: $dropdown-color;
|
|
29
26
|
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
|
|
@@ -33,28 +30,47 @@
|
|
|
33
30
|
border: $dropdown-border-width solid $dropdown-border-color;
|
|
34
31
|
@include border-radius($dropdown-border-radius);
|
|
35
32
|
@include box-shadow($dropdown-box-shadow);
|
|
33
|
+
|
|
34
|
+
&[data-bs-popper] {
|
|
35
|
+
top: 100%;
|
|
36
|
+
left: 0;
|
|
37
|
+
margin-top: $dropdown-spacer;
|
|
38
|
+
}
|
|
36
39
|
}
|
|
37
40
|
|
|
41
|
+
// scss-docs-start responsive-breakpoints
|
|
42
|
+
// We deliberately hardcode the `bs-` prefix because we check
|
|
43
|
+
// this custom property in JS to determine Popper's positioning
|
|
44
|
+
|
|
38
45
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
|
39
46
|
@include media-breakpoint-up($breakpoint) {
|
|
40
47
|
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
|
41
48
|
|
|
42
|
-
.dropdown-menu#{$infix}-
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
.dropdown-menu#{$infix}-start {
|
|
50
|
+
--bs-position: start;
|
|
51
|
+
|
|
52
|
+
&[data-bs-popper] {
|
|
53
|
+
right: auto #{"/* rtl:ignore */"};
|
|
54
|
+
left: 0 #{"/* rtl:ignore */"};
|
|
55
|
+
}
|
|
45
56
|
}
|
|
46
57
|
|
|
47
|
-
.dropdown-menu#{$infix}-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
.dropdown-menu#{$infix}-end {
|
|
59
|
+
--bs-position: end;
|
|
60
|
+
|
|
61
|
+
&[data-bs-popper] {
|
|
62
|
+
right: 0 #{"/* rtl:ignore */"};
|
|
63
|
+
left: auto #{"/* rtl:ignore */"};
|
|
64
|
+
}
|
|
50
65
|
}
|
|
51
66
|
}
|
|
52
67
|
}
|
|
68
|
+
// scss-docs-end responsive-breakpoints
|
|
53
69
|
|
|
54
70
|
// Allow for dropdowns to go bottom up (aka, dropup-menu)
|
|
55
71
|
// Just add .dropup after the standard .dropdown class and you're set.
|
|
56
72
|
.dropup {
|
|
57
|
-
.dropdown-menu {
|
|
73
|
+
.dropdown-menu[data-bs-popper] {
|
|
58
74
|
top: auto;
|
|
59
75
|
bottom: 100%;
|
|
60
76
|
margin-top: 0;
|
|
@@ -66,8 +82,8 @@
|
|
|
66
82
|
}
|
|
67
83
|
}
|
|
68
84
|
|
|
69
|
-
.
|
|
70
|
-
.dropdown-menu {
|
|
85
|
+
.dropend {
|
|
86
|
+
.dropdown-menu[data-bs-popper] {
|
|
71
87
|
top: 0;
|
|
72
88
|
right: auto;
|
|
73
89
|
left: 100%;
|
|
@@ -76,15 +92,15 @@
|
|
|
76
92
|
}
|
|
77
93
|
|
|
78
94
|
.dropdown-toggle {
|
|
79
|
-
@include caret(
|
|
95
|
+
@include caret(end);
|
|
80
96
|
&::after {
|
|
81
97
|
vertical-align: 0;
|
|
82
98
|
}
|
|
83
99
|
}
|
|
84
100
|
}
|
|
85
101
|
|
|
86
|
-
.
|
|
87
|
-
.dropdown-menu {
|
|
102
|
+
.dropstart {
|
|
103
|
+
.dropdown-menu[data-bs-popper] {
|
|
88
104
|
top: 0;
|
|
89
105
|
right: 100%;
|
|
90
106
|
left: auto;
|
|
@@ -93,28 +109,20 @@
|
|
|
93
109
|
}
|
|
94
110
|
|
|
95
111
|
.dropdown-toggle {
|
|
96
|
-
@include caret(
|
|
112
|
+
@include caret(start);
|
|
97
113
|
&::before {
|
|
98
114
|
vertical-align: 0;
|
|
99
115
|
}
|
|
100
116
|
}
|
|
101
117
|
}
|
|
102
118
|
|
|
103
|
-
// When Popper is enabled, reset the basic dropdown position
|
|
104
|
-
// stylelint-disable-next-line no-duplicate-selectors
|
|
105
|
-
.dropdown-menu {
|
|
106
|
-
&[x-placement^="top"],
|
|
107
|
-
&[x-placement^="right"],
|
|
108
|
-
&[x-placement^="bottom"],
|
|
109
|
-
&[x-placement^="left"] {
|
|
110
|
-
right: auto;
|
|
111
|
-
bottom: auto;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
119
|
|
|
115
120
|
// Dividers (basically an `<hr>`) within the dropdown
|
|
116
121
|
.dropdown-divider {
|
|
117
|
-
|
|
122
|
+
height: 0;
|
|
123
|
+
margin: $dropdown-divider-margin-y 0;
|
|
124
|
+
overflow: hidden;
|
|
125
|
+
border-top: 1px solid $dropdown-divider-bg;
|
|
118
126
|
}
|
|
119
127
|
|
|
120
128
|
// Links, buttons, and more within the dropdown menu
|
|
@@ -145,9 +153,10 @@
|
|
|
145
153
|
}
|
|
146
154
|
}
|
|
147
155
|
|
|
148
|
-
|
|
156
|
+
&:hover,
|
|
157
|
+
&:focus {
|
|
149
158
|
color: $dropdown-link-hover-color;
|
|
150
|
-
text-decoration: none;
|
|
159
|
+
text-decoration: if($link-hover-decoration == underline, none, null);
|
|
151
160
|
@include gradient-bg($dropdown-link-hover-bg);
|
|
152
161
|
}
|
|
153
162
|
|
|
@@ -164,9 +173,7 @@
|
|
|
164
173
|
pointer-events: none;
|
|
165
174
|
background-color: transparent;
|
|
166
175
|
// Remove CSS gradients if they're enabled
|
|
167
|
-
|
|
168
|
-
background-image: none;
|
|
169
|
-
}
|
|
176
|
+
background-image: if($enable-gradients, none, null);
|
|
170
177
|
}
|
|
171
178
|
}
|
|
172
179
|
|
|
@@ -190,3 +197,44 @@
|
|
|
190
197
|
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
|
|
191
198
|
color: $dropdown-link-color;
|
|
192
199
|
}
|
|
200
|
+
|
|
201
|
+
// Dark dropdowns
|
|
202
|
+
.dropdown-menu-dark {
|
|
203
|
+
color: $dropdown-dark-color;
|
|
204
|
+
background-color: $dropdown-dark-bg;
|
|
205
|
+
border-color: $dropdown-dark-border-color;
|
|
206
|
+
@include box-shadow($dropdown-dark-box-shadow);
|
|
207
|
+
|
|
208
|
+
.dropdown-item {
|
|
209
|
+
color: $dropdown-dark-link-color;
|
|
210
|
+
|
|
211
|
+
&:hover,
|
|
212
|
+
&:focus {
|
|
213
|
+
color: $dropdown-dark-link-hover-color;
|
|
214
|
+
@include gradient-bg($dropdown-dark-link-hover-bg);
|
|
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
|
+
}
|
|
240
|
+
}
|