bootstrap 4.0.0.alpha3 → 4.0.0.alpha3.1

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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE +1 -1
  5. data/README.md +3 -3
  6. data/Rakefile +11 -8
  7. data/assets/javascripts/bootstrap.js +61 -48
  8. data/assets/javascripts/bootstrap.min.js +4 -4
  9. data/assets/javascripts/bootstrap/alert.js +2 -2
  10. data/assets/javascripts/bootstrap/button.js +4 -2
  11. data/assets/javascripts/bootstrap/carousel.js +10 -6
  12. data/assets/javascripts/bootstrap/collapse.js +2 -2
  13. data/assets/javascripts/bootstrap/dropdown.js +12 -8
  14. data/assets/javascripts/bootstrap/modal.js +9 -12
  15. data/assets/javascripts/bootstrap/popover.js +2 -2
  16. data/assets/javascripts/bootstrap/scrollspy.js +4 -3
  17. data/assets/javascripts/bootstrap/tab.js +2 -2
  18. data/assets/javascripts/bootstrap/tooltip.js +2 -2
  19. data/assets/javascripts/bootstrap/util.js +8 -3
  20. data/assets/stylesheets/_bootstrap-grid.scss +2 -41
  21. data/assets/stylesheets/_bootstrap-reboot.scss +1 -0
  22. data/assets/stylesheets/_bootstrap.scss +5 -7
  23. data/assets/stylesheets/bootstrap/_alert.scss +1 -10
  24. data/assets/stylesheets/bootstrap/_breadcrumb.scss +25 -10
  25. data/assets/stylesheets/bootstrap/_button-group.scss +22 -12
  26. data/assets/stylesheets/bootstrap/_buttons.scss +14 -11
  27. data/assets/stylesheets/bootstrap/_card.scss +59 -30
  28. data/assets/stylesheets/bootstrap/_carousel.scss +25 -24
  29. data/assets/stylesheets/bootstrap/_close.scss +3 -0
  30. data/assets/stylesheets/bootstrap/_code.scss +6 -7
  31. data/assets/stylesheets/bootstrap/_custom-forms.scss +144 -105
  32. data/assets/stylesheets/bootstrap/_custom.scss +4 -0
  33. data/assets/stylesheets/bootstrap/_dropdown.scss +10 -24
  34. data/assets/stylesheets/bootstrap/_forms.scss +97 -185
  35. data/assets/stylesheets/bootstrap/_grid.scss +9 -46
  36. data/assets/stylesheets/bootstrap/_images.scss +3 -4
  37. data/assets/stylesheets/bootstrap/_input-group.scss +25 -26
  38. data/assets/stylesheets/bootstrap/_list-group.scss +33 -50
  39. data/assets/stylesheets/bootstrap/_media.scss +4 -5
  40. data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
  41. data/assets/stylesheets/bootstrap/_modal.scss +13 -27
  42. data/assets/stylesheets/bootstrap/_nav.scss +18 -23
  43. data/assets/stylesheets/bootstrap/_navbar.scss +54 -26
  44. data/assets/stylesheets/bootstrap/_normalize.scss +164 -168
  45. data/assets/stylesheets/bootstrap/_pagination.scss +1 -1
  46. data/assets/stylesheets/bootstrap/_popover.scss +12 -5
  47. data/assets/stylesheets/bootstrap/_print.scss +93 -65
  48. data/assets/stylesheets/bootstrap/_progress.scss +43 -54
  49. data/assets/stylesheets/bootstrap/_reboot.scss +59 -13
  50. data/assets/stylesheets/bootstrap/_tables.scss +32 -27
  51. data/assets/stylesheets/bootstrap/_tags.scss +77 -0
  52. data/assets/stylesheets/bootstrap/_tooltip.scss +7 -5
  53. data/assets/stylesheets/bootstrap/_type.scss +22 -29
  54. data/assets/stylesheets/bootstrap/_utilities.scss +9 -95
  55. data/assets/stylesheets/bootstrap/_variables.scss +302 -139
  56. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +1 -1
  57. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +22 -9
  58. data/assets/stylesheets/bootstrap/mixins/_cards.scss +8 -2
  59. data/assets/stylesheets/bootstrap/mixins/_forms.scss +7 -4
  60. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +4 -4
  61. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +37 -11
  62. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -9
  63. data/assets/stylesheets/bootstrap/mixins/_hover.scss +10 -9
  64. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -3
  65. data/assets/stylesheets/bootstrap/mixins/_progress.scss +5 -0
  66. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -3
  67. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
  68. data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +3 -3
  69. data/assets/stylesheets/bootstrap/mixins/{_label.scss → _tag.scss} +2 -2
  70. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -1
  71. data/assets/stylesheets/bootstrap/{_utilities-background.scss → utilities/_background.scss} +1 -4
  72. data/assets/stylesheets/bootstrap/utilities/_clearfix.scss +3 -0
  73. data/assets/stylesheets/bootstrap/utilities/_display.scss +13 -0
  74. data/assets/stylesheets/bootstrap/utilities/_flex.scss +37 -0
  75. data/assets/stylesheets/bootstrap/utilities/_pulls.scss +13 -0
  76. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +11 -0
  77. data/assets/stylesheets/bootstrap/{_utilities-spacing.scss → utilities/_spacing.scss} +4 -0
  78. data/assets/stylesheets/bootstrap/utilities/_text.scss +51 -0
  79. data/assets/stylesheets/bootstrap/{_utilities-responsive.scss → utilities/_visibility.scss} +9 -1
  80. data/bootstrap.gemspec +1 -1
  81. data/lib/bootstrap.rb +6 -6
  82. data/lib/bootstrap/engine.rb +2 -0
  83. data/lib/bootstrap/version.rb +2 -2
  84. data/tasks/updater/network.rb +3 -1
  85. data/templates/project/_bootstrap-variables.scss +303 -140
  86. data/test/dummy_rails/config/boot.rb +1 -1
  87. data/test/gemfiles/rails_4_2.gemfile +4 -4
  88. data/test/gemfiles/rails_5_0.gemfile +12 -0
  89. data/test/rails_test.rb +1 -1
  90. data/test/support/dummy_rails_integration.rb +2 -2
  91. metadata +19 -14
  92. data/assets/stylesheets/bootstrap/_labels.scss +0 -77
  93. data/assets/stylesheets/bootstrap/_pager.scss +0 -57
  94. data/assets/stylesheets/bootstrap/mixins/_center-block.scss +0 -7
  95. data/test/gemfiles/rails_head.gemfile +0 -20
