@skyscanner/backpack-web 31.10.1 → 32.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 (183) hide show
  1. package/bpk-component-accordion/src/BpkAccordion.module.css +2 -2
  2. package/bpk-component-accordion/src/BpkAccordionItem.module.css +2 -2
  3. package/bpk-component-aria-live/src/BpkAriaLive.module.css +2 -2
  4. package/bpk-component-autosuggest/src/BpkAutosuggest.module.css +2 -2
  5. package/bpk-component-badge/index.js +1 -3
  6. package/bpk-component-badge/src/BpkBadge.module.css +2 -2
  7. package/bpk-component-banner-alert/src/BpkAnimateAndFade.module.css +2 -2
  8. package/bpk-component-banner-alert/src/BpkBannerAlert.module.css +2 -2
  9. package/bpk-component-barchart/src/BpkBarchart.module.css +2 -2
  10. package/bpk-component-barchart/src/BpkBarchartBar.module.css +2 -2
  11. package/bpk-component-barchart/src/BpkChartAxis.module.css +2 -2
  12. package/bpk-component-barchart/src/BpkChartDataTable.module.css +2 -2
  13. package/bpk-component-barchart/src/BpkChartGridLines.module.css +2 -2
  14. package/bpk-component-blockquote/src/BpkBlockquote.module.css +2 -2
  15. package/bpk-component-boilerplate/src/BpkBoilerplate.module.css +2 -2
  16. package/bpk-component-bottom-sheet/src/BpkBottomSheet.module.css +2 -2
  17. package/bpk-component-bottom-sheet/src/BpkBottomSheetInner.module.css +2 -2
  18. package/bpk-component-breadcrumb/src/BpkBreadcrumb.module.css +2 -2
  19. package/bpk-component-breadcrumb/src/BpkBreadcrumbItem.module.css +2 -2
  20. package/bpk-component-button/src/BpkButtonBase.module.css +2 -2
  21. package/bpk-component-button/src/BpkButtonDestructive.module.css +2 -2
  22. package/bpk-component-button/src/BpkButtonFeatured.module.css +2 -2
  23. package/bpk-component-button/src/BpkButtonLink.module.css +2 -2
  24. package/bpk-component-button/src/BpkButtonLinkOnDark.module.css +2 -2
  25. package/bpk-component-button/src/BpkButtonPrimaryOnDark.module.css +2 -2
  26. package/bpk-component-button/src/BpkButtonPrimaryOnLight.module.css +2 -2
  27. package/bpk-component-button/src/BpkButtonSecondary.module.css +2 -2
  28. package/bpk-component-button/src/BpkButtonSecondaryOnDark.module.css +2 -2
  29. package/bpk-component-button/src/BpkButtonV2/BpkButton.module.css +2 -2
  30. package/bpk-component-calendar/src/BpkCalendar.module.css +2 -2
  31. package/bpk-component-calendar/src/BpkCalendarDate.module.css +2 -2
  32. package/bpk-component-calendar/src/BpkCalendarGrid.module.css +2 -2
  33. package/bpk-component-calendar/src/BpkCalendarGridHeader.module.css +2 -2
  34. package/bpk-component-calendar/src/BpkCalendarGridTransition.module.css +2 -2
  35. package/bpk-component-calendar/src/BpkCalendarNav.module.css +2 -2
  36. package/bpk-component-card/src/BpkCard.module.css +2 -2
  37. package/bpk-component-card/src/BpkCardWrapper.module.css +2 -2
  38. package/bpk-component-card/src/BpkDividedCard.module.css +2 -2
  39. package/bpk-component-card-button/src/BpkSaveButton.module.css +2 -2
  40. package/bpk-component-checkbox/src/BpkCheckbox.module.css +2 -2
  41. package/bpk-component-chip/src/BpkSelectableChip.module.css +2 -2
  42. package/bpk-component-close-button/src/BpkCloseButton.module.css +2 -2
  43. package/bpk-component-code/src/BpkCode.module.css +2 -2
  44. package/bpk-component-code/src/BpkCodeBlock.module.css +2 -2
  45. package/bpk-component-content-cards/src/BpkContentCard.module.css +2 -2
  46. package/bpk-component-content-cards/src/BpkContentCards.module.css +2 -2
  47. package/bpk-component-datatable/index.js +3 -2
  48. package/bpk-component-datatable/src/BpkDataTable.js +38 -103
  49. package/bpk-component-datatable/src/BpkDataTable.module.css +2 -2
  50. package/bpk-component-datatable/src/BpkDataTableHeader.js +22 -2
  51. package/bpk-component-datatable/src/BpkDataTableHeader.module.css +2 -2
  52. package/bpk-component-datatable/src/common-types.js +22 -0
  53. package/bpk-component-datatable/src/utils.js +14 -148
  54. package/bpk-component-datepicker/src/BpkDatepicker.module.css +2 -2
  55. package/bpk-component-description-list/src/BpkDescriptionList.module.css +2 -2
  56. package/bpk-component-dialog/src/BpkDialog.module.css +2 -2
  57. package/bpk-component-dialog/src/BpkDialogInner.module.css +2 -2
  58. package/bpk-component-drawer/src/BpkDrawer.module.css +2 -2
  59. package/bpk-component-drawer/src/BpkDrawerContent.module.css +2 -2
  60. package/bpk-component-fieldset/src/BpkFieldset.module.css +2 -2
  61. package/bpk-component-flare/src/bpk-content-bubble.module.css +2 -2
  62. package/bpk-component-flare/src/bpk-flare-bar.module.css +2 -2
  63. package/bpk-component-floating-notification/src/BpkFloatingNotification.module.css +2 -2
  64. package/bpk-component-form-validation/src/BpkFormValidation.module.css +2 -2
  65. package/bpk-component-graphic-promotion/src/BpkGraphicPromo.module.css +2 -2
  66. package/bpk-component-grid-toggle/src/BpkGridToggle.module.css +2 -2
  67. package/bpk-component-horizontal-nav/src/BpkHorizontalNav.module.css +2 -2
  68. package/bpk-component-horizontal-nav/src/BpkHorizontalNavItem.module.css +2 -2
  69. package/bpk-component-icon/src/BpkIcon.module.css +2 -2
  70. package/bpk-component-icon/src/withDescription.module.css +2 -2
  71. package/bpk-component-image/src/BpkBackgroundImage.module.css +2 -2
  72. package/bpk-component-image/src/BpkImage.module.css +2 -2
  73. package/bpk-component-infinite-scroll/src/withInfiniteScroll.module.css +2 -2
  74. package/bpk-component-info-banner/src/BpkAnimateAndFade.module.css +2 -2
  75. package/bpk-component-info-banner/src/BpkInfoBanner.module.css +2 -2
  76. package/bpk-component-input/src/BpkClearButton.module.css +2 -2
  77. package/bpk-component-input/src/BpkInput.module.css +2 -2
  78. package/bpk-component-label/src/BpkLabel.module.css +2 -2
  79. package/bpk-component-link/src/BpkLink.module.css +2 -2
  80. package/bpk-component-list/src/BpkList.module.css +2 -2
  81. package/bpk-component-loading-button/src/BpkLoadingButton.module.css +2 -2
  82. package/bpk-component-map/src/BpkIconMarker.module.css +2 -2
  83. package/bpk-component-map/src/BpkIconMarkerBackground.module.css +2 -2
  84. package/bpk-component-map/src/BpkMap.module.css +2 -2
  85. package/bpk-component-map/src/BpkPriceMarker.module.css +2 -2
  86. package/bpk-component-map/src/BpkPriceMarkerV2/BpkPriceMarker.module.css +2 -2
  87. package/bpk-component-map/src/DefaultLoadingElement.module.css +2 -2
  88. package/bpk-component-mobile-scroll-container/src/BpkMobileScrollContainer.module.css +2 -2
  89. package/bpk-component-modal/src/BpkModal.module.css +2 -2
  90. package/bpk-component-modal/src/BpkModalInner.module.css +2 -2
  91. package/bpk-component-modal/src/BpkModalV2/BpKModal.module.css +2 -2
  92. package/bpk-component-navigation-bar/src/BpkNavigationBar.module.css +2 -2
  93. package/bpk-component-navigation-bar/src/BpkNavigationBarButtonLink.module.css +2 -2
  94. package/bpk-component-navigation-bar/src/BpkNavigationBarIconButton.module.css +2 -2
  95. package/bpk-component-nudger/src/BpkNudger.module.css +2 -2
  96. package/bpk-component-overlay/src/BpkOverlay.module.css +2 -2
  97. package/bpk-component-page-indicator/src/BpkPageIndicator.module.css +2 -2
  98. package/bpk-component-pagination/src/BpkPagination.module.css +2 -2
  99. package/bpk-component-pagination/src/BpkPaginationList.module.css +2 -2
  100. package/bpk-component-pagination/src/BpkPaginationNudger.module.css +2 -2
  101. package/bpk-component-pagination/src/BpkPaginationPage.module.css +2 -2
  102. package/bpk-component-panel/src/BpkPanel.module.css +2 -2
  103. package/bpk-component-phone-input/src/BpkPhoneInput.module.css +2 -2
  104. package/bpk-component-popover/src/BpkPopover.module.css +2 -2
  105. package/bpk-component-price/src/BpkPrice.module.css +2 -2
  106. package/bpk-component-progress/src/BpkProgress.module.css +2 -2
  107. package/bpk-component-radio/src/BpkRadio.module.css +2 -2
  108. package/bpk-component-rating/src/BpkRating.module.css +2 -2
  109. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGrid.module.css +2 -2
  110. package/bpk-component-scrollable-calendar/src/BpkScrollableCalendarGridList.module.css +2 -2
  111. package/bpk-component-section-header/src/BpkSectionHeader.module.css +2 -2
  112. package/bpk-component-section-list/src/BpkSectionListItem.module.css +2 -2
  113. package/bpk-component-section-list/src/BpkSectionListSection.module.css +2 -2
  114. package/bpk-component-select/src/BpkSelect.module.css +2 -2
  115. package/bpk-component-skip-link/src/BpkSkipLink.module.css +2 -2
  116. package/bpk-component-slider/src/BpkSlider.module.css +2 -2
  117. package/bpk-component-spinner/src/BpkSpinner.module.css +2 -2
  118. package/bpk-component-split-input/src/BpkInputField.module.css +2 -2
  119. package/bpk-component-split-input/src/BpkSplitInput.module.css +2 -2
  120. package/bpk-component-star-rating/src/BpkInteractiveStar.module.css +2 -2
  121. package/bpk-component-star-rating/src/BpkStar.module.css +2 -2
  122. package/bpk-component-star-rating/src/BpkStarRating.module.css +2 -2
  123. package/bpk-component-swap-button/src/BpkSwapButton.module.css +2 -2
  124. package/bpk-component-switch/src/BpkSwitch.module.css +2 -2
  125. package/bpk-component-table/src/BpkTable.module.css +2 -2
  126. package/bpk-component-text/src/BpkText.module.css +2 -2
  127. package/bpk-component-textarea/src/BpkTextarea.module.css +2 -2
  128. package/bpk-component-theme-toggle/src/BpkThemeToggle.module.css +2 -2
  129. package/bpk-component-ticket/src/BpkTicket.module.css +2 -2
  130. package/bpk-component-tooltip/src/BpkTooltip.module.css +2 -2
  131. package/bpk-mixins/{src/mixins/_badges-v2.scss → _badges-v2.scss} +3 -1
  132. package/bpk-mixins/{src/mixins/_badges.scss → _badges.scss} +13 -9
  133. package/bpk-mixins/{src/mixins/_borders.scss → _borders.scss} +11 -9
  134. package/bpk-mixins/{src/mixins/_breakpoints.scss → _breakpoints.scss} +3 -1
  135. package/bpk-mixins/{src/mixins/_buttons.scss → _buttons.scss} +7 -4
  136. package/bpk-mixins/{src/mixins/_cards.scss → _cards.scss} +6 -1
  137. package/bpk-mixins/{src/mixins/_chips.scss → _chips.scss} +8 -0
  138. package/bpk-mixins/{src/mixins/_forms.scss → _forms.scss} +5 -1
  139. package/bpk-mixins/_icons.scss +88 -0
  140. package/bpk-mixins/_index.scss +20 -17
  141. package/bpk-mixins/{src/mixins/_layers.scss → _layers.scss} +18 -15
  142. package/bpk-mixins/{src/mixins/_margins.scss → _margins.scss} +4 -0
  143. package/bpk-mixins/{src/mixins/_panels.scss → _panels.scss} +6 -2
  144. package/bpk-mixins/{src/mixins/_radii.scss → _radii.scss} +3 -1
  145. package/bpk-mixins/{src/mixins/_scroll-indicators.scss → _scroll-indicators.scss} +3 -1
  146. package/bpk-mixins/{src/mixins/_shadows.scss → _shadows.scss} +3 -1
  147. package/bpk-mixins/{src/mixins/_svgs.scss → _spinners.scss} +5 -68
  148. package/bpk-mixins/{src/_bonds.scss → _tokens.scss} +2 -0
  149. package/bpk-mixins/{src/mixins/_typography.scss → _typography.scss} +6 -2
  150. package/bpk-mixins/{src/mixins/_utils.scss → _utils.scss} +4 -0
  151. package/bpk-scrim-utils/src/bpk-scrim-content.module.css +2 -2
  152. package/bpk-scrim-utils/src/bpk-scrim.module.css +2 -2
  153. package/bpk-stylesheets/base.css +1 -2
  154. package/bpk-stylesheets/font.css +2 -2
  155. package/bpk-stylesheets/index.scss +18 -14
  156. package/bpk-stylesheets/normalize.css +422 -0
  157. package/package.json +15 -2
  158. package/unstable__bpk-mixins/_badges-v2.scss +240 -0
  159. package/unstable__bpk-mixins/_badges.scss +240 -0
  160. package/unstable__bpk-mixins/_borders.scss +268 -0
  161. package/unstable__bpk-mixins/_breakpoints.scss +221 -0
  162. package/unstable__bpk-mixins/_buttons.scss +568 -0
  163. package/unstable__bpk-mixins/_cards.scss +94 -0
  164. package/unstable__bpk-mixins/_chips.scss +240 -0
  165. package/unstable__bpk-mixins/_forms.scss +1049 -0
  166. package/unstable__bpk-mixins/_icons.scss +88 -0
  167. package/{bpk-mixins/sass-functions.js → unstable__bpk-mixins/_index.scss} +19 -10
  168. package/unstable__bpk-mixins/_layers.scss +199 -0
  169. package/unstable__bpk-mixins/_margins.scss +75 -0
  170. package/unstable__bpk-mixins/_panels.scss +71 -0
  171. package/unstable__bpk-mixins/_radii.scss +80 -0
  172. package/unstable__bpk-mixins/_scroll-indicators.scss +79 -0
  173. package/unstable__bpk-mixins/_shadows.scss +58 -0
  174. package/unstable__bpk-mixins/_spinners.scss +102 -0
  175. package/{bpk-component-datatable/src/sort-types.js → unstable__bpk-mixins/_tokens.scss} +3 -6
  176. package/unstable__bpk-mixins/_typography.scss +1039 -0
  177. package/unstable__bpk-mixins/_utils.scss +266 -0
  178. package/bpk-component-badge/src/BpkBadgeV2/BpkBadge.d.ts +0 -22
  179. package/bpk-component-badge/src/BpkBadgeV2/BpkBadge.js +0 -47
  180. package/bpk-component-badge/src/BpkBadgeV2/BpkBadge.module.css +0 -18
  181. package/bpk-component-datatable/src/BpkDataTableColumn.js +0 -54
  182. package/bpk-component-datatable/src/BpkDataTableColumn.module.css +0 -18
  183. package/bpk-component-datatable/src/hasChildrenOfType.js +0 -35
