bootstrap 4.0.0.alpha4 → 4.0.0.alpha5

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/assets/javascripts/bootstrap.js +1625 -1768
  4. data/assets/javascripts/bootstrap.min.js +3 -3
  5. data/assets/javascripts/bootstrap/alert.js +83 -96
  6. data/assets/javascripts/bootstrap/button.js +61 -68
  7. data/assets/javascripts/bootstrap/carousel.js +250 -270
  8. data/assets/javascripts/bootstrap/collapse.js +176 -190
  9. data/assets/javascripts/bootstrap/dropdown.js +143 -155
  10. data/assets/javascripts/bootstrap/modal.js +286 -310
  11. data/assets/javascripts/bootstrap/popover.js +61 -69
  12. data/assets/javascripts/bootstrap/scrollspy.js +145 -157
  13. data/assets/javascripts/bootstrap/tab.js +122 -132
  14. data/assets/javascripts/bootstrap/tooltip.js +313 -341
  15. data/assets/javascripts/bootstrap/util.js +9 -16
  16. data/assets/stylesheets/_bootstrap.scss +1 -1
  17. data/assets/stylesheets/bootstrap/_alert.scss +3 -3
  18. data/assets/stylesheets/bootstrap/_animation.scss +12 -3
  19. data/assets/stylesheets/bootstrap/_button-group.scss +1 -0
  20. data/assets/stylesheets/bootstrap/_card.scss +3 -1
  21. data/assets/stylesheets/bootstrap/_custom-forms.scss +7 -10
  22. data/assets/stylesheets/bootstrap/_dropdown.scss +1 -0
  23. data/assets/stylesheets/bootstrap/_forms.scss +16 -6
  24. data/assets/stylesheets/bootstrap/_images.scss +2 -11
  25. data/assets/stylesheets/bootstrap/_list-group.scss +2 -0
  26. data/assets/stylesheets/bootstrap/_mixins.scss +1 -1
  27. data/assets/stylesheets/bootstrap/_modal.scss +4 -2
  28. data/assets/stylesheets/bootstrap/_navbar.scss +72 -13
  29. data/assets/stylesheets/bootstrap/_normalize.scss +51 -53
  30. data/assets/stylesheets/bootstrap/_popover.scss +74 -50
  31. data/assets/stylesheets/bootstrap/_print.scss +8 -2
  32. data/assets/stylesheets/bootstrap/_reboot.scss +7 -12
  33. data/assets/stylesheets/bootstrap/_tables.scss +1 -1
  34. data/assets/stylesheets/bootstrap/_tooltip.scss +15 -12
  35. data/assets/stylesheets/bootstrap/_utilities.scss +3 -1
  36. data/assets/stylesheets/bootstrap/_variables.scss +56 -28
  37. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -1
  38. data/assets/stylesheets/bootstrap/mixins/{_pulls.scss → _float.scss} +2 -2
  39. data/assets/stylesheets/bootstrap/mixins/_forms.scss +6 -11
  40. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +8 -9
  41. data/assets/stylesheets/bootstrap/mixins/_grid.scss +31 -8
  42. data/assets/stylesheets/bootstrap/mixins/_hover.scss +1 -1
  43. data/assets/stylesheets/bootstrap/mixins/_image.scss +6 -4
  44. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
  45. data/assets/stylesheets/bootstrap/utilities/_align.scss +6 -0
  46. data/assets/stylesheets/bootstrap/utilities/_borders.scss +30 -0
  47. data/assets/stylesheets/bootstrap/utilities/_float.scss +13 -0
  48. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +10 -9
  49. data/assets/stylesheets/bootstrap/utilities/_text.scss +8 -0
  50. data/lib/bootstrap/version.rb +2 -2
  51. data/templates/project/_bootstrap-variables.scss +55 -27
  52. metadata +6 -4
  53. data/assets/stylesheets/bootstrap/utilities/_pulls.scss +0 -13
