bootstrap 4.0.0.alpha5 → 4.0.0.alpha6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -4
  3. data/assets/javascripts/bootstrap.js +312 -207
  4. data/assets/javascripts/bootstrap.min.js +4 -4
  5. data/assets/javascripts/bootstrap/alert.js +9 -5
  6. data/assets/javascripts/bootstrap/button.js +5 -5
  7. data/assets/javascripts/bootstrap/carousel.js +52 -28
  8. data/assets/javascripts/bootstrap/collapse.js +19 -11
  9. data/assets/javascripts/bootstrap/dropdown.js +21 -19
  10. data/assets/javascripts/bootstrap/modal.js +69 -43
  11. data/assets/javascripts/bootstrap/popover.js +4 -4
  12. data/assets/javascripts/bootstrap/scrollspy.js +20 -11
  13. data/assets/javascripts/bootstrap/tab.js +19 -14
  14. data/assets/javascripts/bootstrap/tooltip.js +54 -22
  15. data/assets/javascripts/bootstrap/util.js +7 -12
  16. data/assets/stylesheets/_bootstrap-grid.scss +23 -3
  17. data/assets/stylesheets/_bootstrap-reboot.scss +2 -3
  18. data/assets/stylesheets/_bootstrap.scss +6 -6
  19. data/assets/stylesheets/bootstrap/_alert.scss +3 -4
  20. data/assets/stylesheets/bootstrap/_badge.scss +77 -0
  21. data/assets/stylesheets/bootstrap/_button-group.scss +18 -51
  22. data/assets/stylesheets/bootstrap/_buttons.scss +14 -20
  23. data/assets/stylesheets/bootstrap/_card.scss +30 -76
  24. data/assets/stylesheets/bootstrap/_carousel.scss +96 -171
  25. data/assets/stylesheets/bootstrap/_close.scss +3 -3
  26. data/assets/stylesheets/bootstrap/_code.scss +7 -0
  27. data/assets/stylesheets/bootstrap/_custom-forms.scss +13 -12
  28. data/assets/stylesheets/bootstrap/_dropdown.scss +17 -36
  29. data/assets/stylesheets/bootstrap/_forms.scss +61 -47
  30. data/assets/stylesheets/bootstrap/_grid.scss +13 -0
  31. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  32. data/assets/stylesheets/bootstrap/_input-group.scss +17 -27
  33. data/assets/stylesheets/bootstrap/_list-group.scss +79 -63
  34. data/assets/stylesheets/bootstrap/_media.scss +5 -78
  35. data/assets/stylesheets/bootstrap/_mixins.scss +8 -5
  36. data/assets/stylesheets/bootstrap/_modal.scss +21 -13
  37. data/assets/stylesheets/bootstrap/_nav.scss +30 -68
  38. data/assets/stylesheets/bootstrap/_navbar.scss +131 -178
  39. data/assets/stylesheets/bootstrap/_normalize.scss +133 -94
  40. data/assets/stylesheets/bootstrap/_pagination.scss +16 -22
  41. data/assets/stylesheets/bootstrap/_popover.scss +3 -3
  42. data/assets/stylesheets/bootstrap/_print.scss +5 -8
  43. data/assets/stylesheets/bootstrap/_progress.scss +14 -127
  44. data/assets/stylesheets/bootstrap/_reboot.scss +16 -15
  45. data/assets/stylesheets/bootstrap/_responsive-embed.scss +18 -5
  46. data/assets/stylesheets/bootstrap/_tables.scss +13 -56
  47. data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
  48. data/assets/stylesheets/bootstrap/{_animation.scss → _transitions.scss} +6 -8
  49. data/assets/stylesheets/bootstrap/_type.scss +5 -12
  50. data/assets/stylesheets/bootstrap/_utilities.scss +2 -0
  51. data/assets/stylesheets/bootstrap/_variables.scss +320 -216
  52. data/assets/stylesheets/bootstrap/mixins/{_tag.scss → _badge.scss} +2 -2
  53. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +25 -16
  54. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +31 -58
  55. data/assets/stylesheets/bootstrap/mixins/_cards.scss +3 -0
  56. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +1 -1
  57. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -0
  58. data/assets/stylesheets/bootstrap/mixins/_forms.scss +3 -5
  59. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -7
  60. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +19 -23
  61. data/assets/stylesheets/bootstrap/mixins/_grid.scss +19 -26
  62. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -5
  63. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  64. data/assets/stylesheets/bootstrap/mixins/_transforms.scss +14 -0
  65. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +5 -0
  66. data/assets/stylesheets/bootstrap/utilities/_align.scss +5 -5
  67. data/assets/stylesheets/bootstrap/utilities/_background.scss +1 -1
  68. data/assets/stylesheets/bootstrap/utilities/_borders.scss +10 -3
  69. data/assets/stylesheets/bootstrap/utilities/_display.scss +13 -8
  70. data/assets/stylesheets/bootstrap/utilities/_flex.scss +42 -31
  71. data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -9
  72. data/assets/stylesheets/bootstrap/utilities/_position.scss +23 -0
  73. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +10 -0
  74. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +36 -37
  75. data/assets/stylesheets/bootstrap/utilities/_text.scss +14 -12
  76. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +1 -1
  77. data/lib/bootstrap/version.rb +2 -2
  78. data/tasks/updater/scss.rb +3 -5
  79. data/templates/project/_bootstrap-variables.scss +321 -217
  80. metadata +10 -10
  81. data/assets/stylesheets/_bootstrap-flex.scss +0 -8
  82. data/assets/stylesheets/bootstrap/_tags.scss +0 -77
  83. data/assets/stylesheets/bootstrap/mixins/_progress.scss +0 -23
  84. data/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +0 -8
  85. data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +0 -9