@@ -0,0 +1,1039 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ /* stylelint-disable at-rule-disallowed-list */
20
+
21
+ @use 'tokens.scss';
22
+ @use 'borders.scss';
23
+ @use 'radii.scss';
24
+ @use 'utils.scss';
25
+
26
+ ////
27
+ /// @group typography
28
+ ////
29
+
30
+ /// Type factory.
31
+ ///
32
+ /// @param {variable} $font-size
33
+ /// @param {variable} $line-height
34
+ /// @param {variable} $font-weight false
35
+ /// @param {variable} $letter-spacing false
36
+ ///
37
+ /// @access private
38
+
39
+ @mixin _bpk-text-factory(
40
+ $font-size,
41
+ $line-height,
42
+ $font-weight: false,
43
+ $letter-spacing: false
44
+ ) {
45
+ font-size: $font-size;
46
+ line-height: $line-height;
47
+
48
+ @if $font-weight {
49
+ font-weight: $font-weight;
50
+ }
51
+
52
+ @if $letter-spacing {
53
+ letter-spacing: $letter-spacing;
54
+ }
55
+ }
56
+
57
+ /// Text margin reset.
58
+ ///
59
+ /// @example scss
60
+ /// .selector {
61
+ /// @include bpk-text;
62
+ /// }
63
+
64
+ @mixin bpk-text {
65
+ margin: 0;
66
+ }
67
+
68
+ /// Extra small text style
69
+ ///
70
+ /// @require {mixin} bpk-text
71
+ ///
72
+ /// @example scss
73
+ /// .selector {
74
+ /// @include bpk-text;
75
+ /// @include bpk-text--xs;
76
+ /// }
77
+
78
+ @mixin bpk-text--xs {
79
+ @include _bpk-text-factory(
80
+ tokens.$bpk-font-size-xs,
81
+ tokens.$bpk-line-height-xs,
82
+ tokens.$bpk-font-weight-book
83
+ );
84
+ }
85
+
86
+ /// Extra small text style (without margin reset)
87
+ ///
88
+ /// @example scss
89
+ /// .selector {
90
+ /// @include bpk-text-xs;
91
+ /// }
92
+
93
+ @mixin bpk-text-xs {
94
+ @include bpk-text--xs;
95
+ }
96
+
97
+ /// Small text style
98
+ ///
99
+ /// @require {mixin} bpk-text
100
+ ///
101
+ /// @example scss
102
+ /// .selector {
103
+ /// @include bpk-text;
104
+ /// @include bpk-text--sm;
105
+ /// }
106
+
107
+ @mixin bpk-text--sm {
108
+ @include _bpk-text-factory(
109
+ tokens.$bpk-font-size-sm,
110
+ tokens.$bpk-line-height-sm,
111
+ tokens.$bpk-font-weight-book
112
+ );
113
+ }
114
+
115
+ /// Small text style (without margin reset)
116
+ ///
117
+ /// @example scss
118
+ /// .selector {
119
+ /// @include bpk-text-sm;
120
+ /// }
121
+
122
+ @mixin bpk-text-sm {
123
+ @include bpk-text--sm;
124
+ }
125
+
126
+ /// Base text style
127
+ ///
128
+ /// @require {mixin} bpk-text
129
+ ///
130
+ /// @example scss
131
+ /// .selector {
132
+ /// @include bpk-text;
133
+ /// @include bpk-text--base;
134
+ /// }
135
+
136
+ @mixin bpk-text--base {
137
+ @include _bpk-text-factory(
138
+ tokens.$bpk-font-size-base,
139
+ tokens.$bpk-line-height-base,
140
+ tokens.$bpk-font-weight-book
141
+ );
142
+ }
143
+
144
+ /// Base text style (without margin reset)
145
+ ///
146
+ /// @example scss
147
+ /// .selector {
148
+ /// @include bpk-text-base;
149
+ /// }
150
+
151
+ @mixin bpk-text-base {
152
+ @include bpk-text--base;
153
+ }
154
+
155
+ /// Large text style
156
+ ///
157
+ /// @require {mixin} bpk-text
158
+ ///
159
+ /// @example scss
160
+ /// .selector {
161
+ /// @include bpk-text;
162
+ /// @include bpk-text--lg;
163
+ /// }
164
+
165
+ @mixin bpk-text--lg {
166
+ @include _bpk-text-factory(
167
+ tokens.$bpk-font-size-lg,
168
+ tokens.$bpk-line-height-lg,
169
+ tokens.$bpk-font-weight-book
170
+ );
171
+ }
172
+
173
+ /// Large text style (without margin reset)
174
+ ///
175
+ /// @example scss
176
+ /// .selector {
177
+ /// @include bpk-text-lg;
178
+ /// }
179
+
180
+ @mixin bpk-text-lg {
181
+ @include bpk-text--lg;
182
+ }
183
+
184
+ /// Extra large text style
185
+ ///
186
+ /// @require {mixin} bpk-text
187
+ ///
188
+ /// @example scss
189
+ /// .selector {
190
+ /// @include bpk-text;
191
+ /// @include bpk-text--xl;
192
+ /// }
193
+
194
+ @mixin bpk-text--xl {
195
+ @include _bpk-text-factory(
196
+ tokens.$bpk-font-size-xl,
197
+ tokens.$bpk-line-height-xl,
198
+ tokens.$bpk-font-weight-book
199
+ );
200
+ }
201
+
202
+ /// Extra large text style (without margin reset)
203
+ ///
204
+ /// @example scss
205
+ /// .selector {
206
+ /// @include bpk-text-xl;
207
+ /// }
208
+
209
+ @mixin bpk-text-xl {
210
+ @include bpk-text--xl;
211
+ }
212
+
213
+ /// Extra extra large text style
214
+ ///
215
+ /// @require {mixin} bpk-text
216
+ ///
217
+ /// @example scss
218
+ /// .selector {
219
+ /// @include bpk-text;
220
+ /// @include bpk-text--xxl;
221
+ /// }
222
+
223
+ @mixin bpk-text--xxl {
224
+ @include _bpk-text-factory(
225
+ tokens.$bpk-font-size-xxl,
226
+ tokens.$bpk-line-height-xxl,
227
+ tokens.$bpk-font-weight-bold
228
+ );
229
+ }
230
+
231
+ /// Extra extra large text style (without margin reset)
232
+ ///
233
+ /// @example scss
234
+ /// .selector {
235
+ /// @include bpk-text-xxl;
236
+ /// }
237
+
238
+ @mixin bpk-text-xxl {
239
+ @include bpk-text--xxl;
240
+ }
241
+
242
+ /// Extra extra large text style
243
+ ///
244
+ /// @require {mixin} bpk-text
245
+ ///
246
+ /// @example scss
247
+ /// .selector {
248
+ /// @include bpk-text;
249
+ /// @include bpk-text--xxxl;
250
+ /// }
251
+
252
+ @mixin bpk-text--xxxl {
253
+ @include _bpk-text-factory(
254
+ tokens.$bpk-font-size-xxxl,
255
+ tokens.$bpk-line-height-xxxl,
256
+ tokens.$bpk-font-weight-bold
257
+ );
258
+ }
259
+
260
+ /// Extra extra large text style (without margin reset)
261
+ ///
262
+ /// @example scss
263
+ /// .selector {
264
+ /// @include bpk-text-xxxl;
265
+ /// }
266
+
267
+ @mixin bpk-text-xxxl {
268
+ @include bpk-text--xxxl;
269
+ }
270
+
271
+ /// Extra extra large text style
272
+ ///
273
+ /// @require {mixin} bpk-text
274
+ ///
275
+ /// @example scss
276
+ /// .selector {
277
+ /// @include bpk-text;
278
+ /// @include bpk-text--xxxxl;
279
+ /// }
280
+
281
+ @mixin bpk-text--xxxxl {
282
+ @include _bpk-text-factory(
283
+ tokens.$bpk-font-size-xxxxl,
284
+ tokens.$bpk-line-height-xxxxl,
285
+ tokens.$bpk-font-weight-bold,
286
+ tokens.$bpk-letter-spacing-tight
287
+ );
288
+ }
289
+
290
+ /// Extra extra large text style (without margin reset)
291
+ ///
292
+ /// @example scss
293
+ /// .selector {
294
+ /// @include bpk-text-xxxxl;
295
+ /// }
296
+
297
+ @mixin bpk-text-xxxxl {
298
+ @include bpk-text--xxxxl;
299
+ }
300
+
301
+ /// Extra extra large text style
302
+ ///
303
+ /// @require {mixin} bpk-text
304
+ ///
305
+ /// @example scss
306
+ /// .selector {
307
+ /// @include bpk-text;
308
+ /// @include bpk-text--xxxxxl;
309
+ /// }
310
+
311
+ @mixin bpk-text--xxxxxl {
312
+ @include _bpk-text-factory(
313
+ tokens.$bpk-font-size-xxxxxl,
314
+ tokens.$bpk-line-height-xxxxxl,
315
+ tokens.$bpk-font-weight-bold,
316
+ tokens.$bpk-letter-spacing-tight
317
+ );
318
+ }
319
+
320
+ /// Extra extra large text style (without margin reset)
321
+ ///
322
+ /// @example scss
323
+ /// .selector {
324
+ /// @include bpk-text-xxxxxl;
325
+ /// }
326
+
327
+ @mixin bpk-text-xxxxxl {
328
+ @include bpk-text--xxxxxl;
329
+ }
330
+
331
+ /// Bold text style
332
+ ///
333
+ /// @require {mixin} bpk-text
334
+ ///
335
+ /// @example scss
336
+ /// .selector {
337
+ /// @include bpk-text;
338
+ /// @include bpk-text--bold;
339
+ /// }
340
+
341
+ @mixin bpk-text--bold {
342
+ font-weight: tokens.$bpk-font-weight-bold;
343
+ }
344
+
345
+ /// Bold text style (without margin reset)
346
+ ///
347
+ /// @example scss
348
+ /// .selector {
349
+ /// @include bpk-text-bold;
350
+ /// }
351
+
352
+ @mixin bpk-text-bold {
353
+ @include bpk-text--bold;
354
+ }
355
+
356
+ /// Black text style
357
+ ///
358
+ /// @require {mixin} bpk-text
359
+ ///
360
+ /// @example scss
361
+ /// .selector {
362
+ /// @include bpk-text;
363
+ /// @include bpk-text--black;
364
+ /// }
365
+
366
+ @mixin bpk-text--black {
367
+ font-weight: tokens.$bpk-font-weight-black;
368
+ }
369
+
370
+ /// Black text style (without margin reset)
371
+ ///
372
+ /// @example scss
373
+ /// .selector {
374
+ /// @include bpk-text-heavy;
375
+ /// }
376
+
377
+ @mixin bpk-text-black {
378
+ @include bpk-text--black;
379
+ }
380
+
381
+ /// Caption text style
382
+ ///
383
+ /// @example scss
384
+ /// .selector {
385
+ /// @include bpk-caption;
386
+ /// }
387
+
388
+ @mixin bpk-caption {
389
+ @include _bpk-text-factory(
390
+ tokens.$bpk-font-size-xs,
391
+ tokens.$bpk-line-height-xs,
392
+ tokens.$bpk-font-weight-book
393
+ );
394
+ }
395
+
396
+ /// Footnote text style
397
+ ///
398
+ /// @example scss
399
+ /// .selector {
400
+ /// @include bpk-footnote;
401
+ /// }
402
+
403
+ @mixin bpk-footnote {
404
+ @include _bpk-text-factory(
405
+ tokens.$bpk-font-size-sm,
406
+ tokens.$bpk-line-height-sm,
407
+ tokens.$bpk-font-weight-book
408
+ );
409
+ }
410
+
411
+ /// Label-1 text style
412
+ ///
413
+ /// @example scss
414
+ /// .selector {
415
+ /// @include bpk-label-1;
416
+ /// }
417
+
418
+ @mixin bpk-label-1 {
419
+ @include _bpk-text-factory(
420
+ tokens.$bpk-font-size-base,
421
+ tokens.$bpk-line-height-base,
422
+ tokens.$bpk-font-weight-bold
423
+ );
424
+ }
425
+
426
+ /// Label-2 text style
427
+ ///
428
+ /// @example scss
429
+ /// .selector {
430
+ /// @include bpk-label-2;
431
+ /// }
432
+
433
+ @mixin bpk-label-2 {
434
+ @include _bpk-text-factory(
435
+ tokens.$bpk-font-size-sm,
436
+ tokens.$bpk-line-height-sm,
437
+ tokens.$bpk-font-weight-bold
438
+ );
439
+ }
440
+
441
+ /// Label-3 text style
442
+ ///
443
+ /// @example scss
444
+ /// .selector {
445
+ /// @include bpk-label-3;
446
+ /// }
447
+
448
+ @mixin bpk-label-3 {
449
+ @include _bpk-text-factory(
450
+ tokens.$bpk-font-size-xs,
451
+ tokens.$bpk-line-height-xs,
452
+ tokens.$bpk-font-weight-bold
453
+ );
454
+ }
455
+
456
+ /// Default body text style
457
+ ///
458
+ /// @example scss
459
+ /// .selector {
460
+ /// @include bpk-body-default;
461
+ /// }
462
+
463
+ @mixin bpk-body-default {
464
+ @include _bpk-text-factory(
465
+ tokens.$bpk-font-size-base,
466
+ tokens.$bpk-line-height-base,
467
+ tokens.$bpk-font-weight-book
468
+ );
469
+ }
470
+
471
+ /// Longform body text style
472
+ ///
473
+ /// @example scss
474
+ /// .selector {
475
+ /// @include bpk-body-longform;
476
+ /// }
477
+
478
+ @mixin bpk-body-longform {
479
+ @include _bpk-text-factory(
480
+ tokens.$bpk-font-size-lg,
481
+ tokens.$bpk-line-height-lg,
482
+ tokens.$bpk-font-weight-book
483
+ );
484
+ }
485
+
486
+ /// Subheading text style
487
+ ///
488
+ /// @example scss
489
+ /// .selector {
490
+ /// @include bpk-subheading;
491
+ /// }
492
+
493
+ @mixin bpk-subheading {
494
+ @include _bpk-text-factory(
495
+ tokens.$bpk-font-size-xl,
496
+ tokens.$bpk-line-height-xl,
497
+ tokens.$bpk-font-weight-book
498
+ );
499
+ }
500
+
501
+ /// Hero 1 text style
502
+ ///
503
+ /// @example scss
504
+ /// .selector {
505
+ /// @include bpk-hero-1;
506
+ /// }
507
+
508
+ @mixin bpk-hero-1 {
509
+ @include _bpk-text-factory(
510
+ tokens.$bpk-font-size-8-xl,
511
+ tokens.$bpk-line-height-8-xl,
512
+ tokens.$bpk-font-weight-bold,
513
+ tokens.$bpk-letter-spacing-tight
514
+ );
515
+ }
516
+
517
+ /// Hero 2 text style
518
+ ///
519
+ /// @example scss
520
+ /// .selector {
521
+ /// @include bpk-hero-2;
522
+ /// }
523
+
524
+ @mixin bpk-hero-2 {
525
+ @include _bpk-text-factory(
526
+ tokens.$bpk-font-size-7-xl,
527
+ tokens.$bpk-line-height-7-xl,
528
+ tokens.$bpk-font-weight-bold,
529
+ tokens.$bpk-letter-spacing-tight
530
+ );
531
+ }
532
+
533
+ /// Hero 3 text style
534
+ ///
535
+ /// @example scss
536
+ /// .selector {
537
+ /// @include bpk-hero-3;
538
+ /// }
539
+
540
+ @mixin bpk-hero-3 {
541
+ @include _bpk-text-factory(
542
+ tokens.$bpk-font-size-6-xl,
543
+ tokens.$bpk-line-height-6-xl,
544
+ tokens.$bpk-font-weight-bold,
545
+ tokens.$bpk-letter-spacing-tight
546
+ );
547
+ }
548
+
549
+ /// Hero 4 text style
550
+ ///
551
+ /// @example scss
552
+ /// .selector {
553
+ /// @include bpk-hero-4;
554
+ /// }
555
+
556
+ @mixin bpk-hero-4 {
557
+ @include _bpk-text-factory(
558
+ tokens.$bpk-font-size-xxxxxl,
559
+ tokens.$bpk-line-height-xxxxxl,
560
+ tokens.$bpk-font-weight-bold,
561
+ tokens.$bpk-letter-spacing-tight
562
+ );
563
+ }
564
+
565
+ /// Hero 5 text style
566
+ ///
567
+ /// @example scss
568
+ /// .selector {
569
+ /// @include bpk-hero-5;
570
+ /// }
571
+
572
+ @mixin bpk-hero-5 {
573
+ @include _bpk-text-factory(
574
+ tokens.$bpk-font-size-xxxxl,
575
+ tokens.$bpk-line-height-xxxxl,
576
+ tokens.$bpk-font-weight-bold,
577
+ tokens.$bpk-letter-spacing-tight
578
+ );
579
+ }
580
+
581
+ /// Level 1 heading.
582
+ ///
583
+ /// @example scss
584
+ /// .selector {
585
+ /// @include bpk-heading-1();
586
+ /// }
587
+
588
+ @mixin bpk-heading-1 {
589
+ @include _bpk-text-factory(
590
+ tokens.$bpk-font-size-xxxl,
591
+ tokens.$bpk-line-height-xxxl,
592
+ tokens.$bpk-font-weight-bold
593
+ );
594
+ }
595
+
596
+ /// Level 2 heading.
597
+ ///
598
+ /// @example scss
599
+ /// .selector {
600
+ /// @include bpk-heading-2();
601
+ /// }
602
+
603
+ @mixin bpk-heading-2 {
604
+ @include _bpk-text-factory(
605
+ tokens.$bpk-font-size-xxl,
606
+ tokens.$bpk-line-height-xxl,
607
+ tokens.$bpk-font-weight-bold
608
+ );
609
+ }
610
+
611
+ /// Level 3 heading.
612
+ ///
613
+ /// @example scss
614
+ /// .selector {
615
+ /// @include bpk-heading-3();
616
+ /// }
617
+
618
+ @mixin bpk-heading-3 {
619
+ @include _bpk-text-factory(
620
+ tokens.$bpk-font-size-xl,
621
+ tokens.$bpk-line-height-xl-tight,
622
+ tokens.$bpk-font-weight-bold
623
+ );
624
+ }
625
+
626
+ /// Level 4 heading.
627
+ ///
628
+ /// @example scss
629
+ /// .selector {
630
+ /// @include bpk-heading-4();
631
+ /// }
632
+
633
+ @mixin bpk-heading-4 {
634
+ @include _bpk-text-factory(
635
+ tokens.$bpk-font-size-lg,
636
+ tokens.$bpk-line-height-lg-tight,
637
+ tokens.$bpk-font-weight-bold
638
+ );
639
+ }
640
+
641
+ /// Level 5 heading.
642
+ ///
643
+ /// @example scss
644
+ /// .selector {
645
+ /// @include bpk-heading-5();
646
+ /// }
647
+
648
+ @mixin bpk-heading-5 {
649
+ @include _bpk-text-factory(
650
+ tokens.$bpk-font-size-base,
651
+ tokens.$bpk-line-height-base-tight,
652
+ tokens.$bpk-font-weight-bold
653
+ );
654
+ }
655
+
656
+ /// Paragraph.
657
+ ///
658
+ /// @example scss
659
+ /// .selector {
660
+ /// @include bpk-paragraph();
661
+ /// }
662
+
663
+ @mixin bpk-paragraph {
664
+ margin-top: tokens.$bpk-spacing-none;
665
+ margin-bottom: tokens.bpk-spacing-base();
666
+ }
667
+
668
+ /// List.
669
+ ///
670
+ /// @example scss
671
+ /// .selector {
672
+ /// @include bpk-list();
673
+ /// }
674
+
675
+ @mixin bpk-list {
676
+ margin-top: tokens.bpk-spacing-base();
677
+ margin-bottom: tokens.bpk-spacing-base();
678
+ padding-left: tokens.bpk-spacing-lg();
679
+ }
680
+
681
+ /// Nested list. Modifies the bpk-list mixin.
682
+ ///
683
+ /// @require {mixin} bpk-list
684
+ ///
685
+ /// @example scss
686
+ /// .selector {
687
+ /// @include bpk-list();
688
+ /// @include bpk-list--nested();
689
+ /// }
690
+
691
+ @mixin bpk-list--nested {
692
+ margin-top: tokens.$bpk-spacing-none;
693
+ margin-bottom: tokens.$bpk-spacing-none;
694
+ padding-top: tokens.bpk-spacing-md();
695
+ padding-bottom: tokens.bpk-spacing-sm();
696
+ }
697
+
698
+ /// List item.
699
+ ///
700
+ /// @example scss
701
+ /// .selector {
702
+ /// @include bpk-list-item();
703
+ /// }
704
+
705
+ @mixin bpk-list-item {
706
+ margin-top: 0;
707
+ margin-bottom: tokens.bpk-spacing-sm();
708
+ }
709
+
710
+ /// Inline link.
711
+ ///
712
+ /// @example scss
713
+ /// .selector {
714
+ /// @include bpk-link();
715
+ /// }
716
+
717
+ @mixin bpk-link {
718
+ padding: 0;
719
+ border: 0;
720
+ background-color: transparent;
721
+ text-decoration: none;
722
+ cursor: pointer;
723
+ appearance: none;
724
+
725
+ @include utils.bpk-themeable-property(color, --bpk-link-color, tokens.$bpk-text-link-day);
726
+
727
+ @include utils.bpk-hover {
728
+ text-decoration: underline;
729
+
730
+ @include utils.bpk-themeable-property(
731
+ color,
732
+ --bpk-link-hover-color,
733
+ tokens.$bpk-text-link-day
734
+ );
735
+ }
736
+
737
+ &:visited {
738
+ @include utils.bpk-themeable-property(
739
+ color,
740
+ --bpk-link-visited-color,
741
+ tokens.$bpk-text-link-day
742
+ );
743
+ }
744
+
745
+ &:active {
746
+ text-decoration: underline;
747
+
748
+ @include utils.bpk-themeable-property(
749
+ color,
750
+ --bpk-link-active-color,
751
+ tokens.$bpk-text-link-day
752
+ );
753
+ }
754
+ }
755
+
756
+ /// White link. Modifies the bpk-link mixin.
757
+ ///
758
+ /// @require {mixin} bpk-link
759
+ ///
760
+ /// @example scss
761
+ /// .selector {
762
+ /// @include bpk-link();
763
+ /// @include bpk-link--white();
764
+ /// }
765
+
766
+ @mixin bpk-link--alternate {
767
+ @include utils.bpk-themeable-property(
768
+ color,
769
+ --bpk-link-alternate-color,
770
+ tokens.$bpk-text-on-dark-day
771
+ );
772
+
773
+ @include utils.bpk-hover {
774
+ @include utils.bpk-themeable-property(
775
+ color,
776
+ --bpk-link-alternate-hover-color,
777
+ tokens.$bpk-text-on-dark-day
778
+ );
779
+ }
780
+
781
+ &:visited {
782
+ @include utils.bpk-themeable-property(
783
+ color,
784
+ --bpk-link-alternate-visited-color,
785
+ tokens.$bpk-text-on-dark-day
786
+ );
787
+ }
788
+
789
+ &:active {
790
+ @include utils.bpk-themeable-property(
791
+ color,
792
+ --bpk-link-alternate-active-color,
793
+ tokens.$bpk-text-on-dark-day
794
+ );
795
+ }
796
+ }
797
+
798
+ @mixin bpk-link--white {
799
+ @include bpk-link--alternate;
800
+ }
801
+
802
+ /// Active link. Modifies the bpk-link mixin.
803
+ ///
804
+ /// @require {mixin} bpk-link
805
+ ///
806
+ /// @example scss
807
+ /// .selector {
808
+ /// @include bpk-link();
809
+ /// @include bpk-link--active();
810
+ /// }
811
+
812
+ @mixin bpk-link--active {
813
+ color: tokens.$bpk-text-link-day;
814
+
815
+ &:visited {
816
+ color: tokens.$bpk-text-link-day;
817
+ }
818
+
819
+ &:active {
820
+ color: tokens.$bpk-text-link-day;
821
+ }
822
+ }
823
+
824
+ /// Table.
825
+ ///
826
+ /// @example scss
827
+ /// .selector {
828
+ /// @include bpk-table();
829
+ /// }
830
+
831
+ @mixin bpk-table {
832
+ width: 100%;
833
+ margin-bottom: tokens.bpk-spacing-md();
834
+ border-collapse: collapse;
835
+ table-layout: fixed;
836
+
837
+ @include borders.bpk-border-sm(tokens.$bpk-line-day, '');
838
+ }
839
+
840
+ /// Alternate table style.
841
+ /// @require {mixin} bpk-table
842
+ ///
843
+ /// @example scss
844
+ /// .selector {
845
+ /// @include bpk-table();
846
+ /// @include bpk-table--alternate();
847
+ /// }
848
+
849
+ @mixin bpk-table--alternate {
850
+ @include borders.bpk-border-sm(tokens.$bpk-line-day, '');
851
+ }
852
+
853
+ /// Table cell.
854
+ ///
855
+ /// @example scss
856
+ /// .selector {
857
+ /// @include bpk-table__cell();
858
+ /// }
859
+
860
+ @mixin bpk-table__cell {
861
+ padding: tokens.bpk-spacing-base();
862
+ }
863
+
864
+ /// Table head cell. Modifies the bpk-table__cell mixin.
865
+ ///
866
+ /// @require {mixin} bpk-table__cell
867
+ ///
868
+ /// @example scss
869
+ /// .selector {
870
+ /// @include bpk-table__cell();
871
+ /// @include bpk-table__cell--head();
872
+ /// }
873
+
874
+ @mixin bpk-table__cell--head {
875
+ background-color: tokens.$bpk-canvas-contrast-day;
876
+ text-align: left;
877
+
878
+ @include bpk-label-1;
879
+
880
+ @include utils.bpk-rtl {
881
+ text-align: right;
882
+ }
883
+ }
884
+
885
+ /// Alternate table head cell. Modifies the bpk-table__cell mixin.
886
+ ///
887
+ /// @require {mixin} bpk-table__cell
888
+ ///
889
+ /// @example scss
890
+ /// .selector {
891
+ /// @include bpk-table__cell();
892
+ /// @include bpk-table__cell--head-alternate();
893
+ /// }
894
+
895
+ @mixin bpk-table__cell--head-alternate {
896
+ background-color: tokens.$bpk-canvas-day;
897
+ text-align: left;
898
+
899
+ @include bpk-text--bold;
900
+
901
+ @include utils.bpk-rtl {
902
+ text-align: right;
903
+ }
904
+ }
905
+
906
+ /// Code.
907
+ ///
908
+ /// @example scss
909
+ /// .selector {
910
+ /// @include bpk-code();
911
+ /// }
912
+
913
+ @mixin bpk-code {
914
+ display: inline;
915
+ padding: 0 tokens.bpk-spacing-sm();
916
+ background-color: tokens.$bpk-surface-highlight-day;
917
+ color: tokens.$bpk-text-primary-day;
918
+ text-align: left;
919
+ white-space: nowrap;
920
+ vertical-align: bottom;
921
+
922
+ @include radii.bpk-border-radius-xs;
923
+
924
+ @include utils.bpk-rtl {
925
+ direction: ltr;
926
+ }
927
+ }
928
+
929
+ /// Alternate code style suited for display on non-white backgrounds.
930
+ ///
931
+ /// @example scss
932
+ /// .selector {
933
+ /// @include bpk-code();
934
+ /// @include bpk-code--alternate();
935
+ /// }
936
+
937
+ @mixin bpk-code--alternate {
938
+ background-color: tokens.$bpk-canvas-contrast-day;
939
+ text-shadow: none;
940
+ }
941
+
942
+ /// Code block. Modifies the bpk-code mixin.
943
+ ///
944
+ /// @require {mixin} bpk-code
945
+ ///
946
+ /// @example scss
947
+ /// .selector {
948
+ /// @include bpk-code();
949
+ /// @include bpk-code--block();
950
+ /// }
951
+
952
+ @mixin bpk-code--block {
953
+ display: block;
954
+ margin: 0;
955
+ padding: 0;
956
+ background-color: transparent;
957
+ white-space: inherit;
958
+ overflow: auto;
959
+ -ms-overflow-style: none;
960
+
961
+ &::-webkit-scrollbar {
962
+ display: none;
963
+ }
964
+ }
965
+
966
+ /// Pre (code block wrapper).
967
+ ///
968
+ /// @example scss
969
+ /// .selector {
970
+ /// @include bpk-code__pre();
971
+ /// }
972
+
973
+ @mixin bpk-code__pre {
974
+ margin: 0 0 tokens.bpk-spacing-base();
975
+ padding: tokens.bpk-spacing-lg();
976
+ background-color: tokens.$bpk-surface-highlight-day;
977
+
978
+ @include radii.bpk-border-radius-xs;
979
+ }
980
+
981
+ /// Pre (code block wrapper) alternate style.
982
+ ///
983
+ /// @example scss
984
+ /// .selector {
985
+ /// @include bpk-code__pre();
986
+ /// @include bpk-code__pre--alternate();
987
+ /// }
988
+
989
+ @mixin bpk-code__pre--alternate {
990
+ background-color: transparent;
991
+
992
+ @include borders.bpk-border-sm(tokens.$bpk-line-day);
993
+ }
994
+
995
+ /// Blockquote.
996
+ ///
997
+ /// @example scss
998
+ /// .selector {
999
+ /// @include bpk-blockquote();
1000
+ /// }
1001
+
1002
+ @mixin bpk-blockquote {
1003
+ margin: 0 0 tokens.bpk-spacing-base() 0;
1004
+ padding: tokens.bpk-spacing-lg();
1005
+
1006
+ @include borders.bpk-border-left-lg(tokens.$bpk-core-accent-day);
1007
+ @include borders.bpk-border-left-lg(
1008
+ var(--bpk-blockquote-bar-color, tokens.$bpk-core-accent-day)
1009
+ );
1010
+
1011
+ @include utils.bpk-rtl {
1012
+ padding: tokens.bpk-spacing-lg();
1013
+ border-left: 0;
1014
+
1015
+ @include borders.bpk-border-right-lg(tokens.$bpk-core-accent-day);
1016
+ @include borders.bpk-border-right-lg(
1017
+ var(--bpk-blockquote-bar-color, tokens.$bpk-core-accent-day)
1018
+ );
1019
+ }
1020
+
1021
+ > *:last-child {
1022
+ margin-bottom: 0;
1023
+ }
1024
+ }
1025
+
1026
+ /// Adds additional spacing above and below blockquotes. Modifies the bpk-blockquote mixin.
1027
+ ///
1028
+ /// @require {mixin} bpk-blockquote
1029
+ ///
1030
+ /// @example scss
1031
+ /// .selector {
1032
+ /// @include bpk-blockquote();
1033
+ /// @include bpk-blockquote--extra-spacing();
1034
+ /// }
1035
+
1036
+ @mixin bpk-blockquote--extra-spacing {
1037
+ margin-top: tokens.bpk-spacing-xl();
1038
+ margin-bottom: tokens.bpk-spacing-xl();
1039
+ }