bootstrap 4.6.2 → 5.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (175) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +55 -0
  3. data/README.md +28 -5
  4. data/assets/javascripts/bootstrap/alert.js +50 -147
  5. data/assets/javascripts/bootstrap/base-component.js +83 -0
  6. data/assets/javascripts/bootstrap/button.js +40 -190
  7. data/assets/javascripts/bootstrap/carousel.js +282 -537
  8. data/assets/javascripts/bootstrap/collapse.js +166 -314
  9. data/assets/javascripts/bootstrap/dom/data.js +62 -0
  10. data/assets/javascripts/bootstrap/dom/event-handler.js +236 -0
  11. data/assets/javascripts/bootstrap/dom/manipulator.js +71 -0
  12. data/assets/javascripts/bootstrap/dom/selector-engine.js +103 -0
  13. data/assets/javascripts/bootstrap/dropdown.js +297 -455
  14. data/assets/javascripts/bootstrap/modal.js +223 -566
  15. data/assets/javascripts/bootstrap/offcanvas.js +245 -0
  16. data/assets/javascripts/bootstrap/popover.js +59 -208
  17. data/assets/javascripts/bootstrap/scrollspy.js +213 -276
  18. data/assets/javascripts/bootstrap/tab.js +222 -200
  19. data/assets/javascripts/bootstrap/toast.js +137 -206
  20. data/assets/javascripts/bootstrap/tooltip.js +403 -746
  21. data/assets/javascripts/bootstrap/util/backdrop.js +139 -0
  22. data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
  23. data/assets/javascripts/bootstrap/util/config.js +67 -0
  24. data/assets/javascripts/bootstrap/util/focustrap.js +113 -0
  25. data/assets/javascripts/bootstrap/util/index.js +281 -0
  26. data/assets/javascripts/bootstrap/util/sanitizer.js +110 -0
  27. data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
  28. data/assets/javascripts/bootstrap/util/swipe.js +134 -0
  29. data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
  30. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  31. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  32. data/assets/javascripts/bootstrap-sprockets.js +21 -5
  33. data/assets/javascripts/bootstrap.js +3623 -3485
  34. data/assets/javascripts/bootstrap.min.js +3 -3
  35. data/assets/stylesheets/_bootstrap-grid.scss +53 -21
  36. data/assets/stylesheets/_bootstrap-reboot.scss +5 -7
  37. data/assets/stylesheets/_bootstrap.scss +21 -13
  38. data/assets/stylesheets/bootstrap/_accordion.scss +158 -0
  39. data/assets/stylesheets/bootstrap/_alert.scss +32 -16
  40. data/assets/stylesheets/bootstrap/_badge.scss +15 -31
  41. data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -24
  42. data/assets/stylesheets/bootstrap/_button-group.scss +27 -48
  43. data/assets/stylesheets/bootstrap/_buttons.scss +136 -71
  44. data/assets/stylesheets/bootstrap/_card.scss +66 -113
  45. data/assets/stylesheets/bootstrap/_carousel.scss +78 -34
  46. data/assets/stylesheets/bootstrap/_close.scss +51 -28
  47. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  48. data/assets/stylesheets/bootstrap/_dropdown.scss +129 -71
  49. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  50. data/assets/stylesheets/bootstrap/_functions.scss +135 -23
  51. data/assets/stylesheets/bootstrap/_grid.scss +18 -52
  52. data/assets/stylesheets/bootstrap/_helpers.scss +12 -0
  53. data/assets/stylesheets/bootstrap/_list-group.scss +77 -34
  54. data/assets/stylesheets/bootstrap/_maps.scss +174 -0
  55. data/assets/stylesheets/bootstrap/_mixins.scss +10 -15
  56. data/assets/stylesheets/bootstrap/_modal.scss +107 -110
  57. data/assets/stylesheets/bootstrap/_nav.scss +99 -27
  58. data/assets/stylesheets/bootstrap/_navbar.scss +129 -172
  59. data/assets/stylesheets/bootstrap/_offcanvas.scss +146 -0
  60. data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
  61. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  62. data/assets/stylesheets/bootstrap/_popover.scss +99 -73
  63. data/assets/stylesheets/bootstrap/_progress.scss +35 -14
  64. data/assets/stylesheets/bootstrap/_reboot.scss +318 -192
  65. data/assets/stylesheets/bootstrap/_root.scss +174 -9
  66. data/assets/stylesheets/bootstrap/_spinners.scss +43 -23
  67. data/assets/stylesheets/bootstrap/_tables.scss +101 -115
  68. data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
  69. data/assets/stylesheets/bootstrap/_tooltip.scss +67 -63
  70. data/assets/stylesheets/bootstrap/_transitions.scss +3 -2
  71. data/assets/stylesheets/bootstrap/_type.scss +40 -59
  72. data/assets/stylesheets/bootstrap/_utilities.scss +806 -18
  73. data/assets/stylesheets/bootstrap/_variables-dark.scss +85 -0
  74. data/assets/stylesheets/bootstrap/_variables.scss +1202 -606
  75. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +19 -0
  76. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +95 -0
  77. data/assets/stylesheets/bootstrap/forms/_form-check.scss +188 -0
  78. data/assets/stylesheets/bootstrap/forms/_form-control.scss +214 -0
  79. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  80. data/assets/stylesheets/bootstrap/forms/_form-select.scss +80 -0
  81. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  82. data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
  83. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  84. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  85. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
  86. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +30 -0
  87. data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
  88. data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
  89. data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
  90. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  91. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  92. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  93. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  94. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  95. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  96. data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -6
  97. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  98. data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
  99. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
  100. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  101. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +20 -16
  102. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
  103. data/assets/stylesheets/bootstrap/mixins/_caret.scss +34 -27
  104. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  105. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  106. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  107. data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
  108. data/assets/stylesheets/bootstrap/mixins/_forms.scss +54 -96
  109. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  110. data/assets/stylesheets/bootstrap/mixins/_grid.scss +118 -36
  111. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  112. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +7 -2
  113. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  114. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +7 -19
  115. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  116. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
  117. data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
  118. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
  119. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +33 -0
  120. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  121. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +211 -91
  122. data/bootstrap.gemspec +3 -5
  123. data/lib/bootstrap/version.rb +2 -2
  124. data/tasks/updater/js.rb +17 -5
  125. data/tasks/updater/network.rb +2 -2
  126. data/tasks/updater/scss.rb +1 -1
  127. data/tasks/updater.rb +2 -2
  128. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  129. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  130. data/test/dummy_rails/app/views/pages/root.html +89 -0
  131. data/test/dummy_rails/config/application.rb +0 -3
  132. data/test/gemfiles/rails_5_2.gemfile +8 -0
  133. data/test/gemfiles/rails_6_1.gemfile +7 -0
  134. data/test/gemfiles/rails_7_0.gemfile +7 -0
  135. data/test/test_helper.rb +3 -2
  136. metadata +78 -82
  137. data/.travis.yml +0 -31
  138. data/assets/javascripts/bootstrap/util.js +0 -189
  139. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  140. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  141. data/assets/stylesheets/bootstrap/_input-group.scss +0 -211
  142. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  143. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  144. data/assets/stylesheets/bootstrap/_print.scss +0 -132
  145. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  146. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  147. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  148. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  149. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  150. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  151. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  152. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  153. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  154. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  155. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  156. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  157. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  158. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  159. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  160. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  161. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  162. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  163. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  164. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  165. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  166. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  167. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  168. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  169. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  170. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  171. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  172. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  173. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  174. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
  175. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -1,24 +1,38 @@