@@ -4,13 +4,15 @@
4
4
  // `<nav>`s or `<ul>`s.
5
5
 
6
6
  .nav {
7
+ display: flex;
7
8
  padding-left: 0;
8
9
  margin-bottom: 0;
9
10
  list-style: none;
10
11
  }
11
12
 
12
13
  .nav-link {
13
- display: inline-block;
14
+ display: block;
15
+ padding: $nav-link-padding;
14
16
 
15
17
  @include hover-focus {
16
18
  text-decoration: none;
@@ -19,26 +21,7 @@
19
21
  // Disabled state lightens text and removes hover/tab effects
20
22
  &.disabled {
21
23
  color: $nav-disabled-link-color;
22
-
23
- @include plain-hover-focus {
24
- color: $nav-disabled-link-hover-color;
25
- cursor: $cursor-disabled;
26
- background-color: $nav-disabled-link-hover-bg;
27
- }
28
- }
29
- }
30
-
31
-
32
- // Nav inline
33
-
34
- .nav-inline {
35
- .nav-item {
36
- display: inline-block;
37
- }
38
-
39
- .nav-item + .nav-item,
40
- .nav-link + .nav-link {
41
- margin-left: $nav-item-inline-spacer;
24
+ cursor: $cursor-disabled;
42
25
  }
43
26
  }
44
27
 
@@ -49,21 +32,12 @@
49
32
 
50
33
  .nav-tabs {
51
34
  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
52
- @include clearfix();
53
35
 
54
36
  .nav-item {
55
- float: left;
56
- // Make the list-items overlay the bottom border
57
37
  margin-bottom: -$nav-tabs-border-width;
58
-
59
- + .nav-item {
60
- margin-left: $nav-item-margin;
61
- }
62
38
  }
63
39
 
64
40
  .nav-link {
65
- display: block;
66
- padding: $nav-link-padding;
67
41
  border: $nav-tabs-border-width solid transparent;
68
42
  @include border-top-radius($nav-tabs-border-radius);
69
43
 
@@ -72,21 +46,17 @@
72
46
  }
73
47
 
74
48
  &.disabled {
75
- @include plain-hover-focus {
76
- color: $nav-disabled-link-color;
77
- background-color: transparent;
78
- border-color: transparent;
79
- }
49
+ color: $nav-disabled-link-color;
50
+ background-color: transparent;
51
+ border-color: transparent;
80
52
  }
81
53
  }
82
54
 
83
55
  .nav-link.active,
84
- .nav-item.open .nav-link {
85
- @include plain-hover-focus {
86
- color: $nav-tabs-active-link-hover-color;
87
- background-color: $nav-tabs-active-link-hover-bg;
88
- border-color: $nav-tabs-active-link-hover-border-color $nav-tabs-active-link-hover-border-color transparent;
89
- }
56
+ .nav-item.show .nav-link {
57
+ color: $nav-tabs-active-link-hover-color;
58
+ background-color: $nav-tabs-active-link-hover-bg;
59
+ border-color: $nav-tabs-active-link-hover-border-color $nav-tabs-active-link-hover-border-color $nav-tabs-active-link-hover-bg;
90
60
  }
91
61
 
92
62
  .dropdown-menu {
@@ -103,50 +73,42 @@
103
73
  //
104
74
 
105
75
  .nav-pills {
106
- @include clearfix();
107
-
108
- .nav-item {
109
- float: left;
110
-
111
- + .nav-item {
112
- margin-left: $nav-item-margin;
113
- }
114
- }
115
-
116
76
  .nav-link {
117
- display: block;
118
- padding: $nav-link-padding;
119
77
  @include border-radius($nav-pills-border-radius);
120
78
  }
121
79
 
122
80
  .nav-link.active,
123
- .nav-item.open .nav-link {
124
- @include plain-hover-focus {
125
- color: $nav-pills-active-link-color;
126
- cursor: default;
127
- background-color: $nav-pills-active-link-bg;
128
- }
81
+ .nav-item.show .nav-link {
82
+ color: $nav-pills-active-link-color;
83
+ cursor: default;
84
+ background-color: $nav-pills-active-link-bg;
129
85
  }
130
86
  }
131
87
 
132
- .nav-stacked {
88
+
89
+ //
90
+ // Justified variants
91
+ //
92
+
93
+ .nav-fill {
133
94
  .nav-item {
134
- display: block;
135
- float: none;
95
+ flex: 1 1 auto;
96
+ text-align: center;
97
+ }
98
+ }
136
99
 
137
- + .nav-item {
138
- margin-top: $nav-item-margin;
139
- margin-left: 0;
140
- }
100
+ .nav-justified {
101
+ .nav-item {
102
+ flex: 1 1 100%;
103
+ text-align: center;
141
104
  }
142
105
  }
143
106
 
144
107
 
145
- //
146
108
  // Tabbable tabs
147
109
  //
148
-
149
110
  // Hide tabbable panes to start, show them when `.active`
111
+
150
112
  .tab-content {
151
113
  > .tab-pane {
152
114
  display: none;
@@ -1,79 +1,40 @@
1
- // Wrapper and base class
1
+ // Contents
2
+ //
3
+ // Navbar
4
+ // Navbar brand
5
+ // Navbar nav
6
+ // Navbar text
7
+ // Navbar divider
8
+ // Responsive navbar
9
+ // Navbar position
10
+ // Navbar themes
11
+
12
+
13
+ // Navbar
2
14
  //
3
15
  // Provide a static navbar from which we expand to create full-width, fixed, and
4
16
  // other navbar variations.
5
17
 
6
18
  .navbar {
7
19
  position: relative;
20
+ display: flex;
21
+ flex-direction: column;
8
22
  padding: $navbar-padding-y $navbar-padding-x;
9
- @include clearfix;
10
-
11
- @include media-breakpoint-up(sm) {
12
- @include border-radius($navbar-border-radius);
13
- }
14
23
  }
15
24
 
16
25
 
17
- // Navbar alignment options
18
- //
19
- // Display the navbar across the entirety of the page or fixed it to the top or
20
- // bottom of the page.
21
-
22
- // A static, full width modifier with no rounded corners.
23
- .navbar-full {
24
- z-index: $zindex-navbar;
25
-
26
- @include media-breakpoint-up(sm) {
27
- @include border-radius(0);
28
- }
29
- }
30
-
31
- // Fix the top/bottom navbars when screen real estate supports it
32
- .navbar-fixed-top,
33
- .navbar-fixed-bottom {
34
- position: fixed;
35
- right: 0;
36
- left: 0;
37
- z-index: $zindex-navbar-fixed;
38
-
39
- // Undo the rounded corners
40
- @include media-breakpoint-up(sm) {
41
- @include border-radius(0);
42
- }
43
- }
44
-
45
- .navbar-fixed-top {
46
- top: 0;
47
- }
48
-
49
- .navbar-fixed-bottom {
50
- bottom: 0;
51
- }
52
-
53
- .navbar-sticky-top {
54
- position: sticky;
55
- top: 0;
56
- z-index: $zindex-navbar-sticky;
57
- width: 100%;
58
-
59
- // Undo the rounded corners
60
- @include media-breakpoint-up(sm) {
61
- @include border-radius(0);
62
- }
63
- }
64
-
65
-
66
- //
67
- // Brand/project name
26
+ // Navbar brand
68
27
  //
28
+ // Used for brand, project, or site names.
69
29
 
70
30
  .navbar-brand {
71
- float: left;
72
- padding-top: $navbar-brand-padding-y;
73
- padding-bottom: $navbar-brand-padding-y;
74
- margin-right: 1rem;
31
+ display: inline-block;
32
+ padding-top: .25rem;
33
+ padding-bottom: .25rem;
34
+ margin-right: $navbar-padding-x;
75
35
  font-size: $font-size-lg;
76
36
  line-height: inherit;
37
+ white-space: nowrap;
77
38
 
78
39
  @include hover-focus {
79
40
  text-decoration: none;
@@ -81,17 +42,20 @@
81
42
  }
82
43
 
83
44
 
84
- .navbar-divider {
85
- float: left;
86
- width: $border-width;
87
- padding-top: $navbar-divider-padding-y;
88
- padding-bottom: $navbar-divider-padding-y;
89
- margin-right: $navbar-padding-x;
90
- margin-left: $navbar-padding-x;
91
- overflow: hidden;
45
+ // Navbar nav
46
+ //
47
+ // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
48
+
49
+ .navbar-nav {
50
+ display: flex;
51
+ flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
52
+ padding-left: 0;
53
+ margin-bottom: 0;
54
+ list-style: none;
92
55
 
93
- &::before {
94
- content: "\00a0";
56
+ .nav-link {
57
+ padding-right: 0;
58
+ padding-left: 0;
95
59
  }
96
60
  }
97
61
 
@@ -107,20 +71,19 @@
107
71
  }
108
72
 
109
73
 
110
- // Navbar toggle
74
+ // Responsive navbar
111
75
  //
112
- // Custom button for toggling the `.navbar-collapse`, powered by the collapse
113
- // Bootstrap JavaScript plugin.
76
+ // Custom styles for responsive collapsing and toggling of navbar contents.
77
+ // Powered by the collapse Bootstrap JavaScript plugin.
114
78
 
79
+ // Button for toggling the navbar when in its collapsed state
115
80
  .navbar-toggler {
116
- width: 2.5em;
117
- height: 2em;
81
+ align-self: flex-start; // Prevent toggler from growing to full width when it's the only visible navbar child
118
82
  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
119
83
  font-size: $navbar-toggler-font-size;
120
84
  line-height: 1;
121
- background: transparent no-repeat center center;
122
- background-size: 24px 24px;
123
- border: $border-width solid transparent;
85
+ background: transparent; // remove default button style
86
+ border: $border-width solid transparent; // remove default button style
124
87
  @include border-radius($navbar-toggler-border-radius);
125
88
 
126
89
  @include hover-focus {
@@ -128,66 +91,92 @@
128
91
  }
129
92
  }
130
93
 
131
- // scss-lint:disable ImportantRule
94
+ // Keep as a separate element so folks can easily override it with another icon
95
+ // or image file as needed.
96
+ .navbar-toggler-icon {
97
+ display: inline-block;
98
+ width: 1.5em;
99
+ height: 1.5em;
100
+ vertical-align: middle;
101
+ content: "";
102
+ background: no-repeat center center;
103
+ background-size: 100% 100%;
104
+ }
105
+
106
+ // Use `position` on the toggler to prevent it from being auto placed as a flex
107
+ // item and allow easy placement.
108
+ .navbar-toggler-left {
109
+ position: absolute;
110
+ left: $navbar-padding-x;
111
+ }
112
+ .navbar-toggler-right {
113
+ position: absolute;
114
+ right: $navbar-padding-x;
115
+ }
116
+
117
+ // Generate series of `.navbar-toggleable-*` responsive classes for configuring
118
+ // where your navbar collapses.
132
119
  .navbar-toggleable {
133
120
  @each $breakpoint in map-keys($grid-breakpoints) {
134
121
  $next: breakpoint-next($breakpoint, $grid-breakpoints);
122
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
135
123
 
136
- &-#{$breakpoint} {
137
- @include clearfix;
138
-
124
+ &#{$infix} {
139
125
  @include media-breakpoint-down($breakpoint) {
140
- .navbar-brand {
141
- display: block;
142
- float: none;
143
- margin-top: .5rem;
144
- margin-right: 0;
145
- }
146
-
147
126
  .navbar-nav {
148
- margin-top: .5rem;
149
- margin-bottom: .5rem;
150
-
151
127
  .dropdown-menu {
152
128
  position: static;
153
129
  float: none;
154
130
  }
155
131
  }
132
+
133
+ > .container {
134
+ padding-right: 0;
135
+ padding-left: 0;
136
+ }
156
137
  }
157
138
 
158
139
  @include media-breakpoint-up($next) {
159
- display: block;
160
- }
161
- }
162
- }
163
- }
164
- // scss-lint:enable ImportantRule
140
+ flex-direction: row;
141
+ flex-wrap: nowrap;
142
+ align-items: center;
165
143
 
144
+ .navbar-nav {
145
+ flex-direction: row;
166
146
 
167
- // Navigation
168
- //
169
- // Custom navbar navigation built on the base `.nav` styles.
147
+ .nav-link {
148
+ padding-right: .5rem;
149
+ padding-left: .5rem;
150
+ }
151
+ }
170
152
 
171
- .navbar-nav {
172
- .nav-item {
173
- float: left;
174
- }
153
+ // For nesting containers, have to redeclare for alignment purposes
154
+ > .container {
155
+ display: flex;
156
+ flex-wrap: nowrap;
157
+ align-items: center;
158
+ }
175
159
 
176
- .nav-link {
177
- display: block;
178
- padding-top: .425rem;
179
- padding-bottom: .425rem;
160
+ // scss-lint:disable ImportantRule
161
+ .navbar-collapse {
162
+ display: flex !important;
163
+ width: 100%;
164
+ }
165
+ // scss-lint:enable ImportantRule
180
166
 
181
- + .nav-link {
182
- margin-left: 1rem;
167
+ .navbar-toggler {
168
+ display: none;
169
+ }
170
+ }
183
171
  }
184
172
  }
185
-
186
- .nav-item + .nav-item {
187
- margin-left: 1rem;
188
- }
189
173
  }
190
174
 
175
+
176
+ // Navbar themes
177
+ //
178
+ // Styles for switching between navbars with light or dark background.
179
+
191
180
  // Dark links against a light background
192
181
  .navbar-light {
193
182
  .navbar-brand,
@@ -206,45 +195,54 @@
206
195
  @include hover-focus {
207
196
  color: $navbar-light-hover-color;
208
197
  }
198
+
199
+ &.disabled {
200
+ color: $navbar-light-disabled-color;
201
+ }
209
202
  }
210
203
 
211
204
  .open > .nav-link,
212
205
  .active > .nav-link,
213
206
  .nav-link.open,
214
207
  .nav-link.active {
215
- @include plain-hover-focus {
216
- color: $navbar-light-active-color;
217
- }
208
+ color: $navbar-light-active-color;
218
209
  }
219
210
  }
220
211
 
221
212
  .navbar-toggler {
222
- background-image: $navbar-light-toggler-bg;
223
213
  border-color: $navbar-light-toggler-border;
224
214
  }
225
215
 
226
- .navbar-divider {
227
- background-color: rgba(0,0,0,.075);
216
+ .navbar-toggler-icon {
217
+ background-image: $navbar-light-toggler-bg;
218
+ }
219
+
220
+ .navbar-text {
221
+ color: $navbar-light-color;
228
222
  }
229
223
  }
230
224
 
231
225
  // White links against a dark background
232
- .navbar-dark {
226
+ .navbar-inverse {
233
227
  .navbar-brand,
234
228
  .navbar-toggler {
235
- color: $navbar-dark-active-color;
229
+ color: $navbar-inverse-active-color;
236
230
 
237
231
  @include hover-focus {
238
- color: $navbar-dark-active-color;
232
+ color: $navbar-inverse-active-color;
239
233
  }
240
234
  }
241
235
 
242
236
  .navbar-nav {
243
237
  .nav-link {
244
- color: $navbar-dark-color;
238
+ color: $navbar-inverse-color;
245
239
 
246
240
  @include hover-focus {
247
- color: $navbar-dark-hover-color;
241
+ color: $navbar-inverse-hover-color;
242
+ }
243
+
244
+ &.disabled {
245
+ color: $navbar-inverse-disabled-color;
248
246
  }
249
247
  }
250
248
 
@@ -252,64 +250,19 @@
252
250
  .active > .nav-link,
253
251
  .nav-link.open,
254
252
  .nav-link.active {
255
- @include plain-hover-focus {
256
- color: $navbar-dark-active-color;
257
- }
253
+ color: $navbar-inverse-active-color;
258
254
  }
259
255
  }
260
256
 
261
257
  .navbar-toggler {
262
- background-image: $navbar-dark-toggler-bg;
263
- border-color: $navbar-dark-toggler-border;
258
+ border-color: $navbar-inverse-toggler-border;
264
259
  }
265
260
 
266
- .navbar-divider {
267
- background-color: rgba(255,255,255,.075);
261
+ .navbar-toggler-icon {
262
+ background-image: $navbar-inverse-toggler-bg;
268
263
  }
269
- }
270
264
 
271
-
272
- // Navbar toggleable
273
- //
274
- // Custom override for collapse plugin in navbar.
275
-
276
- .navbar-toggleable {
277
- &-xs {
278
- @include clearfix;
279
- @include media-breakpoint-down(xs) {
280
- .navbar-nav .nav-item {
281
- float: none;
282
- margin-left: 0;
283
- }
284
- }
285
- @include media-breakpoint-up(sm) {
286
- display: block !important;
287
- }
288
- }
289
-
290
- &-sm {
291
- @include clearfix;
292
- @include media-breakpoint-down(sm) {
293
- .navbar-nav .nav-item {
294
- float: none;
295
- margin-left: 0;
296
- }
297
- }
298
- @include media-breakpoint-up(md) {
299
- display: block !important;
300
- }
301
- }
302
-
303
- &-md {
304
- @include clearfix;
305
- @include media-breakpoint-down(md) {
306
- .navbar-nav .nav-item {
307
- float: none;
308
- margin-left: 0;
309
- }
310
- }
311
- @include media-breakpoint-up(lg) {
312
- display: block !important;
313
- }
265
+ .navbar-text {
266
+ color: $navbar-inverse-color;
314
267
  }
315
268
  }