bootstrap 4.0.0 → 4.3.1
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 +1 -1
- data/CHANGELOG.md +8 -0
- data/README.md +2 -2
- data/Rakefile +4 -2
- data/assets/javascripts/bootstrap/alert.js +45 -22
- data/assets/javascripts/bootstrap/button.js +39 -19
- data/assets/javascripts/bootstrap/carousel.js +213 -51
- data/assets/javascripts/bootstrap/collapse.js +105 -52
- data/assets/javascripts/bootstrap/dropdown.js +169 -45
- data/assets/javascripts/bootstrap/modal.js +139 -71
- data/assets/javascripts/bootstrap/popover.js +77 -20
- data/assets/javascripts/bootstrap/scrollspy.js +87 -29
- data/assets/javascripts/bootstrap/tab.js +50 -32
- data/assets/javascripts/bootstrap/toast.js +282 -0
- data/assets/javascripts/bootstrap/tooltip.js +295 -59
- data/assets/javascripts/bootstrap/util.js +78 -45
- data/assets/javascripts/bootstrap-sprockets.js +7 -6
- data/assets/javascripts/bootstrap.js +1537 -996
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +4 -7
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
- data/assets/stylesheets/_bootstrap.scss +5 -3
- data/assets/stylesheets/bootstrap/_alert.scss +1 -1
- data/assets/stylesheets/bootstrap/_badge.scss +8 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +9 -6
- data/assets/stylesheets/bootstrap/_button-group.scss +16 -19
- data/assets/stylesheets/bootstrap/_buttons.scss +10 -16
- data/assets/stylesheets/bootstrap/_card.scss +53 -34
- data/assets/stylesheets/bootstrap/_carousel.scss +66 -60
- data/assets/stylesheets/bootstrap/_close.scss +15 -8
- data/assets/stylesheets/bootstrap/_code.scss +5 -13
- data/assets/stylesheets/bootstrap/_custom-forms.scss +250 -40
- data/assets/stylesheets/bootstrap/_dropdown.scss +65 -5
- data/assets/stylesheets/bootstrap/_forms.scss +32 -35
- data/assets/stylesheets/bootstrap/_functions.scss +9 -9
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +45 -11
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +39 -5
- data/assets/stylesheets/bootstrap/_mixins.scss +6 -1
- data/assets/stylesheets/bootstrap/_modal.scss +80 -19
- data/assets/stylesheets/bootstrap/_nav.scss +2 -0
- data/assets/stylesheets/bootstrap/_navbar.scss +9 -26
- data/assets/stylesheets/bootstrap/_pagination.scss +2 -6
- data/assets/stylesheets/bootstrap/_popover.scss +47 -59
- data/assets/stylesheets/bootstrap/_print.scss +23 -6
- data/assets/stylesheets/bootstrap/_progress.scss +16 -6
- data/assets/stylesheets/bootstrap/_reboot.scss +51 -50
- data/assets/stylesheets/bootstrap/_spinners.scss +55 -0
- data/assets/stylesheets/bootstrap/_tables.scss +16 -11
- data/assets/stylesheets/bootstrap/_toasts.scss +44 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
- data/assets/stylesheets/bootstrap/_transitions.scss +4 -20
- data/assets/stylesheets/bootstrap/_type.scss +16 -16
- data/assets/stylesheets/bootstrap/_utilities.scss +3 -0
- data/assets/stylesheets/bootstrap/_variables.scss +430 -201
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +7 -2
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +29 -1
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +12 -14
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +5 -8
- data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +68 -13
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +3 -4
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +9 -10
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +3 -5
- data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -3
- data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +10 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +17 -1
- data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
- 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/_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 +26 -6
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +204 -0
- data/bootstrap.gemspec +6 -3
- 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 +1 -1
- data/test/test_helper.rb +7 -6
- metadata +19 -12
- data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
|
@@ -7,8 +7,11 @@
|
|
|
7
7
|
.form-control {
|
|
8
8
|
display: block;
|
|
9
9
|
width: 100%;
|
|
10
|
+
height: $input-height;
|
|
10
11
|
padding: $input-padding-y $input-padding-x;
|
|
11
|
-
font-
|
|
12
|
+
font-family: $input-font-family;
|
|
13
|
+
@include font-size($input-font-size);
|
|
14
|
+
font-weight: $input-font-weight;
|
|
12
15
|
line-height: $input-line-height;
|
|
13
16
|
color: $input-color;
|
|
14
17
|
background-color: $input-bg;
|
|
@@ -16,13 +19,7 @@
|
|
|
16
19
|
border: $input-border-width solid $input-border-color;
|
|
17
20
|
|
|
18
21
|
// Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
|
|
19
|
-
@
|
|
20
|
-
// Manually use the if/else instead of the mixin to account for iOS override
|
|
21
|
-
border-radius: $input-border-radius;
|
|
22
|
-
} @else {
|
|
23
|
-
// Otherwise undo the iOS default
|
|
24
|
-
border-radius: 0;
|
|
25
|
-
}
|
|
22
|
+
@include border-radius($input-border-radius, 0);
|
|
26
23
|
|
|
27
24
|
@include box-shadow($input-box-shadow);
|
|
28
25
|
@include transition($input-transition);
|
|
@@ -57,10 +54,6 @@
|
|
|
57
54
|
}
|
|
58
55
|
|
|
59
56
|
select.form-control {
|
|
60
|
-
&:not([size]):not([multiple]) {
|
|
61
|
-
height: $input-height;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
57
|
&:focus::-ms-value {
|
|
65
58
|
// Suppress the nested default white text on blue background highlight given to
|
|
66
59
|
// the selected option text when the (still closed) <select> receives focus
|
|
@@ -90,21 +83,21 @@ select.form-control {
|
|
|
90
83
|
padding-top: calc(#{$input-padding-y} + #{$input-border-width});
|
|
91
84
|
padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
|
|
92
85
|
margin-bottom: 0; // Override the `<label>/<legend>` default
|
|
93
|
-
font-size
|
|
86
|
+
@include font-size(inherit); // Override the `<legend>` default
|
|
94
87
|
line-height: $input-line-height;
|
|
95
88
|
}
|
|
96
89
|
|
|
97
90
|
.col-form-label-lg {
|
|
98
91
|
padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});
|
|
99
92
|
padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});
|
|
100
|
-
font-size
|
|
93
|
+
@include font-size($input-font-size-lg);
|
|
101
94
|
line-height: $input-line-height-lg;
|
|
102
95
|
}
|
|
103
96
|
|
|
104
97
|
.col-form-label-sm {
|
|
105
98
|
padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});
|
|
106
99
|
padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});
|
|
107
|
-
font-size
|
|
100
|
+
@include font-size($input-font-size-sm);
|
|
108
101
|
line-height: $input-line-height-sm;
|
|
109
102
|
}
|
|
110
103
|
|
|
@@ -121,6 +114,7 @@ select.form-control {
|
|
|
121
114
|
padding-bottom: $input-padding-y;
|
|
122
115
|
margin-bottom: 0; // match inputs if this class comes on inputs with default margins
|
|
123
116
|
line-height: $input-line-height;
|
|
117
|
+
color: $input-plaintext-color;
|
|
124
118
|
background-color: transparent;
|
|
125
119
|
border: solid transparent;
|
|
126
120
|
border-width: $input-border-width 0;
|
|
@@ -138,35 +132,35 @@ select.form-control {
|
|
|
138
132
|
// Build on `.form-control` with modifier classes to decrease or increase the
|
|
139
133
|
// height and font-size of form controls.
|
|
140
134
|
//
|
|
141
|
-
//
|
|
142
|
-
// issue documented in https://github.com/twbs/bootstrap/issues/15074.
|
|
135
|
+
// Repeated in `_input_group.scss` to avoid Sass extend issues.
|
|
143
136
|
|
|
144
137
|
.form-control-sm {
|
|
138
|
+
height: $input-height-sm;
|
|
145
139
|
padding: $input-padding-y-sm $input-padding-x-sm;
|
|
146
|
-
font-size
|
|
140
|
+
@include font-size($input-font-size-sm);
|
|
147
141
|
line-height: $input-line-height-sm;
|
|
148
142
|
@include border-radius($input-border-radius-sm);
|
|
149
143
|
}
|
|
150
144
|
|
|
151
|
-
select.form-control-sm {
|
|
152
|
-
&:not([size]):not([multiple]) {
|
|
153
|
-
height: $input-height-sm;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
145
|
.form-control-lg {
|
|
146
|
+
height: $input-height-lg;
|
|
158
147
|
padding: $input-padding-y-lg $input-padding-x-lg;
|
|
159
|
-
font-size
|
|
148
|
+
@include font-size($input-font-size-lg);
|
|
160
149
|
line-height: $input-line-height-lg;
|
|
161
150
|
@include border-radius($input-border-radius-lg);
|
|
162
151
|
}
|
|
163
152
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
153
|
+
// stylelint-disable-next-line no-duplicate-selectors
|
|
154
|
+
select.form-control {
|
|
155
|
+
&[size],
|
|
156
|
+
&[multiple] {
|
|
157
|
+
height: auto;
|
|
167
158
|
}
|
|
168
159
|
}
|
|
169
160
|
|
|
161
|
+
textarea.form-control {
|
|
162
|
+
height: auto;
|
|
163
|
+
}
|
|
170
164
|
|
|
171
165
|
// Form groups
|
|
172
166
|
//
|
|
@@ -190,13 +184,13 @@ select.form-control-lg {
|
|
|
190
184
|
.form-row {
|
|
191
185
|
display: flex;
|
|
192
186
|
flex-wrap: wrap;
|
|
193
|
-
margin-right: -
|
|
194
|
-
margin-left: -
|
|
187
|
+
margin-right: -$form-grid-gutter-width / 2;
|
|
188
|
+
margin-left: -$form-grid-gutter-width / 2;
|
|
195
189
|
|
|
196
190
|
> .col,
|
|
197
191
|
> [class*="col-"] {
|
|
198
|
-
padding-right:
|
|
199
|
-
padding-left:
|
|
192
|
+
padding-right: $form-grid-gutter-width / 2;
|
|
193
|
+
padding-left: $form-grid-gutter-width / 2;
|
|
200
194
|
}
|
|
201
195
|
}
|
|
202
196
|
|
|
@@ -248,8 +242,9 @@ select.form-control-lg {
|
|
|
248
242
|
// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
|
|
249
243
|
// server side validation.
|
|
250
244
|
|
|
251
|
-
@
|
|
252
|
-
@include form-validation-state(
|
|
245
|
+
@each $state, $data in $form-validation-states {
|
|
246
|
+
@include form-validation-state($state, map-get($data, color), map-get($data, icon));
|
|
247
|
+
}
|
|
253
248
|
|
|
254
249
|
// Inline forms
|
|
255
250
|
//
|
|
@@ -302,7 +297,8 @@ select.form-control-lg {
|
|
|
302
297
|
display: inline-block;
|
|
303
298
|
}
|
|
304
299
|
|
|
305
|
-
.input-group
|
|
300
|
+
.input-group,
|
|
301
|
+
.custom-select {
|
|
306
302
|
width: auto;
|
|
307
303
|
}
|
|
308
304
|
|
|
@@ -317,6 +313,7 @@ select.form-control-lg {
|
|
|
317
313
|
}
|
|
318
314
|
.form-check-input {
|
|
319
315
|
position: relative;
|
|
316
|
+
flex-shrink: 0;
|
|
320
317
|
margin-top: 0;
|
|
321
318
|
margin-right: $form-check-input-margin-x;
|
|
322
319
|
margin-left: 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Bootstrap functions
|
|
2
2
|
//
|
|
3
|
-
// Utility mixins and functions for
|
|
3
|
+
// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
|
|
4
4
|
|
|
5
5
|
// Ascending
|
|
6
6
|
// Used to evaluate Sass maps like our grid breakpoints.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
$prev-key: null;
|
|
9
9
|
$prev-num: null;
|
|
10
10
|
@each $key, $num in $map {
|
|
11
|
-
@if $prev-num == null {
|
|
11
|
+
@if $prev-num == null or unit($num) == "%" {
|
|
12
12
|
// Do nothing
|
|
13
13
|
} @else if not comparable($prev-num, $num) {
|
|
14
14
|
@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
// Starts at zero
|
|
24
|
-
//
|
|
25
|
-
@mixin _assert-starts-at-zero($map) {
|
|
24
|
+
// Used to ensure the min-width of the lowest breakpoint starts at 0.
|
|
25
|
+
@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
|
|
26
26
|
$values: map-values($map);
|
|
27
27
|
$first-value: nth($values, 1);
|
|
28
28
|
@if $first-value != 0 {
|
|
29
|
-
@warn "First breakpoint in
|
|
29
|
+
@warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// Color contrast
|
|
52
|
-
@function color-yiq($color) {
|
|
52
|
+
@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {
|
|
53
53
|
$r: red($color);
|
|
54
54
|
$g: green($color);
|
|
55
55
|
$b: blue($color);
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
|
|
58
58
|
|
|
59
59
|
@if ($yiq >= $yiq-contrasted-threshold) {
|
|
60
|
-
@return $
|
|
60
|
+
@return $dark;
|
|
61
61
|
} @else {
|
|
62
|
-
@return $
|
|
62
|
+
@return $light;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
// Request a theme color level
|
|
80
80
|
@function theme-color-level($color-name: "primary", $level: 0) {
|
|
81
81
|
$color: theme-color($color-name);
|
|
82
|
-
$color-base: if($level > 0,
|
|
82
|
+
$color-base: if($level > 0, $black, $white);
|
|
83
83
|
$level: abs($level);
|
|
84
84
|
|
|
85
85
|
@return mix($color-base, $color, $level * $theme-color-interval);
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.figure-img {
|
|
35
|
-
margin-bottom:
|
|
35
|
+
margin-bottom: $spacer / 2;
|
|
36
36
|
line-height: 1;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.figure-caption {
|
|
40
|
-
font-size
|
|
40
|
+
@include font-size($figure-caption-font-size);
|
|
41
41
|
color: $figure-caption-color;
|
|
42
42
|
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
width: 100%;
|
|
13
13
|
|
|
14
14
|
> .form-control,
|
|
15
|
+
> .form-control-plaintext,
|
|
15
16
|
> .custom-select,
|
|
16
17
|
> .custom-file {
|
|
17
18
|
position: relative; // For focus state's z-index
|
|
@@ -21,11 +22,6 @@
|
|
|
21
22
|
width: 1%;
|
|
22
23
|
margin-bottom: 0;
|
|
23
24
|
|
|
24
|
-
// Bring the "active" form control to the top of surrounding elements
|
|
25
|
-
&:focus {
|
|
26
|
-
z-index: 3;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
25
|
+ .form-control,
|
|
30
26
|
+ .custom-select,
|
|
31
27
|
+ .custom-file {
|
|
@@ -33,6 +29,18 @@
|
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
31
|
|
|
32
|
+
// Bring the "active" form control to the top of surrounding elements
|
|
33
|
+
> .form-control:focus,
|
|
34
|
+
> .custom-select:focus,
|
|
35
|
+
> .custom-file .custom-file-input:focus ~ .custom-file-label {
|
|
36
|
+
z-index: 3;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Bring the custom file input above the label
|
|
40
|
+
> .custom-file .custom-file-input:focus {
|
|
41
|
+
z-index: 4;
|
|
42
|
+
}
|
|
43
|
+
|
|
36
44
|
> .form-control,
|
|
37
45
|
> .custom-select {
|
|
38
46
|
&:not(:last-child) { @include border-right-radius(0); }
|
|
@@ -46,9 +54,8 @@
|
|
|
46
54
|
align-items: center;
|
|
47
55
|
|
|
48
56
|
&:not(:last-child) .custom-file-label,
|
|
49
|
-
&:not(:last-child) .custom-file-label::
|
|
50
|
-
&:not(:first-child) .custom-file-label
|
|
51
|
-
&:not(:first-child) .custom-file-label::before { @include border-left-radius(0); }
|
|
57
|
+
&:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
|
|
58
|
+
&:not(:first-child) .custom-file-label { @include border-left-radius(0); }
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
|
|
@@ -69,6 +76,10 @@
|
|
|
69
76
|
.btn {
|
|
70
77
|
position: relative;
|
|
71
78
|
z-index: 2;
|
|
79
|
+
|
|
80
|
+
&:focus {
|
|
81
|
+
z-index: 3;
|
|
82
|
+
}
|
|
72
83
|
}
|
|
73
84
|
|
|
74
85
|
.btn + .btn,
|
|
@@ -93,7 +104,7 @@
|
|
|
93
104
|
align-items: center;
|
|
94
105
|
padding: $input-padding-y $input-padding-x;
|
|
95
106
|
margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
|
|
96
|
-
font-size
|
|
107
|
+
@include font-size($input-font-size); // Match inputs
|
|
97
108
|
font-weight: $font-weight-normal;
|
|
98
109
|
line-height: $input-line-height;
|
|
99
110
|
color: $input-group-addon-color;
|
|
@@ -116,20 +127,43 @@
|
|
|
116
127
|
// Remix the default form control sizing classes into new ones for easier
|
|
117
128
|
// manipulation.
|
|
118
129
|
|
|
130
|
+
.input-group-lg > .form-control:not(textarea),
|
|
131
|
+
.input-group-lg > .custom-select {
|
|
132
|
+
height: $input-height-lg;
|
|
133
|
+
}
|
|
134
|
+
|
|
119
135
|
.input-group-lg > .form-control,
|
|
136
|
+
.input-group-lg > .custom-select,
|
|
120
137
|
.input-group-lg > .input-group-prepend > .input-group-text,
|
|
121
138
|
.input-group-lg > .input-group-append > .input-group-text,
|
|
122
139
|
.input-group-lg > .input-group-prepend > .btn,
|
|
123
140
|
.input-group-lg > .input-group-append > .btn {
|
|
124
|
-
|
|
141
|
+
padding: $input-padding-y-lg $input-padding-x-lg;
|
|
142
|
+
@include font-size($input-font-size-lg);
|
|
143
|
+
line-height: $input-line-height-lg;
|
|
144
|
+
@include border-radius($input-border-radius-lg);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.input-group-sm > .form-control:not(textarea),
|
|
148
|
+
.input-group-sm > .custom-select {
|
|
149
|
+
height: $input-height-sm;
|
|
125
150
|
}
|
|
126
151
|
|
|
127
152
|
.input-group-sm > .form-control,
|
|
153
|
+
.input-group-sm > .custom-select,
|
|
128
154
|
.input-group-sm > .input-group-prepend > .input-group-text,
|
|
129
155
|
.input-group-sm > .input-group-append > .input-group-text,
|
|
130
156
|
.input-group-sm > .input-group-prepend > .btn,
|
|
131
157
|
.input-group-sm > .input-group-append > .btn {
|
|
132
|
-
|
|
158
|
+
padding: $input-padding-y-sm $input-padding-x-sm;
|
|
159
|
+
@include font-size($input-font-size-sm);
|
|
160
|
+
line-height: $input-line-height-sm;
|
|
161
|
+
@include border-radius($input-border-radius-sm);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.input-group-lg > .custom-select,
|
|
165
|
+
.input-group-sm > .custom-select {
|
|
166
|
+
padding-right: $custom-select-padding-x + $custom-select-indicator-padding;
|
|
133
167
|
}
|
|
134
168
|
|
|
135
169
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
// Hover state
|
|
26
26
|
@include hover-focus {
|
|
27
|
+
z-index: 1; // Place hover/focus items above their siblings for proper border styling
|
|
27
28
|
color: $list-group-action-hover-color;
|
|
28
29
|
text-decoration: none;
|
|
29
30
|
background-color: $list-group-hover-bg;
|
|
@@ -46,6 +47,7 @@
|
|
|
46
47
|
padding: $list-group-item-padding-y $list-group-item-padding-x;
|
|
47
48
|
// Place the border on the list items and negative margin up for better styling
|
|
48
49
|
margin-bottom: -$list-group-border-width;
|
|
50
|
+
color: $list-group-color;
|
|
49
51
|
background-color: $list-group-bg;
|
|
50
52
|
border: $list-group-border-width solid $list-group-border-color;
|
|
51
53
|
|
|
@@ -58,14 +60,10 @@
|
|
|
58
60
|
@include border-bottom-radius($list-group-border-radius);
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
@include hover-focus {
|
|
62
|
-
z-index: 1; // Place hover/active items above their siblings for proper border styling
|
|
63
|
-
text-decoration: none;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
63
|
&.disabled,
|
|
67
64
|
&:disabled {
|
|
68
65
|
color: $list-group-disabled-color;
|
|
66
|
+
pointer-events: none;
|
|
69
67
|
background-color: $list-group-disabled-bg;
|
|
70
68
|
}
|
|
71
69
|
|
|
@@ -79,6 +77,37 @@
|
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
|
|
80
|
+
// Horizontal
|
|
81
|
+
//
|
|
82
|
+
// Change the layout of list group items from vertical (default) to horizontal.
|
|
83
|
+
|
|
84
|
+
@each $breakpoint in map-keys($grid-breakpoints) {
|
|
85
|
+
@include media-breakpoint-up($breakpoint) {
|
|
86
|
+
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
|
87
|
+
|
|
88
|
+
.list-group-horizontal#{$infix} {
|
|
89
|
+
flex-direction: row;
|
|
90
|
+
|
|
91
|
+
.list-group-item {
|
|
92
|
+
margin-right: -$list-group-border-width;
|
|
93
|
+
margin-bottom: 0;
|
|
94
|
+
|
|
95
|
+
&:first-child {
|
|
96
|
+
@include border-left-radius($list-group-border-radius);
|
|
97
|
+
@include border-top-right-radius(0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&:last-child {
|
|
101
|
+
margin-right: 0;
|
|
102
|
+
@include border-right-radius($list-group-border-radius);
|
|
103
|
+
@include border-bottom-left-radius(0);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
|
|
82
111
|
// Flush list items
|
|
83
112
|
//
|
|
84
113
|
// Remove borders and border-radius to keep list group items edge-to-edge. Most
|
|
@@ -89,6 +118,10 @@
|
|
|
89
118
|
border-right: 0;
|
|
90
119
|
border-left: 0;
|
|
91
120
|
@include border-radius(0);
|
|
121
|
+
|
|
122
|
+
&:last-child {
|
|
123
|
+
margin-bottom: -$list-group-border-width;
|
|
124
|
+
}
|
|
92
125
|
}
|
|
93
126
|
|
|
94
127
|
&:first-child {
|
|
@@ -99,6 +132,7 @@
|
|
|
99
132
|
|
|
100
133
|
&:last-child {
|
|
101
134
|
.list-group-item:last-child {
|
|
135
|
+
margin-bottom: 0;
|
|
102
136
|
border-bottom: 0;
|
|
103
137
|
}
|
|
104
138
|
}
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
//
|
|
3
3
|
// Used in conjunction with global variables to enable certain theme features.
|
|
4
4
|
|
|
5
|
+
// Vendor
|
|
6
|
+
@import "vendor/rfs";
|
|
7
|
+
|
|
8
|
+
// Deprecate
|
|
9
|
+
@import "mixins/deprecate";
|
|
10
|
+
|
|
5
11
|
// Utilities
|
|
6
12
|
@import "mixins/breakpoints";
|
|
7
13
|
@import "mixins/hover";
|
|
@@ -36,7 +42,6 @@
|
|
|
36
42
|
|
|
37
43
|
// // Layout
|
|
38
44
|
@import "mixins/clearfix";
|
|
39
|
-
// @import "mixins/navbar-align";
|
|
40
45
|
@import "mixins/grid-framework";
|
|
41
46
|
@import "mixins/grid";
|
|
42
47
|
@import "mixins/float";
|
|
@@ -4,20 +4,25 @@
|
|
|
4
4
|
// .modal-content - actual modal w/ bg and corners and stuff
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
// Kill the scroll on the body
|
|
8
7
|
.modal-open {
|
|
8
|
+
// Kill the scroll on the body
|
|
9
9
|
overflow: hidden;
|
|
10
|
+
|
|
11
|
+
.modal {
|
|
12
|
+
overflow-x: hidden;
|
|
13
|
+
overflow-y: auto;
|
|
14
|
+
}
|
|
10
15
|
}
|
|
11
16
|
|
|
12
17
|
// Container that the modal scrolls within
|
|
13
18
|
.modal {
|
|
14
19
|
position: fixed;
|
|
15
20
|
top: 0;
|
|
16
|
-
right: 0;
|
|
17
|
-
bottom: 0;
|
|
18
21
|
left: 0;
|
|
19
22
|
z-index: $zindex-modal;
|
|
20
23
|
display: none;
|
|
24
|
+
width: 100%;
|
|
25
|
+
height: 100%;
|
|
21
26
|
overflow: hidden;
|
|
22
27
|
// Prevent Chrome on Windows from adding a focus outline. For details, see
|
|
23
28
|
// https://github.com/twbs/bootstrap/pull/10951.
|
|
@@ -25,11 +30,6 @@
|
|
|
25
30
|
// We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
|
|
26
31
|
// gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
|
|
27
32
|
// See also https://github.com/twbs/bootstrap/issues/17695
|
|
28
|
-
|
|
29
|
-
.modal-open & {
|
|
30
|
-
overflow-x: hidden;
|
|
31
|
-
overflow-y: auto;
|
|
32
|
-
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// Shell div to position the modal with bottom padding
|
|
@@ -43,17 +43,58 @@
|
|
|
43
43
|
// When fading in the modal, animate it to slide down
|
|
44
44
|
.modal.fade & {
|
|
45
45
|
@include transition($modal-transition);
|
|
46
|
-
transform:
|
|
46
|
+
transform: $modal-fade-transform;
|
|
47
47
|
}
|
|
48
48
|
.modal.show & {
|
|
49
|
-
transform:
|
|
49
|
+
transform: $modal-show-transform;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.modal-dialog-scrollable {
|
|
54
|
+
display: flex; // IE10/11
|
|
55
|
+
max-height: calc(100% - #{$modal-dialog-margin * 2});
|
|
56
|
+
|
|
57
|
+
.modal-content {
|
|
58
|
+
max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.modal-header,
|
|
63
|
+
.modal-footer {
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.modal-body {
|
|
68
|
+
overflow-y: auto;
|
|
50
69
|
}
|
|
51
70
|
}
|
|
52
71
|
|
|
53
72
|
.modal-dialog-centered {
|
|
54
73
|
display: flex;
|
|
55
74
|
align-items: center;
|
|
56
|
-
min-height: calc(100% -
|
|
75
|
+
min-height: calc(100% - #{$modal-dialog-margin * 2});
|
|
76
|
+
|
|
77
|
+
// Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
|
|
78
|
+
&::before {
|
|
79
|
+
display: block; // IE10
|
|
80
|
+
height: calc(100vh - #{$modal-dialog-margin * 2});
|
|
81
|
+
content: "";
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Ensure `.modal-body` shows scrollbar (IE10/11)
|
|
85
|
+
&.modal-dialog-scrollable {
|
|
86
|
+
flex-direction: column;
|
|
87
|
+
justify-content: center;
|
|
88
|
+
height: 100%;
|
|
89
|
+
|
|
90
|
+
.modal-content {
|
|
91
|
+
max-height: none;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&::before {
|
|
95
|
+
content: none;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
57
98
|
}
|
|
58
99
|
|
|
59
100
|
// Actual modal
|
|
@@ -63,11 +104,12 @@
|
|
|
63
104
|
flex-direction: column;
|
|
64
105
|
width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
|
|
65
106
|
// counteract the pointer-events: none; in the .modal-dialog
|
|
107
|
+
color: $modal-content-color;
|
|
66
108
|
pointer-events: auto;
|
|
67
109
|
background-color: $modal-content-bg;
|
|
68
110
|
background-clip: padding-box;
|
|
69
111
|
border: $modal-content-border-width solid $modal-content-border-color;
|
|
70
|
-
@include border-radius($border-radius
|
|
112
|
+
@include border-radius($modal-content-border-radius);
|
|
71
113
|
@include box-shadow($modal-content-box-shadow-xs);
|
|
72
114
|
// Remove focus outline from opened modal
|
|
73
115
|
outline: 0;
|
|
@@ -77,10 +119,10 @@
|
|
|
77
119
|
.modal-backdrop {
|
|
78
120
|
position: fixed;
|
|
79
121
|
top: 0;
|
|
80
|
-
right: 0;
|
|
81
|
-
bottom: 0;
|
|
82
122
|
left: 0;
|
|
83
123
|
z-index: $zindex-modal-backdrop;
|
|
124
|
+
width: 100vw;
|
|
125
|
+
height: 100vh;
|
|
84
126
|
background-color: $modal-backdrop-bg;
|
|
85
127
|
|
|
86
128
|
// Fade for backdrop
|
|
@@ -96,12 +138,12 @@
|
|
|
96
138
|
justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
|
|
97
139
|
padding: $modal-header-padding;
|
|
98
140
|
border-bottom: $modal-header-border-width solid $modal-header-border-color;
|
|
99
|
-
@include border-top-radius($border-radius
|
|
141
|
+
@include border-top-radius($modal-content-border-radius);
|
|
100
142
|
|
|
101
143
|
.close {
|
|
102
144
|
padding: $modal-header-padding;
|
|
103
145
|
// auto on the left force icon to the right even when there is no .modal-title
|
|
104
|
-
margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;
|
|
146
|
+
margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;
|
|
105
147
|
}
|
|
106
148
|
}
|
|
107
149
|
|
|
@@ -128,6 +170,7 @@
|
|
|
128
170
|
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
|
|
129
171
|
padding: $modal-inner-padding;
|
|
130
172
|
border-top: $modal-footer-border-width solid $modal-footer-border-color;
|
|
173
|
+
@include border-bottom-radius($modal-content-border-radius);
|
|
131
174
|
|
|
132
175
|
// Easily place margin between footer elements
|
|
133
176
|
> :not(:first-child) { margin-left: .25rem; }
|
|
@@ -151,8 +194,20 @@
|
|
|
151
194
|
margin: $modal-dialog-margin-y-sm-up auto;
|
|
152
195
|
}
|
|
153
196
|
|
|
197
|
+
.modal-dialog-scrollable {
|
|
198
|
+
max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
|
|
199
|
+
|
|
200
|
+
.modal-content {
|
|
201
|
+
max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
154
205
|
.modal-dialog-centered {
|
|
155
|
-
min-height: calc(100% -
|
|
206
|
+
min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
|
|
207
|
+
|
|
208
|
+
&::before {
|
|
209
|
+
height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
|
|
210
|
+
}
|
|
156
211
|
}
|
|
157
212
|
|
|
158
213
|
.modal-content {
|
|
@@ -160,9 +215,15 @@
|
|
|
160
215
|
}
|
|
161
216
|
|
|
162
217
|
.modal-sm { max-width: $modal-sm; }
|
|
163
|
-
|
|
164
218
|
}
|
|
165
219
|
|
|
166
220
|
@include media-breakpoint-up(lg) {
|
|
167
|
-
.modal-lg
|
|
221
|
+
.modal-lg,
|
|
222
|
+
.modal-xl {
|
|
223
|
+
max-width: $modal-lg;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@include media-breakpoint-up(xl) {
|
|
228
|
+
.modal-xl { max-width: $modal-xl; }
|
|
168
229
|
}
|