bootstrap 4.1.3 → 5.0.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.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +17 -2
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +7 -4
  5. data/Rakefile +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +226 -166
  7. data/assets/javascripts/bootstrap/base-component.js +63 -0
  8. data/assets/javascripts/bootstrap/button.js +119 -165
  9. data/assets/javascripts/bootstrap/carousel.js +634 -445
  10. data/assets/javascripts/bootstrap/collapse.js +447 -327
  11. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +85 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +550 -425
  16. data/assets/javascripts/bootstrap/modal.js +695 -492
  17. data/assets/javascripts/bootstrap/offcanvas.js +671 -0
  18. data/assets/javascripts/bootstrap/popover.js +167 -217
  19. data/assets/javascripts/bootstrap/scrollspy.js +319 -302
  20. data/assets/javascripts/bootstrap/tab.js +303 -221
  21. data/assets/javascripts/bootstrap/toast.js +333 -0
  22. data/assets/javascripts/bootstrap/tooltip.js +896 -577
  23. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  24. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  25. data/assets/javascripts/bootstrap-sprockets.js +15 -7
  26. data/assets/javascripts/bootstrap.js +4262 -3163
  27. data/assets/javascripts/bootstrap.min.js +4 -4
  28. data/assets/stylesheets/_bootstrap-grid.scss +54 -21
  29. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  30. data/assets/stylesheets/_bootstrap.scss +21 -11
  31. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  32. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  33. data/assets/stylesheets/bootstrap/_badge.scss +3 -21
  34. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
  35. data/assets/stylesheets/bootstrap/_button-group.scss +29 -62
  36. data/assets/stylesheets/bootstrap/_buttons.scss +33 -65
  37. data/assets/stylesheets/bootstrap/_card.scss +55 -141
  38. data/assets/stylesheets/bootstrap/_carousel.scss +94 -101
  39. data/assets/stylesheets/bootstrap/_close.scss +33 -28
  40. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  41. data/assets/stylesheets/bootstrap/_dropdown.scss +114 -40
  42. data/assets/stylesheets/bootstrap/_forms.scss +9 -333
  43. data/assets/stylesheets/bootstrap/_functions.scss +148 -29
  44. data/assets/stylesheets/bootstrap/_grid.scss +4 -34
  45. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  46. data/assets/stylesheets/bootstrap/_images.scss +4 -4
  47. data/assets/stylesheets/bootstrap/_list-group.scss +86 -27
  48. data/assets/stylesheets/bootstrap/_mixins.scss +17 -16
  49. data/assets/stylesheets/bootstrap/_modal.scss +90 -42
  50. data/assets/stylesheets/bootstrap/_nav.scss +31 -10
  51. data/assets/stylesheets/bootstrap/_navbar.scss +68 -61
  52. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  53. data/assets/stylesheets/bootstrap/_pagination.scss +13 -27
  54. data/assets/stylesheets/bootstrap/_popover.scss +63 -88
  55. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  56. data/assets/stylesheets/bootstrap/_reboot.scss +349 -211
  57. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  58. data/assets/stylesheets/bootstrap/_spinners.scss +69 -0
  59. data/assets/stylesheets/bootstrap/_tables.scss +79 -116
  60. data/assets/stylesheets/bootstrap/_toasts.scss +51 -0
  61. data/assets/stylesheets/bootstrap/_tooltip.scss +18 -18
  62. data/assets/stylesheets/bootstrap/_transitions.scss +2 -3
  63. data/assets/stylesheets/bootstrap/_type.scss +42 -63
  64. data/assets/stylesheets/bootstrap/_utilities.scss +594 -15
  65. data/assets/stylesheets/bootstrap/_variables.scss +952 -440
  66. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +67 -0
  72. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  74. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  75. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  76. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  77. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  78. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  79. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  80. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  81. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  82. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  83. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +57 -14
  84. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +14 -1
  85. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +13 -9
  86. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +77 -53
  87. data/assets/stylesheets/bootstrap/mixins/_caret.scss +14 -16
  88. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  89. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  90. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  91. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  92. data/assets/stylesheets/bootstrap/mixins/_forms.scss +87 -97
  93. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  94. data/assets/stylesheets/bootstrap/mixins/_grid.scss +106 -33
  95. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  96. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  97. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +18 -9
  98. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  99. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  100. data/assets/stylesheets/bootstrap/mixins/_transition.scss +19 -6
  101. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  102. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  103. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  104. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +312 -0
  105. data/bootstrap.gemspec +7 -6
  106. data/lib/bootstrap/engine.rb +3 -0
  107. data/lib/bootstrap/version.rb +4 -2
  108. data/lib/bootstrap.rb +10 -7
  109. data/tasks/updater/js.rb +20 -5
  110. data/tasks/updater/network.rb +8 -2
  111. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  112. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  113. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  114. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  115. data/test/dummy_rails/app/views/pages/root.html +89 -0
  116. data/test/dummy_rails/config/application.rb +0 -3
  117. data/test/gemfiles/rails_6_0.gemfile +7 -0
  118. data/test/gemfiles/rails_6_1.gemfile +7 -0
  119. data/test/support/dummy_rails_integration.rb +3 -1
  120. data/test/test_helper.rb +18 -13
  121. metadata +64 -79
  122. data/assets/javascripts/bootstrap/util.js +0 -143
  123. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  124. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -433
  125. data/assets/stylesheets/bootstrap/_input-group.scss +0 -173
  126. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
  127. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  128. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  129. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  130. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
  131. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
  132. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
  133. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  134. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  135. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
  136. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
  137. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
  138. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
  139. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -13
  140. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
  141. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  142. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  143. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
  144. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
  145. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
  146. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  147. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
  148. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -37
  149. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  150. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  151. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
  152. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
  153. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -58
  154. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
  155. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
  156. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -1,19 +1,16 @@
