bootstrap 4.0.0.beta → 4.0.0.beta2

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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +1 -1
  4. data/README.md +10 -43
  5. data/Rakefile +1 -1
  6. data/assets/javascripts/bootstrap-sprockets.js +5 -5
  7. data/assets/javascripts/bootstrap.js +1561 -1542
  8. data/assets/javascripts/bootstrap.min.js +6 -5
  9. data/assets/javascripts/bootstrap/alert.js +31 -38
  10. data/assets/javascripts/bootstrap/button.js +23 -30
  11. data/assets/javascripts/bootstrap/carousel.js +72 -81
  12. data/assets/javascripts/bootstrap/collapse.js +72 -68
  13. data/assets/javascripts/bootstrap/dropdown.js +97 -85
  14. data/assets/javascripts/bootstrap/modal.js +104 -101
  15. data/assets/javascripts/bootstrap/popover.js +55 -68
  16. data/assets/javascripts/bootstrap/scrollspy.js +63 -68
  17. data/assets/javascripts/bootstrap/tab.js +54 -49
  18. data/assets/javascripts/bootstrap/tooltip.js +102 -116
  19. data/assets/javascripts/bootstrap/util.js +20 -30
  20. data/assets/stylesheets/_bootstrap-grid.scss +7 -9
  21. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  22. data/assets/stylesheets/_bootstrap.scss +2 -1
  23. data/assets/stylesheets/bootstrap/_alert.scss +4 -3
  24. data/assets/stylesheets/bootstrap/_badge.scss +1 -2
  25. data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -4
  26. data/assets/stylesheets/bootstrap/_button-group.scss +33 -24
  27. data/assets/stylesheets/bootstrap/_buttons.scss +24 -29
  28. data/assets/stylesheets/bootstrap/_card.scss +58 -22
  29. data/assets/stylesheets/bootstrap/_carousel.scss +6 -0
  30. data/assets/stylesheets/bootstrap/_close.scss +2 -2
  31. data/assets/stylesheets/bootstrap/_custom-forms.scss +11 -8
  32. data/assets/stylesheets/bootstrap/_dropdown.scss +16 -41
  33. data/assets/stylesheets/bootstrap/_forms.scss +12 -44
  34. data/assets/stylesheets/bootstrap/_functions.scss +6 -10
  35. data/assets/stylesheets/bootstrap/_grid.scss +0 -1
  36. data/assets/stylesheets/bootstrap/_input-group.scss +17 -7
  37. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  38. data/assets/stylesheets/bootstrap/_modal.scss +12 -1
  39. data/assets/stylesheets/bootstrap/_nav.scss +5 -5
  40. data/assets/stylesheets/bootstrap/_navbar.scss +27 -5
  41. data/assets/stylesheets/bootstrap/_pagination.scss +2 -4
  42. data/assets/stylesheets/bootstrap/_popover.scss +16 -17
  43. data/assets/stylesheets/bootstrap/_print.scss +2 -3
  44. data/assets/stylesheets/bootstrap/_progress.scss +4 -6
  45. data/assets/stylesheets/bootstrap/_reboot.scss +39 -16
  46. data/assets/stylesheets/bootstrap/_root.scss +19 -0
  47. data/assets/stylesheets/bootstrap/_tables.scss +40 -28
  48. data/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
  49. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  50. data/assets/stylesheets/bootstrap/_type.scss +2 -0
  51. data/assets/stylesheets/bootstrap/_variables.scss +467 -476
  52. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -1
  53. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +8 -0
  54. data/assets/stylesheets/bootstrap/mixins/_badge.scss +2 -2
  55. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +18 -4
  56. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +27 -16
  57. data/assets/stylesheets/bootstrap/mixins/_caret.scss +35 -0
  58. data/assets/stylesheets/bootstrap/mixins/_float.scss +2 -0
  59. data/assets/stylesheets/bootstrap/mixins/_forms.scss +31 -4
  60. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +8 -0
  61. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +14 -1
  62. data/assets/stylesheets/bootstrap/mixins/_grid.scss +10 -5
  63. data/assets/stylesheets/bootstrap/mixins/_hover.scss +13 -12
  64. data/assets/stylesheets/bootstrap/mixins/_image.scss +3 -3
  65. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +0 -2
  66. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +2 -1
  67. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -2
  68. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +2 -2
  69. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +2 -0
  70. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +2 -0
  71. data/assets/stylesheets/bootstrap/utilities/_align.scss +2 -0
  72. data/assets/stylesheets/bootstrap/utilities/_background.scss +16 -3
  73. data/assets/stylesheets/bootstrap/utilities/_borders.scss +5 -3
  74. data/assets/stylesheets/bootstrap/utilities/_display.scss +3 -0
  75. data/assets/stylesheets/bootstrap/utilities/_flex.scss +2 -0
  76. data/assets/stylesheets/bootstrap/utilities/_position.scss +12 -1
  77. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +2 -0
  78. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +24 -14
  79. data/assets/stylesheets/bootstrap/utilities/_text.scss +7 -4
  80. data/bootstrap.gemspec +2 -3
  81. data/lib/bootstrap.rb +0 -16
  82. data/lib/bootstrap/version.rb +2 -2
  83. data/tasks/updater/js.rb +31 -4
  84. data/tasks/updater/scss.rb +0 -12
  85. data/test/dummy_rails/config/application.rb +0 -1
  86. metadata +16 -27
  87. data/templates/project/_bootstrap-variables.scss +0 -834
  88. data/templates/project/manifest.rb +0 -18
  89. data/templates/project/styles.scss +0 -10
  90. data/test/compass_test.rb +0 -14