1
1
  // Base class
2
2
  .tooltip {
3
- position: absolute;
4
- z-index: $zindex-tooltip;
3
+ // scss-docs-start tooltip-css-vars
4
+ --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
5
+ --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
6
+ --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
7
+ --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
8
+ --#{$prefix}tooltip-margin: #{$tooltip-margin};
9
+ @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
10
+ --#{$prefix}tooltip-color: #{$tooltip-color};
11
+ --#{$prefix}tooltip-bg: #{$tooltip-bg};
12
+ --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
13
+ --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
14
+ --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
15
+ --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
16
+ // scss-docs-end tooltip-css-vars
17
+
18
+ z-index: var(--#{$prefix}tooltip-zindex);
5
19
  display: block;
6
- margin: $tooltip-margin;
20
+ margin: var(--#{$prefix}tooltip-margin);
21
+ @include deprecate("`$tooltip-margin`", "v5", "v5.x", true);
7
22
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
8
23
  // So reset our font and text properties to avoid inheriting weird values.
9
24
  @include reset-text();
10
- @include font-size($tooltip-font-size);
25
+ @include font-size(var(--#{$prefix}tooltip-font-size));
11
26
  // Allow breaking very long words so they don't overflow the tooltip's bounds
12
27
  word-wrap: break-word;
13
28
  opacity: 0;
14
29
 
15
- &.show { opacity: $tooltip-opacity; }
30
+ &.show { opacity: var(--#{$prefix}tooltip-opacity); }
16
31
 
17
- .arrow {
18
- position: absolute;
32
+ .tooltip-arrow {
19
33
  display: block;
20
- width: $tooltip-arrow-width;
21
- height: $tooltip-arrow-height;
34
+ width: var(--#{$prefix}tooltip-arrow-width);
35
+ height: var(--#{$prefix}tooltip-arrow-height);
22
36
 
23
37
  &::before {
24
38
  position: absolute;
@@ -29,87 +43,77 @@
29
43
  }
30
44
  }
31
45
 
32
- .bs-tooltip-top {
33
- padding: $tooltip-arrow-height 0;
46
+ .bs-tooltip-top .tooltip-arrow {
47
+ bottom: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
34
48
 
35
- .arrow {
36
- bottom: 0;
37
-
38
- &::before {
39
- top: 0;
40
- border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
41
- border-top-color: $tooltip-arrow-color;
42
- }
49
+ &::before {
50
+ top: -1px;
51
+ border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
52
+ border-top-color: var(--#{$prefix}tooltip-bg);
43
53
  }
44
54
  }
45
55
 
46
- .bs-tooltip-right {
47
- padding: 0 $tooltip-arrow-height;
56
+ /* rtl:begin:ignore */
57
+ .bs-tooltip-end .tooltip-arrow {
58
+ left: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
59
+ width: var(--#{$prefix}tooltip-arrow-height);
60
+ height: var(--#{$prefix}tooltip-arrow-width);
48
61
 
49
- .arrow {
50
- left: 0;
51
- width: $tooltip-arrow-height;
52
- height: $tooltip-arrow-width;
53
-
54
- &::before {
55
- right: 0;
56
- border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
57
- border-right-color: $tooltip-arrow-color;
58
- }
62
+ &::before {
63
+ right: -1px;
64
+ border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
65
+ border-right-color: var(--#{$prefix}tooltip-bg);
59
66
  }
60
67
  }
61
68
 
62
- .bs-tooltip-bottom {
63
- padding: $tooltip-arrow-height 0;
69
+ /* rtl:end:ignore */
64
70
 
65
- .arrow {
66
- top: 0;
71
+ .bs-tooltip-bottom .tooltip-arrow {
72
+ top: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
67
73
 
68
- &::before {
69
- bottom: 0;
70
- border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
71
- border-bottom-color: $tooltip-arrow-color;
72
- }
74
+ &::before {
75
+ bottom: -1px;
76
+ border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
77
+ border-bottom-color: var(--#{$prefix}tooltip-bg);
73
78
  }
74
79
  }
75
80
 
76
- .bs-tooltip-left {
77
- padding: 0 $tooltip-arrow-height;
78
-
79
- .arrow {
80
- right: 0;
81
- width: $tooltip-arrow-height;
82
- height: $tooltip-arrow-width;
81
+ /* rtl:begin:ignore */
82
+ .bs-tooltip-start .tooltip-arrow {
83
+ right: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list
84
+ width: var(--#{$prefix}tooltip-arrow-height);
85
+ height: var(--#{$prefix}tooltip-arrow-width);
83
86
 
84
- &::before {
85
- left: 0;
86
- border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
87
- border-left-color: $tooltip-arrow-color;
88
- }
87
+ &::before {
88
+ left: -1px;
89
+ border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
90
+ border-left-color: var(--#{$prefix}tooltip-bg);
89
91
  }
90
92
  }
91
93
 
94
+ /* rtl:end:ignore */
95
+
92
96
  .bs-tooltip-auto {
93
- &[x-placement^="top"] {
97
+ &[data-popper-placement^="top"] {
94
98
  @extend .bs-tooltip-top;
95
99
  }
96
- &[x-placement^="right"] {
97
- @extend .bs-tooltip-right;
100
+ &[data-popper-placement^="right"] {
101
+ @extend .bs-tooltip-end;
98
102
  }
99
- &[x-placement^="bottom"] {
103
+ &[data-popper-placement^="bottom"] {
100
104
  @extend .bs-tooltip-bottom;
101
105
  }
102
- &[x-placement^="left"] {
103
- @extend .bs-tooltip-left;
106
+ &[data-popper-placement^="left"] {
107
+ @extend .bs-tooltip-start;
104
108
  }
105
109
  }
106
110
 
107
111
  // Wrapper for the tooltip content
108
112
  .tooltip-inner {
109
- max-width: $tooltip-max-width;
110
- padding: $tooltip-padding-y $tooltip-padding-x;
111
- color: $tooltip-color;
113
+ max-width: var(--#{$prefix}tooltip-max-width);
114
+ padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
115
+ color: var(--#{$prefix}tooltip-color);
112
116
  text-align: center;
113
- background-color: $tooltip-bg;
114
- @include border-radius($tooltip-border-radius);
117
+ background-color: var(--#{$prefix}tooltip-bg);
118
+ @include border-radius(var(--#{$prefix}tooltip-border-radius));
115
119
  }
@@ -6,6 +6,7 @@
6
6
  }
7
7
  }
8
8
 
9
+ // scss-docs-start collapse-classes
9
10
  .collapse {
10
11
  &:not(.show) {
11
12
  display: none;
@@ -13,14 +14,14 @@
13
14
  }
14
15
 
15
16
  .collapsing {
16
- position: relative;
17
17
  height: 0;
18
18
  overflow: hidden;
19
19
  @include transition($transition-collapse);
20
20
 
21
- &.width {
21
+ &.collapse-horizontal {
22
22
  width: 0;
23
23
  height: auto;
24
24
  @include transition($transition-collapse-width);
25
25
  }
26
26
  }
27
+ // scss-docs-end collapse-classes
@@ -1,82 +1,58 @@
1
- // stylelint-disable 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 { @include font-size($h1-font-size); }
17
- h2, .h2 { @include font-size($h2-font-size); }
18
- h3, .h3 { @include font-size($h3-font-size); }
19
- h4, .h4 { @include font-size($h4-font-size); }
20
- h5, .h5 { @include font-size($h5-font-size); }
21
- h6, .h6 { @include font-size($h6-font-size); }
22
-
23
- .lead {
24
- @include 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
- @include 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
- @include 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
- @include 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
- @include 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-family: $display-font-family;
39
+ font-style: $display-font-style;
40
+ font-weight: $display-font-weight;
41
+ line-height: $display-line-height;
42
+ }
43
+ }
62
44
 
63
45
  //
64
46
  // Emphasis
65
47
  //
66
-
67
- small,
68
48
  .small {
69
- @include font-size($small-font-size);
70
- font-weight: $font-weight-normal;
49
+ @extend small;
71
50
  }
72
51
 
73
- mark,
74
52
  .mark {
75
- padding: $mark-padding;
76
- background-color: $mark-bg;
53
+ @extend mark;
77
54
  }
78
55
 
79
-
80
56
  //
81
57
  // Lists
82
58
  //
@@ -104,20 +80,25 @@ mark,
104
80
 
105
81
  // Builds on `abbr`
106
82
  .initialism {
107
- @include font-size(90%);
83
+ @include font-size($initialism-font-size);
108
84
  text-transform: uppercase;
109
85
  }
110
86
 
111
87
  // Blockquotes
112
88
  .blockquote {
113
- margin-bottom: $spacer;
89
+ margin-bottom: $blockquote-margin-y;
114
90
  @include font-size($blockquote-font-size);
91
+
92
+ > :last-child {
93
+ margin-bottom: 0;
94
+ }
115
95
  }
116
96
 
117
97
  .blockquote-footer {
118
- display: block;
119
- @include font-size($blockquote-small-font-size);
120
- color: $blockquote-small-color;
98
+ margin-top: -$blockquote-margin-y;
99
+ margin-bottom: $blockquote-margin-y;
100
+ @include font-size($blockquote-footer-font-size);
101
+ color: $blockquote-footer-color;
121
102
 
122
103
  &::before {
123
104
  content: "\2014\00A0"; // em dash, nbsp