1
1
  :root {
2
2
  // Custom variable values only support SassScript inside `#{}`.
3
3
  @each $color, $value in $colors {
4
- --#{$color}: #{$value};
4
+ --#{$variable-prefix}#{$color}: #{$value};
5
5
  }
6
6
 
7
7
  @each $color, $value in $theme-colors {
8
- --#{$color}: #{$value};
9
- }
10
-
11
- @each $bp, $value in $grid-breakpoints {
12
- --breakpoint-#{$bp}: #{$value};
8
+ --#{$variable-prefix}#{$color}: #{$value};
13
9
  }
14
10
 
15
11
  // Use `inspect` for lists so that quoted items keep the quotes.
16
12
  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
17
- --font-family-sans-serif: #{inspect($font-family-sans-serif)};
18
- --font-family-monospace: #{inspect($font-family-monospace)};
13
+ --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
14
+ --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};
15
+ --#{$variable-prefix}gradient: #{$gradient};
19
16
  }
@@ -0,0 +1,69 @@
1
+ //
2
+ // Rotating border
3
+ //
4
+
5
+ // scss-docs-start spinner-border-keyframes
6
+ @keyframes spinner-border {
7
+ to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
8
+ }
9
+ // scss-docs-end spinner-border-keyframes
10
+
11
+ .spinner-border {
12
+ display: inline-block;
13
+ width: $spinner-width;
14
+ height: $spinner-height;
15
+ vertical-align: $spinner-vertical-align;
16
+ border: $spinner-border-width solid currentColor;
17
+ border-right-color: transparent;
18
+ // stylelint-disable-next-line property-disallowed-list
19
+ border-radius: 50%;
20
+ animation: $spinner-animation-speed linear infinite spinner-border;
21
+ }
22
+
23
+ .spinner-border-sm {
24
+ width: $spinner-width-sm;
25
+ height: $spinner-height-sm;
26
+ border-width: $spinner-border-width-sm;
27
+ }
28
+
29
+ //
30
+ // Growing circle
31
+ //
32
+
33
+ // scss-docs-start spinner-grow-keyframes
34
+ @keyframes spinner-grow {
35
+ 0% {
36
+ transform: scale(0);
37
+ }
38
+ 50% {
39
+ opacity: 1;
40
+ transform: none;
41
+ }
42
+ }
43
+ // scss-docs-end spinner-grow-keyframes
44
+
45
+ .spinner-grow {
46
+ display: inline-block;
47
+ width: $spinner-width;
48
+ height: $spinner-height;
49
+ vertical-align: $spinner-vertical-align;
50
+ background-color: currentColor;
51
+ // stylelint-disable-next-line property-disallowed-list
52
+ border-radius: 50%;
53
+ opacity: 0;
54
+ animation: $spinner-animation-speed linear infinite spinner-grow;
55
+ }
56
+
57
+ .spinner-grow-sm {
58
+ width: $spinner-width-sm;
59
+ height: $spinner-height-sm;
60
+ }
61
+
62
+ @if $enable-reduced-motion {
63
+ @media (prefers-reduced-motion: reduce) {
64
+ .spinner-border,
65
+ .spinner-grow {
66
+ animation-duration: $spinner-animation-speed * 2;
67
+ }
68
+ }
69
+ }
@@ -3,40 +3,64 @@
3
3
  //
