bootstrap 4.3.1 → 4.6.0

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.

Potentially problematic release.


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

Files changed (86) 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 +7 -7
  6. data/assets/javascripts/bootstrap.js +1073 -1076
  7. data/assets/javascripts/bootstrap.min.js +4 -4
  8. data/assets/javascripts/bootstrap/alert.js +42 -49
  9. data/assets/javascripts/bootstrap/button.js +111 -64
  10. data/assets/javascripts/bootstrap/carousel.js +162 -177
  11. data/assets/javascripts/bootstrap/collapse.js +97 -122
  12. data/assets/javascripts/bootstrap/dropdown.js +163 -189
  13. data/assets/javascripts/bootstrap/modal.js +213 -194
  14. data/assets/javascripts/bootstrap/popover.js +51 -72
  15. data/assets/javascripts/bootstrap/scrollspy.js +80 -109
  16. data/assets/javascripts/bootstrap/tab.js +72 -79
  17. data/assets/javascripts/bootstrap/toast.js +96 -107
  18. data/assets/javascripts/bootstrap/tooltip.js +186 -201
  19. data/assets/javascripts/bootstrap/util.js +41 -20
  20. data/assets/stylesheets/_bootstrap-grid.scss +5 -4
  21. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  22. data/assets/stylesheets/_bootstrap.scss +4 -4
  23. data/assets/stylesheets/bootstrap/_alert.scss +1 -0
  24. data/assets/stylesheets/bootstrap/_badge.scss +1 -1
  25. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -2
  26. data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
  27. data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
  28. data/assets/stylesheets/bootstrap/_card.scss +42 -45
  29. data/assets/stylesheets/bootstrap/_carousel.scss +7 -7
  30. data/assets/stylesheets/bootstrap/_close.scss +2 -3
  31. data/assets/stylesheets/bootstrap/_code.scss +1 -1
  32. data/assets/stylesheets/bootstrap/_custom-forms.scss +38 -19
  33. data/assets/stylesheets/bootstrap/_dropdown.scss +7 -6
  34. data/assets/stylesheets/bootstrap/_forms.scss +26 -9
  35. data/assets/stylesheets/bootstrap/_functions.scss +63 -5
  36. data/assets/stylesheets/bootstrap/_grid.scss +32 -11
  37. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  38. data/assets/stylesheets/bootstrap/_input-group.scss +21 -6
  39. data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
  40. data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
  41. data/assets/stylesheets/bootstrap/_modal.scss +26 -15
  42. data/assets/stylesheets/bootstrap/_nav.scss +7 -7
  43. data/assets/stylesheets/bootstrap/_navbar.scss +55 -17
  44. data/assets/stylesheets/bootstrap/_pagination.scss +5 -4
  45. data/assets/stylesheets/bootstrap/_popover.scss +8 -9
  46. data/assets/stylesheets/bootstrap/_print.scss +2 -2
  47. data/assets/stylesheets/bootstrap/_progress.scss +7 -3
  48. data/assets/stylesheets/bootstrap/_reboot.scss +39 -38
  49. data/assets/stylesheets/bootstrap/_spinners.scss +14 -4
  50. data/assets/stylesheets/bootstrap/_tables.scss +3 -3
  51. data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
  52. data/assets/stylesheets/bootstrap/_type.scss +3 -3
  53. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  54. data/assets/stylesheets/bootstrap/_variables.scss +58 -35
  55. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  56. data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
  57. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +27 -14
  58. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
  59. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  60. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
  61. data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -49
  62. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +29 -15
  63. data/assets/stylesheets/bootstrap/mixins/_grid.scss +25 -7
  64. data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
  65. data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
  66. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  67. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  68. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
  69. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  70. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +4 -3
  71. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
  72. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
  73. data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
  74. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  75. data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
  76. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  77. data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
  78. data/bootstrap.gemspec +1 -1
  79. data/lib/bootstrap/version.rb +2 -2
  80. data/tasks/updater/network.rb +2 -2
  81. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  82. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  83. data/test/gemfiles/rails_6_0.gemfile +7 -0
  84. data/test/support/dummy_rails_integration.rb +3 -1
  85. data/test/test_helper.rb +18 -13
  86. metadata +11 -5
