bootstrap 4.3.0 → 5.0.0.alpha1

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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +1 -1
  5. data/assets/javascripts/bootstrap-sprockets.js +5 -1
  6. data/assets/javascripts/bootstrap.js +2292 -1514
  7. data/assets/javascripts/bootstrap.min.js +4 -4
  8. data/assets/javascripts/bootstrap/alert.js +148 -85
  9. data/assets/javascripts/bootstrap/button.js +69 -110
  10. data/assets/javascripts/bootstrap/carousel.js +320 -239
  11. data/assets/javascripts/bootstrap/collapse.js +300 -177
  12. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  13. data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
  14. data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
  15. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  16. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  17. data/assets/javascripts/bootstrap/dropdown.js +282 -265
  18. data/assets/javascripts/bootstrap/modal.js +348 -231
  19. data/assets/javascripts/bootstrap/popover.js +80 -105
  20. data/assets/javascripts/bootstrap/scrollspy.js +173 -138
  21. data/assets/javascripts/bootstrap/tab.js +180 -115
  22. data/assets/javascripts/bootstrap/toast.js +188 -132
  23. data/assets/javascripts/bootstrap/tooltip.js +508 -230
  24. data/assets/stylesheets/_bootstrap-grid.scss +54 -18
  25. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  26. data/assets/stylesheets/_bootstrap.scss +17 -11
  27. data/assets/stylesheets/bootstrap/_alert.scss +3 -3
  28. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  29. data/assets/stylesheets/bootstrap/_breadcrumb.scss +7 -18
  30. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  31. data/assets/stylesheets/bootstrap/_buttons.scss +26 -39
  32. data/assets/stylesheets/bootstrap/_card.scss +48 -97
  33. data/assets/stylesheets/bootstrap/_carousel.scss +16 -18
  34. data/assets/stylesheets/bootstrap/_close.scss +9 -14
  35. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  36. data/assets/stylesheets/bootstrap/_dropdown.scss +13 -9
  37. data/assets/stylesheets/bootstrap/_forms.scss +9 -330
  38. data/assets/stylesheets/bootstrap/_functions.scss +141 -24
  39. data/assets/stylesheets/bootstrap/_grid.scss +4 -34
  40. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  41. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  42. data/assets/stylesheets/bootstrap/_list-group.scss +41 -33
  43. data/assets/stylesheets/bootstrap/_mixins.scss +9 -15
  44. data/assets/stylesheets/bootstrap/_modal.scss +54 -48
  45. data/assets/stylesheets/bootstrap/_nav.scss +12 -9
  46. data/assets/stylesheets/bootstrap/_navbar.scss +54 -56
  47. data/assets/stylesheets/bootstrap/_pagination.scss +10 -22
  48. data/assets/stylesheets/bootstrap/_popover.scss +13 -14
  49. data/assets/stylesheets/bootstrap/_progress.scss +6 -4
  50. data/assets/stylesheets/bootstrap/_reboot.scss +318 -185
  51. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  52. data/assets/stylesheets/bootstrap/_spinners.scss +3 -2
  53. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  54. data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
  55. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  56. data/assets/stylesheets/bootstrap/_type.scss +40 -61
  57. data/assets/stylesheets/bootstrap/_utilities.scss +503 -17
  58. data/assets/stylesheets/bootstrap/_variables.scss +567 -430
  59. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
  65. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  66. data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
  67. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  68. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  69. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  70. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  71. data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
  72. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  73. data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
  74. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  75. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  76. data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
  77. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
  78. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
  79. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +68 -50
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  81. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  82. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  83. data/assets/stylesheets/bootstrap/mixins/_forms.scss +47 -106
  84. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  85. data/assets/stylesheets/bootstrap/mixins/_grid.scss +99 -29
  86. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  87. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
  88. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  89. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  90. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +14 -19
  91. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  92. data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
  93. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  94. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  95. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +230 -130
  96. data/bootstrap.gemspec +1 -1
  97. data/lib/bootstrap/version.rb +2 -2
  98. data/tasks/updater/js.rb +3 -3
  99. data/tasks/updater/network.rb +2 -2
  100. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  101. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  102. data/test/gemfiles/rails_6_0.gemfile +7 -0
  103. data/test/support/dummy_rails_integration.rb +3 -1
  104. data/test/test_helper.rb +18 -13
  105. metadata +40 -42
  106. data/assets/javascripts/bootstrap/util.js +0 -171
  107. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  108. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -507
  109. data/assets/stylesheets/bootstrap/_input-group.scss +0 -193
  110. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  111. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  112. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  113. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  114. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  115. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  116. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -66
  117. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  118. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  119. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  120. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  121. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -16
  122. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  123. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  124. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  125. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  126. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  127. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  128. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  129. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  130. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  131. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  132. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  133. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  134. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  135. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  136. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  137. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  138. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  139. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,48 +1,18 @@
