@ivds/core 0.1.1

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 (154) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +215 -0
  3. package/lib/all.css +6802 -0
  4. package/lib/all.min.css +1 -0
  5. package/lib/base/base.css +215 -0
  6. package/lib/base/base.min.css +1 -0
  7. package/lib/components/_breadcrumb-mixins.scss +173 -0
  8. package/lib/components/_button-mixin.scss +120 -0
  9. package/lib/components/_card-mixin.scss +196 -0
  10. package/lib/components/_checkbox-mixin.scss +208 -0
  11. package/lib/components/_footer-mixin.scss +385 -0
  12. package/lib/components/_header-mixin.scss +275 -0
  13. package/lib/components/_navigation-mixins.scss +270 -0
  14. package/lib/components/_notification-mixin.scss +239 -0
  15. package/lib/components/_pagination-mixins.scss +280 -0
  16. package/lib/components/_radio-button-mixin.scss +207 -0
  17. package/lib/components/_tag-mixin.scss +261 -0
  18. package/lib/components/_text-input-mixin.scss +203 -0
  19. package/lib/components/all.css +3005 -0
  20. package/lib/components/all.min.css +1 -0
  21. package/lib/components/breadcrumb/breadcrumb.css +141 -0
  22. package/lib/components/breadcrumb/breadcrumb.min.css +1 -0
  23. package/lib/components/button/button.css +221 -0
  24. package/lib/components/button/button.min.css +1 -0
  25. package/lib/components/card/card.css +236 -0
  26. package/lib/components/card/card.min.css +1 -0
  27. package/lib/components/checkbox/checkbox.css +305 -0
  28. package/lib/components/checkbox/checkbox.min.css +1 -0
  29. package/lib/components/footer/footer.css +466 -0
  30. package/lib/components/footer/footer.min.css +1 -0
  31. package/lib/components/header/header.css +274 -0
  32. package/lib/components/header/header.min.css +1 -0
  33. package/lib/components/navigation/navigation.css +214 -0
  34. package/lib/components/navigation/navigation.min.css +1 -0
  35. package/lib/components/notification/notification.css +253 -0
  36. package/lib/components/notification/notification.min.css +1 -0
  37. package/lib/components/pagination/pagination.css +221 -0
  38. package/lib/components/pagination/pagination.min.css +1 -0
  39. package/lib/components/radio-button/radio-button.css +326 -0
  40. package/lib/components/radio-button/radio-button.min.css +1 -0
  41. package/lib/components/tag/tag.css +367 -0
  42. package/lib/components/tag/tag.min.css +1 -0
  43. package/lib/components/text-input/text-input.css +243 -0
  44. package/lib/components/text-input/text-input.min.css +1 -0
  45. package/lib/icons/icon-arrow-left.css +139 -0
  46. package/lib/icons/icon-arrow-left.min.css +1 -0
  47. package/lib/icons/icon-arrow-right.css +139 -0
  48. package/lib/icons/icon-arrow-right.min.css +1 -0
  49. package/lib/icons/icon-check.css +139 -0
  50. package/lib/icons/icon-check.min.css +1 -0
  51. package/lib/icons/icon-close.css +140 -0
  52. package/lib/icons/icon-close.min.css +1 -0
  53. package/lib/icons/icon-error.css +140 -0
  54. package/lib/icons/icon-error.min.css +1 -0
  55. package/lib/icons/icon-info.css +140 -0
  56. package/lib/icons/icon-info.min.css +1 -0
  57. package/lib/icons/icon-success.css +139 -0
  58. package/lib/icons/icon-success.min.css +1 -0
  59. package/lib/icons/icon-warning.css +139 -0
  60. package/lib/icons/icon-warning.min.css +1 -0
  61. package/lib/icons/icons.css +1158 -0
  62. package/lib/icons/icons.min.css +1 -0
  63. package/lib/utils/_flex.scss +200 -0
  64. package/lib/utils/_grid.scss +211 -0
  65. package/lib/utils/_layout.scss +253 -0
  66. package/lib/utils/_spacing.scss +260 -0
  67. package/lib/utils/_typography.scss +111 -0
  68. package/lib/utils/utils.css +2434 -0
  69. package/lib/utils/utils.min.css +1 -0
  70. package/lib/utils-only.css +2801 -0
  71. package/lib/utils-only.min.css +1 -0
  72. package/lib/variables/variables.css +2 -0
  73. package/lib/variables/variables.min.css +0 -0
  74. package/package.json +194 -0
  75. package/src/__tests__/example.test.scss +12 -0
  76. package/src/accessibility.stories.js +416 -0
  77. package/src/all.scss +9 -0
  78. package/src/base/_layout.scss +97 -0
  79. package/src/base/_reset.scss +85 -0
  80. package/src/base/_typography.scss +105 -0
  81. package/src/base/base.scss +6 -0
  82. package/src/components/all.scss +22 -0
  83. package/src/components/breadcrumb/_breadcrumb-mixins.scss +173 -0
  84. package/src/components/breadcrumb/breadcrumb.scss +68 -0
  85. package/src/components/breadcrumb/breadcrumb.stories.js +483 -0
  86. package/src/components/button/__tests__/button-mixins.test.scss +35 -0
  87. package/src/components/button/_button-mixin.scss +120 -0
  88. package/src/components/button/button.scss +126 -0
  89. package/src/components/button/button.stories.js +364 -0
  90. package/src/components/card/__tests__/card-mixins.test.scss +36 -0
  91. package/src/components/card/_card-mixin.scss +196 -0
  92. package/src/components/card/card.scss +193 -0
  93. package/src/components/card/card.stories.js +635 -0
  94. package/src/components/checkbox/_checkbox-mixin.scss +208 -0
  95. package/src/components/checkbox/checkbox.scss +141 -0
  96. package/src/components/checkbox/checkbox.stories.js +303 -0
  97. package/src/components/footer/_footer-mixin.scss +385 -0
  98. package/src/components/footer/footer.scss +86 -0
  99. package/src/components/footer/footer.stories.js +740 -0
  100. package/src/components/header/_header-mixin.scss +275 -0
  101. package/src/components/header/header.scss +84 -0
  102. package/src/components/header/header.stories.js +450 -0
  103. package/src/components/navigation/_navigation-mixins.scss +270 -0
  104. package/src/components/navigation/navigation.scss +64 -0
  105. package/src/components/navigation/navigation.stories.js +410 -0
  106. package/src/components/notification/_notification-mixin.scss +239 -0
  107. package/src/components/notification/notification.scss +118 -0
  108. package/src/components/notification/notification.stories.js +378 -0
  109. package/src/components/overview.stories.js +473 -0
  110. package/src/components/pagination/_pagination-mixins.scss +280 -0
  111. package/src/components/pagination/pagination.scss +76 -0
  112. package/src/components/pagination/pagination.stories.js +729 -0
  113. package/src/components/radio-button/_radio-button-mixin.scss +207 -0
  114. package/src/components/radio-button/radio-button.scss +178 -0
  115. package/src/components/radio-button/radio-button.stories.js +379 -0
  116. package/src/components/tag/_tag-mixin.scss +261 -0
  117. package/src/components/tag/tag.scss +244 -0
  118. package/src/components/tag/tag.stories.js +482 -0
  119. package/src/components/text-input/_text-input-mixin.scss +203 -0
  120. package/src/components/text-input/text-input.scss +150 -0
  121. package/src/components/text-input/text-input.stories.js +723 -0
  122. package/src/icons/_icon.scss +121 -0
  123. package/src/icons/icon-arrow-left.scss +23 -0
  124. package/src/icons/icon-arrow-right.scss +23 -0
  125. package/src/icons/icon-check.scss +23 -0
  126. package/src/icons/icon-close.scss +24 -0
  127. package/src/icons/icon-error.scss +24 -0
  128. package/src/icons/icon-info.scss +24 -0
  129. package/src/icons/icon-success.scss +23 -0
  130. package/src/icons/icon-warning.scss +23 -0
  131. package/src/icons/icons.scss +12 -0
  132. package/src/icons/icons.stories.js +249 -0
  133. package/src/icons/svg/arrow-left.svg +3 -0
  134. package/src/icons/svg/arrow-right.svg +3 -0
  135. package/src/icons/svg/check.svg +3 -0
  136. package/src/icons/svg/close.svg +4 -0
  137. package/src/icons/svg/error.svg +5 -0
  138. package/src/icons/svg/info.svg +5 -0
  139. package/src/icons/svg/success.svg +4 -0
  140. package/src/icons/svg/warning.svg +5 -0
  141. package/src/utils/__tests__/utilities.test.scss +37 -0
  142. package/src/utils/_flex.scss +200 -0
  143. package/src/utils/_grid.scss +211 -0
  144. package/src/utils/_layout.scss +253 -0
  145. package/src/utils/_spacing.scss +260 -0
  146. package/src/utils/_typography.scss +111 -0
  147. package/src/utils/utils.scss +8 -0
  148. package/src/variables/_borders.scss +15 -0
  149. package/src/variables/_breakpoints.scss +11 -0
  150. package/src/variables/_colors.scss +97 -0
  151. package/src/variables/_shadows.scss +14 -0
  152. package/src/variables/_spacing.scss +24 -0
  153. package/src/variables/_typography.scss +47 -0
  154. package/src/variables/variables.scss +9 -0
