bootstrap 4.0.0.beta3 → 4.6.2
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 +5 -5
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -2
- data/README.md +2 -2
- data/Rakefile +4 -2
- data/assets/javascripts/bootstrap/alert.js +79 -68
- data/assets/javascripts/bootstrap/button.js +140 -78
- data/assets/javascripts/bootstrap/carousel.js +294 -158
- data/assets/javascripts/bootstrap/collapse.js +157 -133
- data/assets/javascripts/bootstrap/dropdown.js +257 -167
- data/assets/javascripts/bootstrap/modal.js +285 -204
- data/assets/javascripts/bootstrap/popover.js +101 -60
- data/assets/javascripts/bootstrap/scrollspy.js +127 -106
- data/assets/javascripts/bootstrap/tab.js +113 -101
- data/assets/javascripts/bootstrap/toast.js +267 -0
- data/assets/javascripts/bootstrap/tooltip.js +406 -188
- data/assets/javascripts/bootstrap/util.js +106 -55
- data/assets/javascripts/bootstrap-sprockets.js +1 -0
- data/assets/javascripts/bootstrap.js +1946 -1482
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/stylesheets/_bootstrap-grid.scss +7 -12
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +6 -4
- data/assets/stylesheets/bootstrap/_alert.scss +3 -2
- data/assets/stylesheets/bootstrap/_badge.scss +8 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +10 -6
- data/assets/stylesheets/bootstrap/_button-group.scss +17 -20
- data/assets/stylesheets/bootstrap/_buttons.scss +23 -28
- data/assets/stylesheets/bootstrap/_card.scss +77 -61
- data/assets/stylesheets/bootstrap/_carousel.scss +72 -63
- data/assets/stylesheets/bootstrap/_close.scss +15 -9
- data/assets/stylesheets/bootstrap/_code.scss +6 -14
- data/assets/stylesheets/bootstrap/_custom-forms.scss +287 -43
- data/assets/stylesheets/bootstrap/_dropdown.scss +70 -9
- data/assets/stylesheets/bootstrap/_forms.scss +56 -42
- data/assets/stylesheets/bootstrap/_functions.scss +117 -13
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +4 -4
- data/assets/stylesheets/bootstrap/_input-group.scss +80 -25
- data/assets/stylesheets/bootstrap/_jumbotron.scss +2 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +63 -24
- data/assets/stylesheets/bootstrap/_mixins.scss +9 -4
- data/assets/stylesheets/bootstrap/_modal.scss +96 -24
- data/assets/stylesheets/bootstrap/_nav.scss +14 -7
- data/assets/stylesheets/bootstrap/_navbar.scss +66 -45
- data/assets/stylesheets/bootstrap/_pagination.scss +10 -8
- data/assets/stylesheets/bootstrap/_popover.scss +56 -69
- data/assets/stylesheets/bootstrap/_print.scss +41 -19
- data/assets/stylesheets/bootstrap/_progress.scss +20 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +88 -109
- data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
- data/assets/stylesheets/bootstrap/_tables.scss +19 -14
- data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
- data/assets/stylesheets/bootstrap/_transitions.scss +10 -20
- data/assets/stylesheets/bootstrap/_type.scss +19 -19
- data/assets/stylesheets/bootstrap/_utilities.scss +4 -0
- data/assets/stylesheets/bootstrap/_variables.scss +492 -215
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +8 -3
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +51 -10
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -9
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +35 -26
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +13 -16
- data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_float.scss +6 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +102 -40
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +36 -25
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +34 -17
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +27 -51
- data/assets/stylesheets/bootstrap/mixins/_image.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +10 -13
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -6
- data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +11 -2
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +20 -3
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +23 -2
- data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -36
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +28 -8
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
- data/bootstrap.gemspec +7 -4
- data/lib/bootstrap/engine.rb +3 -0
- data/lib/bootstrap/version.rb +4 -2
- data/lib/bootstrap.rb +10 -7
- data/tasks/updater/js.rb +18 -6
- data/tasks/updater/network.rb +8 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +21 -15
- metadata +29 -16
- data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
|
@@ -6,17 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
.btn {
|
|
8
8
|
display: inline-block;
|
|
9
|
+
font-family: $btn-font-family;
|
|
9
10
|
font-weight: $btn-font-weight;
|
|
11
|
+
color: $body-color;
|
|
10
12
|
text-align: center;
|
|
11
|
-
|
|
13
|
+
text-decoration: if($link-decoration == none, null, none);
|
|
14
|
+
white-space: $btn-white-space;
|
|
12
15
|
vertical-align: middle;
|
|
13
16
|
user-select: none;
|
|
17
|
+
background-color: transparent;
|
|
14
18
|
border: $btn-border-width solid transparent;
|
|
15
|
-
@include button-size($btn-padding-y, $btn-padding-x, $font-size
|
|
19
|
+
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
|
|
16
20
|
@include transition($btn-transition);
|
|
17
21
|
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
@include hover() {
|
|
23
|
+
color: $body-color;
|
|
20
24
|
text-decoration: none;
|
|
21
25
|
}
|
|
22
26
|
|
|
@@ -33,25 +37,23 @@
|
|
|
33
37
|
@include box-shadow(none);
|
|
34
38
|
}
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
cursor: pointer;
|
|
39
|
-
}
|
|
40
|
+
&:not(:disabled):not(.disabled) {
|
|
41
|
+
cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
@include box-shadow($btn-active-box-shadow);
|
|
43
|
+
&:active,
|
|
44
|
+
&.active {
|
|
45
|
+
@include box-shadow($btn-active-box-shadow);
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
&:focus {
|
|
48
|
+
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
|
|
49
|
+
}
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
// Future-proof disabling of clicks on `<a>` elements
|
|
53
55
|
a.btn.disabled,
|
|
54
|
-
fieldset
|
|
56
|
+
fieldset:disabled a.btn {
|
|
55
57
|
pointer-events: none;
|
|
56
58
|
}
|
|
57
59
|
|
|
@@ -68,11 +70,7 @@ fieldset[disabled] a.btn {
|
|
|
68
70
|
|
|
69
71
|
@each $color, $value in $theme-colors {
|
|
70
72
|
.btn-outline-#{$color} {
|
|
71
|
-
@
|
|
72
|
-
@include button-outline-variant($value, $gray-900);
|
|
73
|
-
} @else {
|
|
74
|
-
@include button-outline-variant($value, $white);
|
|
75
|
-
}
|
|
73
|
+
@include button-outline-variant($value);
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
|
|
@@ -85,25 +83,22 @@ fieldset[disabled] a.btn {
|
|
|
85
83
|
.btn-link {
|
|
86
84
|
font-weight: $font-weight-normal;
|
|
87
85
|
color: $link-color;
|
|
88
|
-
|
|
86
|
+
text-decoration: $link-decoration;
|
|
89
87
|
|
|
90
|
-
@include hover {
|
|
88
|
+
@include hover() {
|
|
91
89
|
color: $link-hover-color;
|
|
92
90
|
text-decoration: $link-hover-decoration;
|
|
93
|
-
background-color: transparent;
|
|
94
|
-
border-color: transparent;
|
|
95
91
|
}
|
|
96
92
|
|
|
97
93
|
&:focus,
|
|
98
94
|
&.focus {
|
|
99
95
|
text-decoration: $link-hover-decoration;
|
|
100
|
-
border-color: transparent;
|
|
101
|
-
box-shadow: none;
|
|
102
96
|
}
|
|
103
97
|
|
|
104
98
|
&:disabled,
|
|
105
99
|
&.disabled {
|
|
106
100
|
color: $btn-link-disabled-color;
|
|
101
|
+
pointer-events: none;
|
|
107
102
|
}
|
|
108
103
|
|
|
109
104
|
// No need for an active state here
|
|
@@ -115,11 +110,11 @@ fieldset[disabled] a.btn {
|
|
|
115
110
|
//
|
|
116
111
|
|
|
117
112
|
.btn-lg {
|
|
118
|
-
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
|
|
113
|
+
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
|
|
119
114
|
}
|
|
120
115
|
|
|
121
116
|
.btn-sm {
|
|
122
|
-
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
|
|
117
|
+
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
|
|
123
118
|
}
|
|
124
119
|
|
|
125
120
|
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
position: relative;
|
|
7
7
|
display: flex;
|
|
8
8
|
flex-direction: column;
|
|
9
|
-
min-width: 0;
|
|
9
|
+
min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
|
|
10
|
+
height: $card-height;
|
|
10
11
|
word-wrap: break-word;
|
|
11
12
|
background-color: $card-bg;
|
|
12
13
|
background-clip: border-box;
|
|
@@ -18,24 +19,38 @@
|
|
|
18
19
|
margin-left: 0;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
> .list-group
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
> .list-group {
|
|
23
|
+
border-top: inherit;
|
|
24
|
+
border-bottom: inherit;
|
|
25
|
+
|
|
26
|
+
&:first-child {
|
|
27
|
+
border-top-width: 0;
|
|
28
|
+
@include border-top-radius($card-inner-border-radius);
|
|
24
29
|
}
|
|
25
|
-
}
|
|
26
30
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@include border-bottom-radius($card-border-radius);
|
|
31
|
+
&:last-child {
|
|
32
|
+
border-bottom-width: 0;
|
|
33
|
+
@include border-bottom-radius($card-inner-border-radius);
|
|
30
34
|
}
|
|
31
35
|
}
|
|
36
|
+
|
|
37
|
+
// Due to specificity of the above selector (`.card > .list-group`), we must
|
|
38
|
+
// use a child selector here to prevent double borders.
|
|
39
|
+
> .card-header + .list-group,
|
|
40
|
+
> .list-group + .card-footer {
|
|
41
|
+
border-top: 0;
|
|
42
|
+
}
|
|
32
43
|
}
|
|
33
44
|
|
|
34
45
|
.card-body {
|
|
35
46
|
// Enable `flex-grow: 1` for decks and groups so that card blocks take up
|
|
36
47
|
// as much space as possible, ensuring footers are aligned to the bottom.
|
|
37
48
|
flex: 1 1 auto;
|
|
49
|
+
// Workaround for the image size bug in IE
|
|
50
|
+
// See: https://github.com/twbs/bootstrap/pull/28855
|
|
51
|
+
min-height: 1px;
|
|
38
52
|
padding: $card-spacer-x;
|
|
53
|
+
color: $card-color;
|
|
39
54
|
}
|
|
40
55
|
|
|
41
56
|
.card-title {
|
|
@@ -43,7 +58,7 @@
|
|
|
43
58
|
}
|
|
44
59
|
|
|
45
60
|
.card-subtitle {
|
|
46
|
-
margin-top:
|
|
61
|
+
margin-top: -$card-spacer-y * .5;
|
|
47
62
|
margin-bottom: 0;
|
|
48
63
|
}
|
|
49
64
|
|
|
@@ -52,7 +67,7 @@
|
|
|
52
67
|
}
|
|
53
68
|
|
|
54
69
|
.card-link {
|
|
55
|
-
@include hover {
|
|
70
|
+
@include hover() {
|
|
56
71
|
text-decoration: none;
|
|
57
72
|
}
|
|
58
73
|
|
|
@@ -68,22 +83,18 @@
|
|
|
68
83
|
.card-header {
|
|
69
84
|
padding: $card-spacer-y $card-spacer-x;
|
|
70
85
|
margin-bottom: 0; // Removes the default margin-bottom of <hN>
|
|
86
|
+
color: $card-cap-color;
|
|
71
87
|
background-color: $card-cap-bg;
|
|
72
88
|
border-bottom: $card-border-width solid $card-border-color;
|
|
73
89
|
|
|
74
90
|
&:first-child {
|
|
75
91
|
@include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
|
|
76
92
|
}
|
|
77
|
-
|
|
78
|
-
+ .list-group {
|
|
79
|
-
.list-group-item:first-child {
|
|
80
|
-
border-top: 0;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
93
|
}
|
|
84
94
|
|
|
85
95
|
.card-footer {
|
|
86
96
|
padding: $card-spacer-y $card-spacer-x;
|
|
97
|
+
color: $card-cap-color;
|
|
87
98
|
background-color: $card-cap-bg;
|
|
88
99
|
border-top: $card-border-width solid $card-border-color;
|
|
89
100
|
|
|
@@ -98,15 +109,15 @@
|
|
|
98
109
|
//
|
|
99
110
|
|
|
100
111
|
.card-header-tabs {
|
|
101
|
-
margin-right:
|
|
112
|
+
margin-right: -$card-spacer-x * .5;
|
|
102
113
|
margin-bottom: -$card-spacer-y;
|
|
103
|
-
margin-left:
|
|
114
|
+
margin-left: -$card-spacer-x * .5;
|
|
104
115
|
border-bottom: 0;
|
|
105
116
|
}
|
|
106
117
|
|
|
107
118
|
.card-header-pills {
|
|
108
|
-
margin-right:
|
|
109
|
-
margin-left:
|
|
119
|
+
margin-right: -$card-spacer-x * .5;
|
|
120
|
+
margin-left: -$card-spacer-x * .5;
|
|
110
121
|
}
|
|
111
122
|
|
|
112
123
|
// Card image
|
|
@@ -117,21 +128,23 @@
|
|
|
117
128
|
bottom: 0;
|
|
118
129
|
left: 0;
|
|
119
130
|
padding: $card-img-overlay-padding;
|
|
131
|
+
@include border-radius($card-inner-border-radius);
|
|
120
132
|
}
|
|
121
133
|
|
|
122
|
-
.card-img
|
|
134
|
+
.card-img,
|
|
135
|
+
.card-img-top,
|
|
136
|
+
.card-img-bottom {
|
|
137
|
+
flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396
|
|
123
138
|
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
|
|
124
|
-
@include border-radius($card-inner-border-radius);
|
|
125
139
|
}
|
|
126
140
|
|
|
127
|
-
|
|
141
|
+
.card-img,
|
|
128
142
|
.card-img-top {
|
|
129
|
-
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
|
|
130
143
|
@include border-top-radius($card-inner-border-radius);
|
|
131
144
|
}
|
|
132
145
|
|
|
146
|
+
.card-img,
|
|
133
147
|
.card-img-bottom {
|
|
134
|
-
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
|
|
135
148
|
@include border-bottom-radius($card-inner-border-radius);
|
|
136
149
|
}
|
|
137
150
|
|
|
@@ -139,23 +152,19 @@
|
|
|
139
152
|
// Card deck
|
|
140
153
|
|
|
141
154
|
.card-deck {
|
|
142
|
-
display: flex;
|
|
143
|
-
flex-direction: column;
|
|
144
|
-
|
|
145
155
|
.card {
|
|
146
156
|
margin-bottom: $card-deck-margin;
|
|
147
157
|
}
|
|
148
158
|
|
|
149
159
|
@include media-breakpoint-up(sm) {
|
|
160
|
+
display: flex;
|
|
150
161
|
flex-flow: row wrap;
|
|
151
162
|
margin-right: -$card-deck-margin;
|
|
152
163
|
margin-left: -$card-deck-margin;
|
|
153
164
|
|
|
154
165
|
.card {
|
|
155
|
-
|
|
156
|
-
// Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored
|
|
166
|
+
// Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
|
|
157
167
|
flex: 1 0 0%;
|
|
158
|
-
flex-direction: column;
|
|
159
168
|
margin-right: $card-deck-margin;
|
|
160
169
|
margin-bottom: 0; // Override the default
|
|
161
170
|
margin-left: $card-deck-margin;
|
|
@@ -169,9 +178,6 @@
|
|
|
169
178
|
//
|
|
170
179
|
|
|
171
180
|
.card-group {
|
|
172
|
-
display: flex;
|
|
173
|
-
flex-direction: column;
|
|
174
|
-
|
|
175
181
|
// The child selector allows nested `.card` within `.card-group`
|
|
176
182
|
// to display properly.
|
|
177
183
|
> .card {
|
|
@@ -179,11 +185,12 @@
|
|
|
179
185
|
}
|
|
180
186
|
|
|
181
187
|
@include media-breakpoint-up(sm) {
|
|
188
|
+
display: flex;
|
|
182
189
|
flex-flow: row wrap;
|
|
183
190
|
// The child selector allows nested `.card` within `.card-group`
|
|
184
191
|
// to display properly.
|
|
185
192
|
> .card {
|
|
186
|
-
// Flexbugs #4: https://github.com/philipwalton/flexbugs#4
|
|
193
|
+
// Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
|
|
187
194
|
flex: 1 0 0%;
|
|
188
195
|
margin-bottom: 0;
|
|
189
196
|
|
|
@@ -194,55 +201,35 @@
|
|
|
194
201
|
|
|
195
202
|
// Handle rounded corners
|
|
196
203
|
@if $enable-rounded {
|
|
197
|
-
&:
|
|
204
|
+
&:not(:last-child) {
|
|
198
205
|
@include border-right-radius(0);
|
|
199
206
|
|
|
200
207
|
.card-img-top,
|
|
201
208
|
.card-header {
|
|
209
|
+
// stylelint-disable-next-line property-disallowed-list
|
|
202
210
|
border-top-right-radius: 0;
|
|
203
211
|
}
|
|
204
212
|
.card-img-bottom,
|
|
205
213
|
.card-footer {
|
|
214
|
+
// stylelint-disable-next-line property-disallowed-list
|
|
206
215
|
border-bottom-right-radius: 0;
|
|
207
216
|
}
|
|
208
217
|
}
|
|
209
218
|
|
|
210
|
-
&:
|
|
219
|
+
&:not(:first-child) {
|
|
211
220
|
@include border-left-radius(0);
|
|
212
221
|
|
|
213
222
|
.card-img-top,
|
|
214
223
|
.card-header {
|
|
224
|
+
// stylelint-disable-next-line property-disallowed-list
|
|
215
225
|
border-top-left-radius: 0;
|
|
216
226
|
}
|
|
217
227
|
.card-img-bottom,
|
|
218
228
|
.card-footer {
|
|
229
|
+
// stylelint-disable-next-line property-disallowed-list
|
|
219
230
|
border-bottom-left-radius: 0;
|
|
220
231
|
}
|
|
221
232
|
}
|
|
222
|
-
|
|
223
|
-
&:only-child {
|
|
224
|
-
@include border-radius($card-border-radius);
|
|
225
|
-
|
|
226
|
-
.card-img-top,
|
|
227
|
-
.card-header {
|
|
228
|
-
@include border-top-radius($card-border-radius);
|
|
229
|
-
}
|
|
230
|
-
.card-img-bottom,
|
|
231
|
-
.card-footer {
|
|
232
|
-
@include border-bottom-radius($card-border-radius);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
&:not(:first-child):not(:last-child):not(:only-child) {
|
|
237
|
-
@include border-radius(0);
|
|
238
|
-
|
|
239
|
-
.card-img-top,
|
|
240
|
-
.card-img-bottom,
|
|
241
|
-
.card-header,
|
|
242
|
-
.card-footer {
|
|
243
|
-
@include border-radius(0);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
233
|
}
|
|
247
234
|
}
|
|
248
235
|
}
|
|
@@ -261,6 +248,8 @@
|
|
|
261
248
|
@include media-breakpoint-up(sm) {
|
|
262
249
|
column-count: $card-columns-count;
|
|
263
250
|
column-gap: $card-columns-gap;
|
|
251
|
+
orphans: 1;
|
|
252
|
+
widows: 1;
|
|
264
253
|
|
|
265
254
|
.card {
|
|
266
255
|
display: inline-block; // Don't let them vertically span multiple columns
|
|
@@ -268,3 +257,30 @@
|
|
|
268
257
|
}
|
|
269
258
|
}
|
|
270
259
|
}
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
//
|
|
263
|
+
// Accordion
|
|
264
|
+
//
|
|
265
|
+
|
|
266
|
+
.accordion {
|
|
267
|
+
overflow-anchor: none;
|
|
268
|
+
|
|
269
|
+
> .card {
|
|
270
|
+
overflow: hidden;
|
|
271
|
+
|
|
272
|
+
&:not(:last-of-type) {
|
|
273
|
+
border-bottom: 0;
|
|
274
|
+
@include border-bottom-radius(0);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
&:not(:first-of-type) {
|
|
278
|
+
@include border-top-radius(0);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
> .card-header {
|
|
282
|
+
@include border-radius(0);
|
|
283
|
+
margin-bottom: -$card-border-width;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
@@ -1,22 +1,39 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Notes on the classes:
|
|
2
|
+
//
|
|
3
|
+
// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
|
|
4
|
+
// even when their scroll action started on a carousel, but for compatibility (with Firefox)
|
|
5
|
+
// we're preventing all actions instead
|
|
6
|
+
// 2. The .carousel-item-left and .carousel-item-right is used to indicate where
|
|
7
|
+
// the active slide is heading.
|
|
8
|
+
// 3. .active.carousel-item is the current slide.
|
|
9
|
+
// 4. .active.carousel-item-left and .active.carousel-item-right is the current
|
|
10
|
+
// slide in its in-transition state. Only one of these occurs at a time.
|
|
11
|
+
// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right
|
|
12
|
+
// is the upcoming slide in transition.
|
|
13
|
+
|
|
2
14
|
.carousel {
|
|
3
15
|
position: relative;
|
|
4
16
|
}
|
|
5
17
|
|
|
18
|
+
.carousel.pointer-event {
|
|
19
|
+
touch-action: pan-y;
|
|
20
|
+
}
|
|
21
|
+
|
|
6
22
|
.carousel-inner {
|
|
7
23
|
position: relative;
|
|
8
24
|
width: 100%;
|
|
9
25
|
overflow: hidden;
|
|
26
|
+
@include clearfix();
|
|
10
27
|
}
|
|
11
28
|
|
|
12
29
|
.carousel-item {
|
|
13
30
|
position: relative;
|
|
14
31
|
display: none;
|
|
15
|
-
|
|
32
|
+
float: left;
|
|
16
33
|
width: 100%;
|
|
17
|
-
|
|
34
|
+
margin-right: -100%;
|
|
18
35
|
backface-visibility: hidden;
|
|
19
|
-
|
|
36
|
+
@include transition($carousel-transition);
|
|
20
37
|
}
|
|
21
38
|
|
|
22
39
|
.carousel-item.active,
|
|
@@ -25,37 +42,40 @@
|
|
|
25
42
|
display: block;
|
|
26
43
|
}
|
|
27
44
|
|
|
28
|
-
.carousel-item-next,
|
|
29
|
-
.carousel-item-
|
|
30
|
-
|
|
31
|
-
top: 0;
|
|
45
|
+
.carousel-item-next:not(.carousel-item-left),
|
|
46
|
+
.active.carousel-item-right {
|
|
47
|
+
transform: translateX(100%);
|
|
32
48
|
}
|
|
33
49
|
|
|
34
|
-
|
|
35
|
-
.
|
|
36
|
-
|
|
37
|
-
transform: translateX(0);
|
|
38
|
-
|
|
39
|
-
@supports (transform-style: preserve-3d) {
|
|
40
|
-
transform: translate3d(0, 0, 0);
|
|
41
|
-
}
|
|
50
|
+
.carousel-item-prev:not(.carousel-item-right),
|
|
51
|
+
.active.carousel-item-left {
|
|
52
|
+
transform: translateX(-100%);
|
|
42
53
|
}
|
|
43
54
|
|
|
44
|
-
.carousel-item-next,
|
|
45
|
-
.active.carousel-item-right {
|
|
46
|
-
transform: translateX(100%);
|
|
47
55
|
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
//
|
|
57
|
+
// Alternate transitions
|
|
58
|
+
//
|
|
59
|
+
|
|
60
|
+
.carousel-fade {
|
|
61
|
+
.carousel-item {
|
|
62
|
+
opacity: 0;
|
|
63
|
+
transition-property: opacity;
|
|
64
|
+
transform: none;
|
|
50
65
|
}
|
|
51
|
-
}
|
|
52
66
|
|
|
53
|
-
.carousel-item
|
|
54
|
-
.
|
|
55
|
-
|
|
67
|
+
.carousel-item.active,
|
|
68
|
+
.carousel-item-next.carousel-item-left,
|
|
69
|
+
.carousel-item-prev.carousel-item-right {
|
|
70
|
+
z-index: 1;
|
|
71
|
+
opacity: 1;
|
|
72
|
+
}
|
|
56
73
|
|
|
57
|
-
|
|
58
|
-
|
|
74
|
+
.active.carousel-item-left,
|
|
75
|
+
.active.carousel-item-right {
|
|
76
|
+
z-index: 0;
|
|
77
|
+
opacity: 0;
|
|
78
|
+
@include transition(opacity 0s $carousel-transition-duration);
|
|
59
79
|
}
|
|
60
80
|
}
|
|
61
81
|
|
|
@@ -69,35 +89,38 @@
|
|
|
69
89
|
position: absolute;
|
|
70
90
|
top: 0;
|
|
71
91
|
bottom: 0;
|
|
92
|
+
z-index: 1;
|
|
72
93
|
// Use flex for alignment (1-3)
|
|
73
94
|
display: flex; // 1. allow flex styles
|
|
74
95
|
align-items: center; // 2. vertically center contents
|
|
75
96
|
justify-content: center; // 3. horizontally center contents
|
|
76
97
|
width: $carousel-control-width;
|
|
98
|
+
padding: 0;
|
|
77
99
|
color: $carousel-control-color;
|
|
78
100
|
text-align: center;
|
|
101
|
+
background: none;
|
|
102
|
+
border: 0;
|
|
79
103
|
opacity: $carousel-control-opacity;
|
|
80
|
-
|
|
81
|
-
// animation if you trip this while in the middle of another animation.
|
|
104
|
+
@include transition($carousel-control-transition);
|
|
82
105
|
|
|
83
106
|
// Hover/focus state
|
|
84
|
-
@include hover-focus {
|
|
107
|
+
@include hover-focus() {
|
|
85
108
|
color: $carousel-control-color;
|
|
86
109
|
text-decoration: none;
|
|
87
110
|
outline: 0;
|
|
88
|
-
opacity:
|
|
111
|
+
opacity: $carousel-control-hover-opacity;
|
|
89
112
|
}
|
|
90
113
|
}
|
|
91
114
|
.carousel-control-prev {
|
|
92
115
|
left: 0;
|
|
93
116
|
@if $enable-gradients {
|
|
94
|
-
background: linear-gradient(90deg, rgba(
|
|
117
|
+
background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
|
|
95
118
|
}
|
|
96
119
|
}
|
|
97
120
|
.carousel-control-next {
|
|
98
121
|
right: 0;
|
|
99
122
|
@if $enable-gradients {
|
|
100
|
-
background: linear-gradient(270deg, rgba(
|
|
123
|
+
background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
|
|
101
124
|
}
|
|
102
125
|
}
|
|
103
126
|
|
|
@@ -107,14 +130,13 @@
|
|
|
107
130
|
display: inline-block;
|
|
108
131
|
width: $carousel-control-icon-width;
|
|
109
132
|
height: $carousel-control-icon-width;
|
|
110
|
-
background:
|
|
111
|
-
background-size: 100% 100%;
|
|
133
|
+
background: 50% / 100% 100% no-repeat;
|
|
112
134
|
}
|
|
113
135
|
.carousel-control-prev-icon {
|
|
114
|
-
background-image: $carousel-control-prev-icon-bg;
|
|
136
|
+
background-image: escape-svg($carousel-control-prev-icon-bg);
|
|
115
137
|
}
|
|
116
138
|
.carousel-control-next-icon {
|
|
117
|
-
background-image: $carousel-control-next-icon-bg;
|
|
139
|
+
background-image: escape-svg($carousel-control-next-icon-bg);
|
|
118
140
|
}
|
|
119
141
|
|
|
120
142
|
|
|
@@ -126,7 +148,7 @@
|
|
|
126
148
|
.carousel-indicators {
|
|
127
149
|
position: absolute;
|
|
128
150
|
right: 0;
|
|
129
|
-
bottom:
|
|
151
|
+
bottom: 0;
|
|
130
152
|
left: 0;
|
|
131
153
|
z-index: 15;
|
|
132
154
|
display: flex;
|
|
@@ -138,38 +160,25 @@
|
|
|
138
160
|
list-style: none;
|
|
139
161
|
|
|
140
162
|
li {
|
|
141
|
-
|
|
163
|
+
box-sizing: content-box;
|
|
142
164
|
flex: 0 1 auto;
|
|
143
165
|
width: $carousel-indicator-width;
|
|
144
166
|
height: $carousel-indicator-height;
|
|
145
167
|
margin-right: $carousel-indicator-spacer;
|
|
146
168
|
margin-left: $carousel-indicator-spacer;
|
|
147
169
|
text-indent: -999px;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
width: 100%;
|
|
157
|
-
height: 10px;
|
|
158
|
-
content: "";
|
|
159
|
-
}
|
|
160
|
-
&::after {
|
|
161
|
-
position: absolute;
|
|
162
|
-
bottom: -10px;
|
|
163
|
-
left: 0;
|
|
164
|
-
display: inline-block;
|
|
165
|
-
width: 100%;
|
|
166
|
-
height: 10px;
|
|
167
|
-
content: "";
|
|
168
|
-
}
|
|
170
|
+
cursor: pointer;
|
|
171
|
+
background-color: $carousel-indicator-active-bg;
|
|
172
|
+
background-clip: padding-box;
|
|
173
|
+
// Use transparent borders to increase the hit area by 10px on top and bottom.
|
|
174
|
+
border-top: $carousel-indicator-hit-area-height solid transparent;
|
|
175
|
+
border-bottom: $carousel-indicator-hit-area-height solid transparent;
|
|
176
|
+
opacity: .5;
|
|
177
|
+
@include transition($carousel-indicator-transition);
|
|
169
178
|
}
|
|
170
179
|
|
|
171
180
|
.active {
|
|
172
|
-
|
|
181
|
+
opacity: 1;
|
|
173
182
|
}
|
|
174
183
|
}
|
|
175
184
|
|
|
@@ -180,9 +189,9 @@
|
|
|
180
189
|
|
|
181
190
|
.carousel-caption {
|
|
182
191
|
position: absolute;
|
|
183
|
-
right: (
|
|
192
|
+
right: (100% - $carousel-caption-width) * .5;
|
|
184
193
|
bottom: 20px;
|
|
185
|
-
left: (
|
|
194
|
+
left: (100% - $carousel-caption-width) * .5;
|
|
186
195
|
z-index: 10;
|
|
187
196
|
padding-top: 20px;
|
|
188
197
|
padding-bottom: 20px;
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
.close {
|
|
2
2
|
float: right;
|
|
3
|
-
font-size
|
|
3
|
+
@include font-size($close-font-size);
|
|
4
4
|
font-weight: $close-font-weight;
|
|
5
5
|
line-height: 1;
|
|
6
6
|
color: $close-color;
|
|
7
7
|
text-shadow: $close-text-shadow;
|
|
8
8
|
opacity: .5;
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
// Override <a>'s hover style
|
|
11
|
+
@include hover() {
|
|
11
12
|
color: $close-color;
|
|
12
13
|
text-decoration: none;
|
|
13
|
-
opacity: .75;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
&:not(:disabled):not(.disabled) {
|
|
17
|
+
@include hover-focus() {
|
|
18
|
+
opacity: .75;
|
|
19
|
+
}
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -24,11 +25,16 @@
|
|
|
24
25
|
// If you want the anchor version, it requires `href="#"`.
|
|
25
26
|
// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
|
|
26
27
|
|
|
27
|
-
// stylelint-disable
|
|
28
|
+
// stylelint-disable-next-line selector-no-qualifying-type
|
|
28
29
|
button.close {
|
|
29
30
|
padding: 0;
|
|
30
31
|
background-color: transparent;
|
|
31
32
|
border: 0;
|
|
32
|
-
-webkit-appearance: none;
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
|
|
35
|
+
// Future-proof disabling of clicks on `<a>` elements
|
|
36
|
+
|
|
37
|
+
// stylelint-disable-next-line selector-no-qualifying-type
|
|
38
|
+
a.close.disabled {
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
}
|