1
- // Container widths
2
- //
3
- // Set the container width, and override it for fixed navbars in media queries.
4
-
5
- @if $enable-grid-classes {
6
- .container {
7
- @include make-container();
8
- @include make-container-max-widths();
9
- }
10
- }
11
-
12
- // Fluid container
13
- //
14
- // Utilizes the mixin meant for fixed width containers, but with 100% width for
15
- // fluid, full width layouts.
16
-
17
- @if $enable-grid-classes {
18
- .container-fluid {
19
- @include make-container();
20
- }
21
- }
22
-
23
1
  // Row
24
2
  //
25
- // Rows contain and clear the floats of your columns.
3
+ // Rows contain your columns.
26
4
 
27
5
  @if $enable-grid-classes {
28
6
  .row {
29
7
  @include make-row();
30
- }
31
-
32
- // Remove the negative margin from default .row, then the horizontal padding
33
- // from all immediate children columns (to prevent runaway style inheritance).
34
- .no-gutters {
35
- margin-right: 0;
36
- margin-left: 0;
37
8
 
38
- > .col,
39
- > [class*="col-"] {
40
- padding-right: 0;
41
- padding-left: 0;
9
+ > * {
10
+ @include make-col-ready();
42
11
  }
43
12
  }
44
13
  }
45
14
 
15
+
46
16
  // Columns
47
17
  //
48
18
  // Common styles for small and large grid columns
@@ -0,0 +1,7 @@
1
+ @import "helpers/clearfix";
2
+ @import "helpers/colored-links";
3
+ @import "helpers/embed";
4
+ @import "helpers/position";
5
+ @import "helpers/screenreaders";
6
+ @import "helpers/stretched-link";
7
+ @import "helpers/text-truncation";
@@ -6,7 +6,7 @@
6
6
  // which weren't expecting the images within themselves to be involuntarily resized.
7
7
  // See also https://github.com/twbs/bootstrap/issues/18178
8
8
  .img-fluid {
9
- @include img-fluid;
9
+ @include img-fluid();
10
10
  }
11
11
 
12
12
 
@@ -19,7 +19,7 @@
19
19
  @include box-shadow($thumbnail-box-shadow);
20
20
 
21
21
  // Keep them at most 100% wide
22
- @include img-fluid;
22
+ @include img-fluid();
23
23
  }
24
24
 
25
25
  //
@@ -9,6 +9,7 @@
9
9
  // No need to set list-style: none; since .list-group-item is block level
10
10
  padding-left: 0; // reset padding because ul and ol
11
11
  margin-bottom: 0;
12
+ @include border-radius($list-group-border-radius);
12
13
  }
13
14
 
14
15
 
@@ -23,7 +24,8 @@
23
24
  text-align: inherit; // For `<button>`s (anchors inherit)
24
25
 
25
26
  // Hover state
