@cfpb/cfpb-design-system 4.2.3 → 4.3.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 (147) hide show
  1. package/CHANGELOG.md +178 -1
  2. package/dist/base/index.css +1 -1
  3. package/dist/base/index.css.map +2 -2
  4. package/dist/base/index.js.map +1 -1
  5. package/dist/components/cfpb-buttons/index.css +1 -1
  6. package/dist/components/cfpb-buttons/index.css.map +2 -2
  7. package/dist/components/cfpb-buttons/index.js.map +1 -1
  8. package/dist/components/cfpb-expandables/index.css.map +1 -1
  9. package/dist/components/cfpb-expandables/index.js +1 -1
  10. package/dist/components/cfpb-expandables/index.js.map +3 -3
  11. package/dist/components/cfpb-forms/index.css +1 -1
  12. package/dist/components/cfpb-forms/index.css.map +2 -2
  13. package/dist/components/cfpb-forms/index.js +1 -1
  14. package/dist/components/cfpb-forms/index.js.map +2 -2
  15. package/dist/components/cfpb-layout/index.css +1 -1
  16. package/dist/components/cfpb-layout/index.css.map +1 -1
  17. package/dist/components/cfpb-notifications/index.css.map +1 -1
  18. package/dist/components/cfpb-pagination/index.css.map +1 -1
  19. package/dist/components/cfpb-tables/index.css.map +1 -1
  20. package/dist/components/cfpb-typography/index.css +1 -1
  21. package/dist/components/cfpb-typography/index.css.map +2 -2
  22. package/dist/components/cfpb-typography/index.js.map +1 -1
  23. package/dist/elements/cfpb-button/index.js +4 -4
  24. package/dist/elements/cfpb-button/index.js.map +3 -3
  25. package/dist/elements/cfpb-checkbox-icon/index.js +29 -0
  26. package/dist/elements/{cfpb-checkbox → cfpb-checkbox-icon}/index.js.map +4 -4
  27. package/dist/elements/cfpb-expandable/index.css +2 -0
  28. package/dist/elements/cfpb-expandable/index.css.map +7 -0
  29. package/dist/elements/cfpb-expandable/index.js +33 -0
  30. package/dist/elements/cfpb-expandable/index.js.map +7 -0
  31. package/dist/elements/cfpb-file-upload/index.js +4 -4
  32. package/dist/elements/cfpb-file-upload/index.js.map +3 -3
  33. package/dist/elements/cfpb-form-alert/index.js +32 -0
  34. package/dist/elements/cfpb-form-alert/index.js.map +7 -0
  35. package/dist/elements/cfpb-form-choice/index.js +12 -3
  36. package/dist/elements/cfpb-form-choice/index.js.map +4 -4
  37. package/dist/elements/cfpb-form-search/index.js +41 -0
  38. package/dist/elements/cfpb-form-search/index.js.map +7 -0
  39. package/dist/elements/cfpb-form-search-input/index.js +41 -0
  40. package/dist/elements/cfpb-form-search-input/index.js.map +7 -0
  41. package/dist/elements/cfpb-icon-text/index.js +3 -3
  42. package/dist/elements/cfpb-icon-text/index.js.map +3 -3
  43. package/dist/elements/cfpb-label/index.js +3 -3
  44. package/dist/elements/cfpb-label/index.js.map +2 -2
  45. package/dist/elements/cfpb-list/index.js +39 -0
  46. package/dist/elements/cfpb-list/index.js.map +7 -0
  47. package/dist/elements/cfpb-list-item/index.js +39 -0
  48. package/dist/elements/cfpb-list-item/index.js.map +7 -0
  49. package/dist/elements/cfpb-multiselect/index.js +13 -4
  50. package/dist/elements/cfpb-multiselect/index.js.map +4 -4
  51. package/dist/elements/cfpb-pagination/index.js +3 -3
  52. package/dist/elements/cfpb-pagination/index.js.map +2 -2
  53. package/dist/elements/cfpb-select/index.css +2 -0
  54. package/dist/elements/cfpb-select/index.css.map +7 -0
  55. package/dist/elements/cfpb-select/index.js +42 -0
  56. package/dist/elements/cfpb-select/index.js.map +7 -0
  57. package/dist/elements/cfpb-select-list/index.js +39 -0
  58. package/dist/elements/cfpb-select-list/index.js.map +7 -0
  59. package/dist/elements/cfpb-tag-filter/index.js +3 -3
  60. package/dist/elements/cfpb-tag-filter/index.js.map +3 -3
  61. package/dist/elements/cfpb-tag-group/index.js +3 -3
  62. package/dist/elements/cfpb-tag-group/index.js.map +4 -4
  63. package/dist/elements/cfpb-tag-topic/index.js +4 -4
  64. package/dist/elements/cfpb-tag-topic/index.js.map +2 -2
  65. package/dist/elements/index.css +2 -0
  66. package/dist/elements/index.css.map +7 -0
  67. package/dist/elements/index.js +7 -6
  68. package/dist/elements/index.js.map +4 -4
  69. package/dist/index.css +1 -1
  70. package/dist/index.css.map +2 -2
  71. package/dist/index.js +7 -6
  72. package/dist/index.js.map +4 -4
  73. package/dist/utilities/index.css.map +1 -1
  74. package/dist/utilities/index.js +1 -1
  75. package/dist/utilities/index.js.map +3 -3
  76. package/package.json +1 -1
  77. package/src/base/base.scss +1 -1
  78. package/src/components/cfpb-buttons/button-link.scss +0 -1
  79. package/src/components/cfpb-expandables/expandable.js +3 -0
  80. package/src/components/cfpb-forms/multiselect.js +1 -1
  81. package/src/components/cfpb-typography/mixins.scss +3 -0
  82. package/src/elements/abstracts/custom-props.css +123 -0
  83. package/src/elements/abstracts/grid-mixins.scss +83 -0
  84. package/src/elements/abstracts/heading-mixins.scss +346 -0
  85. package/src/elements/abstracts/index.scss +7 -0
  86. package/src/elements/abstracts/media-queries.scss +35 -0
  87. package/src/elements/abstracts/sizing-vars.scss +65 -0
  88. package/src/elements/abstracts/vars-breakpoints.scss +16 -0
  89. package/src/elements/abstracts/vars.css +79 -0
  90. package/src/elements/base/base.scss +375 -0
  91. package/src/elements/base/font.scss +27 -0
  92. package/src/elements/base/index.scss +3 -0
  93. package/src/elements/base/normalize.scss +290 -0
  94. package/src/elements/cfpb-button/cfpb-button-group.scss +10 -0
  95. package/src/elements/cfpb-button/cfpb-button-link.scss +96 -0
  96. package/src/elements/cfpb-button/cfpb-button.component.scss +11 -4
  97. package/src/elements/cfpb-button/cfpb-button.scss +222 -0
  98. package/src/elements/cfpb-button/index.js +28 -29
  99. package/src/elements/cfpb-button/vars.css +30 -0
  100. package/src/elements/cfpb-checkbox-icon/cfpb-checkbox-icon.component.scss +88 -0
  101. package/src/elements/cfpb-checkbox-icon/index.js +104 -0
  102. package/src/elements/cfpb-expandable/cfpb-expandable.component.scss +218 -0
  103. package/src/elements/cfpb-expandable/index.js +127 -0
  104. package/src/elements/cfpb-file-upload/cfpb-file-upload.component.scss +2 -2
  105. package/src/elements/cfpb-file-upload/index.js +16 -18
  106. package/src/elements/cfpb-form-alert/cfpb-form-alert.component.scss +36 -0
  107. package/src/elements/cfpb-form-alert/index.js +55 -0
  108. package/src/elements/cfpb-form-choice/cfpb-form-choice.component.scss +42 -81
  109. package/src/elements/cfpb-form-choice/index.js +58 -18
  110. package/src/elements/cfpb-form-search/cfpb-form-search.component.scss +54 -0
  111. package/src/elements/cfpb-form-search/index.js +194 -0
  112. package/src/elements/cfpb-form-search-input/cfpb-form-search-input.component.scss +217 -0
  113. package/src/elements/cfpb-form-search-input/index.js +136 -0
  114. package/src/elements/cfpb-icon-text/cfpb-icon-text.component.scss +32 -39
  115. package/src/elements/cfpb-icon-text/index.js +32 -104
  116. package/src/elements/cfpb-label/cfpb-label.component.scss +2 -2
  117. package/src/elements/cfpb-label/index.js +6 -9
  118. package/src/elements/cfpb-list/cfpb-list.component.scss +23 -0
  119. package/src/elements/cfpb-list/index.js +357 -0
  120. package/src/elements/cfpb-list/index.spec.js +169 -0
  121. package/src/elements/cfpb-list-item/cfpb-list-item.component.scss +69 -0
  122. package/src/elements/cfpb-list-item/index.js +215 -0
  123. package/src/elements/cfpb-pagination/cfpb-pagination.component.scss +2 -7
  124. package/src/elements/cfpb-pagination/index.js +6 -8
  125. package/src/elements/cfpb-select/cfpb-select.component.scss +241 -0
  126. package/src/elements/cfpb-select/index.js +381 -0
  127. package/src/elements/cfpb-tag-filter/cfpb-tag-filter.component.scss +6 -3
  128. package/src/elements/cfpb-tag-filter/index.js +15 -7
  129. package/src/elements/cfpb-tag-group/cfpb-tag-group.component.scss +2 -2
  130. package/src/elements/cfpb-tag-group/index.js +53 -6
  131. package/src/elements/cfpb-tag-topic/index.js +5 -7
  132. package/src/elements/cfpb-utilities/parse-child-data.js +50 -0
  133. package/src/elements/cfpb-utilities/parse-child-data.spec.js +56 -0
  134. package/src/elements/cfpb-utilities/search-service.js +46 -0
  135. package/src/elements/cfpb-utilities/search-service.spec.js +138 -0
  136. package/src/elements/cfpb-utilities/transition/transition.scss +98 -0
  137. package/src/elements/index.js +7 -1
  138. package/src/index.scss +11 -0
  139. package/src/tokens/abstracts/custom-props.json +1642 -0
  140. package/src/tokens/abstracts/vars.json +1319 -0
  141. package/src/tokens/cfpb-button/vars.json +436 -0
  142. package/src/utilities/transition/max-height-transition.js +74 -0
  143. package/dist/elements/cfpb-checkbox/index.js +0 -29
  144. package/src/elements/cfpb-multiselect/cfpb-multiselect.component.scss +0 -225
  145. package/src/elements/cfpb-multiselect/index.js +0 -444
  146. package/src/elements/cfpb-multiselect/multiselect-model.js +0 -288
  147. package/src/elements/cfpb-multiselect/multiselect-model.spec.js +0 -236
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ :host {
6
+ --block-bg: var(--gray-5);
7
+ --block-border: var(--gray-40);
8
+ --choice-bg-default: var(--white);
9
+ --choice-bg-disabled: var(--gray-10);
10
+ --choice-bg-selected-default: var(--pacific);
11
+ --choice-bg-selected-disabled: var(--gray-40);
12
+ --choice-bg-selected-focus-default: var(--pacific);
13
+ --choice-border-default: var(--gray-60);
14
+ --choice-border-disabled: var(--gray-60);
15
+ --choice-border-error: var(--red);
16
+ --choice-border-focus-default: var(--pacific);
17
+ --choice-border-hover-default: var(--pacific);
18
+ --choice-border-success: var(--green);
19
+ --choice-border-warning: var(--gold);
20
+ --choice-label-disabled-default: var(--gray-dark);
21
+ --choice-outline-focus-default: var(--pacific);
22
+ --code-bg: var(--gray-5);
23
+ --content-main-border: var(--gray-40);
24
+ --form-alert-icon-color-default: var(--gray);
25
+ --form-alert-icon-color-error: var(--red);
26
+ --form-alert-icon-color-success: var(--green);
27
+ --form-alert-icon-color-warning: var(--gold);
28
+ --form-field-input-lg-target-bg: var(--gray-10);
29
+ --form-field-input-lg-target-bg-disabled: var(--gray-20);
30
+ --form-field-input-lg-target-bg-selected: var(--pacific-20);
31
+ --form-field-input-lg-target-border: var(--pacific);
32
+ --input-bg-default: var(--white);
33
+ --input-bg-disabled-default: var(--gray-10);
34
+ --input-border-default: var(--gray-60);
35
+ --input-border-disabled: var(--gray-60);
36
+ --input-border-error: var(--red);
37
+ --input-border-focus-default: var(--pacific);
38
+ --input-border-hover-default: var(--pacific);
39
+ --input-border-success: var(--green);
40
+ --input-border-warning: var(--gold);
41
+ --input-text-default: var(--black);
42
+ --input-text-disabled-default: var(--gray-dark);
43
+ --input-text-placeholder-default: var(--gray-dark);
44
+ --label-helper: var(--gray-dark);
45
+ --link-text: var(--pacific);
46
+ --link-text-active: var(--navy);
47
+ --link-text-hover: var(--pacific-dark);
48
+ --link-text-visited: var(--teal);
49
+ --link-underline: var(--pacific);
50
+ --link-underline-active: var(--navy);
51
+ --link-underline-hover: var(--pacific-dark);
52
+ --link-underline-visited: var(--teal);
53
+ --range-bg: var(--gray-10);
54
+ --range-bg-focused: var(--pacific-20);
55
+ --range-bg-track: var(--gray-80);
56
+ --range-border: var(--gray-40);
57
+ --range-border-focused: var(--pacific);
58
+ --select-bg-disabled-default: var(--gray-10);
59
+ --select-border-default: var(--gray-60);
60
+ --select-border-error: var(--red);
61
+ --select-border-focus-default: var(--pacific);
62
+ --select-border-hover-default: var(--pacific);
63
+ --select-icon-bg-default: var(--gray-10);
64
+ --select-text-disabled-default: var(--gray-dark);
65
+ --table-border: var(--gray);
66
+ --table-head-bg: var(--gray-5);
67
+ --tag-filter-bg-active-default: var(--teal-60);
68
+ --tag-filter-bg-default: var(--teal-20);
69
+ --tag-filter-bg-hover-default: var(--teal-40);
70
+ --tag-filter-border-default: var(--teal);
71
+ --tag-filter-outline-focuse-default: var(--teal-dark);
72
+ --text: var(--black); /** body */
73
+ --block-border-bottom: var(--block-border);
74
+ --block-border-left: var(--block-border);
75
+ --block-border-right: var(--block-border);
76
+ --block-border-top: var(--block-border);
77
+ --code-text: var(--text);
78
+ --table-head-text: var(--text);
79
+ }
@@ -0,0 +1,375 @@
1
+ @use 'sass:math';
2
+ @use '../abstracts' as *;
3
+
4
+ /* ==========================================================================
5
+ Design System
6
+ Base styles
7
+ ========================================================================== */
8
+
9
+ //
10
+ // Type hierarchy
11
+ //
12
+ body {
13
+ color: var(--text);
14
+ font-family: var(--font-stack);
15
+ font-size: math.div($base-font-size, 16) * 100%;
16
+ font-size-adjust: var(--font-adjust-body);
17
+ line-height: $base-line-height;
18
+ -webkit-font-smoothing: antialiased;
19
+ }
20
+
21
+ button,
22
+ input,
23
+ select,
24
+ textarea {
25
+ // Must set these explicitly to override Normalize.css's provided default
26
+ // of `font-family: sans-serif;`
27
+ font-family: var(--font-stack);
28
+
29
+ // Characters in some languages, like Chinese, have a larger x-height,
30
+ // which will make the button taller than the input.
31
+ // Fix that by setting the line height on the button and the input.
32
+ line-height: math.div(19px, $base-font-size-px);
33
+ font-size-adjust: var(--font-adjust-body);
34
+ }
35
+
36
+ /*
37
+ * On iOS Safari the input is collapsed till it's clicked.
38
+ * This sets the default min width and height to what it would be if the
39
+ * appearance was a textfield.
40
+ */
41
+ input[type='date'] {
42
+ display: revert;
43
+ min-width: 100px;
44
+ min-height: 35px;
45
+ padding-top: 0;
46
+ padding-bottom: 0;
47
+
48
+ &.a-text-input--full {
49
+ min-width: 100%;
50
+ }
51
+ }
52
+
53
+ // Globally remove inset border style from HR elements.
54
+ hr {
55
+ border: none;
56
+ border-top: 1px solid var(--gray-40);
57
+ }
58
+
59
+ strong,
60
+ b {
61
+ font-weight: 600;
62
+ }
63
+
64
+ // Resetting default browser styling for margin-top on headings
65
+ h1,
66
+ h2,
67
+ h3,
68
+ h4,
69
+ h5,
70
+ h6 {
71
+ margin-top: 0;
72
+ }
73
+
74
+ h1,
75
+ .h1 {
76
+ @include heading-1;
77
+ }
78
+
79
+ h2,
80
+ .h2 {
81
+ @include heading-2;
82
+ }
83
+
84
+ h3,
85
+ .h3 {
86
+ @include heading-3;
87
+ }
88
+
89
+ h4,
90
+ .h4 {
91
+ @include heading-4;
92
+ }
93
+
94
+ h5,
95
+ .h5 {
96
+ @include heading-5;
97
+ }
98
+
99
+ h6,
100
+ .h6 {
101
+ @include heading-6;
102
+ }
103
+
104
+ .lead-paragraph {
105
+ @include u-lead-paragraph;
106
+ }
107
+
108
+ .superheading {
109
+ @include u-superheading;
110
+ }
111
+
112
+ //
113
+ // Body copy element vertical margins
114
+ //
115
+
116
+ p,
117
+ ul,
118
+ ol,
119
+ dl,
120
+ figure,
121
+ table,
122
+ blockquote {
123
+ margin-top: 0;
124
+ margin-bottom: math.div(15px, $base-font-size-px) + em;
125
+
126
+ &:last-child {
127
+ margin-bottom: 0;
128
+ }
129
+ }
130
+
131
+ p + ul,
132
+ p + ol {
133
+ margin-top: math.div(-5px, $base-font-size-px) + em;
134
+ }
135
+
136
+ ul ul,
137
+ ol ol,
138
+ ul ol,
139
+ ol ul {
140
+ margin-top: math.div(8px, $base-font-size-px) + em;
141
+ }
142
+
143
+ li {
144
+ margin-bottom: math.div(8px, $base-font-size-px) + em;
145
+
146
+ &:last-child,
147
+ nav & {
148
+ margin-bottom: 0;
149
+ }
150
+ }
151
+
152
+ //
153
+ // Default link
154
+ //
155
+
156
+ a {
157
+ color: var(--link-text);
158
+
159
+ text-decoration-color: var(--link-underline);
160
+ text-decoration-line: underline;
161
+ text-decoration-thickness: 1px;
162
+ text-decoration-style: dotted;
163
+ text-underline-offset: 4.5px;
164
+
165
+ // Note: The class definitions below are only for use in
166
+ // demonstrating link states. Do not use in production.
167
+
168
+ &:visited,
169
+ &.visited {
170
+ text-decoration-color: var(--link-underline-visited);
171
+ color: var(--link-text-visited);
172
+ }
173
+
174
+ &:hover,
175
+ &.hover {
176
+ text-decoration-style: solid;
177
+ text-decoration-color: var(--link-underline-hover);
178
+ color: var(--link-text-hover);
179
+ }
180
+
181
+ &:focus,
182
+ &.focus {
183
+ outline: thin dotted;
184
+ outline-offset: 1px;
185
+ }
186
+
187
+ &:active,
188
+ &.active {
189
+ text-decoration-style: solid;
190
+ text-decoration-color: var(--link-underline-active);
191
+ color: var(--link-text-active);
192
+ }
193
+ }
194
+
195
+ nav a {
196
+ // Don't show underlines if they're part of a nav list.
197
+ text-decoration-line: none;
198
+ }
199
+
200
+ //
201
+ // Lists
202
+ //
203
+
204
+ ul {
205
+ padding-left: math.div(18px, $base-font-size-px) + em;
206
+ list-style: square;
207
+ }
208
+
209
+ ul ul {
210
+ list-style-type: circle;
211
+ }
212
+
213
+ ol {
214
+ // Slightly larger than necessary, but this is the minimum value
215
+ // for numbers to not be partially in the margin in Internet Explorer.
216
+ padding-left: math.div(21px, $base-font-size-px) + em;
217
+
218
+ li:nth-last-child(n + 10),
219
+ li:nth-last-child(n + 10) ~ li {
220
+ // 0.5625rem
221
+ margin-left: math.div(9px, $base-font-size-px) + rem;
222
+ }
223
+ }
224
+
225
+ ol ol {
226
+ list-style-type: lower-alpha;
227
+
228
+ // Negate margin added to lists longer than 9 items.
229
+ li {
230
+ margin-left: 0 !important;
231
+ }
232
+ }
233
+
234
+ ol ol ol {
235
+ list-style-type: lower-roman;
236
+ }
237
+
238
+ // Lists in the nav should be unstyled
239
+ nav ul,
240
+ nav ol,
241
+ nav ul ul,
242
+ nav ol ol {
243
+ list-style: none;
244
+ list-style-image: none;
245
+ }
246
+
247
+ //
248
+ // Tables
249
+ //
250
+
251
+ caption {
252
+ margin-bottom: math.div(10px, $base-font-size-px) + em;
253
+ text-align: left;
254
+ }
255
+
256
+ th,
257
+ td {
258
+ padding: math.div(10px, $base-font-size-px) + em;
259
+
260
+ thead & {
261
+ // 10px / 14px
262
+ padding: math.div(10px, $size-v) + em;
263
+ background: var(--table-head-bg);
264
+ color: var(--table-head-text);
265
+ font-size: math.div(16px, $base-font-size-px) + em;
266
+ vertical-align: top;
267
+ }
268
+ }
269
+
270
+ thead,
271
+ tbody tr {
272
+ border-bottom: 1px solid var(--table-border);
273
+ }
274
+
275
+ th {
276
+ font-weight: 600;
277
+ text-align: left;
278
+
279
+ thead & {
280
+ // Heading elements may at times appear inside `th` elements
281
+ // as required for navigating the page's content with screenreaders.
282
+ // These rules prevent those headings from overriding the desired style
283
+ // of their parent `th` elements.
284
+ h2,
285
+ .h2,
286
+ h3,
287
+ .h3,
288
+ h4,
289
+ .h4,
290
+ h5,
291
+ .h5,
292
+ h6,
293
+ .h6 {
294
+ margin: 0;
295
+ font-size: inherit;
296
+ font-weight: inherit;
297
+ letter-spacing: inherit;
298
+ line-height: inherit;
299
+ text-transform: inherit;
300
+ }
301
+ }
302
+ }
303
+
304
+ //
305
+ // Block quote
306
+ //
307
+
308
+ blockquote {
309
+ margin-right: math.div(15px, $base-font-size-px) + em;
310
+ margin-left: math.div(15px, $base-font-size-px) + em;
311
+
312
+ // Tablet and above.
313
+ @include respond-to-min($bp-sm-min) {
314
+ margin-right: math.div(30px, $base-font-size-px) + em;
315
+ margin-left: math.div(30px, $base-font-size-px) + em;
316
+ }
317
+ }
318
+
319
+ //
320
+ // Form elements have been moved to the @cfpb/cfpb-forms component.
321
+ //
322
+
323
+ //
324
+ // Images
325
+ //
326
+
327
+ img {
328
+ max-width: 100%;
329
+ }
330
+
331
+ //
332
+ // Figure
333
+ //
334
+
335
+ figure {
336
+ // reset browser default side margins
337
+ margin-right: 0;
338
+ margin-left: 0;
339
+
340
+ img {
341
+ // Removes weird vertical spacing below images.
342
+ // TODO: Discuss whether this could just be universally applied to img
343
+ vertical-align: middle;
344
+ }
345
+ }
346
+
347
+ //
348
+ // Code blocks
349
+ //
350
+
351
+ pre,
352
+ code {
353
+ background: var(--code-bg);
354
+ border-radius: 4px;
355
+ color: var(--code-text);
356
+ font-family: 'Input Mono', Consolas, Monaco, 'Courier New', monospace;
357
+ }
358
+
359
+ code {
360
+ padding: math.div(3px, $size-code) + em math.div(3px, $size-code) + em 0;
361
+ font-size: math.div($size-code, $base-font-size-px) + em;
362
+ }
363
+
364
+ pre {
365
+ display: block;
366
+ padding: math.div(10px, $base-font-size-px) + em
367
+ math.div(15px, $base-font-size-px) + em;
368
+ white-space: pre-wrap;
369
+ overflow-wrap: break-word;
370
+
371
+ code {
372
+ padding: 0;
373
+ background-color: transparent;
374
+ }
375
+ }
@@ -0,0 +1,27 @@
1
+ @mixin licensed-font($path: '/static/fonts') {
2
+ /* ==========================================================================
3
+ Design System
4
+ Licensed font URLs – for CFPB use only.
5
+ ========================================================================== */
6
+
7
+ @if $path {
8
+ // Refer to https://fontsource.org/fonts/source-sans-3/install for
9
+ // generating @font-face rules.
10
+ @font-face {
11
+ font-family: 'Source Sans 3 Variable';
12
+ font-style: normal;
13
+ font-display: fallback;
14
+ font-weight: 200 900;
15
+ src: url('#{$path}/source-sans-3-latin-wght-normal.woff2')
16
+ format('woff2-variations');
17
+ unicode-range:
18
+ U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
19
+ U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
20
+ U+2212, U+2215, U+FEFF, U+FFFD;
21
+ }
22
+
23
+ :root {
24
+ --font-stack: 'Source Sans 3 Variable', arial, sans-serif;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,3 @@
1
+ @forward 'normalize';
2
+ @forward 'base';
3
+ @forward 'font';