bootstrap 4.5.3 → 5.2.3
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 +55 -0
- data/README.md +28 -5
- data/assets/javascripts/bootstrap/alert.js +54 -133
- data/assets/javascripts/bootstrap/base-component.js +99 -0
- data/assets/javascripts/bootstrap/button.js +44 -183
- data/assets/javascripts/bootstrap/carousel.js +308 -450
- data/assets/javascripts/bootstrap/collapse.js +180 -243
- data/assets/javascripts/bootstrap/dom/data.js +66 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +283 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +84 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
- data/assets/javascripts/bootstrap/dropdown.js +320 -387
- data/assets/javascripts/bootstrap/modal.js +238 -478
- data/assets/javascripts/bootstrap/offcanvas.js +297 -0
- data/assets/javascripts/bootstrap/popover.js +58 -163
- data/assets/javascripts/bootstrap/scrollspy.js +223 -228
- data/assets/javascripts/bootstrap/tab.js +251 -166
- data/assets/javascripts/bootstrap/toast.js +147 -149
- data/assets/javascripts/bootstrap/tooltip.js +434 -646
- data/assets/javascripts/bootstrap/util/backdrop.js +165 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +46 -0
- data/assets/javascripts/bootstrap/util/config.js +79 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +129 -0
- data/assets/javascripts/bootstrap/util/index.js +350 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +122 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +138 -0
- data/assets/javascripts/bootstrap/util/swipe.js +155 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +177 -0
- 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 +24 -8
- data/assets/javascripts/bootstrap.js +4037 -3206
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +56 -21
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -7
- data/assets/stylesheets/_bootstrap.scss +20 -13
- data/assets/stylesheets/bootstrap/_accordion.scss +149 -0
- data/assets/stylesheets/bootstrap/_alert.scss +33 -14
- data/assets/stylesheets/bootstrap/_badge.scss +15 -31
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +23 -27
- data/assets/stylesheets/bootstrap/_button-group.scss +25 -46
- data/assets/stylesheets/bootstrap/_buttons.scss +136 -71
- data/assets/stylesheets/bootstrap/_card.scss +61 -113
- data/assets/stylesheets/bootstrap/_carousel.scss +64 -35
- data/assets/stylesheets/bootstrap/_close.scss +30 -30
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +128 -71
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +181 -23
- data/assets/stylesheets/bootstrap/_grid.scss +13 -53
- data/assets/stylesheets/bootstrap/_helpers.scss +10 -0
- data/assets/stylesheets/bootstrap/_images.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +72 -34
- data/assets/stylesheets/bootstrap/_maps.scss +54 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -13
- data/assets/stylesheets/bootstrap/_modal.scss +107 -110
- data/assets/stylesheets/bootstrap/_nav.scss +72 -23
- data/assets/stylesheets/bootstrap/_navbar.scss +127 -173
- data/assets/stylesheets/bootstrap/_offcanvas.scss +144 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +99 -73
- data/assets/stylesheets/bootstrap/_progress.scss +26 -14
- data/assets/stylesheets/bootstrap/_reboot.scss +326 -200
- data/assets/stylesheets/bootstrap/_root.scss +62 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +51 -22
- data/assets/stylesheets/bootstrap/_tables.scss +94 -115
- data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
- data/assets/stylesheets/bootstrap/_tooltip.scss +68 -63
- data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
- data/assets/stylesheets/bootstrap/_type.scss +40 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +647 -18
- data/assets/stylesheets/bootstrap/_variables.scss +1018 -526
- data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +75 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +175 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +194 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +71 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +10 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -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/helpers/_vr.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +8 -6
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +9 -0
- 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 +20 -16
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
- 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 +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +48 -74
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +119 -37
- 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 +7 -19
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -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 +278 -128
- data/bootstrap.gemspec +3 -5
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +31 -7
- data/tasks/updater/network.rb +9 -3
- data/tasks/updater.rb +2 -2
- 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_5_2.gemfile +8 -0
- data/test/gemfiles/rails_6_1.gemfile +7 -0
- data/test/gemfiles/rails_7_0.gemfile +7 -0
- data/test/test_helper.rb +3 -2
- metadata +70 -78
- data/.travis.yml +0 -31
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -524
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
- 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,13 +42,13 @@
|
|
|
42
42
|
display: block;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.carousel-item-next:not(.carousel-item-
|
|
46
|
-
.active.carousel-item-
|
|
45
|
+
.carousel-item-next:not(.carousel-item-start),
|
|
46
|
+
.active.carousel-item-end {
|
|
47
47
|
transform: translateX(100%);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.carousel-item-prev:not(.carousel-item-
|
|
51
|
-
.active.carousel-item-
|
|
50
|
+
.carousel-item-prev:not(.carousel-item-end),
|
|
51
|
+
.active.carousel-item-start {
|
|
52
52
|
transform: translateX(-100%);
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -65,14 +65,14 @@
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
.carousel-item.active,
|
|
68
|
-
.carousel-item-next.carousel-item-
|
|
69
|
-
.carousel-item-prev.carousel-item-
|
|
68
|
+
.carousel-item-next.carousel-item-start,
|
|
69
|
+
.carousel-item-prev.carousel-item-end {
|
|
70
70
|
z-index: 1;
|
|
71
71
|
opacity: 1;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
.active.carousel-item-
|
|
75
|
-
.active.carousel-item-
|
|
74
|
+
.active.carousel-item-start,
|
|
75
|
+
.active.carousel-item-end {
|
|
76
76
|
z-index: 0;
|
|
77
77
|
opacity: 0;
|
|
78
78
|
@include transition(opacity 0s $carousel-transition-duration);
|
|
@@ -95,13 +95,17 @@
|
|
|
95
95
|
align-items: center; // 2. vertically center contents
|
|
96
96
|
justify-content: center; // 3. horizontally center contents
|
|
97
97
|
width: $carousel-control-width;
|
|
98
|
+
padding: 0;
|
|
98
99
|
color: $carousel-control-color;
|
|
99
100
|
text-align: center;
|
|
101
|
+
background: none;
|
|
102
|
+
border: 0;
|
|
100
103
|
opacity: $carousel-control-opacity;
|
|
101
104
|
@include transition($carousel-control-transition);
|
|
102
105
|
|
|
103
106
|
// Hover/focus state
|
|
104
|
-
|
|
107
|
+
&:hover,
|
|
108
|
+
&:focus {
|
|
105
109
|
color: $carousel-control-color;
|
|
106
110
|
text-decoration: none;
|
|
107
111
|
outline: 0;
|
|
@@ -110,15 +114,11 @@
|
|
|
110
114
|
}
|
|
111
115
|
.carousel-control-prev {
|
|
112
116
|
left: 0;
|
|
113
|
-
|
|
114
|
-
background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
|
|
115
|
-
}
|
|
117
|
+
background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);
|
|
116
118
|
}
|
|
117
119
|
.carousel-control-next {
|
|
118
120
|
right: 0;
|
|
119
|
-
|
|
120
|
-
background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
|
|
121
|
-
}
|
|
121
|
+
background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// Icons for within
|
|
@@ -127,8 +127,19 @@
|
|
|
127
127
|
display: inline-block;
|
|
128
128
|
width: $carousel-control-icon-width;
|
|
129
129
|
height: $carousel-control-icon-width;
|
|
130
|
-
background: no-repeat
|
|
131
|
-
|
|
130
|
+
background-repeat: no-repeat;
|
|
131
|
+
background-position: 50%;
|
|
132
|
+
background-size: 100% 100%;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* rtl:options: {
|
|
136
|
+
"autoRename": true,
|
|
137
|
+
"stringMap":[ {
|
|
138
|
+
"name" : "prev-next",
|
|
139
|
+
"search" : "prev",
|
|
140
|
+
"replace" : "next"
|
|
141
|
+
} ]
|
|
142
|
+
} */
|
|
132
143
|
.carousel-control-prev-icon {
|
|
133
144
|
background-image: escape-svg($carousel-control-prev-icon-bg);
|
|
134
145
|
}
|
|
@@ -136,46 +147,48 @@
|
|
|
136
147
|
background-image: escape-svg($carousel-control-next-icon-bg);
|
|
137
148
|
}
|
|
138
149
|
|
|
139
|
-
|
|
140
|
-
// Optional indicator pips
|
|
150
|
+
// Optional indicator pips/controls
|
|
141
151
|
//
|
|
142
|
-
// Add
|
|
143
|
-
// slide your carousel holds.
|
|
152
|
+
// Add a container (such as a list) with the following class and add an item (ideally a focusable control,
|
|
153
|
+
// like a button) with data-bs-target for each slide your carousel holds.
|
|
144
154
|
|
|
145
155
|
.carousel-indicators {
|
|
146
156
|
position: absolute;
|
|
147
157
|
right: 0;
|
|
148
158
|
bottom: 0;
|
|
149
159
|
left: 0;
|
|
150
|
-
z-index:
|
|
160
|
+
z-index: 2;
|
|
151
161
|
display: flex;
|
|
152
162
|
justify-content: center;
|
|
153
|
-
padding
|
|
163
|
+
padding: 0;
|
|
154
164
|
// Use the .carousel-control's width as margin so we don't overlay those
|
|
155
165
|
margin-right: $carousel-control-width;
|
|
166
|
+
margin-bottom: 1rem;
|
|
156
167
|
margin-left: $carousel-control-width;
|
|
157
168
|
list-style: none;
|
|
158
169
|
|
|
159
|
-
|
|
170
|
+
[data-bs-target] {
|
|
160
171
|
box-sizing: content-box;
|
|
161
172
|
flex: 0 1 auto;
|
|
162
173
|
width: $carousel-indicator-width;
|
|
163
174
|
height: $carousel-indicator-height;
|
|
175
|
+
padding: 0;
|
|
164
176
|
margin-right: $carousel-indicator-spacer;
|
|
165
177
|
margin-left: $carousel-indicator-spacer;
|
|
166
178
|
text-indent: -999px;
|
|
167
179
|
cursor: pointer;
|
|
168
180
|
background-color: $carousel-indicator-active-bg;
|
|
169
181
|
background-clip: padding-box;
|
|
182
|
+
border: 0;
|
|
170
183
|
// Use transparent borders to increase the hit area by 10px on top and bottom.
|
|
171
184
|
border-top: $carousel-indicator-hit-area-height solid transparent;
|
|
172
185
|
border-bottom: $carousel-indicator-hit-area-height solid transparent;
|
|
173
|
-
opacity:
|
|
186
|
+
opacity: $carousel-indicator-opacity;
|
|
174
187
|
@include transition($carousel-indicator-transition);
|
|
175
188
|
}
|
|
176
189
|
|
|
177
190
|
.active {
|
|
178
|
-
opacity:
|
|
191
|
+
opacity: $carousel-indicator-active-opacity;
|
|
179
192
|
}
|
|
180
193
|
}
|
|
181
194
|
|
|
@@ -186,12 +199,28 @@
|
|
|
186
199
|
|
|
187
200
|
.carousel-caption {
|
|
188
201
|
position: absolute;
|
|
189
|
-
right: (100% - $carousel-caption-width)
|
|
190
|
-
bottom:
|
|
191
|
-
left: (100% - $carousel-caption-width)
|
|
192
|
-
|
|
193
|
-
padding-
|
|
194
|
-
padding-bottom: 20px;
|
|
202
|
+
right: (100% - $carousel-caption-width) * .5;
|
|
203
|
+
bottom: $carousel-caption-spacer;
|
|
204
|
+
left: (100% - $carousel-caption-width) * .5;
|
|
205
|
+
padding-top: $carousel-caption-padding-y;
|
|
206
|
+
padding-bottom: $carousel-caption-padding-y;
|
|
195
207
|
color: $carousel-caption-color;
|
|
196
208
|
text-align: center;
|
|
197
209
|
}
|
|
210
|
+
|
|
211
|
+
// Dark mode carousel
|
|
212
|
+
|
|
213
|
+
.carousel-dark {
|
|
214
|
+
.carousel-control-prev-icon,
|
|
215
|
+
.carousel-control-next-icon {
|
|
216
|
+
filter: $carousel-dark-control-icon-filter;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.carousel-indicators [data-bs-target] {
|
|
220
|
+
background-color: $carousel-dark-indicator-active-bg;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.carousel-caption {
|
|
224
|
+
color: $carousel-dark-caption-color;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
@@ -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-container-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,10 @@
|
|
|
1
1
|
// The dropdown wrapper (`<div>`)
|
|
2
2
|
.dropup,
|
|
3
|
-
.
|
|
3
|
+
.dropend,
|
|
4
4
|
.dropdown,
|
|
5
|
-
.
|
|
5
|
+
.dropstart,
|
|
6
|
+
.dropup-center,
|
|
7
|
+
.dropdown-center {
|
|
6
8
|
position: relative;
|
|
7
9
|
}
|
|
8
10
|
|
|
@@ -15,50 +17,107 @@
|
|
|
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
|
-
|
|
20
|
-
left: 0;
|
|
21
|
-
z-index: $zindex-dropdown;
|
|
50
|
+
z-index: var(--#{$prefix}dropdown-zindex);
|
|
22
51
|
display: none; // none by default, but block on "open" of the menu
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
color: $dropdown-color;
|
|
52
|
+
min-width: var(--#{$prefix}dropdown-min-width);
|
|
53
|
+
padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);
|
|
54
|
+
margin: 0; // Override default margin of ul
|
|
55
|
+
@include font-size(var(--#{$prefix}dropdown-font-size));
|
|
56
|
+
color: var(--#{$prefix}dropdown-color);
|
|
29
57
|
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
|
|
30
58
|
list-style: none;
|
|
31
|
-
background-color: $dropdown-bg;
|
|
59
|
+
background-color: var(--#{$prefix}dropdown-bg);
|
|
32
60
|
background-clip: padding-box;
|
|
33
|
-
border: $dropdown-border-width solid $dropdown-border-color;
|
|
34
|
-
@include border-radius($dropdown-border-radius);
|
|
35
|
-
@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));
|
|
64
|
+
|
|
65
|
+
&[data-bs-popper] {
|
|
66
|
+
top: 100%;
|
|
67
|
+
left: 0;
|
|
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
|
+
|
|
81
|
+
}
|
|
36
82
|
}
|
|
37
83
|
|
|
84
|
+
// scss-docs-start responsive-breakpoints
|
|
85
|
+
// We deliberately hardcode the `bs-` prefix because we check
|
|
86
|
+
// this custom property in JS to determine Popper's positioning
|
|
87
|
+
|
|
38
88
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
|
39
89
|
@include media-breakpoint-up($breakpoint) {
|
|
40
90
|
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
|
41
91
|
|
|
42
|
-
.dropdown-menu#{$infix}-
|
|
43
|
-
|
|
44
|
-
|
|
92
|
+
.dropdown-menu#{$infix}-start {
|
|
93
|
+
--bs-position: start;
|
|
94
|
+
|
|
95
|
+
&[data-bs-popper] {
|
|
96
|
+
right: auto;
|
|
97
|
+
left: 0;
|
|
98
|
+
}
|
|
45
99
|
}
|
|
46
100
|
|
|
47
|
-
.dropdown-menu#{$infix}-
|
|
48
|
-
|
|
49
|
-
|
|
101
|
+
.dropdown-menu#{$infix}-end {
|
|
102
|
+
--bs-position: end;
|
|
103
|
+
|
|
104
|
+
&[data-bs-popper] {
|
|
105
|
+
right: 0;
|
|
106
|
+
left: auto;
|
|
107
|
+
}
|
|
50
108
|
}
|
|
51
109
|
}
|
|
52
110
|
}
|
|
111
|
+
// scss-docs-end responsive-breakpoints
|
|
53
112
|
|
|
54
113
|
// Allow for dropdowns to go bottom up (aka, dropup-menu)
|
|
55
114
|
// Just add .dropup after the standard .dropdown class and you're set.
|
|
56
115
|
.dropup {
|
|
57
|
-
.dropdown-menu {
|
|
116
|
+
.dropdown-menu[data-bs-popper] {
|
|
58
117
|
top: auto;
|
|
59
118
|
bottom: 100%;
|
|
60
119
|
margin-top: 0;
|
|
61
|
-
margin-bottom: $dropdown-spacer;
|
|
120
|
+
margin-bottom: var(--#{$prefix}dropdown-spacer);
|
|
62
121
|
}
|
|
63
122
|
|
|
64
123
|
.dropdown-toggle {
|
|
@@ -66,55 +125,48 @@
|
|
|
66
125
|
}
|
|
67
126
|
}
|
|
68
127
|
|
|
69
|
-
.
|
|
70
|
-
.dropdown-menu {
|
|
128
|
+
.dropend {
|
|
129
|
+
.dropdown-menu[data-bs-popper] {
|
|
71
130
|
top: 0;
|
|
72
131
|
right: auto;
|
|
73
132
|
left: 100%;
|
|
74
133
|
margin-top: 0;
|
|
75
|
-
margin-left: $dropdown-spacer;
|
|
134
|
+
margin-left: var(--#{$prefix}dropdown-spacer);
|
|
76
135
|
}
|
|
77
136
|
|
|
78
137
|
.dropdown-toggle {
|
|
79
|
-
@include caret(
|
|
138
|
+
@include caret(end);
|
|
80
139
|
&::after {
|
|
81
140
|
vertical-align: 0;
|
|
82
141
|
}
|
|
83
142
|
}
|
|
84
143
|
}
|
|
85
144
|
|
|
86
|
-
.
|
|
87
|
-
.dropdown-menu {
|
|
145
|
+
.dropstart {
|
|
146
|
+
.dropdown-menu[data-bs-popper] {
|
|
88
147
|
top: 0;
|
|
89
148
|
right: 100%;
|
|
90
149
|
left: auto;
|
|
91
150
|
margin-top: 0;
|
|
92
|
-
margin-right: $dropdown-spacer;
|
|
151
|
+
margin-right: var(--#{$prefix}dropdown-spacer);
|
|
93
152
|
}
|
|
94
153
|
|
|
95
154
|
.dropdown-toggle {
|
|
96
|
-
@include caret(
|
|
155
|
+
@include caret(start);
|
|
97
156
|
&::before {
|
|
98
157
|
vertical-align: 0;
|
|
99
158
|
}
|
|
100
159
|
}
|
|
101
160
|
}
|
|
102
161
|
|
|
103
|
-
// When enabled Popper.js, reset 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
162
|
|
|
115
163
|
// Dividers (basically an `<hr>`) within the dropdown
|
|
116
164
|
.dropdown-divider {
|
|
117
|
-
|
|
165
|
+
height: 0;
|
|
166
|
+
margin: var(--#{$prefix}dropdown-divider-margin-y) 0;
|
|
167
|
+
overflow: hidden;
|
|
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
|
|
118
170
|
}
|
|
119
171
|
|
|
120
172
|
// Links, buttons, and more within the dropdown menu
|
|
@@ -123,50 +175,37 @@
|
|
|
123
175
|
.dropdown-item {
|
|
124
176
|
display: block;
|
|
125
177
|
width: 100%; // For `<button>`s
|
|
126
|
-
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
|
|
178
|
+
padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
|
|
127
179
|
clear: both;
|
|
128
180
|
font-weight: $font-weight-normal;
|
|
129
|
-
color: $dropdown-link-color;
|
|
181
|
+
color: var(--#{$prefix}dropdown-link-color);
|
|
130
182
|
text-align: inherit; // For `<button>`s
|
|
131
183
|
text-decoration: if($link-decoration == none, null, none);
|
|
132
184
|
white-space: nowrap; // prevent links from randomly breaking onto new lines
|
|
133
185
|
background-color: transparent; // For `<button>`s
|
|
134
186
|
border: 0; // For `<button>`s
|
|
135
187
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
&:last-child {
|
|
144
|
-
@include border-bottom-radius($dropdown-inner-border-radius);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
@include hover-focus() {
|
|
149
|
-
color: $dropdown-link-hover-color;
|
|
150
|
-
text-decoration: none;
|
|
151
|
-
@include gradient-bg($dropdown-link-hover-bg);
|
|
188
|
+
&:hover,
|
|
189
|
+
&:focus {
|
|
190
|
+
color: var(--#{$prefix}dropdown-link-hover-color);
|
|
191
|
+
text-decoration: if($link-hover-decoration == underline, none, null);
|
|
192
|
+
@include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));
|
|
152
193
|
}
|
|
153
194
|
|
|
154
195
|
&.active,
|
|
155
196
|
&:active {
|
|
156
|
-
color: $dropdown-link-active-color;
|
|
197
|
+
color: var(--#{$prefix}dropdown-link-active-color);
|
|
157
198
|
text-decoration: none;
|
|
158
|
-
@include gradient-bg($dropdown-link-active-bg);
|
|
199
|
+
@include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));
|
|
159
200
|
}
|
|
160
201
|
|
|
161
202
|
&.disabled,
|
|
162
203
|
&:disabled {
|
|
163
|
-
color: $dropdown-link-disabled-color;
|
|
204
|
+
color: var(--#{$prefix}dropdown-link-disabled-color);
|
|
164
205
|
pointer-events: none;
|
|
165
206
|
background-color: transparent;
|
|
166
207
|
// Remove CSS gradients if they're enabled
|
|
167
|
-
|
|
168
|
-
background-image: none;
|
|
169
|
-
}
|
|
208
|
+
background-image: if($enable-gradients, none, null);
|
|
170
209
|
}
|
|
171
210
|
}
|
|
172
211
|
|
|
@@ -177,16 +216,34 @@
|
|
|
177
216
|
// Dropdown section headers
|
|
178
217
|
.dropdown-header {
|
|
179
218
|
display: block;
|
|
180
|
-
padding: $dropdown-header-padding;
|
|
219
|
+
padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);
|
|
181
220
|
margin-bottom: 0; // for use with heading elements
|
|
182
221
|
@include font-size($font-size-sm);
|
|
183
|
-
color: $dropdown-header-color;
|
|
222
|
+
color: var(--#{$prefix}dropdown-header-color);
|
|
184
223
|
white-space: nowrap; // as with > li > a
|
|
185
224
|
}
|
|
186
225
|
|
|
187
226
|
// Dropdown text
|
|
188
227
|
.dropdown-item-text {
|
|
189
228
|
display: block;
|
|
190
|
-
padding: $dropdown-item-padding-y $dropdown-item-padding-x;
|
|
191
|
-
color: $dropdown-link-color;
|
|
229
|
+
padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
|
|
230
|
+
color: var(--#{$prefix}dropdown-link-color);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Dark dropdowns
|
|
234
|
+
.dropdown-menu-dark {
|
|
235
|
+
// scss-docs-start dropdown-dark-css-vars
|
|
236
|
+
--#{$prefix}dropdown-color: #{$dropdown-dark-color};
|
|
237
|
+
--#{$prefix}dropdown-bg: #{$dropdown-dark-bg};
|
|
238
|
+
--#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};
|
|
239
|
+
--#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};
|
|
240
|
+
--#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};
|
|
241
|
+
--#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
|
|
242
|
+
--#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
|
|
243
|
+
--#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
|
|
244
|
+
--#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
|
|
245
|
+
--#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
|
|
246
|
+
--#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
|
|
247
|
+
--#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
|
|
248
|
+
// scss-docs-end dropdown-dark-css-vars
|
|
192
249
|
}
|