@@ -16,7 +16,6 @@
16
16
 
17
17
  @if $enable-grid-classes {
18
18
  .container-fluid {
19
- width: 100%;
20
19
  @include make-container();
21
20
  }
22
21
  }
@@ -1,3 +1,5 @@
1
+ // stylelint-disable selector-no-qualifying-type
2
+
1
3
  //
2
4
  // Base styles
3
5
  //
@@ -5,6 +7,7 @@
5
7
  .input-group {
6
8
  position: relative;
7
9
  display: flex;
10
+ align-items: stretch;
8
11
  width: 100%;
9
12
 
10
13
  .form-control {
@@ -28,10 +31,8 @@
28
31
  .input-group-addon,
29
32
  .input-group-btn,
30
33
  .input-group .form-control {
31
- // Vertically centers the content of the addons within the input group
32
34
  display: flex;
33
35
  align-items: center;
34
-
35
36
  &:not(:first-child):not(:last-child) {
36
37
  @include border-radius(0);
37
38
  }
@@ -40,7 +41,6 @@
40
41
  .input-group-addon,
41
42
  .input-group-btn {
42
43
  white-space: nowrap;
43
- vertical-align: middle; // Match the inputs
44
44
  }
45
45
 
46
46
 
@@ -71,7 +71,7 @@
71
71
  font-size: $font-size-base; // Match inputs
72
72
  font-weight: $font-weight-normal;
73
73
  line-height: $input-btn-line-height;
74
- color: $input-color;
74
+ color: $input-group-addon-color;
75
75
  text-align: center;
76
76
  background-color: $input-group-addon-bg;
77
77
  border: $input-btn-border-width solid $input-group-addon-border-color;
@@ -90,13 +90,11 @@
90
90
  @include border-radius($input-border-radius-lg);
91
91
  }
92
92
 
93
- // scss-lint:disable QualifyingElement
94
93
  // Nuke default margins from checkboxes and radios to vertically center within.
95
94
  input[type="radio"],
96
95
  input[type="checkbox"] {
97
96
  margin-top: 0;
98
97
  }
99
- // scss-lint:enable QualifyingElement
100
98
  }
101
99
 
102
100
 
@@ -135,6 +133,7 @@
135
133
 
136
134
  .input-group-btn {
137
135
  position: relative;
136
+ align-items: stretch;
138
137
  // Jankily prevent input button groups from wrapping with `white-space` and
139
138
  // `font-size` in combination with `inline-block` on buttons.
140
139
  font-size: 0;
@@ -155,6 +154,10 @@
155
154
  }
156
155
  }
157
156
 
157
+ &:first-child > .btn + .btn {
158
+ margin-left: 0;
159
+ }
160
+
158
161
  // Negative margin to only have a single, shared border between the two