26
- @include hover-focus {
27
+ &:hover,
28
+ &:focus {
27
29
  z-index: 1; // Place hover/focus items above their siblings for proper border styling
28
30
  color: $list-group-action-hover-color;
29
31
  text-decoration: none;
@@ -45,19 +47,17 @@
45
47
  position: relative;
46
48
  display: block;
47
49
  padding: $list-group-item-padding-y $list-group-item-padding-x;
48
- // Place the border on the list items and negative margin up for better styling
49
- margin-bottom: -$list-group-border-width;
50
50
  color: $list-group-color;
51
+ text-decoration: if($link-decoration == none, null, none);
51
52
  background-color: $list-group-bg;
52
53
  border: $list-group-border-width solid $list-group-border-color;
53
54
 
54
55
  &:first-child {
55
- @include border-top-radius($list-group-border-radius);
56
+ @include border-top-radius(inherit);
56
57
  }
57
58
 
58
59
  &:last-child {
59
- margin-bottom: 0;
60
- @include border-bottom-radius($list-group-border-radius);
60
+ @include border-bottom-radius(inherit);
61
61
  }
62
62
 
63
63
  &.disabled,
@@ -74,6 +74,15 @@
74
74
  background-color: $list-group-active-bg;
75
75
  border-color: $list-group-active-border-color;
76
76
  }
77
+
78
+ & + & {
79
+ border-top-width: 0;
80
+
81
+ &.active {
82
+ margin-top: -$list-group-border-width;
83
+ border-top-width: $list-group-border-width;
84
+ }
85
+ }
77
86
  }
78
87
 
79
88
 
@@ -88,20 +97,30 @@
88
97
  .list-group-horizontal#{$infix} {
89
98
  flex-direction: row;
90
99
 
91
- .list-group-item {
92
- margin-right: -$list-group-border-width;
93
- margin-bottom: 0;
94
-
100
+ > .list-group-item {
95
101
  &:first-child {
96
- @include border-left-radius($list-group-border-radius);
102
+ @include border-bottom-left-radius($list-group-border-radius);
97
103
  @include border-top-right-radius(0);
98
104
  }
99
105
 
100
106
  &:last-child {
101
- margin-right: 0;
102
- @include border-right-radius($list-group-border-radius);
107
+ @include border-top-right-radius($list-group-border-radius);
103
108
  @include border-bottom-left-radius(0);
104
109
  }
110
+
111
+ &.active {
112
+ margin-top: 0;
113
+ }
114
+
115
+ & + .list-group-item {
116
+ border-top-width: $list-group-border-width;
117
+ border-left-width: 0;
118
+
119
+ &.active {
120
+ margin-left: -$list-group-border-width;
121
+ border-left-width: $list-group-border-width;
122
+ }
123
+ }
105
124
  }
106
125
  }
107
126
  }
@@ -114,36 +133,25 @@
114
133
  // useful within other components (e.g., cards).
115
134
 
116
135
  .list-group-flush {
117
- .list-group-item {
118
- border-right: 0;
119
- border-left: 0;
120
- @include border-radius(0);
136
+ @include border-radius(0);
121
137
 
122
- &:last-child {
123
- margin-bottom: -$list-group-border-width;
124
- }
125
- }
138
+ > .list-group-item {
139
+ border-width: 0 0 $list-group-border-width;
126
140
 
127
- &:first-child {
128
- .list-group-item:first-child {
129
- border-top: 0;
130
- }
131
- }
132
-
133
- &:last-child {
134
- .list-group-item:last-child {
135
- margin-bottom: 0;
136
- border-bottom: 0;
141
+ &:last-child {
142
+ border-bottom-width: 0;
137
143
  }
138
144
  }
139
145
  }
140
146
 
141
147
 
142
- // Contextual variants
148
+ // scss-docs-start list-group-modifiers
149
+ // List group contextual variants
143
150
  //
144
151
  // Add modifier classes to change text and background color on individual items.
145
152
  // Organizationally, this must come after the `:hover` states.
146
153
 
147
154
  @each $color, $value in $theme-colors {
148
- @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));
155
+ @include list-group-item-variant($color, color-level($value, $list-group-item-bg-level), color-level($value, $list-group-item-color-level));
149
156
  }
157
+ // scss-docs-end list-group-modifiers
@@ -8,40 +8,34 @@
8
8
  // Deprecate
9
9
  @import "mixins/deprecate";
10
10
 
11
- // Utilities
11
+ // Helpers
12
12
  @import "mixins/breakpoints";
13
- @import "mixins/hover";
14
13
  @import "mixins/image";
15
- @import "mixins/badge";
16
14
  @import "mixins/resize";
17
15
  @import "mixins/screen-reader";