@@ -1,10 +1,12 @@
1
1
  /*!
2
- * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com)
3
- * Copyright 2011-2015 Twitter, Inc.
2
+ * Bootstrap v4.0.0-alpha.3 (http://getbootstrap.com)
3
+ * Copyright 2011-2016 The Bootstrap Authors
4
+ * Copyright 2011-2016 Twitter, Inc.
4
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
6
  */
6
7
 
7
8
  // Core variables and mixins
9
+ @import "bootstrap/custom";
8
10
  @import "bootstrap/variables";
9
11
  @import "bootstrap/mixins";
10
12
 
@@ -33,8 +35,7 @@
33
35
  @import "bootstrap/card";
34
36
  @import "bootstrap/breadcrumb";
35
37
  @import "bootstrap/pagination";
36
- @import "bootstrap/pager";
37
- @import "bootstrap/labels";
38
+ @import "bootstrap/tags";
38
39
  @import "bootstrap/jumbotron";
39
40
  @import "bootstrap/alert";
40
41
  @import "bootstrap/progress";
@@ -51,6 +52,3 @@
51
52
 
52
53
  // Utility classes
53
54
  @import "bootstrap/utilities";
54
- @import "bootstrap/utilities-background";
55
- @import "bootstrap/utilities-spacing";
56
- @import "bootstrap/utilities-responsive";
@@ -7,15 +7,6 @@
7
7
  margin-bottom: $spacer-y;