@@ -1,20 +1,22 @@
1
1
  /*!
2
- * Bootstrap util.js v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap util.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
- (global = global || self, global.Util = factory(global.jQuery));
10
- }(this, function ($) { 'use strict';
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));
10
+ }(this, (function ($) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
13
15
 
14
16
  /**
15
17
  * --------------------------------------------------------------------------
16
- * Bootstrap (v4.3.1): util.js
17
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
+ * Bootstrap (v4.6.0): util.js
19
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
18
20
  * --------------------------------------------------------------------------
19
21
  */
20
22
  /**
@@ -28,6 +30,10 @@
28
30
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
29
31
 
30
32
  function toType(obj) {
33
+ if (obj === null || typeof obj === 'undefined') {
34
+ return "" + obj;
35
+ }
36
+
31
37
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
32
38
  }
33
39
 
@@ -36,11 +42,11 @@
36
42
  bindType: TRANSITION_END,
37
43
  delegateType: TRANSITION_END,
38
44
  handle: function handle(event) {
39
- if ($(event.target).is(this)) {
45
+ if ($__default['default'](event.target).is(this)) {
40
46
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
41
47
  }
42
48
 
43
- return undefined; // eslint-disable-line no-undefined
49
+ return undefined;
44
50
  }
45
51
  };
46
52
  }
@@ -49,7 +55,7 @@
49
55
  var _this = this;
50
56
 
51
57
  var called = false;
52
- $(this).one(Util.TRANSITION_END, function () {
58
+ $__default['default'](this).one(Util.TRANSITION_END, function () {
53
59
  called = true;
54
60
  });
55
61
  setTimeout(function () {
@@ -61,8 +67,8 @@
61
67
  }
62
68
 
63
69
  function setTransitionEndSupport() {
64
- $.fn.emulateTransitionEnd = transitionEndEmulator;
65
- $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
70
+ $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;
71
+ $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
66
72
  }
67
73
  /**
68
74
  * --------------------------------------------------------------------------
@@ -75,7 +81,6 @@
75
81
  TRANSITION_END: 'bsTransitionEnd',
76
82
  getUID: function getUID(prefix) {
77
83
  do {
78
- // eslint-disable-next-line no-bitwise
79
84
  prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
80
85
  } while (document.getElementById(prefix));
81
86
 
@@ -91,7 +96,7 @@
91
96
 
92
97
  try {
93
98
  return document.querySelector(selector) ? selector : null;
94
- } catch (err) {
99
+ } catch (_) {
95
100
  return null;
96
101
  }
97
102
  },
@@ -101,8 +106,8 @@
101
106
  } // Get transition-duration of the element
102
107
 
103
108
 
104
- var transitionDuration = $(element).css('transition-duration');
105
- var transitionDelay = $(element).css('transition-delay');
109
+ var transitionDuration = $__default['default'](element).css('transition-duration');
110
+ var transitionDelay = $__default['default'](element).css('transition-delay');
106
111
  var floatTransitionDuration = parseFloat(transitionDuration);
107
112
  var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
108
113
 
@@ -119,9 +124,8 @@
119
124
  return element.offsetHeight;
120
125
  },
121
126
  triggerTransitionEnd: function triggerTransitionEnd(element) {
122
- $(element).trigger(TRANSITION_END);
127
+ $__default['default'](element).trigger(TRANSITION_END);
123
128
  },
124
- // TODO: Remove in v5
125
129
  supportsTransitionEnd: function supportsTransitionEnd() {
126
130
  return Boolean(TRANSITION_END);
127
131
  },
@@ -162,10 +166,27 @@
162
166
  }
163
167
 
164
168
  return Util.findShadowRoot(element.parentNode);
169
+ },
170
+ jQueryDetection: function jQueryDetection() {
171
+ if (typeof $__default['default'] === 'undefined') {
172
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
173
+ }
174
+
175
+ var version = $__default['default'].fn.jquery.split(' ')[0].split('.');
176
+ var minMajor = 1;
177
+ var ltMajor = 2;
178
+ var minMinor = 9;
179
+ var minPatch = 1;
180
+ var maxMajor = 4;
181
+
182
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
183
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
184
+ }
165
185
  }
166
186
  };
187
+ Util.jQueryDetection();
167
188
  setTransitionEndSupport();
168
189
 
169
190
  return Util;
170
191
 
171
- }));
192
+ })));
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap Grid v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
8
  html {
@@ -19,6 +19,7 @@ html {
19
19
  @import "bootstrap/functions";
20
20
  @import "bootstrap/variables";
21
21
 
22
+ @import "bootstrap/mixins/deprecate";
22
23
  @import "bootstrap/mixins/breakpoints";
23
24
  @import "bootstrap/mixins/grid-framework";
24
25
  @import "bootstrap/mixins/grid";
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7
7
  */