4
4
 
5
5
  .table {
6
+ --#{$variable-prefix}table-bg: #{$table-bg};
7
+ --#{$variable-prefix}table-striped-color: #{$table-striped-color};
8
+ --#{$variable-prefix}table-striped-bg: #{$table-striped-bg};
9
+ --#{$variable-prefix}table-active-color: #{$table-active-color};
10
+ --#{$variable-prefix}table-active-bg: #{$table-active-bg};
11
+ --#{$variable-prefix}table-hover-color: #{$table-hover-color};
12
+ --#{$variable-prefix}table-hover-bg: #{$table-hover-bg};
13
+
6
14
  width: 100%;
7
15
  margin-bottom: $spacer;
8
- background-color: $table-bg; // Reset for nesting within parents with `background-color`.
16
+ color: $table-color;
17
+ vertical-align: $table-cell-vertical-align;
18
+ border-color: $table-border-color;
9
19
 
10
- th,
11
- td {
12
- padding: $table-cell-padding;
13
- vertical-align: top;
14
- border-top: $table-border-width solid $table-border-color;
20
+ // Target th & td
21
+ // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
22
+ // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
23
+ // Another advantage is that this generates less code and makes the selector less specific making it easier to override.
24
+ // stylelint-disable-next-line selector-max-universal
25
+ > :not(caption) > * > * {
26
+ padding: $table-cell-padding-y $table-cell-padding-x;
27
+ background-color: var(--#{$variable-prefix}table-bg);
28
+ border-bottom-width: $table-border-width;
29
+ box-shadow: inset 0 0 0 9999px var(--#{$variable-prefix}table-accent-bg);
15
30
  }
16
31
 
17
- thead th {
18
- vertical-align: bottom;
19
- border-bottom: (2 * $table-border-width) solid $table-border-color;
32
+ > tbody {
33
+ vertical-align: inherit;
20
34
  }
21
35
 
22
- tbody + tbody {
23
- border-top: (2 * $table-border-width) solid $table-border-color;
36
+ > thead {
37
+ vertical-align: bottom;
24
38
  }
25
39
 
26
- .table {
27
- background-color: $body-bg;
40
+ // Highlight border color between thead, tbody and tfoot.
41
+ > :not(:last-child) > :last-child > * {
42
+ border-bottom-color: $table-group-separator-color;
28
43
  }
29
44
  }
30
45
 
31
46
 
47
+ //
48
+ // Change placement of captions with a class
49
+ //
50
+
51
+ .caption-top {
52
+ caption-side: top;
53
+ }
54
+
55
+
32
56
  //
33
57
  // Condensed table w/ half padding
34
58
  //
35
59
 
36
60
  .table-sm {
37
- th,
38
- td {
39
- padding: $table-cell-padding-sm;
61
+ // stylelint-disable-next-line selector-max-universal
62
+ > :not(caption) > * > * {
63
+ padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
40
64
  }
41
65
  }
42
66
 
@@ -44,29 +68,27 @@
44
68
  // Border versions
45
69
  //
46
70
  // Add or remove borders all around the table and between all the columns.
71
+ //
72
+ // When borders are added on all sides of the cells, the corners can render odd when
73
+ // these borders do not have the same color or if they are semi-transparent.
74
+ // Therefor we add top and border bottoms to the `tr`s and left and right borders
75
+ // to the `td`s or `th`s
47
76
 
48
77
  .table-bordered {
49
- border: $table-border-width solid $table-border-color;
78
+ > :not(caption) > * {
79
+ border-width: $table-border-width 0;
50
80
 
51
- th,
52
- td {
53
- border: $table-border-width solid $table-border-color;
54
- }
55
-
56
- thead {
57
- th,
58
- td {
59
- border-bottom-width: (2 * $table-border-width);
81
+ // stylelint-disable-next-line selector-max-universal
82
+ > * {
83
+ border-width: 0 $table-border-width;
60
84
  }
61
85
  }
62
86
  }
63
87
 
64
88
  .table-borderless {
65
- th,
66
- td,
67
- thead th,
68
- tbody + tbody {
69
- border: 0;
89
+ // stylelint-disable-next-line selector-max-universal
90
+ > :not(caption) > * > * {
91
+ border-bottom-width: 0;
70
92
  }
71
93
  }
72
94
 
@@ -75,113 +97,54 @@
75
97
  // Default zebra-stripe styles (alternating gray and transparent backgrounds)
76
98
 
77
99
  .table-striped {
78
- tbody tr:nth-of-type(#{$table-striped-order}) {
79
- background-color: $table-accent-bg;
100
+ > tbody > tr:nth-of-type(#{$table-striped-order}) {
101
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);
102
+ color: var(--#{$variable-prefix}table-striped-color);
80
103
  }
81
104
  }
82
105
 
106
+ // Active table
107
+ //
108
+ // The `.table-active` class can be added to highlight rows or cells
109
+
110
+ .table-active {
111
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-active-bg);
112
+ color: var(--#{$variable-prefix}table-active-color);
113
+ }
83
114
 
84
115
  // Hover effect
85
116
  //
86
117
  // Placed here since it has to come after the potential zebra striping
87
118
 
88
119
  .table-hover {
89
- tbody tr {
90
- @include hover {
91
- background-color: $table-hover-bg;
92
- }
120
+ > tbody > tr:hover {
121
+ --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);
122
+ color: var(--#{$variable-prefix}table-hover-color);
93
123
  }
94
124
  }
95
125
 
96
126
 
97
- // Table backgrounds
98
- //
99
- // Exact selectors below required to override `.table-striped` and prevent
100
- // inheritance to nested tables.
101
-
102
- @each $color, $value in $theme-colors {
103
- @include table-row-variant($color, theme-color-level($color, -9));
104
- }
105
-
106
- @include table-row-variant(active, $table-active-bg);
107
-
108
-
109
- // Dark styles
127
+ // Table variants
110
128
  //
111
- // Same table markup, but inverted color scheme: dark background and light text.
112
-
113
- // stylelint-disable-next-line no-duplicate-selectors
114
- .table {
115
- .thead-dark {
116
- th {
117
- color: $table-dark-color;
118
- background-color: $table-dark-bg;
119
- border-color: $table-dark-border-color;
120
- }
121
- }
129
+ // Table variants set the table cell backgrounds, border colors
130
+ // and the colors of the striped, hovered & active tables
122
131
 
123
- .thead-light {
124
- th {
125
- color: $table-head-color;
126
- background-color: $table-head-bg;
127
- border-color: $table-border-color;
128
- }
129
- }
132
+ @each $color, $value in $table-variants {
133
+ @include table-variant($color, $value);
130
134
  }
131
135
 
132
- .table-dark {
133
- color: $table-dark-color;
134
- background-color: $table-dark-bg;
135
-
136
- th,
137
- td,
138
- thead th {
139
- border-color: $table-dark-border-color;
140
- }
141
-
142
- &.table-bordered {
143
- border: 0;
144
- }
145
-
146
- &.table-striped {
147
- tbody tr:nth-of-type(odd) {
148
- background-color: $table-dark-accent-bg;
149
- }
150
- }
151
-
152
- &.table-hover {
153
- tbody tr {
154
- @include hover {
155
- background-color: $table-dark-hover-bg;
156
- }
157
- }
158
- }
159
- }
160
-
161
-
162
136
  // Responsive tables
163
137
  //
164
138
  // Generate series of `.table-responsive-*` classes for configuring the screen
165
139
  // size of where your table will overflow.
166
140
 
167
- .table-responsive {
168
- @each $breakpoint in map-keys($grid-breakpoints) {
169
- $next: breakpoint-next($breakpoint, $grid-breakpoints);
170
- $infix: breakpoint-infix($next, $grid-breakpoints);
171
-
172
- &#{$infix} {
173
- @include media-breakpoint-down($breakpoint) {
174
- display: block;
175
- width: 100%;
176
- overflow-x: auto;
177
- -webkit-overflow-scrolling: touch;
178
- -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
179
-
180
- // Prevent double border on horizontal scroll due to use of `display: block;`
181
- > .table-bordered {
182
- border: 0;
183
- }
184
- }
141
+ @each $breakpoint in map-keys($grid-breakpoints) {
142
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
143
+
144
+ @include media-breakpoint-down($breakpoint) {
145
+ .table-responsive#{$infix} {
146
+ overflow-x: auto;
147
+ -webkit-overflow-scrolling: touch;
185
148
  }
186
149
  }
187
150
  }
@@ -0,0 +1,51 @@
1
+ .toast {
2
+ width: $toast-max-width;
3
+ max-width: 100%;
4
+ @include font-size($toast-font-size);
5
+ color: $toast-color;
6
+ pointer-events: auto;
7
+ background-color: $toast-background-color;
8
+ background-clip: padding-box;
9
+ border: $toast-border-width solid $toast-border-color;
10
+ box-shadow: $toast-box-shadow;
11
+ @include border-radius($toast-border-radius);
12
+
13
+ &:not(.showing):not(.show) {
14
+ opacity: 0;
15
+ }
16
+
17
+ &.hide {
18
+ display: none;
19
+ }
20
+ }
21
+
22
+ .toast-container {
23
+ width: max-content;
24
+ max-width: 100%;
25
+ pointer-events: none;
26
+
27
+ > :not(:last-child) {
28
+ margin-bottom: $toast-spacing;
29
+ }
30
+ }
31
+
32
+ .toast-header {
33
+ display: flex;
34
+ align-items: center;
35
+ padding: $toast-padding-y $toast-padding-x;
36
+ color: $toast-header-color;
37
+ background-color: $toast-header-background-color;
38
+ background-clip: padding-box;
39
+ border-bottom: $toast-border-width solid $toast-header-border-color;
40
+ @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
41
+
42
+ .btn-close {
43
+ margin-right: $toast-padding-x / -2;
44
+ margin-left: $toast-padding-x;
45
+ }
46
+ }
47
+
48
+ .toast-body {
49
+ padding: $toast-padding-x; // apply to both vertical and horizontal
50
+ word-wrap: break-word;
51
+ }
@@ -7,14 +7,14 @@
7
7
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
8
8
  // So reset our font and text properties to avoid inheriting weird values.
9
9
  @include reset-text();
10
- font-size: $tooltip-font-size;
10
+ @include font-size($tooltip-font-size);
11
11
  // Allow breaking very long words so they don't overflow the tooltip's bounds
12
12
  word-wrap: break-word;
13
13
  opacity: 0;
14
14
 
15
15
  &.show { opacity: $tooltip-opacity; }
16
16
 
17
- .arrow {
17
+ .tooltip-arrow {
18
18
  position: absolute;
19
19
  display: block;
20
20
  width: $tooltip-arrow-width;
@@ -32,27 +32,27 @@
32
32
  .bs-tooltip-top {
33
33
  padding: $tooltip-arrow-height 0;
34
34
 
35
- .arrow {
35
+ .tooltip-arrow {
36
36
  bottom: 0;
37
37
 
38
38
  &::before {
39
- top: 0;
39
+ top: -1px;
40
40
  border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
41
41
  border-top-color: $tooltip-arrow-color;
42
42
  }
43
43
  }
44
44
  }
45
45
 
46
- .bs-tooltip-right {
46
+ .bs-tooltip-end {
47
47
  padding: 0 $tooltip-arrow-height;
48
48
 
49
- .arrow {
49
+ .tooltip-arrow {
50
50
  left: 0;
51
51
  width: $tooltip-arrow-height;
52
52
  height: $tooltip-arrow-width;
53
53
 
54
54
  &::before {
55
- right: 0;
55
+ right: -1px;
56
56
  border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
57
57
  border-right-color: $tooltip-arrow-color;
58
58
  }
@@ -62,27 +62,27 @@
62
62
  .bs-tooltip-bottom {
63
63
  padding: $tooltip-arrow-height 0;
64
64
 
65
- .arrow {
65
+ .tooltip-arrow {
66
66
  top: 0;
67
67
 
68
68
  &::before {
69
- bottom: 0;
69
+ bottom: -1px;
70
70
  border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
71
71
  border-bottom-color: $tooltip-arrow-color;
72
72
  }
73
73
  }
74
74
  }
75
75
 
76
- .bs-tooltip-left {
76
+ .bs-tooltip-start {
77
77
  padding: 0 $tooltip-arrow-height;
78
78
 
79
- .arrow {
79
+ .tooltip-arrow {
80
80
  right: 0;
81
81
  width: $tooltip-arrow-height;
82
82
  height: $tooltip-arrow-width;
83
83
 
84
84
  &::before {
85
- left: 0;
85
+ left: -1px;
86
86
  border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
87
87
  border-left-color: $tooltip-arrow-color;
88
88
  }
@@ -90,17 +90,17 @@
90
90
  }
91
91
 
92
92
  .bs-tooltip-auto {
93
- &[x-placement^="top"] {
93
+ &[data-popper-placement^="top"] {
94
94
  @extend .bs-tooltip-top;
95
95
  }
96
- &[x-placement^="right"] {
97
- @extend .bs-tooltip-right;
96
+ &[data-popper-placement^="right"] {
97
+ @extend .bs-tooltip-end;
98
98
  }
99
- &[x-placement^="bottom"] {
99
+ &[data-popper-placement^="bottom"] {
100
100
  @extend .bs-tooltip-bottom;
101
101
  }
102
- &[x-placement^="left"] {
103
- @extend .bs-tooltip-left;
102
+ &[data-popper-placement^="left"] {
103
+ @extend .bs-tooltip-start;
104
104
  }
105
105
  }
106
106
 
@@ -1,5 +1,3 @@
1
- // stylelint-disable selector-no-qualifying-type
2
-
3
1
  .fade {
4
2
  @include transition($transition-fade);
5
3
 
@@ -8,6 +6,7 @@
8
6
  }
9
7
  }
10
8
 
9
+ // scss-docs-start collapse-classes
11
10
  .collapse {
12
11
  &:not(.show) {
13
12
  display: none;
@@ -15,8 +14,8 @@
15
14
  }
16
15
 
17
16
  .collapsing {
18
- position: relative;
19
17
  height: 0;
20
18
  overflow: hidden;
21
19
  @include transition($transition-collapse);
22
20
  }
21
+ // scss-docs-end collapse-classes
@@ -1,93 +1,67 @@
1
- // stylelint-disable declaration-no-important, selector-list-comma-newline-after
2
-
3
1
  //
4
2
  // Headings
5
3
  //
6
-
7
- h1, h2, h3, h4, h5, h6,
8
- .h1, .h2, .h3, .h4, .h5, .h6 {
9
- margin-bottom: $headings-margin-bottom;
10
- font-family: $headings-font-family;
11
- font-weight: $headings-font-weight;
12
- line-height: $headings-line-height;
13
- color: $headings-color;
4
+ .h1 {
5
+ @extend h1;
14
6
  }
15
7
 
16
- h1, .h1 { font-size: $h1-font-size; }
17
- h2, .h2 { font-size: $h2-font-size; }
18
- h3, .h3 { font-size: $h3-font-size; }
19
- h4, .h4 { font-size: $h4-font-size; }
20
- h5, .h5 { font-size: $h5-font-size; }
21
- h6, .h6 { font-size: $h6-font-size; }
22
-
23
- .lead {
24
- font-size: $lead-font-size;
25
- font-weight: $lead-font-weight;
8
+ .h2 {
9
+ @extend h2;
26
10
  }
27
11
 
28
- // Type display classes
29
- .display-1 {
30
- font-size: $display1-size;
31
- font-weight: $display1-weight;
32
- line-height: $display-line-height;
12
+ .h3 {
13
+ @extend h3;
33
14
  }
34
- .display-2 {
35
- font-size: $display2-size;
36
- font-weight: $display2-weight;
37
- line-height: $display-line-height;
15
+
16
+ .h4 {
17
+ @extend h4;
38
18
  }
39
- .display-3 {
40
- font-size: $display3-size;
41
- font-weight: $display3-weight;
42
- line-height: $display-line-height;
19
+
20
+ .h5 {
21
+ @extend h5;
43
22
  }
44
- .display-4 {
45
- font-size: $display4-size;
46
- font-weight: $display4-weight;
47
- line-height: $display-line-height;
23
+
24
+ .h6 {
25
+ @extend h6;
48
26
  }
49
27
 
50
28
 
51
- //
52
- // Horizontal rules
53
- //
54
-
55
- hr {
56
- margin-top: $hr-margin-y;
57
- margin-bottom: $hr-margin-y;
58
- border: 0;
59
- border-top: $hr-border-width solid $hr-border-color;
29
+ .lead {
30
+ @include font-size($lead-font-size);
31
+ font-weight: $lead-font-weight;
60
32
  }
61
33
 
34
+ // Type display classes
35
+ @each $display, $font-size in $display-font-sizes {
36
+ .display-#{$display} {
37
+ @include font-size($font-size);
38
+ font-weight: $display-font-weight;
39
+ line-height: $display-line-height;
40
+ }
41
+ }
62
42
 
63
43
  //
64
44
  // Emphasis
65
45
  //
66
-
67
- small,
68
46
  .small {
69
- font-size: $small-font-size;
70
- font-weight: $font-weight-normal;
47
+ @extend small;
71
48
  }
72
49
 
73
- mark,
74
50
  .mark {
75
- padding: $mark-padding;
76
- background-color: $mark-bg;
51
+ @extend mark;
77
52
  }
78
53
 
79
-
80
54
  //
81
55
  // Lists
82
56
  //
83
57
 
84
58
  .list-unstyled {
85
- @include list-unstyled;
59
+ @include list-unstyled();
86
60
  }
87
61
 
88
62
  // Inline turns list items into inline-block
89
63
  .list-inline {
90
- @include list-unstyled;
64
+ @include list-unstyled();
91
65
  }
92
66
  .list-inline-item {
93
67
  display: inline-block;
@@ -104,22 +78,27 @@ mark,
104
78
 
105
79
  // Builds on `abbr`
106
80
  .initialism {
107
- font-size: 90%;
81
+ @include font-size($initialism-font-size);
108
82
  text-transform: uppercase;
109
83
  }
110
84
 
111
85
  // Blockquotes
112
86
  .blockquote {
113
- margin-bottom: $spacer;
114
- font-size: $blockquote-font-size;
87
+ margin-bottom: $blockquote-margin-y;
88
+ @include font-size($blockquote-font-size);
89
+
90
+ > :last-child {
91
+ margin-bottom: 0;
92
+ }
115
93
  }
116
94
 
117
95
  .blockquote-footer {
118
- display: block;
119
- font-size: 80%; // back to default font-size
120
- color: $blockquote-small-color;
96
+ margin-top: -$blockquote-margin-y;
97
+ margin-bottom: $blockquote-margin-y;
98
+ @include font-size($blockquote-footer-font-size);
99
+ color: $blockquote-footer-color;
121
100
 
122
101
  &::before {
123
- content: "\2014 \00A0"; // em dash, nbsp
102
+ content: "\2014\00A0"; // em dash, nbsp
124
103
  }
125
104
  }