159
162
  &:not(:last-child) {
160
163
  > .btn,
@@ -166,7 +169,14 @@
166
169
  > .btn,
167
170
  > .btn-group {
168
171
  z-index: 2;
169
- margin-left: (-$input-btn-border-width);
172
+ // remove nagative margin ($input-btn-border-width) to solve overlapping issue with button.
173
+ margin-left: 0;
174
+
175
+ // When input is first, overlap the right side of it with the button(-group)
176
+ &:first-child {
177
+ margin-left: (-$input-btn-border-width);
178
+ }
179
+
170
180
  // Because specificity
171
181
  @include hover-focus-active {
172
182
  z-index: 3;
@@ -19,6 +19,7 @@
19
19
  // // Components
20
20
  @import "mixins/alert";
21
21
  @import "mixins/buttons";
22
+ @import "mixins/caret";
22
23
  @import "mixins/pagination";
23
24
  @import "mixins/lists";
24
25
  @import "mixins/list-group";
@@ -43,6 +43,8 @@
43
43
  position: relative;
44
44
  width: auto;
45
45
  margin: $modal-dialog-margin;
46
+ // allow clicks to pass through for custom click handling to close modal
47
+ pointer-events: none;
46
48
  }
47
49
 
48
50
  // Actual modal
@@ -50,6 +52,8 @@
50
52
  position: relative;
51
53
  display: flex;
52
54
  flex-direction: column;
55
+ // counteract the pointer-events: none; in the .modal-dialog
56
+ pointer-events: auto;
53
57
  background-color: $modal-content-bg;
54
58
  background-clip: padding-box;
55
59
  border: $modal-content-border-width solid $modal-content-border-color;
@@ -78,10 +82,17 @@
78
82
  // Top section of the modal w/ title and dismiss
79
83
  .modal-header {
80
84
  display: flex;
81
- align-items: center; // vertically center it
85
+ align-items: flex-start; // so the close btn always stays on the upper right corner
82
86
  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
83
87
  padding: $modal-header-padding;
84
88
  border-bottom: $modal-header-border-width solid $modal-header-border-color;
89
+ @include border-top-radius($border-radius-lg);
90
+
91
+ .close {
92
+ padding: $modal-header-padding;
93
+ // auto on the left force icon to the right even when there is no .modal-title
94
+ margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;
95
+ }
85
96
  }
86
97
 
87
98
  // Title text within header
@@ -74,12 +74,12 @@
74
74
  .nav-pills {
75
75
  .nav-link {
76
76
  @include border-radius($nav-pills-border-radius);
77
+ }
77
78
 
78
- &.active,
79
- .show > & {
80
- color: $nav-pills-link-active-color;
81
- background-color: $nav-pills-link-active-bg;
82
- }
79
+ .nav-link.active,
80
+ .show > .nav-link {
81
+ color: $nav-pills-link-active-color;
82
+ background-color: $nav-pills-link-active-bg;
83
83
  }
84
84
  }
85
85
 
@@ -98,6 +98,7 @@
98
98
  // on the `.navbar` parent.
99
99
  .navbar-collapse {
100
100
  flex-basis: 100%;
101
+ flex-grow: 1;
101
102
  // For always expanded or extra full navbars, ensure content aligns itself
102
103
  // properly vertically. Can be easily overridden with flex utilities.
103
104
  align-items: center;
@@ -146,8 +147,7 @@
146
147
  }
147
148
 
148
149
  @include media-breakpoint-up($next) {
149
- flex-direction: row;
150
- flex-wrap: nowrap;
150
+ flex-flow: row nowrap;
151
151
  justify-content: flex-start;
152
152
 
153
153
  .navbar-nav {
@@ -174,15 +174,23 @@
174
174
  flex-wrap: nowrap;
175
175
  }
176
176
 
177
- // scss-lint:disable ImportantRule
178
177
  .navbar-collapse {
179
- display: flex !important;
178
+ display: flex !important; // stylelint-disable-line declaration-no-important
179
+
180
+ // Changes flex-bases to auto because of an IE10 bug
181
+ flex-basis: auto;
180
182
  }
181
- // scss-lint:enable ImportantRule
182
183
 
183
184
  .navbar-toggler {
184
185
  display: none;
185
186
  }
187
+
188
+ .dropup {
189
+ .dropdown-menu {
190
+ top: auto;
191
+ bottom: 100%;
192
+ }
193
+ }
186
194
  }
187
195
  }
188
196
  }
@@ -235,6 +243,13 @@
235
243
 
