vanilla-framework 4.26.0 → 4.27.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 (35) hide show
  1. package/package.json +1 -1
  2. package/scss/_base_button.scss +4 -4
  3. package/scss/_base_code.scss +4 -4
  4. package/scss/_base_details.scss +1 -1
  5. package/scss/_base_forms.scss +4 -4
  6. package/scss/_base_placeholders.scss +32 -12
  7. package/scss/_base_tables.scss +3 -3
  8. package/scss/_base_typography-definitions.scss +168 -82
  9. package/scss/_base_typography.scss +7 -3
  10. package/scss/_layouts_full-width.scss +1 -1
  11. package/scss/_patterns_badge.scss +1 -1
  12. package/scss/_patterns_chip.scss +3 -3
  13. package/scss/_patterns_grid-8.scss +256 -7
  14. package/scss/_patterns_grid.scss +0 -1
  15. package/scss/_patterns_heading-icon.scss +2 -2
  16. package/scss/_patterns_image.scss +48 -22
  17. package/scss/_patterns_lists.scss +19 -8
  18. package/scss/_patterns_matrix.scss +4 -4
  19. package/scss/_patterns_navigation-reduced.scss +5 -5
  20. package/scss/_patterns_navigation.scss +5 -5
  21. package/scss/_patterns_notifications.scss +2 -2
  22. package/scss/_patterns_search-and-filter.scss +2 -2
  23. package/scss/_patterns_search-box.scss +2 -2
  24. package/scss/_patterns_status-label.scss +1 -1
  25. package/scss/_patterns_table-mobile-card.scss +1 -1
  26. package/scss/_patterns_table-sortable.scss +1 -1
  27. package/scss/_patterns_tabs.scss +1 -1
  28. package/scss/_settings.scss +1 -1
  29. package/scss/_settings_font.scss +11 -1
  30. package/scss/_settings_grid.scss +4 -0
  31. package/scss/_settings_spacing.scss +329 -82
  32. package/scss/_utilities_content-align.scss +2 -2
  33. package/templates/_macros/vf_rich-vertical-list.jinja +5 -5
  34. package/templates/_macros/vf_text-spotlight.jinja +3 -3
  35. package/templates/_macros/vf_tiered-list.jinja +17 -17
@@ -22,7 +22,7 @@
22
22
  background: $colors--theme--background-alt;
23
23
 
24
24
  // height of top navigation, as padding applied to .p-navigation__link + line-heigh of the anchor text inside
25
- $navigation-top-height: $spv--large * 2 + map-get($line-heights, default-text);
25
+ $navigation-top-height: $spv--large * 2 + map-get($settings-text-default, line-height);
26
26
 
27
27
  height: calc(100% - $navigation-top-height); // height of document reduced by height of top nav
28
28
  min-height: calc(100vh - $navigation-top-height);
@@ -13,7 +13,7 @@
13
13
  // the minimum content width should be the total desired width (the line-height)
14
14
  // minus the space already taken up by the left and right padding
15
15
  // Makes the shortest badge a perfect circle and keeps it related to line-height (of %x-small-text) and padding (below)
16
- min-width: map-get($line-heights, x-small) - (2 * $spv--x-small);
16
+ min-width: map-get($settings-text-x-small, line-height) - (2 * $spv--x-small);
17
17
  overflow: hidden;
18
18
  padding: 0 $spv--x-small;
19
19
  text-align: center;
@@ -7,8 +7,6 @@
7
7
  align-self: center;
8
8
  background-size: map-get($icon-sizes, small);
9
9
  flex: 0 0 auto;
10
- // Space chip away from the content preceding it in the chip body
11
- margin-left: $sph--x-small;
12
10
  @media (min-width: $breakpoint-x-large) {
13
11
  background-size: math.div(map-get($icon-sizes, small), $font-size-ratio--largescreen); //ensure no rounding happens as it positions the icon off center
14
12
  }
@@ -27,7 +25,7 @@
27
25
  padding: calc($spv--x-small - $input-border-thickness) $sph--small; // account for border thickness using calc