18
- @import "mixins/size";
19
16
  @import "mixins/reset-text";
20
- @import "mixins/text-emphasis";
21
- @import "mixins/text-hide";
22
17
  @import "mixins/text-truncate";
23
- @import "mixins/visibility";
24
18
 
25
- // // Components
19
+ // Utilities
20
+ @import "mixins/utilities";
21
+
22
+ // Components
26
23
  @import "mixins/alert";
27
24
  @import "mixins/buttons";
28
25
  @import "mixins/caret";
29
26
  @import "mixins/pagination";
30
27
  @import "mixins/lists";
31
28
  @import "mixins/list-group";
32
- @import "mixins/nav-divider";
33
29
  @import "mixins/forms";
34
- @import "mixins/table-row";
30
+ @import "mixins/table-variants";
35
31
 
36
- // // Skins
37
- @import "mixins/background-variant";
32
+ // Skins
38
33
  @import "mixins/border-radius";
39
34
  @import "mixins/box-shadow";
40
35
  @import "mixins/gradients";
41
36
  @import "mixins/transition";
42
37
 
43
- // // Layout
38
+ // Layout
44
39
  @import "mixins/clearfix";
45
- @import "mixins/grid-framework";
40
+ @import "mixins/container";
46
41
  @import "mixins/grid";
47
- @import "mixins/float";
@@ -48,22 +48,20 @@
48
48
  .modal.show & {
49
49
  transform: $modal-show-transform;
50
50
  }
51
+
52
+ // When trying to close, animate focus to scale
53
+ .modal.modal-static & {
54
+ transform: $modal-scale-transform;
55
+ }
51
56
  }
52
57
 
53
58
  .modal-dialog-scrollable {
54
- display: flex; // IE10/11
55
- max-height: calc(100% - #{$modal-dialog-margin * 2});
59
+ max-height: subtract(100%, $modal-dialog-margin * 2);
56
60
 
57
61
  .modal-content {
58
- max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11
59
62
  overflow: hidden;
60
63
  }
61
64
 
62
- .modal-header,
63
- .modal-footer {
64
- flex-shrink: 0;
65
- }
66
-
67
65
  .modal-body {
68
66
  overflow-y: auto;
69
67
  }
@@ -72,29 +70,7 @@
72
70
  .modal-dialog-centered {
73
71
  display: flex;
74
72
  align-items: center;
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
- }
73
+ min-height: subtract(100%, $modal-dialog-margin * 2);
98
74
  }
99
75
 
100
76
  // Actual modal
@@ -134,11 +110,12 @@
134
110
  // Top section of the modal w/ title and dismiss
135
111
  .modal-header {
136
112
  display: flex;
113
+ flex-shrink: 0;
137
114
  align-items: flex-start; // so the close btn always stays on the upper right corner
138
115
  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
139
116
  padding: $modal-header-padding;
140
117
  border-bottom: $modal-header-border-width solid $modal-header-border-color;
141
- @include border-top-radius($modal-content-border-radius);
118
+ @include border-top-radius($modal-content-inner-border-radius);
142
119
 
143
120
  .close {
144
121
  padding: $modal-header-padding;
@@ -158,7 +135,7 @@
158
135
  .modal-body {
159
136
  position: relative;
160
137
  // Enable `flex-grow: 1` so that the body take up as much space as possible
161
- // when should there be a fixed height on `.modal-dialog`.
138
+ // when there should be a fixed height on `.modal-dialog`.
162
139
  flex: 1 1 auto;
163
140
  padding: $modal-inner-padding;
164
141
  }
@@ -166,15 +143,20 @@
166
143
  // Footer (for actions)
167
144
  .modal-footer {
168
145
  display: flex;
146
+ flex-wrap: wrap;
147
+ flex-shrink: 0;
169
148
  align-items: center; // vertically center
170
149
  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
171
- padding: $modal-inner-padding;
150
+ padding: $modal-inner-padding - $modal-footer-margin-between / 2;
172
151
  border-top: $modal-footer-border-width solid $modal-footer-border-color;
173
- @include border-bottom-radius($modal-content-border-radius);
152
+ @include border-bottom-radius($modal-content-inner-border-radius);
174
153
 
175
- // Easily place margin between footer elements
176
- > :not(:first-child) { margin-left: .25rem; }
177
- > :not(:last-child) { margin-right: .25rem; }
154
+ // Place margin between footer elements
155
+ // This solution is far from ideal because of the universal selector usage,
156
+ // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
157
+ > * {
158
+ margin: $modal-footer-margin-between / 2;
159
+ }
178
160
  }
179
161
 
180
162
  // Measure scrollbar width for padding body during modal show/hide
@@ -195,19 +177,11 @@
195
177
  }
196
178
 
197
179
  .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
- }
180
+ max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
203
181
  }