236
244
  .navbar-text {
237
245
  color: $navbar-light-color;
246
+ a {
247
+ color: $navbar-light-active-color;
248
+
249
+ @include hover-focus {
250
+ color: $navbar-light-active-color;
251
+ }
252
+ }
238
253
  }
239
254
  }
240
255
 
@@ -280,5 +295,12 @@
280
295
 
281
296
  .navbar-text {
282
297
  color: $navbar-dark-color;
298
+ a {
299
+ color: $navbar-dark-active-color;
300
+
301
+ @include hover-focus {
302
+ color: $navbar-dark-active-color;
303
+ }
304
+ }
283
305
  }
284
306
  }
@@ -1,8 +1,6 @@
1
1
  .pagination {
2
2
  display: flex;
3
- // 1-2: Disable browser default list styles
4
- padding-left: 0; // 1
5
- list-style: none; // 2
3
+ @include list-unstyled();
6
4
  @include border-radius();
7
5
  }
8
6
 
@@ -38,7 +36,7 @@
38
36
  position: relative;
39
37
  display: block;
40
38
  padding: $pagination-padding-y $pagination-padding-x;
41
- margin-left: -1px;
39
+ margin-left: -$pagination-border-width;
42
40
  line-height: $pagination-line-height;
43
41
  color: $pagination-color;
44
42
  background-color: $pagination-bg;
@@ -5,7 +5,6 @@
5
5
  z-index: $zindex-popover;
6
6
  display: block;
7
7
  max-width: $popover-max-width;
8
- padding: $popover-inner-padding;
9
8
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
10
9
  // So reset our font and text properties to avoid inheriting weird values.
11
10
  @include reset-text();
@@ -39,11 +38,11 @@
39
38
 
40
39
  .arrow::before {
41
40
  content: "";
42
- border-width: $popover-arrow-outer-width;
41
+ border-width: $popover-arrow-width;
43
42
  }
44
43
  .arrow::after {
45
44
  content: "";
46
- border-width: $popover-arrow-outer-width;
45
+ border-width: $popover-arrow-width;
47
46
  }
48
47
 
49
48
  // Popover directions
@@ -61,14 +60,14 @@
61
60
  }
62
61
 
63
62
  .arrow::before {
64
- bottom: -$popover-arrow-outer-width;
65
- margin-left: -($popover-arrow-outer-width - 5);
63
+ bottom: -$popover-arrow-width;
64
+ margin-left: -$popover-arrow-width;
66
65
  border-top-color: $popover-arrow-outer-color;
67
66
  }
68
67
 
69
68
  .arrow::after {
70
- bottom: -($popover-arrow-outer-width - 1);
71
- margin-left: -($popover-arrow-outer-width - 5);
69
+ bottom: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
70
+ margin-left: -$popover-arrow-width;
72
71
  border-top-color: $popover-arrow-color;
73
72
  }
74
73
  }
@@ -82,17 +81,17 @@
82
81
 
83
82
  .arrow::before,
84
83
  .arrow::after {
85
- margin-top: -($popover-arrow-outer-width - 3);
84
+ margin-top: -$popover-arrow-width;
86
85
  border-left-width: 0;
87
86
  }
88
87
 
89
88
  .arrow::before {
90
- left: -$popover-arrow-outer-width;
89
+ left: -$popover-arrow-width;
91
90
  border-right-color: $popover-arrow-outer-color;
92
91
  }
93
92
 
94
93
  .arrow::after {
95
- left: -($popover-arrow-outer-width - 1);
94
+ left: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
96
95
  border-right-color: $popover-arrow-color;
97
96
  }
98
97
  }
@@ -106,17 +105,17 @@
106
105
 
107
106
  .arrow::before,
108
107
  .arrow::after {
109
- margin-left: -($popover-arrow-width - 3);
108
+ margin-left: -$popover-arrow-width;
110
109
  border-top-width: 0;
111
110
  }
112
111
 
113
112
  .arrow::before {
114
- top: -$popover-arrow-outer-width;
113
+ top: -$popover-arrow-width;
115
114
  border-bottom-color: $popover-arrow-outer-color;
116
115
  }
117
116
 
118
117
  .arrow::after {
119
- top: -($popover-arrow-outer-width - 1);
118
+ top: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
120
119
  border-bottom-color: $popover-arrow-color;
121
120
  }
122
121
 