8
8
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap v4.3.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
8
  @import "bootstrap/functions";
@@ -34,6 +34,7 @@
34
34
  position: absolute;
35
35
  top: 0;
36
36
  right: 0;
37
+ z-index: 2;
37
38
  padding: $alert-padding-y $alert-padding-x;
38
39
  color: inherit;
39
40
  }
@@ -16,7 +16,7 @@
16
16
  @include transition($badge-transition);
17
17
 
18
18
  @at-root a#{&} {
19
- @include hover-focus {
19
+ @include hover-focus() {
20
20
  text-decoration: none;
21
21
  }
22
22
  }
@@ -3,6 +3,7 @@
3
3
  flex-wrap: wrap;
4
4
  padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5
5
  margin-bottom: $breadcrumb-margin-bottom;
6
+ @include font-size($breadcrumb-font-size);
6
7
  list-style: none;
7
8
  background-color: $breadcrumb-bg;
8
9
  @include border-radius($breadcrumb-border-radius);
@@ -14,10 +15,10 @@
14
15
  padding-left: $breadcrumb-item-padding;
15
16
 
16
17
  &::before {
17
- display: inline-block; // Suppress underlining of the separator in modern browsers
18
+ float: left; // Suppress inline spacings and underlining of the separator
18
19
  padding-right: $breadcrumb-item-padding;
19
20
  color: $breadcrumb-divider-color;
20
- content: $breadcrumb-divider;
21
+ content: escape-svg($breadcrumb-divider);
21
22
  }
22
23
  }
23
24
 
@@ -13,7 +13,7 @@
13
13
 
14
14
  // Bring the hover, focused, and "active" buttons to the front to overlay
15
15
  // the borders properly