204
182
 
205
183
  .modal-dialog-centered {
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
- }
184
+ min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
211
185
  }
212
186
 
213
187
  .modal-content {
@@ -227,3 +201,35 @@
227
201
  @include media-breakpoint-up(xl) {
228
202
  .modal-xl { max-width: $modal-xl; }
229
203
  }
204
+
205
+ @each $breakpoint in map-keys($grid-breakpoints) {
206
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
207
+ $postfix: if($infix != "", $infix + "-down", "");
208
+
209
+ @include media-breakpoint-down($breakpoint) {
210
+ .modal-fullscreen#{$postfix} {
211
+ width: 100vw;
212
+ max-width: none;
213
+ height: 100%;
214
+ margin: 0;
215
+
216
+ .modal-content {
217
+ height: 100%;
218
+ border: 0;
219
+ @include border-radius(0);
220
+ }
221
+
222
+ .modal-header {
223
+ @include border-radius(0);
224
+ }
225
+
226
+ .modal-body {
227
+ overflow-y: auto;
228
+ }
229
+
230
+ .modal-footer {
231
+ @include border-radius(0);
232
+ }
233
+ }
234
+ }
235
+ }
@@ -1,7 +1,7 @@
1
1
  // Base class
2
2
  //
3
3
  // Kickstart any navigation component with a set of style resets. Works with
4
- // `<nav>`s or `<ul>`s.
4
+ // `<nav>`s, `<ul>`s or `<ol>`s.
5
5
 
6
6
  .nav {
7
7
  display: flex;
@@ -14,9 +14,12 @@
14
14
  .nav-link {
15
15
  display: block;
16
16
  padding: $nav-link-padding-y $nav-link-padding-x;
17
+ text-decoration: if($link-decoration == none, null, none);
18
+ @include transition($nav-link-transition);
17
19
 
18
- @include hover-focus {
19
- text-decoration: none;
20
+ &:hover,
21
+ &:focus {
22
+ text-decoration: if($link-hover-decoration == underline, none, null);
20
23
  }
21
24
 
22
25
  // Disabled state lightens text
@@ -34,15 +37,13 @@
34
37
  .nav-tabs {
35
38
  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
36
39
 
37
- .nav-item {
38
- margin-bottom: -$nav-tabs-border-width;
39
- }
40
-
41
40
  .nav-link {
41
+ margin-bottom: -$nav-tabs-border-width;
42
42
  border: $nav-tabs-border-width solid transparent;
43
43
  @include border-top-radius($nav-tabs-border-radius);
44
44
 
45
- @include hover-focus {
45
+ &:hover,
46
+ &:focus {
46
47
  border-color: $nav-tabs-link-hover-border-color;
47
48
  }
48
49
 
@@ -81,7 +82,7 @@
81
82
  .nav-link.active,
82
83
  .show > .nav-link {
83
84
  color: $nav-pills-link-active-color;
84
- background-color: $nav-pills-link-active-bg;
85
+ @include gradient-bg($nav-pills-link-active-bg);
85
86
  }
86
87
  }
87
88
 
@@ -91,6 +92,7 @@
91
92
  //
92
93
 
93
94
  .nav-fill {
95
+ > .nav-link,
94
96
  .nav-item {
95
97
  flex: 1 1 auto;
96
98
  text-align: center;
@@ -98,6 +100,7 @@
98
100
  }
99
101
 
100
102
  .nav-justified {
103
+ > .nav-link,
101
104
  .nav-item {
102
105
  flex-basis: 0;
103
106
  flex-grow: 1;