@@ -129,7 +128,7 @@
129
128
  width: 20px;
130
129
  margin-left: -10px;
131
130
  content: "";
132
- border-bottom: 1px solid $popover-header-bg;
131
+ border-bottom: $popover-border-width solid $popover-header-bg;
133
132
  }
134
133
  }
135
134
 
@@ -142,17 +141,17 @@
142
141
 
143
142
  .arrow::before,
144
143
  .arrow::after {
145
- margin-top: -($popover-arrow-outer-width - 3);
144
+ margin-top: -$popover-arrow-width;
146
145
  border-right-width: 0;
147
146
  }
148
147
 
149
148
  .arrow::before {
150
- right: -$popover-arrow-outer-width;
149
+ right: -$popover-arrow-width;
151
150
  border-left-color: $popover-arrow-outer-color;
152
151
  }
153
152
 
154
153
  .arrow::after {
155
- right: -($popover-arrow-outer-width - 1);
154
+ right: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
156
155
  border-left-color: $popover-arrow-color;
157
156
  }
158
157
  }
@@ -1,4 +1,4 @@
1
- // scss-lint:disable QualifyingElement
1
+ // stylelint-disable declaration-no-important, selector-no-qualifying-type
2
2
 
3
3
  // Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
4
4
 
@@ -14,8 +14,7 @@
14
14
  *::before,