8
8
  border: $alert-border-width solid transparent;
9
9
  @include border-radius($alert-border-radius);
10
-
11
- // Improve alignment and spacing of inner content
12
- > p,
13
- > ul {
14
- margin-bottom: 0;
15
- }
16
- > p + p {
17
- margin-top: 5px;
18
- }
19
10
  }
20
11
 
21
12
  // Headings for larger alerts
@@ -35,7 +26,7 @@
35
26
  // Expand the right padding and account for the close button's positioning.
36
27
 
37
28
  .alert-dismissible {
38
- padding-right: ($alert-padding + 20);
29
+ padding-right: ($alert-padding + 20px);
39
30
 
40
31
  // Adjust close link position
41
32
  .close {
@@ -1,23 +1,38 @@
1
1
  .breadcrumb {
2
- padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
2
+ padding: $breadcrumb-padding-y $breadcrumb-padding-x;
3
3
  margin-bottom: $spacer-y;
4
4
  list-style: none;
5
5
  background-color: $breadcrumb-bg;
6
6
  @include border-radius($border-radius);
7
7
  @include clearfix;
8
+ }
9
+
10
+ .breadcrumb-item {
11
+ float: left;
8
12
 
9
- > li {
10
- float: left;
13
+ // The separator between breadcrumbs (by default, a forward-slash: "/")
14
+ + .breadcrumb-item::before {
15
+ display: inline-block; // Suppress underlining of the separator in modern browsers
16
+ padding-right: $breadcrumb-item-padding;
17
+ padding-left: $breadcrumb-item-padding;
18
+ color: $breadcrumb-divider-color;
19
+ content: "#{$breadcrumb-divider}";
20
+ }
11
21
 
12
- + li::before {
13
- padding-right: .5rem;
14
- padding-left: .5rem;
15
- color: $breadcrumb-divider-color;
16
- content: "#{$breadcrumb-divider}";
17
- }
22
+ // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
23
+ // without `<ul>`s. The `::before` pseudo-element generates an element
24
+ // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
25
+ //
26
+ // To trick IE into suppressing the underline, we give the pseudo-element an
27
+ // underline and then immediately remove it.
28
+ + .breadcrumb-item:hover::before {
29
+ text-decoration: underline;
30
+ }
31
+ + .breadcrumb-item:hover::before {
32
+ text-decoration: none;
18
33
  }
19
34
 
20
- > .active {
35
+ &.active {
21
36
  color: $breadcrumb-active-color;
22
37
  }
23
38
  }
@@ -1,3 +1,5 @@
1
+ // scss-lint:disable QualifyingElement
2
+
1
3
  // Make the div behave like a button
2
4
  .btn-group,
3
5
  .btn-group-vertical {
@@ -33,7 +35,7 @@
33
35
 
34
36
  // Optional: Group multiple button groups together for a toolbar
35
37
  .btn-toolbar {
36
- margin-left: -5px; // Offset the first child's margin
38
+ margin-left: -$btn-toolbar-margin; // Offset the first child's margin
37
39
  @include clearfix();
38
40
 
39
41
  .btn-group,
@@ -44,7 +46,7 @@
44
46
  > .btn,
45
47
  > .btn-group,
46
48
  > .input-group {
47
- margin-left: 5px;
49
+ margin-left: $btn-toolbar-margin;
48
50
  }
49
51
  }
50
52
 
@@ -102,20 +104,30 @@
102
104
  // Split button dropdowns
103
105
  //
104
106
 
105
- // Give the line between buttons some depth
106
- .btn-group > .btn + .dropdown-toggle {
107
- padding-right: 8px;
108
- padding-left: 8px;
107
+ .btn + .dropdown-toggle-split {
108
+ padding-right: $btn-padding-x * .75;
109
+ padding-left: $btn-padding-x * .75;
110
+
111
+ &::after {
112
+ margin-left: 0;
113
+ }
114
+ }
115
+
116
+ .btn-sm + .dropdown-toggle-split {
117
+ padding-right: $btn-padding-x-sm * .75;
118
+ padding-left: $btn-padding-x-sm * .75;
109
119
  }
110
- .btn-group > .btn-lg + .dropdown-toggle {
111
- padding-right: 12px;
112
- padding-left: 12px;
120
+
121
+ .btn-lg + .dropdown-toggle-split {
122
+ padding-right: $btn-padding-x-lg * .75;
123
+ padding-left: $btn-padding-x-lg * .75;
113
124
  }
114
125
 
126
+
115
127
  // The clickable button for toggling the menu
116
128
  // Remove the gradient and set the same inset shadow as the :active state
117
129
  .btn-group.open .dropdown-toggle {
118
- @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
130
+ @include box-shadow($btn-active-box-shadow);
119
131
 
120
132
  // Show no shadow for `.btn-link` since it has no other button styles.
121
133
  &.btn-link {
@@ -177,11 +189,9 @@
177
189
  border-radius: 0;
178
190
  }
179
191
  &:first-child:not(:last-child) {
180
- border-top-right-radius: $btn-border-radius;
181
192
  @include border-bottom-radius(0);
182
193
  }
183
194
  &:last-child:not(:first-child) {
184
- border-bottom-left-radius: $btn-border-radius;
185
195
  @include border-top-radius(0);
186
196
  }
187
197
  }
@@ -1,3 +1,5 @@
1
+ // scss-lint:disable QualifyingElement
2
+
1
3
  //
2
4
  // Base styles
3
5
  //
@@ -5,13 +7,14 @@
5
7
  .btn {
6
8
  display: inline-block;
7
9
  font-weight: $btn-font-weight;
10
+ line-height: $btn-line-height;
8
11
  text-align: center;
9
12
  white-space: nowrap;
10
13
  vertical-align: middle;
11
14
  cursor: pointer;
12
15
  user-select: none;
13
16
  border: $input-btn-border-width solid transparent;
14
- @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $line-height, $btn-border-radius);
17
+ @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-border-radius);
15
18
  @include transition(all .2s ease-in-out);
16
19
 
17
20
  &,
@@ -34,7 +37,7 @@
34
37
  &.active {
35
38
  background-image: none;
36
39
  outline: 0;
37
- @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
40
+ @include box-shadow($btn-active-box-shadow);
38
41
  }
39
42
 
40
43
  &.disabled,
@@ -76,22 +79,22 @@ fieldset[disabled] a.btn {
76
79
  }
77
80
 
78
81
  // Remove all backgrounds
79
- .btn-primary-outline {
82
+ .btn-outline-primary {
80
83
  @include button-outline-variant($btn-primary-bg);
81
84
  }
82
- .btn-secondary-outline {
85
+ .btn-outline-secondary {
83
86
  @include button-outline-variant($btn-secondary-border);
84
87
  }
85
- .btn-info-outline {
88
+ .btn-outline-info {
86
89
  @include button-outline-variant($btn-info-bg);
87
90
  }
88
- .btn-success-outline {
91
+ .btn-outline-success {
89
92
  @include button-outline-variant($btn-success-bg);
90
93
  }
91
- .btn-warning-outline {
94
+ .btn-outline-warning {
92
95
  @include button-outline-variant($btn-warning-bg);
93
96
  }
94
- .btn-danger-outline {
97
+ .btn-outline-danger {
95
98
  @include button-outline-variant($btn-danger-bg);
96
99
  }
97
100
 
@@ -141,11 +144,11 @@ fieldset[disabled] a.btn {
141
144
 
142
145
  .btn-lg {
143
146
  // line-height: ensure even-numbered height of button next to large input
144
- @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $line-height-lg, $btn-border-radius-lg);
147
+ @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-border-radius-lg);
145
148
  }
146
149
  .btn-sm {
147
150
  // line-height: ensure proper height of button next to small input
148
- @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $line-height-sm, $btn-border-radius-sm);
151
+ @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-border-radius-sm);
149
152
  }
150
153
 
151
154
 
@@ -160,7 +163,7 @@ fieldset[disabled] a.btn {
160
163
 
161
164
  // Vertically space out multiple block buttons
162
165
  .btn-block + .btn-block {
163
- margin-top: 5px;
166
+ margin-top: $btn-block-spacing-y;
164
167
  }
165
168
 
166
169
  // Specificity overrides
@@ -7,11 +7,13 @@
7
7
  display: block;
8
8
  margin-bottom: $card-spacer-y;
9
9
  background-color: $card-bg;
10
- border: $card-border-width solid $card-border-color;
10
+ // border: $card-border-width solid $card-border-color;
11
11
  @include border-radius($card-border-radius);
12
+ border: $card-border-width solid $card-border-color;
12
13
  }
13
14
 
14
15
  .card-block {
16
+ @include clearfix;
15
17
  padding: $card-spacer-x;
16
18
  }
17
19
 
@@ -46,18 +48,16 @@
46
48
  }
47
49
  }
48
50
 
49
- @if $enable-rounded {
50
- .card {
51
- > .list-group:first-child {
52
- .list-group-item:first-child {
53
- border-radius: $card-border-radius $card-border-radius 0 0;
54
- }
51
+ .card {
52
+ > .list-group:first-child {
53
+ .list-group-item:first-child {
54
+ @include border-top-radius($card-border-radius);
55
55
  }
56
+ }
56
57
 
57
- > .list-group:last-child {
58
- .list-group-item:last-child {
59
- border-radius: 0 0 $card-border-radius $card-border-radius;
60
- }
58
+ > .list-group:last-child {
59
+ .list-group-item:last-child {
60
+ @include border-bottom-radius($card-border-radius);
61
61
  }
62
62
  }
63
63
  }
@@ -68,6 +68,7 @@
68
68
  //
69
69
 
70
70
  .card-header {
71
+ @include clearfix;
71
72
  padding: $card-spacer-y $card-spacer-x;
72
73
  background-color: $card-cap-bg;
73
74
  border-bottom: $card-border-width solid $card-border-color;
@@ -78,6 +79,7 @@
78
79
  }
79
80
 
80
81
  .card-footer {
82
+ @include clearfix;
81
83
  padding: $card-spacer-y $card-spacer-x;
82
84
  background-color: $card-cap-bg;
83
85
  border-top: $card-border-width solid $card-border-color;
@@ -88,6 +90,23 @@
88
90
  }
89
91
 
90
92
 
93
+ //
94
+ // Header navs
95
+ //
96
+
97
+ .card-header-tabs {
98
+ margin-right: -($card-spacer-x / 2);
99
+ margin-bottom: -$card-spacer-y;
100
+ margin-left: -($card-spacer-x / 2);
101
+ border-bottom: 0;
102
+ }
103
+
104
+ .card-header-pills {
105
+ margin-right: -($card-spacer-x / 2);
106
+ margin-left: -($card-spacer-x / 2);
107
+ }
108
+
109
+
91
110
  //
92
111
  // Background variations
93
112
  //
@@ -109,22 +128,22 @@
109
128
  }
110
129
 
111
130
  // Remove all backgrounds
112
- .card-primary-outline {
131
+ .card-outline-primary {
113
132
  @include card-outline-variant($btn-primary-bg);
114
133
  }
115
- .card-secondary-outline {
134
+ .card-outline-secondary {
116
135
  @include card-outline-variant($btn-secondary-border);
117
136
  }
118
- .card-info-outline {
137
+ .card-outline-info {
119
138
  @include card-outline-variant($btn-info-bg);
120
139
  }
121
- .card-success-outline {
140
+ .card-outline-success {
122
141
  @include card-outline-variant($btn-success-bg);
123
142
  }
124
- .card-warning-outline {
143
+ .card-outline-warning {
125
144
  @include card-outline-variant($btn-warning-bg);
126
145
  }
127
- .card-danger-outline {
146
+ .card-outline-danger {
128
147
  @include card-outline-variant($btn-danger-bg);
129
148
  }
130
149
 
@@ -157,55 +176,65 @@
157
176
  right: 0;
158
177
  bottom: 0;
159
178
  left: 0;
160
- padding: 1.25rem;
179
+ padding: $card-img-overlay-padding;
161
180
  }
162
181
 
163
182
 
164
183
 
165
184
  // Card image caps
166
185
  .card-img-top {
167
- @include border-radius($card-border-radius-inner $card-border-radius-inner 0 0);
186
+ @include border-top-radius($card-border-radius-inner);
168
187
  }
169
188
  .card-img-bottom {
170
- @include border-radius(0 0 $card-border-radius-inner $card-border-radius-inner);
189
+ @include border-bottom-radius($card-border-radius-inner);
171
190
  }
172
191
 
173
192
 
174
- //
175
193
  // Card set
176
194
  //
195
+ // Heads up! We do some funky style resetting here for margins across our two
196
+ // variations (one flex, one table). Individual cards have margin-bottom by
197
+ // default, but they're ignored due to table styles. For a consistent design,
198
+ // we've done the same to the flex variation.
199
+ //
200
+ // Those changes are noted by `// Margin balancing`.
177
201
 
178
202
  @if $enable-flex {
179
203
  @include media-breakpoint-up(sm) {
180
204
  .card-deck {
181
205
  display: flex;
182
206
  flex-flow: row wrap;
183
- margin-right: -.625rem;
184
- margin-left: -.625rem;
207
+ margin-right: -$card-deck-margin;
208
+ margin-bottom: $card-spacer-y; // Margin balancing
209
+ margin-left: -$card-deck-margin;
185
210
 
186
211
  .card {
187
212
  flex: 1 0 0;
188
- margin-right: .625rem;
189
- margin-left: .625rem;
213
+ margin-right: $card-deck-margin;
214
+ margin-bottom: 0; // Margin balancing
215
+ margin-left: $card-deck-margin;
190
216
  }
191
217
  }
192
218
  }
193
219
  } @else {
194
220
  @include media-breakpoint-up(sm) {
221
+ $space-between-cards: (2 * $card-deck-margin);
195
222
  .card-deck {
196
223
  display: table;
224
+ width: 100%;
225
+ margin-bottom: $card-spacer-y; // Margin balancing
197
226
  table-layout: fixed;
198
- border-spacing: 1.25rem 0;
227
+ border-spacing: $space-between-cards 0;
199
228
 
200
229
  .card {
201
230
  display: table-cell;
202
- width: 1%;
231
+ margin-bottom: 0; // Margin balancing
203
232
  vertical-align: top;
204
233
  }
205
234
  }
206
235
  .card-deck-wrapper {
207
- margin-right: -1.25rem;
208
- margin-left: -1.25rem;
236
+ margin-right: (-$space-between-cards);
237
+ margin-left: (-$space-between-cards);
209
238
  }
210
239
  }
211
240
  }
@@ -282,7 +311,7 @@
282
311
  @include media-breakpoint-up(sm) {
283
312
  .card-columns {
284
313
  column-count: 3;
285
- column-gap: 1.25rem;
314
+ column-gap: $card-columns-sm-up-column-gap;
286
315
 
287
316
  .card {
288
317
  display: inline-block;