28
26
  position: relative;
29
27
  user-select: none;
30
- vertical-align: calc($input-border-thickness - map-get($nudges, p));
28
+ vertical-align: calc($input-border-thickness - map-get($settings-text-p, nudge));
31
29
  white-space: nowrap;
32
30
 
33
31
  [class*='p-icon--'],
@@ -58,6 +56,8 @@
58
56
  @include vf-icon-close-themed;
59
57
 
60
58
  border-radius: 50%;
59
+ // Space away from the content preceding it in the chip body
60
+ margin-left: $sph--x-small;
61
61
  }
62
62
 
63
63
  & > [class*='p-icon--'] {
@@ -82,7 +82,7 @@
82
82
 
83
83
  // on medium/tablet screens, small and large grid class names span full width (to match block level element behaviour)
84
84
  %grid-8-span-on-tablet {
85
- @media (min-width: $threshold-4-6-col) {
85
+ @media (min-width: $threshold-4-small-4-med-col) {
86
86
  grid-column: auto / span $grid-8-columns-medium;
87
87
  }
88
88
  }
@@ -100,7 +100,7 @@
100
100
  }
101
101
 
102
102
  // col-medium-X classes define grid for medium screens
103
- @media (min-width: $threshold-4-6-col) {
103
+ @media (min-width: $threshold-4-small-4-med-col) {
104
104
  @for $i from $grid-8-columns-medium through 1 {
105
105
  .#{$grid-8-medium-col-prefix}#{$i} {
106
106
  @include vf-grid-8-column($i);
@@ -114,7 +114,7 @@
114
114
 
115
115
  // on desktop screens small and medium grid class names span full width (to match block level element behaviour)
116
116
  %grid-8-span-on-desktop {
117
- @media (min-width: $threshold-6-12-col) {
117
+ @media (min-width: $threshold-4-8-col) {
118
118
  grid-column: auto / span $grid-8-columns;
119
119
  }
120
120
  }
@@ -132,7 +132,7 @@
132
132
  }
133
133
 
134
134
  // col-X class names define grid on large/desktop screens
135
- @media (min-width: $threshold-6-12-col) {
135
+ @media (min-width: $threshold-4-8-col) {
136
136
  @for $i from $grid-8-columns through 1 {
137
137
  // set col-* to span respective number of columns on desktop
138
138
  .#{$grid-8-large-col-prefix}#{$i} {
@@ -144,9 +144,9 @@
144
144
 
145
145
  // column reordering
146
146
  $offsets: (
147
- (small, 0, $threshold-4-6-col, $grid-8-columns-small),
148
- (medium, $threshold-4-6-col, $threshold-6-12-col, $grid-8-columns-medium),
149
- (large, $threshold-6-12-col, false, $grid-8-columns)
147
+ (small, 0, $threshold-4-small-4-med-col, $grid-8-columns-small),
148
+ (medium, $threshold-4-small-4-med-col, $threshold-4-8-col, $grid-8-columns-medium),
149
+ (large, $threshold-4-8-col, false, $grid-8-columns)
150
150
  );
151
151
 
152
152
  @each $label, $breakpoint-min, $breakpoint-reset, $col-count in $offsets {
@@ -164,4 +164,253 @@
164
164
  }
165
165
  }
166
166
  }
167
+
168
+ // Common grid patterns
169
+ $col-50-medium: calc($grid-8-columns-medium / 2);
170
+
171
+ $col-25: calc($grid-8-columns / 4);
172
+ $col-25-medium: calc($grid-8-columns-medium / 4);
173
+ $col-50: calc($grid-8-columns / 2);
174
+ $col-75: calc(($grid-8-columns / 4) * 3);
175
+ $col-75-medium: calc(($grid-8-columns-medium / 4) * 3);
176
+
177
+ // 50/50 split on medium and large screens
178
+ .grid-row--50-50 {
179
+ @extend %vf-grid-row;
180
+
181
+ > .grid-col {
182
+ @include vf-grid-8-column($grid-8-columns-small);
183
+
184
+ @media (min-width: $threshold-4-small-4-med-col) {
185
+ @include vf-grid-8-column($col-50-medium);
186
+ }
187
+
188
+ @media (min-width: $threshold-4-8-col) {
189
+ @include vf-grid-8-column($col-50);
190
+ }
191
+ }
192
+ }
193
+
194
+ // 25/75 split on medium and large screens
195
+ .grid-row--25-75 {
196
+ @extend %vf-grid-row;
197
+
198
+ > .grid-col {
199
+ @include vf-grid-8-column($grid-8-columns-small);
200
+
201
+ @media (min-width: $threshold-4-small-4-med-col) {
202
+ &:nth-of-type(1) {
203
+ @include vf-grid-8-column($col-25-medium);
204
+ }
205
+
206
+ &:nth-of-type(2) {
207
+ @include vf-grid-8-column($col-75-medium);
208
+ }
209
+
210
+ // if there is only one column, use the whole width
211
+ &:only-of-type {
212
+ @include vf-grid-8-column($grid-8-columns-medium);
213
+ }
214
+ }
215
+
216
+ @media (min-width: $threshold-4-8-col) {
217
+ &:nth-of-type(1) {
218
+ @include vf-grid-8-column($col-25);
219
+ }
220
+
221
+ &:nth-of-type(2) {
222
+ @include vf-grid-8-column($col-75);
223
+ }
224
+
225
+ // if there is only one column we offset it to the right
226
+ &:only-of-type {
227
+ grid-column-start: calc($col-25 + 1);
228
+ @include vf-grid-8-column($col-75);
229
+ }
230
+ }
231
+ }
232
+ }
233
+
234
+ // 50/50 split just on medium screens
235
+ .grid-row--50-50-on-medium {
236
+ @extend %vf-grid-row;
237
+
238
+ > .grid-col {
239
+ @media ($threshold-4-small-4-med-col <= width < $threshold-4-8-col) {
240
+ @include vf-grid-8-column($col-50-medium);
241
+ }
242
+ }
243
+ }
244
+
245
+ .grid-row--25-75-on-medium {
246
+ @extend %vf-grid-row;
247
+
248
+ > .grid-col {
249
+ @media ($threshold-4-small-4-med-col <= width < $threshold-4-8-col) {
250
+ &:nth-of-type(1) {
251
+ @include vf-grid-8-column($col-25-medium);
252
+ }
253
+
254
+ &:nth-of-type(2) {
255
+ @include vf-grid-8-column($col-75-medium);
256
+ }
257
+
258
+ // if there is only one column, use the whole width
259
+ &:only-of-type {
260
+ @include vf-grid-8-column($grid-8-columns-medium);
261
+ }
262
+ }
263
+ }
264
+ }
265
+
266
+ // 50/50 split just on large screens
267
+ .grid-row--50-50-on-large {
268
+ @extend %vf-grid-row;
269
+
270
+ > .grid-col {
271
+ @media (min-width: $threshold-4-8-col) {
272
+ @include vf-grid-8-column($col-50);
273
+ }
274
+ }
275
+ }
276
+
277
+ .grid-row--25-75-on-large {
278
+ @extend %vf-grid-row;
279
+
280
+ > .grid-col {
281
+ @media (min-width: $threshold-4-8-col) {
282
+ &:nth-of-type(1) {
283
+ @include vf-grid-8-column($col-25);
284
+ }
285
+
286
+ &:nth-of-type(2) {
287
+ @include vf-grid-8-column($col-75);
288
+ }
289
+
290
+ // if there is only one column we offset it to the right
291
+ &:only-of-type {
292
+ grid-column-start: calc($col-25 + 1);
293
+ @include vf-grid-8-column($col-75);
294
+ }
295
+ }
296
+ }
297
+ }
298
+
299
+ // 75/25 split on medium and large screens
300
+ .grid-row--75-25 {
301
+ @extend %vf-grid-row;
302
+
303
+ > .grid-col {
304
+ @include vf-grid-8-column($grid-8-columns-small);
305
+
306
+ @media (min-width: $threshold-4-small-4-med-col) {
307
+ &:nth-of-type(1) {
308
+ @include vf-grid-8-column($col-75-medium);
309
+ }
310
+
311
+ &:nth-of-type(2) {
312
+ @include vf-grid-8-column($col-25-medium);
313
+ }
314
+
315
+ // if there is only one column, use the whole width
316
+ &:only-of-type {
317
+ @include vf-grid-8-column($grid-8-columns-medium);
318
+ }
319
+ }
320
+
321
+ @media (min-width: $threshold-4-8-col) {
322
+ &:nth-of-type(1) {
323
+ @include vf-grid-8-column($col-75);
324
+ }
325
+
326
+ &:nth-of-type(2) {
327
+ @include vf-grid-8-column($col-25);
328
+ }
329
+ }
330
+ }
331
+ }
332
+
333
+ .grid-row--75-25-on-medium {
334
+ @extend %vf-grid-row;
335
+
336
+ > .grid-col {
337
+ @media ($threshold-4-small-4-med-col <= width < $threshold-4-8-col) {
338
+ &:nth-of-type(1) {
339
+ @include vf-grid-8-column($col-75-medium);
340
+ }
341
+
342
+ &:nth-of-type(2) {
343
+ @include vf-grid-8-column($col-25-medium);
344
+ }
345
+
346
+ // if there is only one column, use the whole width
347
+ &:only-of-type {
348
+ @include vf-grid-8-column($grid-8-columns-medium);
349
+ }
350
+ }
351
+ }
352
+ }
353
+
354
+ .grid-row--75-25-on-large {
355
+ @extend %vf-grid-row;
356
+
357
+ > .grid-col {
358
+ @media (min-width: $threshold-4-8-col) {
359
+ &:nth-of-type(1) {
360
+ @include vf-grid-8-column($col-75);
361
+ }
362
+
363
+ &:nth-of-type(2) {
364
+ @include vf-grid-8-column($col-25);
365
+ }
366
+ }
367
+ }
368
+ }
369
+
370
+ .grid-row--25-25-50 {
371
+ @extend %vf-grid-row;
372
+
373
+ > .grid-col {
374
+ @include vf-grid-8-column($grid-8-columns-small);
375
+
376
+ @media (min-width: $threshold-4-small-4-med-col) {
377
+ // The first two columns are 50% each on medium
378
+ &:nth-of-type(-n + 2) {
379
+ @include vf-grid-8-column($col-50-medium);
380
+ }
381
+
382
+ // The third column is 100% on medium
383
+ &:nth-of-type(3) {
384
+ @include vf-grid-8-column($grid-8-columns-medium);
385
+ }
386
+ }
387
+
388
+ @media (min-width: $threshold-4-8-col) {
389
+ &:nth-of-type(1),
390
+ &:nth-of-type(2) {
391
+ @include vf-grid-8-column($col-25);
392
+ }
393
+
394
+ &:nth-of-type(3) {
395
+ @include vf-grid-8-column($col-50);
396
+ }
397
+ }
398
+ }
399
+ }
400
+
401
+ .grid-row--25-25-25-25 {
402
+ @extend %vf-grid-row;
403
+
404
+ > .grid-col {
405
+ @include vf-grid-8-column($grid-8-columns-small);
406
+
407
+ @media (min-width: $threshold-4-small-4-med-col) {
408
+ @include vf-grid-8-column($col-50-medium);
409
+ }
410
+
411
+ @media (min-width: $threshold-4-8-col) {
412
+ @include vf-grid-8-column($col-25);
413
+ }
414
+ }
415
+ }
167
416
  }
@@ -193,7 +193,6 @@
193
193
  }
194
194
 
195
195
  // Common grid patterns
196
- // TODO implement the common grid patterns for the new 4/4/8 grid (.grid-row--)
197
196
  $col-50-medium: calc($grid-columns-medium / 2);
198
197
 
199
198
  $col-25: calc($grid-columns / 4);
@@ -22,14 +22,14 @@
22
22
  height: map-get($icon-sizes, heading-icon);
23
23
  margin-bottom: 0;
24
24
  margin-right: $sph--large;
25
- margin-top: calc(map-get($nudges, h3) / 2); // just a quick fix, should be calculated based on line height and icon size
25
+ margin-top: calc(map-get($settings-text-h3, nudge) / 2); // just a quick fix, should be calculated based on line height and icon size
26
26
  width: map-get($icon-sizes, heading-icon);
27
27
  }
28
28
 
29
29
  .p-heading-icon--small {
30
30
  .p-heading-icon__img {
31
31
  height: map-get($icon-sizes, heading-icon--small);
32
- margin-top: map-get($nudges, h3);
32
+ margin-top: map-get($settings-text-h3, nudge);
33
33
  width: map-get($icon-sizes, heading-icon--small);
34
34
  }
35
35
  }
@@ -25,25 +25,47 @@
25
25
  Image element within an image container.
26
26
  */
27
27
 
28
- @use 'sass:color';
28
+ @use 'sass:math';
29
29
  @import 'settings';
30
30
 
31
- // Mapping of aspect ratio class names to their `aspect-ratio` values (width / height).
31
+ // Mapping of aspect ratio class names to their values
32
32
  $aspect-ratios: (
33
- '16-9': calc(16 / 9),
34
- '3-2': calc(3 / 2),
35
- '2-3': calc(2 / 3),
33
+ '16-9': math.div(16, 9),
34
+ '3-2': math.div(3, 2),
35
+ '2-3': math.div(2, 3),
36
36
  'cinematic': 2.4,
37
37
  'square': 1,
38
38
  );
39
39
 
40
+ @mixin apply-aspect-ratio-styles($padding-value) {
41
+ &::before {
42
+ content: '';
43
+ display: block;
44
+ padding-bottom: $padding-value;
45
+ }
46
+
47
+ .p-image-container__image {
48
+ bottom: 0;
49
+ left: 0;
50
+ margin: auto;
51
+ max-height: 100%;
52
+ max-width: 100%;
53
+ object-fit: contain;
54
+ position: absolute;
55
+ right: 0;
56
+ top: 0;
57
+ }
58
+ }
59
+
40
60
  @mixin aspect-ratio-classes {
41
61
  @each $aspect-ratio, $aspect-ratio-value in $aspect-ratios {
62
+ $padding-percentage: math.div(1, $aspect-ratio-value) * 100%;
42
63
  .p-image-container--#{$aspect-ratio} {
43
- aspect-ratio: $aspect-ratio-value;
64
+ @include apply-aspect-ratio-styles($padding-percentage);
44
65
  }
45
66
  }
46
67
 
68
+ // Responsive aspect ratios
47
69
  @each $breakpoint-name, $breakpoint-bounds-pair in $breakpoint-bounds {
48
70
  $min-width: map-get($breakpoint-bounds-pair, min);
49
71
  $max-width: map-get($breakpoint-bounds-pair, max);
@@ -51,24 +73,27 @@ $aspect-ratios: (
51
73
  @if $min-width and $max-width {
52
74
  @media ($min-width <= width < $max-width) {
53
75
  @each $aspect-ratio, $aspect-ratio-value in $aspect-ratios {
76
+ $padding-percentage: math.div(1, $aspect-ratio-value) * 100%;
54
77
  .p-image-container--#{$aspect-ratio}-on-#{$breakpoint-name} {
55
- aspect-ratio: $aspect-ratio-value;
78
+ @include apply-aspect-ratio-styles($padding-percentage);
56
79
  }
57
80
  }
58
81
  }
59
82
  } @else if $min-width {
60
83
  @media (width >= $min-width) {
61
84
  @each $aspect-ratio, $aspect-ratio-value in $aspect-ratios {
85
+ $padding-percentage: math.div(1, $aspect-ratio-value) * 100%;
62
86
  .p-image-container--#{$aspect-ratio}-on-#{$breakpoint-name} {
63
- aspect-ratio: $aspect-ratio-value;
87
+ @include apply-aspect-ratio-styles($padding-percentage);
64
88
  }
65
89
  }
66
90
  }
67
91
  } @else if $max-width {
68
92
  @media (width < $max-width) {
69
93
  @each $aspect-ratio, $aspect-ratio-value in $aspect-ratios {
94
+ $padding-percentage: math.div(1, $aspect-ratio-value) * 100%;
70
95
  .p-image-container--#{$aspect-ratio}-on-#{$breakpoint-name} {
71
- aspect-ratio: $aspect-ratio-value;
96
+ @include apply-aspect-ratio-styles($padding-percentage);
72
97
  }
73
98
  }
74
99
  }
@@ -79,32 +104,33 @@ $aspect-ratios: (
79
104
  @mixin vf-p-image {
80
105
  .p-image-container,
81
106
  [class^='p-image-container--'] {
82
- align-items: center;
83
- display: flex;
84
- justify-content: center;
85
- text-align: center;
107
+ display: block;
108
+ position: relative;
109
+ width: 100%;
86
110
 
87
- // If there is a child lazyloaded image, don't let it affect the layout
88
- & > .lazyloaded {
89
- display: contents;
111
+ .p-image-container__image {
112
+ display: block;
113
+ margin: auto;
90
114
  }
91
115
 
92
116
  &.is-highlighted {
93
117
  background: $colors--theme--background-alt;
94
118
  }
95
119
 
96
- .p-image-container__image {
97
- // max height prevents the image from stretching the container
98
- // when the aspect ratio is set, and object-fit ensures the aspect ratio
99
- // of the image content is maintained
100
- max-height: 100%;
101
- object-fit: contain;
120
+ // If there is a child lazyloaded image, don't let it affect the layout.
121
+ & > .lazyloaded {
122
+ display: contents;
102
123
  }
103
124
 
104
125
  &.is-cover {
105
126
  .p-image-container__image {
106
127
  height: 100%;
128
+ left: 0;
129
+ margin: 0;
107
130
  object-fit: cover;
131
+ position: absolute;
132
+ top: 0;
133
+ transform: none;
108
134
  width: 100%;
109
135
  }
110
136
  }
@@ -24,18 +24,18 @@ $list-step-bullet-margin: $sph--x-large;
24
24
  %numbered-step-title {
25
25
  list-style: none;
26
26
  margin-left: 0;
27
- padding-left: calc(map-get($line-heights, default-text) + $list-step-bullet-margin);
27
+ padding-left: calc(map-get($settings-text-default, line-height) + $list-step-bullet-margin);
28
28
  position: relative;
29
29
 
30
30
  &::before {
31
31
  content: counter(p-stepped-list-counter) '.';
32
32
  display: block;
33
- height: map-get($line-heights, default-text);
33
+ height: map-get($settings-text-default, line-height);
34
34
  left: 0;
35
35
  margin-right: $list-step-bullet-margin;
36
36
  position: absolute;
37
37
  text-align: right;
38
- width: map-get($line-heights, default-text);
38
+ width: map-get($settings-text-default, line-height);
39
39
  }
40
40
  }
41
41
 
@@ -389,7 +389,7 @@ $list-step-bullet-margin: $sph--x-large;
389
389
 
390
390
  &::after {
391
391
  content: '\2022';
392
- line-height: map-get($line-heights, default-text);
392
+ line-height: map-get($settings-text-default, line-height);
393
393
  position: relative;
394
394
  right: -0.25rem;
395
395
  }
@@ -445,8 +445,8 @@ $list-step-bullet-margin: $sph--x-large;
445
445
  }
446
446
 
447
447
  // Indent titles
448
- $bullet-width: map-get($line-heights, default-text);
449
- $bullet-width-mobile: map-get($line-heights, default-text);
448
+ $bullet-width: map-get($settings-text-default, line-height);
449
+ $bullet-width-mobile: map-get($settings-text-default, line-height);
450
450
 
451
451
  .p-stepped-list__title {
452
452
  @extend %numbered-step-title;
@@ -465,8 +465,19 @@ $list-step-bullet-margin: $sph--x-large;
465
465
 
466
466
  @for $i from 4 through 1 {
467
467
  // Bullet sizes for each heading level
468
- $bullet-width: map-get($line-heights, h#{$i});
469
- $bullet-width-mobile: map-get($line-heights, h#{$i}-mobile);
468
+ @if $i == 1 {
469
+ $bullet-width: map-get($settings-text-h1, line-height);
470
+ $bullet-width-mobile: map-get($settings-text-h1-mobile, line-height);
471
+ } @else if $i == 2 {
472
+ $bullet-width: map-get($settings-text-h2, line-height);
473
+ $bullet-width-mobile: map-get($settings-text-h2-mobile, line-height);
474
+ } @else if $i == 3 {
475
+ $bullet-width: map-get($settings-text-h3, line-height);
476
+ $bullet-width-mobile: map-get($settings-text-h3-mobile, line-height);
477
+ } @else if $i == 4 {
478
+ $bullet-width: map-get($settings-text-h4, line-height);
479
+ $bullet-width-mobile: map-get($settings-text-h4-mobile, line-height);
480
+ }
470
481
 
471
482
  .p-heading--#{$i}.p-stepped-list__title,
472
483
  h#{$i}.p-stepped-list__title {
@@ -103,13 +103,13 @@
103
103
 
104
104
  @media (min-width: $breakpoint-heading-threshold) {
105
105
  // place image in the middle of the heading text
106
- margin-top: calc(map-get($nudges, h4) + (map-get($line-heights, h4) - $matrix-img-width) / 2);
106
+ margin-top: calc(map-get($settings-text-h4, nudge) + (map-get($settings-text-h4, line-height) - $matrix-img-width) / 2);
107
107
  }
108
108
 
109
109
  @if ($increase-font-size-on-larger-screens) {
110
110
  @media (min-width: $breakpoint-x-large) {
111
111
  // place image in the middle of the heading text
112
- margin-top: calc(map-get($nudges, h4-large) + (map-get($line-heights, h4) - $matrix-img-width) / 2);
112
+ margin-top: calc(map-get($settings-text-h4-large, nudge) + (map-get($settings-text-h4, line-height) - $matrix-img-width) / 2);
113
113
  }
114
114
  }
115
115
  }
@@ -129,12 +129,12 @@
129
129
  @extend %vf-heading-4;
130
130
 
131
131
  @media (min-width: $breakpoint-heading-threshold) {
132
- margin-bottom: -#{map-get($nudges, h4)};
132
+ margin-bottom: -#{map-get($settings-text-h4, nudge)};
133
133
  }
134
134
 
135
135
  @if ($increase-font-size-on-larger-screens) {
136
136
  @media (min-width: $breakpoint-x-large) {
137
- margin-bottom: -#{map-get($nudges, h4-large)};
137
+ margin-bottom: -#{map-get($settings-text-h4-large, nudge)};
138
138
  }
139
139
  }
140
140
  }
@@ -1,7 +1,7 @@
1
1
  @mixin vf-p-navigation-reduced {
2
2
  .p-navigation--reduced {
3
3
  // height of reduced navigation calculated from line height and padding
4
- $reduced-nav-height: calc(map-get($line-heights, x-small) + 2 * $spv--small);
4
+ $reduced-nav-height: calc(map-get($settings-text-x-small, line-height) + 2 * $spv--small);
5
5
 
6
6
  background-color: $colors--theme--background-alt;
7
7
  position: relative;
@@ -26,7 +26,7 @@
26
26
  // reduced nav logo text uses default font size (on small screens)
27
27
  .p-navigation__logo-title {
28
28
  color: $colors--theme--text-muted;
29
- font-size: #{map-get($font-sizes, default)}rem;
29
+ font-size: #{map-get($settings-text-default, font-size)}rem;
30
30
  font-weight: $font-weight-regular-text;
31
31
  }
32
32
 
@@ -47,8 +47,8 @@
47
47
  .p-navigation__link,
48
48
  .p-navigation__logo-title {
49
49
  color: $colors--theme--text-muted;
50
- font-size: #{map-get($font-sizes, small)}rem;
51
- line-height: map-get($line-heights, x-small);
50
+ font-size: #{map-get($settings-text-small, font-size)}rem;
51
+ line-height: map-get($settings-text-x-small, line-height);
52
52
  }
53
53
 
54
54
  .p-navigation__link {
@@ -88,7 +88,7 @@
88
88
  // use muted icon to align with text colour
89
89
  &::after {
90
90
  @include vf-icon-search-muted;
91
- top: calc($spv--medium + map-get($nudges, x-small));
91
+ top: calc($spv--medium + map-get($settings-text-x-small, nudge));
92
92
  }
93
93
 
94
94
  // search label is always hidden in reduced navigation
@@ -8,7 +8,7 @@ $navigation-logo-size: 1rem;
8
8
  $navigation-logo-padding: calc(1.5rem + 0.1rem); // ~25.6px to align better with logos as originally designed in SVG
9
9
  $sph-navigation-link: 0.3rem;
10
10
  $spv-navigation-logo-bottom-position: 0.25rem; // 4px when 1rem is 16px
11
- $navigation-height: calc(map-get($line-heights, default-text) + 2 * $spv--large); // navigation bar height based on line height and paddings
11
+ $navigation-height: calc(map-get($settings-text-p, line-height) + 2 * $spv--large); // navigation bar height based on line height and paddings
12
12
 
13
13
  @mixin vf-p-navigation {
14
14
  // placeholders
@@ -94,7 +94,7 @@ $navigation-height: calc(map-get($line-heights, default-text) + 2 * $spv--large)
94
94
 
95
95
  display: block;
96
96
  font-weight: $font-weight-regular-text;
97
- line-height: map-get($line-heights, default-text);
97
+ line-height: map-get($settings-text-default, line-height);
98
98
  margin: 0;
99
99
  overflow: hidden;
100
100
  padding-left: calc(map-get($grid-margin-widths, small) + $navigation-logo-padding); // allow navigation align with tag logo text on small screens
@@ -576,7 +576,7 @@ $navigation-height: calc(map-get($line-heights, default-text) + 2 * $spv--large)
576
576
  position: absolute;
577
577
  right: calc($sph--large / 2);
578
578
  text-indent: calc(100% + 10rem);
579
- top: calc($spv--large + map-get($nudges, x-small));
579
+ top: calc($spv--large + map-get($settings-text-x-small, nudge));
580
580
  width: map-get($icon-sizes, default);
581
581
  }
582
582
  }
@@ -690,7 +690,7 @@ $navigation-height: calc(map-get($line-heights, default-text) + 2 * $spv--large)
690
690
  @media (min-width: $breakpoint-navigation-threshold) {
691
691
  position: absolute;
692
692
  // padding applied to .p-navigation__link + line-heigh of the anchor text inside
693
- top: $spv--large * 2 + map-get($line-heights, default-text);
693
+ top: $spv--large * 2 + map-get($settings-text-default, line-height);
694
694
  }
695
695
 
696
696
  @media (width < $breakpoint-navigation-threshold) {
@@ -728,7 +728,7 @@ $navigation-height: calc(map-get($line-heights, default-text) + 2 * $spv--large)
728
728
 
729
729
  @media (min-width: $breakpoint-navigation-threshold) {
730
730
  right: calc($sph--large / 2); // position by the center of grid margin
731
- top: calc($spv--large + map-get($nudges, x-small));
731
+ top: calc($spv--large + map-get($settings-text-x-small, nudge));
732
732
  transform: rotate(0deg);
733
733
  }
734
734
  }