@@ -0,0 +1,385 @@
1
+ // Footer component mixins and private styles
2
+ // This file contains mixins for footer layout, multi-column organization, and responsive stacking
3
+
4
+ @use '../../variables/variables' as vars;
5
+
6
+ // Base footer mixin with common styles
7
+ @mixin footer-base {
8
+ padding: var(--spacing-8, 2rem) var(--spacing-6, 1.5rem);
9
+ background-color: var(--color-semantic-neutral-900, #0f172a);
10
+ color: var(--color-semantic-neutral-300, #cbd5e1);
11
+
12
+ // Ensure proper contrast and readability
13
+ line-height: var(--lineHeight-relaxed, 1.625);
14
+ }
15
+
16
+ // Footer container mixin for content width management
17
+ @mixin footer-container($max-width: 1200px) {
18
+ max-width: $max-width;
19
+ margin: 0 auto;
20
+ width: 100%;
21
+ }
22
+
23
+ // Multi-column grid layout mixin
24
+ @mixin footer-grid($columns: 4, $gap: var(--spacing-8, 2rem), $min-column-width: 250px) {
25
+ display: grid;
26
+ grid-template-columns: repeat(auto-fit, minmax($min-column-width, 1fr));
27
+ gap: $gap;
28
+ margin-bottom: var(--spacing-8, 2rem);
29
+
30
+ // Responsive behavior for different screen sizes
31
+ @media (max-width: 1024px) {
32
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
33
+ gap: var(--spacing-6, 1.5rem);
34
+ margin-bottom: var(--spacing-6, 1.5rem);
35
+ }
36
+
37
+ @media (max-width: 768px) {
38
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
39
+ gap: var(--spacing-4, 1rem);
40
+ margin-bottom: var(--spacing-4, 1rem);
41
+ }
42
+
43
+ @media (max-width: 480px) {
44
+ grid-template-columns: 1fr;
45
+ gap: var(--spacing-6, 1.5rem);
46
+ }
47
+ }
48
+
49
+ // Footer section mixin for individual column styling
50
+ @mixin footer-section {
51
+ // Section title styling
52
+ &-title {
53
+ margin: 0 0 var(--spacing-4, 1rem) 0;
54
+ font-size: var(--fontSize-lg, 1.125rem);
55
+ font-weight: var(--fontWeight-semibold, 600);
56
+ color: var(--color-semantic-neutral-25, #fcfcfd);
57
+ line-height: var(--lineHeight-tight, 1.25);
58
+
59
+ @media (max-width: 768px) {
60
+ font-size: var(--fontSize-base, 1rem);
61
+ margin-bottom: var(--spacing-3, 0.75rem);
62
+ }
63
+ }
64
+
65
+ // Section list styling
66
+ &-list {
67
+ margin: 0;
68
+ padding: 0;
69
+ list-style: none;
70
+ }
71
+
72
+ // Section list item styling
73
+ &-item {
74
+ margin-bottom: var(--spacing-2, 0.5rem);
75
+
76
+ &:last-child {
77
+ margin-bottom: 0;
78
+ }
79
+ }
80
+
81
+ // Section link styling
82
+ &-link {
83
+ color: var(--color-semantic-neutral-300, #cbd5e1);
84
+ text-decoration: none;
85
+ font-size: var(--fontSize-sm, 0.875rem);
86
+ transition: color 0.2s ease-in-out;
87
+ display: inline-flex;
88
+ align-items: center;
89
+
90
+ &:hover {
91
+ color: var(--color-semantic-neutral-25, #fcfcfd);
92
+ }
93
+
94
+ &:focus {
95
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
96
+ outline-offset: 2px;
97
+ border-radius: var(--borderRadius-sm, 0.25rem);
98
+ }
99
+
100
+ // Icon support in links
101
+ svg {
102
+ margin-right: var(--spacing-2, 0.5rem);
103
+ flex-shrink: 0;
104
+ }
105
+ }
106
+ }
107
+
108
+ // Footer bottom section mixin (copyright, legal links)
109
+ @mixin footer-bottom($border-color: var(--color-semantic-neutral-700, #374151)) {
110
+ padding-top: var(--spacing-8, 2rem);
111
+ border-top: var(--borderWidth-1, 1px) solid $border-color;
112
+ text-align: center;
113
+ font-size: var(--fontSize-sm, 0.875rem);
114
+ color: var(--color-semantic-neutral-400, #9ca3af);
115
+
116
+ @media (max-width: 768px) {
117
+ padding-top: var(--spacing-6, 1.5rem);
118
+ text-align: left;
119
+ }
120
+
121
+ // Links in bottom section
122
+ a {
123
+ color: var(--color-semantic-neutral-300, #cbd5e1);
124
+ text-decoration: none;
125
+
126
+ &:hover {
127
+ color: var(--color-semantic-neutral-25, #fcfcfd);
128
+ text-decoration: underline;
129
+ }
130
+
131
+ &:focus {
132
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
133
+ outline-offset: 2px;
134
+ border-radius: var(--borderRadius-sm, 0.25rem);
135
+ }
136
+ }
137
+
138
+ // Inline legal links
139
+ &--inline-links {
140
+ display: flex;
141
+ justify-content: center;
142
+ align-items: center;
143
+ gap: var(--spacing-4, 1rem);
144
+ flex-wrap: wrap;
145
+
146
+ @media (max-width: 768px) {
147
+ justify-content: flex-start;
148
+ gap: var(--spacing-3, 0.75rem);
149
+ }
150
+ }
151
+ }
152
+
153
+ // Footer theme variants
154
+ @mixin footer-theme($bg-color, $text-color, $title-color, $border-color) {
155
+ background-color: $bg-color;
156
+ color: $text-color;
157
+
158
+ .ivds-footer__section-title {
159
+ color: $title-color;
160
+ }
161
+
162
+ .ivds-footer__section-link {
163
+ color: $text-color;
164
+
165
+ &:hover {
166
+ color: $title-color;
167
+ }
168
+ }
169
+
170
+ .ivds-footer__bottom {
171
+ border-top-color: $border-color;
172
+ color: rgba($text-color, 0.8);
173
+ }
174
+ }
175
+
176
+ // Light theme footer
177
+ @mixin footer-light {
178
+ @include footer-theme(
179
+ var(--color-semantic-neutral-50, #f8fafc),
180
+ var(--color-semantic-neutral-600, #475569),
181
+ var(--color-semantic-neutral-900, #0f172a),
182
+ var(--color-semantic-neutral-200, #e2e8f0)
183
+ );
184
+ }
185
+
186
+ // Minimal footer mixin for simple layouts
187
+ @mixin footer-minimal {
188
+ padding: var(--spacing-6, 1.5rem) var(--spacing-4, 1rem);
189
+ text-align: center;
190
+
191
+ .ivds-footer__bottom {
192
+ padding-top: 0;
193
+ border-top: none;
194
+ }
195
+
196
+ @media (max-width: 768px) {
197
+ padding: var(--spacing-4, 1rem);
198
+ }
199
+ }
200
+
201
+ // Footer with brand section mixin
202
+ @mixin footer-brand($logo-size: 2rem) {
203
+ &-logo {
204
+ height: $logo-size;
205
+ width: auto;
206
+ margin-bottom: var(--spacing-3, 0.75rem);
207
+
208
+ @media (max-width: 768px) {
209
+ height: calc(#{$logo-size} * 0.875);
210
+ }
211
+ }
212
+
213
+ &-name {
214
+ font-size: var(--fontSize-xl, 1.25rem);
215
+ font-weight: var(--fontWeight-bold, 700);
216
+ color: var(--color-semantic-neutral-25, #fcfcfd);
217
+ margin-bottom: var(--spacing-2, 0.5rem);
218
+
219
+ @media (max-width: 768px) {
220
+ font-size: var(--fontSize-lg, 1.125rem);
221
+ }
222
+ }
223
+
224
+ &-description {
225
+ font-size: var(--fontSize-sm, 0.875rem);
226
+ color: var(--color-semantic-neutral-400, #9ca3af);
227
+ line-height: var(--lineHeight-relaxed, 1.625);
228
+ margin-bottom: var(--spacing-4, 1rem);
229
+ }
230
+ }
231
+
232
+ // Social links mixin
233
+ @mixin footer-social($gap: var(--spacing-3, 0.75rem)) {
234
+ display: flex;
235
+ gap: $gap;
236
+ margin-top: var(--spacing-4, 1rem);
237
+
238
+ @media (max-width: 768px) {
239
+ justify-content: center;
240
+ margin-top: var(--spacing-3, 0.75rem);
241
+ }
242
+
243
+ a {
244
+ display: inline-flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ width: 2.5rem;
248
+ height: 2.5rem;
249
+ border-radius: var(--borderRadius-md, 0.375rem);
250
+ background-color: var(--color-semantic-neutral-800, #1e293b);
251
+ color: var(--color-semantic-neutral-300, #cbd5e1);
252
+ transition: all 0.2s ease-in-out;
253
+
254
+ &:hover {
255
+ background-color: var(--color-brand-primary-500, #f97316);
256
+ color: var(--color-semantic-neutral-25, #fcfcfd);
257
+ transform: translateY(-2px);
258
+ }
259
+
260
+ &:focus {
261
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
262
+ outline-offset: 2px;
263
+ }
264
+
265
+ svg {
266
+ width: 1.25rem;
267
+ height: 1.25rem;
268
+ margin: 0;
269
+ }
270
+ }
271
+ }
272
+
273
+ // Newsletter signup mixin
274
+ @mixin footer-newsletter {
275
+ &-form {
276
+ display: flex;
277
+ gap: var(--spacing-2, 0.5rem);
278
+ margin-top: var(--spacing-3, 0.75rem);
279
+
280
+ @media (max-width: 480px) {
281
+ flex-direction: column;
282
+ }
283
+ }
284
+
285
+ &-input {
286
+ flex: 1;
287
+ padding: var(--spacing-3, 0.75rem);
288
+ border: var(--borderWidth-1, 1px) solid var(--color-semantic-neutral-600, #475569);
289
+ border-radius: var(--borderRadius-md, 0.375rem);
290
+ background-color: var(--color-semantic-neutral-800, #1e293b);
291
+ color: var(--color-semantic-neutral-100, #f1f5f9);
292
+ font-size: var(--fontSize-sm, 0.875rem);
293
+
294
+ &::placeholder {
295
+ color: var(--color-semantic-neutral-500, #64748b);
296
+ }
297
+
298
+ &:focus {
299
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
300
+ outline-offset: 2px;
301
+ border-color: var(--color-brand-primary-500, #f97316);
302
+ }
303
+
304
+ @media (max-width: 480px) {
305
+ width: 100%;
306
+ }
307
+ }
308
+
309
+ &-button {
310
+ padding: var(--spacing-3, 0.75rem) var(--spacing-4, 1rem);
311
+ background-color: var(--color-brand-primary-500, #f97316);
312
+ color: var(--color-semantic-neutral-25, #fcfcfd);
313
+ border: none;
314
+ border-radius: var(--borderRadius-md, 0.375rem);
315
+ font-size: var(--fontSize-sm, 0.875rem);
316
+ font-weight: var(--fontWeight-medium, 500);
317
+ cursor: pointer;
318
+ transition: background-color 0.2s ease-in-out;
319
+ white-space: nowrap;
320
+
321
+ &:hover {
322
+ background-color: var(--color-brand-primary-600, #ea580c);
323
+ }
324
+
325
+ &:focus {
326
+ outline: 2px solid var(--color-brand-primary-500, #f97316);
327
+ outline-offset: 2px;
328
+ }
329
+
330
+ @media (max-width: 480px) {
331
+ width: 100%;
332
+ }
333
+ }
334
+
335
+ &-description {
336
+ font-size: var(--fontSize-sm, 0.875rem);
337
+ color: var(--color-semantic-neutral-400, #9ca3af);
338
+ margin-bottom: var(--spacing-3, 0.75rem);
339
+ line-height: var(--lineHeight-relaxed, 1.625);
340
+ }
341
+ }
342
+
343
+ // Responsive stacking mixin for mobile
344
+ @mixin footer-responsive-stack {
345
+ @media (max-width: 768px) {
346
+ .ivds-footer__grid {
347
+ grid-template-columns: 1fr 1fr;
348
+ gap: var(--spacing-6, 1.5rem) var(--spacing-4, 1rem);
349
+ }
350
+ }
351
+
352
+ @media (max-width: 480px) {
353
+ .ivds-footer__grid {
354
+ grid-template-columns: 1fr;
355
+ gap: var(--spacing-6, 1.5rem);
356
+ }
357
+
358
+ .ivds-footer__section {
359
+ text-align: center;
360
+
361
+ &:first-child {
362
+ text-align: left;
363
+ }
364
+ }
365
+ }
366
+ }
367
+
368
+ // Address styling mixin
369
+ @mixin footer-address {
370
+ font-style: normal;
371
+ line-height: var(--lineHeight-relaxed, 1.625);
372
+
373
+ p {
374
+ margin-bottom: var(--spacing-2, 0.5rem);
375
+
376
+ &:last-child {
377
+ margin-bottom: 0;
378
+ }
379
+ }
380
+
381
+ strong {
382
+ color: var(--color-semantic-neutral-200, #e2e8f0);
383
+ font-weight: var(--fontWeight-medium, 500);
384
+ }
385
+ }
@@ -0,0 +1,86 @@
1
+ // Footer component styles
2
+ // Provides styling for the IVDS footer component with multi-column layout and responsive stacking
3
+
4
+ @use '_footer-mixin' as footer;
5
+
6
+ .ivds-footer {
7
+ @include footer.footer-base;
8
+ @include footer.footer-responsive-stack;
9
+
10
+ // Content container
11
+ &__content {
12
+ @include footer.footer-container;
13
+ }
14
+
15
+ // Multi-column grid layout
16
+ &__grid {
17
+ @include footer.footer-grid;
18
+ }
19
+
20
+ // Individual footer sections
21
+ &__section {
22
+ @include footer.footer-section;
23
+ }
24
+
25
+ // Bottom section with copyright and legal links
26
+ &__bottom {
27
+ @include footer.footer-bottom;
28
+ }
29
+
30
+ // Brand section elements
31
+ &__brand {
32
+ @include footer.footer-brand;
33
+ }
34
+
35
+ // Social links container
36
+ &__social {
37
+ @include footer.footer-social;
38
+ }
39
+
40
+ // Newsletter signup elements
41
+ &__newsletter {
42
+ @include footer.footer-newsletter;
43
+ }
44
+
45
+ // Address styling
46
+ address {
47
+ @include footer.footer-address;
48
+ }
49
+
50
+ // Variants
51
+ &--light {
52
+ @include footer.footer-light;
53
+ }
54
+
55
+ &--minimal {
56
+ @include footer.footer-minimal;
57
+ }
58
+
59
+ // Grid layout variants
60
+ &--two-columns {
61
+ .ivds-footer__grid {
62
+ @include footer.footer-grid(2, var(--spacing-8, 2rem), 300px);
63
+ }
64
+ }
65
+
66
+ &--three-columns {
67
+ .ivds-footer__grid {
68
+ @include footer.footer-grid(3, var(--spacing-8, 2rem), 250px);
69
+ }
70
+ }
71
+
72
+ &--five-columns {
73
+ .ivds-footer__grid {
74
+ @include footer.footer-grid(5, var(--spacing-6, 1.5rem), 200px);
75
+ }
76
+ }
77
+
78
+ // Bottom section variants
79
+ &--bottom-inline {
80
+ .ivds-footer__bottom {
81
+ @include footer.footer-bottom;
82
+
83
+ @extend .ivds-footer__bottom--inline-links;
84
+ }
85
+ }
86
+ }