@@ -18,10 +18,11 @@
18
18
  padding: $tooltip-arrow-width 0;
19
19
  margin-top: -$tooltip-margin;
20
20
 
21
- .tooltip-arrow {
21
+ .tooltip-inner::before {
22
22
  bottom: 0;
23
23
  left: 50%;
24
24
  margin-left: -$tooltip-arrow-width;
25
+ content: "";
25
26
  border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
26
27
  border-top-color: $tooltip-arrow-color;
27
28
  }
@@ -31,10 +32,11 @@
31
32
  padding: 0 $tooltip-arrow-width;
32
33
  margin-left: $tooltip-margin;
33
34
 
34
- .tooltip-arrow {
35
+ .tooltip-inner::before {
35
36
  top: 50%;
36
37
  left: 0;
37
38
  margin-top: -$tooltip-arrow-width;
39
+ content: "";
38
40
  border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
39
41
  border-right-color: $tooltip-arrow-color;
40
42
  }
@@ -44,10 +46,11 @@
44
46
  padding: $tooltip-arrow-width 0;
45
47
  margin-top: $tooltip-margin;
46
48
 
47
- .tooltip-arrow {
49
+ .tooltip-inner::before {
48
50
  top: 0;
49
51
  left: 50%;
50
52
  margin-left: -$tooltip-arrow-width;
53
+ content: "";
51
54
  border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
52
55
  border-bottom-color: $tooltip-arrow-color;
53
56
  }
@@ -57,10 +60,11 @@
57
60
  padding: 0 $tooltip-arrow-width;
58
61
  margin-left: -$tooltip-margin;
59
62
 
60
- .tooltip-arrow {
63
+ .tooltip-inner::before {
61
64
  top: 50%;
62
65
  right: 0;
63
66
  margin-top: -$tooltip-arrow-width;
67
+ content: "";
64
68
  border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
65
69
  border-left-color: $tooltip-arrow-color;
66
70
  }
@@ -75,13 +79,12 @@
75
79
  text-align: center;
76
80
  background-color: $tooltip-bg;
77
81
  @include border-radius($border-radius);
78
- }
79
82
 
80
- // Arrows
81
- .tooltip-arrow {
82
- position: absolute;
83
- width: 0;
84
- height: 0;
85
- border-color: transparent;
86
- border-style: solid;
83
+ &::before {
84
+ position: absolute;
85
+ width: 0;
86
+ height: 0;
87
+ border-color: transparent;
88
+ border-style: solid;
89
+ }
87
90
  }
@@ -1,8 +1,10 @@
1
+ @import "utilities/align";
1
2
  @import "utilities/background";
3
+ @import "utilities/borders";
2
4
  @import "utilities/clearfix";
3
5
  @import "utilities/display";
4
6
  @import "utilities/flex";
5
- @import "utilities/pulls";
7
+ @import "utilities/float";
6
8
  @import "utilities/screenreaders";
7
9
  @import "utilities/spacing";
8
10
  @import "utilities/text";
@@ -125,7 +125,7 @@ $link-hover-decoration: underline !default;
125
125
 
126
126
  $grid-breakpoints: (
127
127
  xs: 0,
128
- sm: 544px,
128
+ sm: 576px,
129
129
  md: 768px,
130
130
  lg: 992px,
131
131
  xl: 1200px
@@ -138,9 +138,9 @@ $grid-breakpoints: (
138
138
  // Define the maximum width of `.container` for different screen sizes.
139
139
 
140
140
  $container-max-widths: (
141
- sm: 576px,
141
+ sm: 540px,
142
142
  md: 720px,
143
- lg: 940px,
143
+ lg: 960px,
144
144
  xl: 1140px
145
145
  ) !default;
146
146
  @include _assert-ascending($container-max-widths, "$container-max-widths");
@@ -150,9 +150,15 @@ $container-max-widths: (
150
150
  //
151
151
  // Set the number of columns and specify the width of the gutters.
152
152
 
153
- $grid-columns: 12 !default;
154
- $grid-gutter-width: 30px !default;
155
-
153
+ $grid-columns: 12 !default;
154
+ $grid-gutter-width-base: 30px !default;
155
+ $grid-gutter-widths: (
156
+ xs: $grid-gutter-width-base,
157
+ sm: $grid-gutter-width-base,
158
+ md: $grid-gutter-width-base,
159
+ lg: $grid-gutter-width-base,
160
+ xl: $grid-gutter-width-base
161
+ ) !default;
156
162
 
157
163
  // Typography
158
164
  //
@@ -327,10 +333,10 @@ $input-border-radius: $border-radius !default;
327
333
  $input-border-radius-lg: $border-radius-lg !default;
328
334
  $input-border-radius-sm: $border-radius-sm !default;
329
335
 
330
- $input-bg-focus: $input-bg;
336
+ $input-bg-focus: $input-bg !default;
331
337
  $input-border-focus: #66afe9 !default;
332
- $input-box-shadow-focus: rgba(102,175,233,.6) !default;
333
- $input-color-focus: $input-color;
338
+ $input-box-shadow-focus: $input-box-shadow, 0 0 8px rgba(102,175,233,.6) !default;
339
+ $input-color-focus: $input-color !default;
334
340
 
335
341
  $input-color-placeholder: #999 !default;
336
342
 
@@ -375,13 +381,15 @@ $custom-control-active-indicator-bg: #84c6ff !default;
375
381
  $custom-control-active-indicator-box-shadow: none !default;
376
382
 
377
383
  $custom-checkbox-radius: $border-radius !default;
378
- $custom-checkbox-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") !default;
384
+ $custom-checkbox-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-checked-indicator-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E") !default;
385
+
379
386
  $custom-checkbox-indeterminate-bg: #0074d9 !default;
380
- $custom-checkbox-indeterminate-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E") !default;
387
+ $custom-checkbox-indeterminate-indicator-color: $custom-control-checked-indicator-color !default;
388
+ $custom-checkbox-indeterminate-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indeterminate-indicator-color}' d='M0 2h4'/%3E%3C/svg%3E") !default;
381
389
  $custom-checkbox-indeterminate-box-shadow: none !default;
382
390
 
383
391
  $custom-radio-radius: 50% !default;
384
- $custom-radio-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") !default;
392
+ $custom-radio-checked-icon: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-checked-indicator-color}'/%3E%3C/svg%3E") !default;
385
393
 
386
394
  $custom-select-padding-x: .75rem !default;
387
395
  $custom-select-padding-y: .375rem !default;
@@ -391,7 +399,8 @@ $custom-select-disabled-color: $gray-light !default;
391
399
  $custom-select-bg: #fff !default;
392
400
  $custom-select-disabled-bg: $gray-lighter !default;
393
401
  $custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
394
- $custom-select-indicator: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") !default;
402
+ $custom-select-indicator-color: #333 !default;
403
+ $custom-select-indicator: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") !default;
395
404
  $custom-select-border-width: $input-btn-border-width !default;
396
405
  $custom-select-border-color: $input-border-color !default;
397
406
  $custom-select-border-radius: $border-radius !default;
@@ -428,23 +437,28 @@ $custom-file-text: (
428
437
 
429
438
 
430
439
  // Form validation icons
431
- $form-icon-success: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") !default;
432
- $form-icon-warning: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E") !default;
433
- $form-icon-danger: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") !default;
440
+ $form-icon-success-color: $brand-success !default;
441
+ $form-icon-success: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$form-icon-success-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") !default;
442
+
443
+ $form-icon-warning-color: $brand-warning !default;
444
+ $form-icon-warning: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$form-icon-warning-color}' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E") !default;
445
+
446
+ $form-icon-danger-color: $brand-danger !default;
447
+ $form-icon-danger: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-icon-danger-color}' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") !default;
434
448
 
435
449
 
436
450
  // Dropdowns
437
451
  //
438
452
  // Dropdown menu container and contents.
439
453
 
440
- $dropdown-min-width: 160px !default;
441
- $dropdown-padding-y: 5px !default;
442
- $dropdown-margin-top: 2px !default;
454
+ $dropdown-min-width: 10rem !default;
455
+ $dropdown-padding-y: .5rem !default;
456
+ $dropdown-margin-top: .125rem !default;
443
457
  $dropdown-bg: #fff !default;
444
458
  $dropdown-border-color: rgba(0,0,0,.15) !default;
445
459
  $dropdown-border-width: $border-width !default;
446
460
  $dropdown-divider-bg: #e5e5e5 !default;
447
- $dropdown-box-shadow: 0 6px 12px rgba(0,0,0,.175) !default;
461
+ $dropdown-box-shadow: 0 .5rem 1rem rgba(0,0,0,.175) !default;
448
462
 
449
463
  $dropdown-link-color: $gray-dark !default;
450
464
  $dropdown-link-hover-color: darken($gray-dark, 5%) !default;
@@ -455,7 +469,7 @@ $dropdown-link-active-bg: $component-active-bg !default;
455
469
 
456
470
  $dropdown-link-disabled-color: $gray-light !default;
457
471
 
458
- $dropdown-item-padding-x: 20px !default;
472
+ $dropdown-item-padding-x: 1.5rem !default;
459
473
 
460
474
  $dropdown-header-color: $gray-light !default;
461
475
 
@@ -481,18 +495,31 @@ $zindex-modal: 1050 !default;
481
495
  $navbar-border-radius: $border-radius !default;
482
496
  $navbar-padding-x: $spacer !default;
483
497
  $navbar-padding-y: ($spacer / 2) !default;
498
+
484
499
  $navbar-brand-padding-y: .25rem !default;
485
500
 
501
+ $navbar-divider-padding-y: .425rem !default;
502
+
503
+ $navbar-toggler-padding-x: .75rem !default;
504
+ $navbar-toggler-padding-y: .5rem !default;
505
+ $navbar-toggler-font-size: $font-size-lg !default;
506
+ $navbar-toggler-border-radius: $btn-border-radius !default;
507
+ $navbar-toggler-padding-x: .75rem !default;
508
+ $navbar-toggler-padding-y: .5rem !default;
509
+
486
510
  $navbar-dark-color: rgba(255,255,255,.5) !default;
487
511
  $navbar-dark-hover-color: rgba(255,255,255,.75) !default;
488
512
  $navbar-dark-active-color: rgba(255,255,255,1) !default;
489
513
  $navbar-dark-disabled-color: rgba(255,255,255,.25) !default;
514
+ $navbar-dark-toggler-bg: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E") !default;
515
+ $navbar-dark-toggler-border: rgba(255,255,255,.1) !default;
490
516
 
491
- $navbar-light-color: rgba(0,0,0,.3) !default;
492
- $navbar-light-hover-color: rgba(0,0,0,.6) !default;
493
- $navbar-light-active-color: rgba(0,0,0,.8) !default;
494
- $navbar-light-disabled-color: rgba(0,0,0,.15) !default;
495
-
517
+ $navbar-light-color: rgba(0,0,0,.5) !default;
518
+ $navbar-light-hover-color: rgba(0,0,0,.7) !default;
519
+ $navbar-light-active-color: rgba(0,0,0,.9) !default;
520
+ $navbar-light-disabled-color: rgba(0,0,0,.3) !default;
521
+ $navbar-light-toggler-bg: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E") !default;
522
+ $navbar-light-toggler-border: rgba(0,0,0,.1) !default;
496
523
 
497
524
  // Navs
498
525
 
@@ -581,7 +608,7 @@ $card-spacer-y: .75rem !default;
581
608
  $card-border-width: 1px !default;
582
609
  $card-border-radius: $border-radius !default;
583
610
  $card-border-color: rgba(0,0,0,.125) !default;
584
- $card-border-radius-inner: $card-border-radius !default;
611
+ $card-border-radius-inner: calc(#{$card-border-radius} - #{$card-border-width}) !default;
585
612
  $card-cap-bg: #f5f5f5 !default;
586
613
  $card-bg: #fff !default;
587
614
 
@@ -685,7 +712,8 @@ $modal-sm: 300px !default;
685
712
  //
686
713
  // Define alert colors, border radius, and padding.
687
714
 
688
- $alert-padding: 1rem !default;
715
+ $alert-padding-x: 1.25rem !default;
716
+ $alert-padding-y: .75rem !default;
689
717
  $alert-border-radius: $border-radius !default;
690
718
  $alert-link-font-weight: bold !default;
691
719
  $alert-border-width: $border-width !default;
@@ -2,7 +2,6 @@
2
2
 
3
3
  @mixin bg-variant($parent, $color) {
4
4
  #{$parent} {
5
- color: #fff !important;
6
5
  background-color: $color !important;
7
6
  }
8
7
  a#{$parent} {
@@ -1,6 +1,6 @@
1
- @mixin pull-left {
1
+ @mixin float-left {
2
2
  float: left !important;
3
3
  }
4
- @mixin pull-right {
4
+ @mixin float-right {
5
5
  float: right !important;
6
6
  }
@@ -12,15 +12,15 @@
12
12
  .custom-control {
13
13
  color: $color;
14
14
  }
15
+
15
16
  // Set the border and box shadow on specific inputs to match
16
17
  .form-control {
17
18
  border-color: $color;
18
- // @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
19
19
 
20
- &:focus {
21
- // border-color: darken($border-color, 10%);
22
- // $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
23
- // @include box-shadow($shadow);
20
+ @if $enable-rounded {
21
+ &:focus {
22
+ box-shadow: $input-box-shadow, 0 0 6px lighten($color, 20%);
23
+ }
24
24
  }
25
25
  }
26
26
 
@@ -30,10 +30,6 @@
30
30
  border-color: $color;
31
31
  background-color: lighten($color, 40%);
32
32
  }
33
- // Optional feedback icon
34
- .form-control-feedback {
35
- color: $color;
36
- }
37
33
  }
38
34
 
39
35
  // Form control focus state
@@ -54,8 +50,7 @@
54
50
  background-color: $input-bg-focus;
55
51
  border-color: $input-border-focus;
56
52
  outline: none;
57
- $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $input-box-shadow-focus;
58
- @include box-shadow($shadow);
53
+ @include box-shadow($input-box-shadow-focus);
59
54
  }
60
55
  }
61
56
 
@@ -3,26 +3,29 @@
3
3
  // Used only by Bootstrap to generate the correct number of grid classes given
4
4
  // any value of `$grid-columns`.
5
5
 
6
- @mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
7
-
6
+ @mixin make-grid-columns($columns: $grid-columns, $gutters: $grid-gutter-widths, $breakpoints: $grid-breakpoints) {
8
7
  // Common properties for all breakpoints
9
8
  %grid-column {
10
9
  position: relative;
11
10
  // Prevent columns from collapsing when empty
12
11
  min-height: 1px;
13
- // Inner gutter via padding
14
- padding-right: ($gutter / 2);
15
- padding-left: ($gutter / 2);
16
12
 
17
13
  @if $enable-flex {
18
14
  width: 100%;
19
15
  }
16
+
17
+ @include make-gutters($gutters);
20
18
  }
21
19
 
22
20
  $breakpoint-counter: 0;
23
21
  @each $breakpoint in map-keys($breakpoints) {
24
22
  $breakpoint-counter: ($breakpoint-counter + 1);
25
23
 
24
+ // Allow columns to stretch full width below their breakpoints
25
+ .col-#{$breakpoint} {
26
+ @extend %grid-column;
27
+ }
28
+
26
29
  @for $i from 1 through $columns {
27
30
  .col-#{$breakpoint}-#{$i} {
28
31
  @extend %grid-column;
@@ -33,13 +36,9 @@
33
36
  // Provide basic `.col-{bp}` classes for equal-width flexbox columns
34
37
  @if $enable-flex {
35
38
  .col-#{$breakpoint} {
36
- position: relative;
37
39
  flex-basis: 0;
38
40
  flex-grow: 1;
39
41
  max-width: 100%;
40
- min-height: 1px;
41
- padding-right: ($grid-gutter-width / 2);
42
- padding-left: ($grid-gutter-width / 2);
43
42
  }
44
43
  }
45
44
 
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // Generate semantic grid columns with these mixins.
4
4
 
5
- @mixin make-container($gutter: $grid-gutter-width) {
5
+ @mixin make-container($gutter: $grid-gutter-width-base) {
6
6
  margin-left: auto;
7
7
  margin-right: auto;
8
8
  padding-left: ($gutter / 2);
@@ -17,27 +17,42 @@
17
17
  @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
18
18
  @each $breakpoint, $container-max-width in $max-widths {
19
19
  @include media-breakpoint-up($breakpoint, $breakpoints) {
20
- max-width: $container-max-width;
20
+ width: $container-max-width;
21
+ max-width: 100%;
21
22
  }
22
23
  }
23
24
  }
24
25
 
25
- @mixin make-row($gutter: $grid-gutter-width) {
26
+ @mixin make-gutters($gutters: $grid-gutter-widths) {
27
+ @each $breakpoint in map-keys($gutters) {
28
+ @include media-breakpoint-up($breakpoint) {
29
+ $gutter: map-get($gutters, $breakpoint);
30
+ padding-right: ($gutter / 2);
31
+ padding-left: ($gutter / 2);
32
+ }
33
+ }
34
+ }
35
+
36
+ @mixin make-row($gutters: $grid-gutter-widths) {
26
37
  @if $enable-flex {
27
38
  display: flex;
28
39
  flex-wrap: wrap;
29
40
  } @else {
30
41
  @include clearfix();
31
42
  }
32
- margin-left: ($gutter / -2);
33
- margin-right: ($gutter / -2);
43
+
44
+ @each $breakpoint in map-keys($gutters) {
45
+ @include media-breakpoint-up($breakpoint) {
46
+ $gutter: map-get($gutters, $breakpoint);
47
+ margin-right: ($gutter / -2);
48
+ margin-left: ($gutter / -2);
49
+ }
50
+ }
34
51
  }
35
52
 
36
- @mixin make-col-ready($gutter: $grid-gutter-width) {
53
+ @mixin make-col-ready($gutters: $grid-gutter-widths) {
37
54
  position: relative;
38
55
  min-height: 1px; // Prevent collapsing
39
- padding-right: ($gutter / 2);
40
- padding-left: ($gutter / 2);
41
56
 
42
57
  // Prevent columns from becoming too narrow when at smaller grid tiers by
43
58
  // always setting `width: 100%;`. This works because we use `flex` values
@@ -45,6 +60,14 @@
45
60
  @if $enable-flex {
46
61
  width: 100%;
47
62
  }
63
+
64
+ @each $breakpoint in map-keys($gutters) {
65
+ @include media-breakpoint-up($breakpoint) {
66
+ $gutter: map-get($gutters, $breakpoint);
67
+ padding-right: ($gutter / 2);
68
+ padding-left: ($gutter / 2);
69
+ }
70
+ }
48
71
  }
49
72
 
50
73
  @mixin make-col($size, $columns: $grid-columns) {
@@ -1,7 +1,7 @@
1
1
  @mixin hover {
2
2
  // TODO: re-enable along with mq4-hover-shim
3
3
  // @if $enable-hover-media-query {
4
- // // See Media Queries Level 4: http://drafts.csswg.org/mediaqueries/#hover
4
+ // // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover
5
5
  // // Currently shimmed by https://github.com/twbs/mq4-hover-shim
6
6
  // @media (hover: hover) {
7
7
  // &:hover { @content }