16
- @include hover {
16
+ @include hover() {
17
17
  z-index: 1;
18
18
  }
19
19
  &:focus,
@@ -10,6 +10,8 @@
10
10
  font-weight: $btn-font-weight;
11
11
  color: $body-color;
12
12
  text-align: center;
13
+ text-decoration: if($link-decoration == none, null, none);
14
+ white-space: $btn-white-space;
13
15
  vertical-align: middle;
14
16
  user-select: none;
15
17
  background-color: transparent;
@@ -17,7 +19,7 @@
17
19
  @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
18
20
  @include transition($btn-transition);
19
21
 
20
- @include hover {
22
+ @include hover() {
21
23
  color: $body-color;
22
24
  text-decoration: none;
23
25
  }
@@ -35,12 +37,16 @@
35
37
  @include box-shadow(none);
36
38
  }
37
39
 
38
- &:not(:disabled):not(.disabled):active,
39
- &:not(:disabled):not(.disabled).active {
40
- @include box-shadow($btn-active-box-shadow);
40
+ &:not(:disabled):not(.disabled) {
41
+ cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
41
42
 
42
- &:focus {
43
- @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
43
+ &:active,
44
+ &.active {
45
+ @include box-shadow($btn-active-box-shadow);
46
+
47
+ &:focus {
48
+ @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
49
+ }
44
50
  }
45
51
  }
46
52
  }
@@ -79,7 +85,7 @@ fieldset:disabled a.btn {
79
85
  color: $link-color;
80
86
  text-decoration: $link-decoration;
81
87
 
82
- @include hover {
88
+ @include hover() {
83
89
  color: $link-hover-color;
84
90
  text-decoration: $link-hover-decoration;
85
91
  }
@@ -87,7 +93,6 @@ fieldset:disabled a.btn {
87
93
  &:focus,
88
94
  &.focus {
89
95
  text-decoration: $link-hover-decoration;
90
- box-shadow: none;
91
96
  }
92
97
 
93
98
  &:disabled,
@@ -7,6 +7,7 @@
7
7
  display: flex;
8
8
  flex-direction: column;
9
9
  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
10
+ height: $card-height;
10
11
  word-wrap: break-word;
11
12
  background-color: $card-bg;
12
13
  background-clip: border-box;
@@ -18,23 +19,36 @@
18
19
  margin-left: 0;
19
20
  }
20
21
 
21
- > .list-group:first-child {
22
- .list-group-item:first-child {
23
- @include border-top-radius($card-border-radius);
22
+ > .list-group {
23
+ border-top: inherit;
24
+ border-bottom: inherit;
25
+
26
+ &:first-child {
27
+ border-top-width: 0;
28
+ @include border-top-radius($card-inner-border-radius);
24
29
  }
25
- }
26
30
 
27
- > .list-group:last-child {
28
- .list-group-item:last-child {
29
- @include border-bottom-radius($card-border-radius);
31
+ &:last-child {
32
+ border-bottom-width: 0;
33
+ @include border-bottom-radius($card-inner-border-radius);
30
34
  }
31
35
  }
36
+
37
+ // Due to specificity of the above selector (`.card > .list-group`), we must
38
+ // use a child selector here to prevent double borders.
39
+ > .card-header + .list-group,
40
+ > .list-group + .card-footer {
41
+ border-top: 0;
42
+ }
32
43
  }
33
44
 
34
45
  .card-body {
35
46
  // Enable `flex-grow: 1` for decks and groups so that card blocks take up
36
47
  // as much space as possible, ensuring footers are aligned to the bottom.
37
48
  flex: 1 1 auto;
49
+ // Workaround for the image size bug in IE
50
+ // See: https://github.com/twbs/bootstrap/pull/28855
51
+ min-height: 1px;
38
52
  padding: $card-spacer-x;
39
53
  color: $card-color;
40
54
  }
@@ -53,7 +67,7 @@
53
67
  }
54
68
 
55
69
  .card-link {
56
- @include hover {
70
+ @include hover() {
57
71
  text-decoration: none;
58
72
  }
59
73
 
@@ -76,16 +90,11 @@
76
90
  &:first-child {
77
91
  @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
78
92
  }
79
-
80
- + .list-group {
81
- .list-group-item:first-child {
82
- border-top: 0;
83
- }
84
- }
85
93
  }
86
94
 
87
95
  .card-footer {
88
96
  padding: $card-spacer-y $card-spacer-x;
97
+ color: $card-cap-color;
89
98
  background-color: $card-cap-bg;
90
99
  border-top: $card-border-width solid $card-border-color;
91
100
 
@@ -119,21 +128,23 @@
119
128
  bottom: 0;
120
129
  left: 0;
121
130
  padding: $card-img-overlay-padding;
131
+ @include border-radius($card-inner-border-radius);
122
132
  }
123
133
 
124
- .card-img {
134
+ .card-img,
135
+ .card-img-top,
136
+ .card-img-bottom {
137
+ flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396
125
138
  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
126
- @include border-radius($card-inner-border-radius);
127
139
  }
128
140
 
129
- // Card image caps
141
+ .card-img,
130
142
  .card-img-top {
131
- width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
132
143
  @include border-top-radius($card-inner-border-radius);
133
144
  }
134
145
 
146
+ .card-img,
135
147
  .card-img-bottom {
136
- width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
137
148
  @include border-bottom-radius($card-inner-border-radius);
138
149
  }
139
150
 
@@ -141,23 +152,19 @@
141
152
  // Card deck
142
153
 
143
154
  .card-deck {
144
- display: flex;
145
- flex-direction: column;
146
-
147
155
  .card {
148
156
  margin-bottom: $card-deck-margin;
149
157
  }
150
158
 
151
159
  @include media-breakpoint-up(sm) {
160
+ display: flex;
152
161
  flex-flow: row wrap;
153
162
  margin-right: -$card-deck-margin;
154
163
  margin-left: -$card-deck-margin;
155
164
 
156
165
  .card {
157
- display: flex;
158
166
  // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
159
167
  flex: 1 0 0%;
160
- flex-direction: column;
161
168
  margin-right: $card-deck-margin;
162
169
  margin-bottom: 0; // Override the default
163
170
  margin-left: $card-deck-margin;
@@ -171,9 +178,6 @@
171
178
  //
172
179
 
173
180
  .card-group {
174
- display: flex;
175
- flex-direction: column;
176
-
177
181
  // The child selector allows nested `.card` within `.card-group`
178
182
  // to display properly.
179
183
  > .card {
@@ -181,6 +185,7 @@
181
185
  }
182
186
 
183
187
  @include media-breakpoint-up(sm) {
188
+ display: flex;
184
189
  flex-flow: row wrap;
185
190
  // The child selector allows nested `.card` within `.card-group`
186
191
  // to display properly.
@@ -201,12 +206,12 @@
201
206
 
202
207
  .card-img-top,
203
208
  .card-header {
204
- // stylelint-disable-next-line property-blacklist
209
+ // stylelint-disable-next-line property-disallowed-list
205
210
  border-top-right-radius: 0;
206
211
  }
207
212
  .card-img-bottom,
208
213
  .card-footer {
209
- // stylelint-disable-next-line property-blacklist
214
+ // stylelint-disable-next-line property-disallowed-list
210
215
  border-bottom-right-radius: 0;
211
216
  }
212
217
  }
@@ -216,12 +221,12 @@
216
221
 
217
222
  .card-img-top,
218
223
  .card-header {
219
- // stylelint-disable-next-line property-blacklist
224
+ // stylelint-disable-next-line property-disallowed-list
220
225
  border-top-left-radius: 0;
221
226
  }
222
227
  .card-img-bottom,
223
228
  .card-footer {
224
- // stylelint-disable-next-line property-blacklist
229
+ // stylelint-disable-next-line property-disallowed-list
225
230
  border-bottom-left-radius: 0;
226
231
  }
227
232
  }
@@ -259,30 +264,22 @@
259
264
  //
260
265
 
261
266
  .accordion {
267
+ overflow-anchor: none;
268
+
262
269
  > .card {
263
270
  overflow: hidden;
264
271
 
265
- &:not(:first-of-type) {
266
- .card-header:first-child {
267
- @include border-radius(0);
268
- }
269
-
270
- &:not(:last-of-type) {
271
- border-bottom: 0;
272
- @include border-radius(0);
273
- }
274
- }
275
-
276
- &:first-of-type {
272
+ &:not(:last-of-type) {
277
273
  border-bottom: 0;
278
274
  @include border-bottom-radius(0);
279
275
  }
280
276
 
281
- &:last-of-type {
277
+ &:not(:first-of-type) {
282
278
  @include border-top-radius(0);
283
279
  }
284
280
 
285
- .card-header {
281
+ > .card-header {
282
+ @include border-radius(0);
286
283
  margin-bottom: -$card-border-width;
287
284
  }
288
285
  }