15
15
  *::after {
16
16
  // Bootstrap specific; comment out `color` and `background`
17
- //color: #000 !important; // Black prints faster:
18
- // http://www.sanbeiji.com/archives/953
17
+ //color: #000 !important; // Black prints faster: http://www.sanbeiji.com/archives/953
19
18
  text-shadow: none !important;
20
19
  //background: transparent !important;
21
20
  box-shadow: none !important;
@@ -5,21 +5,19 @@
5
5
 
6
6
  .progress {
7
7
  display: flex;
8
+ height: $progress-height;
8
9
  overflow: hidden; // force rounded corners by cropping it
9
10
  font-size: $progress-font-size;
10
- line-height: $progress-height;
11
- text-align: center;
12
11
  background-color: $progress-bg;
13
12
  @include border-radius($progress-border-radius);
14
- @include box-shadow($progress-box-shadow);
15
13
  }
16
14
 
17
15
  .progress-bar {
18
- height: $progress-height;
19
- line-height: $progress-height;
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: center;
20
19
  color: $progress-bar-color;
21
20
  background-color: $progress-bar-bg;
22
- @include transition($progress-bar-transition);
23
21
  }
24
22
 
25
23
  .progress-bar-striped {
@@ -1,4 +1,4 @@
1
- // scss-lint:disable QualifyingElement, DuplicateProperty, VendorPrefix
1
+ // stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
2
2
 
3
3
  // Reboot
4
4
  //
@@ -18,8 +18,13 @@
18
18
  // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
19
19
  // 6. Change the default tap highlight to be completely transparent in iOS.
20
20
 
21
- html {
21
+ *,
22
+ *::before,
23
+ *::after {
22
24
  box-sizing: border-box; // 1
25
+ }
26
+
27
+ html {
23
28
  font-family: sans-serif; // 2
24
29
  line-height: 1.15; // 3
25
30
  -webkit-text-size-adjust: 100%; // 4
@@ -28,26 +33,26 @@ html {
28
33
  -webkit-tap-highlight-color: rgba(0,0,0,0); // 6
29
34
  }
30
35
 
31
- *,
32
- *::before,
33
- *::after {
34
- box-sizing: inherit; // 1
35
- }
36
-
37
36
  // IE10+ doesn't honor `<meta name="viewport">` in some cases.
38
37
  @at-root {
39
- @-ms-viewport { width: device-width; }
38
+ @-ms-viewport {
39
+ width: device-width;
40
+ }
40
41
  }
41
42
 
43
+ // stylelint-disable selector-list-comma-newline-after
42
44
  // Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
43
45
  article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
44
46
  display: block;
45
47
  }
48
+ // stylelint-enable selector-list-comma-newline-after
46
49
 
47
50
  // Body
48
51
  //
49
52
  // 1. Remove the margin in all browsers.
50
53
  // 2. As a best practice, apply a default `background-color`.
54
+ // 3. Set an explicit initial text-align value so that we can later use the
55
+ // the `inherit` value on things like `<th>` elements.
51
56
 
52
57
  body {
53
58
  margin: 0; // 1
@@ -56,6 +61,7 @@ body {
56
61
  font-weight: $font-weight-base;
57
62
  line-height: $line-height-base;
58
63
  color: $body-color;
64
+ text-align: left; // 3
59
65
  background-color: $body-bg; // 2
60
66
  }
61
67
 
@@ -89,10 +95,12 @@ hr {
89
95
  //
90
96
  // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
91
97
  // margin for easier control within type scales as it avoids margin collapsing.
98
+ // stylelint-disable selector-list-comma-newline-after
92
99
  h1, h2, h3, h4, h5, h6 {
93
100
  margin-top: 0;
94
- margin-bottom: .5rem;
101
+ margin-bottom: $headings-margin-bottom;
95
102
  }
103
+ // stylelint-enable selector-list-comma-newline-after
96
104
 
97
105
  // Reset margins on paragraphs
98
106
  //
@@ -100,7 +108,7 @@ h1, h2, h3, h4, h5, h6 {
100
108
  // bottom margin to use `rem` units instead of `em`.
101
109
  p {
102
110
  margin-top: 0;
103
- margin-bottom: 1rem;
111
+ margin-bottom: $paragraph-margin-bottom;
104
112
  }
105
113
 
106
114
  // Abbreviations
@@ -155,10 +163,12 @@ dfn {
155
163
  font-style: italic; // Add the correct font style in Android 4.3-
156
164
  }
157
165
 
166
+ // stylelint-disable font-weight-notation
158
167
  b,
159
168
  strong {
160
169
  font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari
161
170
  }
171
+ // stylelint-enable font-weight-notation
162
172
 
163
173
  small {
164
174
  font-size: 80%; // Add the correct font size in all browsers
@@ -222,6 +232,7 @@ a:not([href]):not([tabindex]) {
222
232
  // Code
223
233
  //
224
234
 
235
+ // stylelint-disable font-family-no-duplicate-names
225
236
  pre,
226
237
  code,
227
238
  kbd,
@@ -229,6 +240,7 @@ samp {
229
240
  font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.
230
241
  font-size: 1em; // Correct the odd `em` font sizing in all browsers.
231
242
  }
243
+ // stylelint-enable font-family-no-duplicate-names
232
244
 
233
245
  pre {
234
246
  // Remove browser default top margin
@@ -237,6 +249,9 @@ pre {
237
249
  margin-bottom: 1rem;
238
250
  // Don't allow content to break outside
239
251
  overflow: auto;
252
+ // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so
253
+ // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
254
+ -ms-overflow-style: scrollbar;
240
255
  }
241
256
 
242
257
 
@@ -270,15 +285,15 @@ svg:not(:root) {
270
285
  // DON'T remove the click delay when `<meta name="viewport" content="width=device-width">` is present.
271
286
  // However, they DO support removing the click delay via `touch-action: manipulation`.
272
287
  // See:
273
- // * https://v4-alpha.getbootstrap.com/content/reboot/#click-delay-optimization-for-touch
274
- // * http://caniuse.com/#feat=css-touch-action
288
+ // * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch
289
+ // * https://caniuse.com/#feat=css-touch-action
275
290
  // * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
276
291
 
277
292
  a,
278
293
  area,
279
294
  button,
280
295
  [role="button"],
281
- input,
296
+ input:not([type="range"]),
282
297
  label,
283
298
  select,
284
299
  summary,
@@ -304,8 +319,9 @@ caption {
304
319
  }
305
320
 
306
321
  th {
307
- // Matches default `<td>` alignment
308
- text-align: left;
322
+ // Matches default `<td>` alignment by inheriting from the `<body>`, or the
323
+ // closest parent with a set `text-align`.
324
+ text-align: inherit;
309
325
  }
310
326
 
311
327
 
@@ -319,6 +335,13 @@ label {
319
335
  margin-bottom: .5rem;
320
336
  }
321
337
 
338
+ // Remove the default `border-radius` that macOS Chrome adds.
339
+ //
340
+ // Details at https://github.com/twbs/bootstrap/issues/24093
341
+ button {
342
+ border-radius: 0;
343
+ }
344
+
322
345
  // Work around a Firefox/IE bug where the transparent `button` background
323
346
  // results in a loss of the default `button` focus styles.
324
347
  //