@ilo-org/styles 0.0.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 (55) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +74 -0
  3. package/build/css/components/index.css +5924 -0
  4. package/build/css/components/index.css.map +1 -0
  5. package/build/css/index.css +6183 -0
  6. package/build/css/index.css.map +1 -0
  7. package/package.json +35 -0
  8. package/scss/_animations.scss +29 -0
  9. package/scss/_config.scss +6 -0
  10. package/scss/_functions.scss +126 -0
  11. package/scss/_mixins.scss +331 -0
  12. package/scss/_reset.scss +166 -0
  13. package/scss/_tokens.scss +5 -0
  14. package/scss/_typography.scss +72 -0
  15. package/scss/components/_accordion.scss +102 -0
  16. package/scss/components/_breadcrumb.scss +258 -0
  17. package/scss/components/_button.scss +272 -0
  18. package/scss/components/_callout.scss +151 -0
  19. package/scss/components/_card.scss +667 -0
  20. package/scss/components/_cardgroup.scss +45 -0
  21. package/scss/components/_checkbox.scss +124 -0
  22. package/scss/components/_contextmenu.scss +75 -0
  23. package/scss/components/_credit.scss +82 -0
  24. package/scss/components/_datepicker.scss +19 -0
  25. package/scss/components/_dropdown.scss +115 -0
  26. package/scss/components/_empty.scss +33 -0
  27. package/scss/components/_fieldset.scss +74 -0
  28. package/scss/components/_file-upload.scss +130 -0
  29. package/scss/components/_footer.scss +329 -0
  30. package/scss/components/_formgroup.scss +20 -0
  31. package/scss/components/_heading.scss +74 -0
  32. package/scss/components/_hero.scss +445 -0
  33. package/scss/components/_image.scss +42 -0
  34. package/scss/components/_input.scss +71 -0
  35. package/scss/components/_link.scss +6 -0
  36. package/scss/components/_linklist.scss +148 -0
  37. package/scss/components/_list.scss +79 -0
  38. package/scss/components/_loading.scss +93 -0
  39. package/scss/components/_modal.scss +84 -0
  40. package/scss/components/_notification.scss +162 -0
  41. package/scss/components/_pagination.scss +238 -0
  42. package/scss/components/_profile.scss +138 -0
  43. package/scss/components/_radio.scss +121 -0
  44. package/scss/components/_readmore.scss +53 -0
  45. package/scss/components/_richtext.scss +390 -0
  46. package/scss/components/_searchfield.scss +66 -0
  47. package/scss/components/_table.scss +177 -0
  48. package/scss/components/_tableofcontents.scss +98 -0
  49. package/scss/components/_tabs.scss +194 -0
  50. package/scss/components/_tag.scss +103 -0
  51. package/scss/components/_textarea.scss +89 -0
  52. package/scss/components/_tooltip.scss +198 -0
  53. package/scss/components/_video.scss +674 -0
  54. package/scss/components/index.scss +39 -0
  55. package/scss/index.scss +11 -0
@@ -0,0 +1,445 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--hero {
6
+ &--home {
7
+ @include breakpoint("large") {
8
+ position: relative;
9
+ }
10
+ }
11
+
12
+ &--portal {
13
+ position: relative;
14
+
15
+ @include breakpoint("large") {
16
+ padding-top: 128px;
17
+
18
+ .ilo--image {
19
+ height: calc(100% - 80px);
20
+ left: 0;
21
+ position: absolute;
22
+ top: 0;
23
+ width: 100%;
24
+ }
25
+
26
+ .ilo--image--wrapper {
27
+ height: 100%;
28
+ }
29
+
30
+ .ilo--image--img {
31
+ display: flex;
32
+ height: 100%;
33
+ object-fit: cover;
34
+ width: 100%;
35
+
36
+ img {
37
+ object-fit: cover;
38
+ height: auto;
39
+ width: 100%;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ background: map-get($color, "ux", "pagination", "default", "background");
45
+ &--article {
46
+ background: map-get($color, "hero", "article");
47
+ padding: 88px 0 0 0;
48
+
49
+ @include breakpoint("large") {
50
+ margin-bottom: 80px;
51
+ padding: 112px 0 0 0;
52
+
53
+ .ilo--hero-card {
54
+ top: 80px;
55
+ }
56
+ }
57
+
58
+ &.ilo--hero--image {
59
+ background-color: map-get($color, "hero", "image");
60
+ padding: 0;
61
+
62
+ @include breakpoint("large") {
63
+ .ilo--hero-card {
64
+ top: 0;
65
+ }
66
+ }
67
+ }
68
+
69
+ .ilo--hero-card {
70
+ &--center {
71
+ margin: auto;
72
+ }
73
+ }
74
+ }
75
+
76
+ &--project {
77
+ background: map-get($color, "hero", "project");
78
+ padding: 88px 0 0 0;
79
+
80
+ @include breakpoint("large") {
81
+ margin-bottom: 80px;
82
+ padding: 112px 0 0 0;
83
+
84
+ .ilo--hero-card {
85
+ top: 80px;
86
+ }
87
+ }
88
+
89
+ &.ilo--hero--image {
90
+ background-color: map-get($color, "hero", "image");
91
+ padding: 0;
92
+
93
+ @include breakpoint("large") {
94
+ .ilo--hero-card {
95
+ top: 0;
96
+ }
97
+ }
98
+ }
99
+
100
+ .ilo--hero-card {
101
+ &--center {
102
+ margin: auto;
103
+ }
104
+ }
105
+ }
106
+
107
+ &--image {
108
+ background-color: map-get($color, "hero", "image");
109
+
110
+ @include breakpoint("large") {
111
+ padding-top: 128px;
112
+
113
+ .ilo--image {
114
+ height: 100%;
115
+ max-height: 592px;
116
+ width: 100%;
117
+ }
118
+
119
+ .ilo--image--wrapper {
120
+ height: 100%;
121
+ }
122
+
123
+ .ilo--image--img {
124
+ display: flex;
125
+ height: 100%;
126
+ object-fit: cover;
127
+ width: 100%;
128
+
129
+ img {
130
+ object-fit: cover;
131
+ height: auto;
132
+ width: 100%;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+
139
+ .ilo--hero-card {
140
+ background: map-get($color, "hero", "card", "light", "background");
141
+ color: map-get($color, "hero", "card", "light", "color");
142
+ max-width: 998px;
143
+ position: relative;
144
+ padding: 16px 16px 40px 16px;
145
+
146
+ &::before {
147
+ background: inherit;
148
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
149
+ content: "";
150
+ display: block;
151
+ height: 40px;
152
+ left: 0;
153
+ position: absolute;
154
+ top: -39.7px;
155
+ width: 100%;
156
+
157
+ @include breakpoint("large") {
158
+ height: 64px;
159
+ top: -63.7px;
160
+ }
161
+ }
162
+
163
+ @include breakpoint("large") {
164
+ padding: 0 70px 70px 56px;
165
+ }
166
+
167
+ &--center {
168
+ margin: auto;
169
+ }
170
+
171
+ &--dark {
172
+ background: map-get($color, "hero", "card", "dark", "background");
173
+ color: map-get($color, "hero", "card", "dark", "color");
174
+
175
+ .ilo--hero-card--link.icon {
176
+ color: map-get($color, "hero", "card", "dark", "icon", "color");
177
+
178
+ &:hover {
179
+ background-color: map-get(
180
+ $color,
181
+ "hero",
182
+ "card",
183
+ "dark",
184
+ "iconhover",
185
+ "background"
186
+ );
187
+ }
188
+
189
+ &--facebook {
190
+ @include dataurlicon(
191
+ "facebook",
192
+ map-get($color, "hero", "card", "dark", "icon", "color")
193
+ );
194
+
195
+ &:hover {
196
+ @include dataurlicon(
197
+ "facebook",
198
+ map-get($color, "hero", "card", "dark", "iconhover", "color")
199
+ );
200
+ }
201
+ }
202
+
203
+ &--twitter {
204
+ @include dataurlicon(
205
+ "twitter",
206
+ map-get($color, "hero", "card", "dark", "icon", "color")
207
+ );
208
+
209
+ &:hover {
210
+ @include dataurlicon(
211
+ "twitter",
212
+ map-get($color, "hero", "card", "dark", "iconhover", "color")
213
+ );
214
+ }
215
+ }
216
+
217
+ &--linkedin {
218
+ @include dataurlicon(
219
+ "linkedin",
220
+ map-get($color, "hero", "card", "dark", "icon", "color")
221
+ );
222
+
223
+ &:hover {
224
+ @include dataurlicon(
225
+ "linkedin",
226
+ map-get($color, "hero", "card", "dark", "iconhover", "color")
227
+ );
228
+ }
229
+ }
230
+ }
231
+
232
+ .ilo--hero-card--eyebrow {
233
+ color: map-get($color, "hero", "card", "dark", "eyebrow", "color");
234
+ }
235
+
236
+ .ilo--hero-card--datecopy {
237
+ color: map-get($color, "hero", "card", "dark", "datecopy", "color");
238
+ }
239
+ }
240
+
241
+ &--graphic {
242
+ max-width: 856px;
243
+ }
244
+
245
+ &--home {
246
+ padding: 24px;
247
+
248
+ @include breakpoint("large") {
249
+ bottom: 72px;
250
+ max-width: 720px;
251
+ padding: 0 48px 48px 72px;
252
+ position: absolute;
253
+ width: 100%;
254
+
255
+ &.ilo--hero-card--center {
256
+ left: 50%;
257
+ right: auto;
258
+ transform: translateX(-50%);
259
+ }
260
+
261
+ &.ilo--hero-card--left {
262
+ left: 0;
263
+ right: auto;
264
+ }
265
+
266
+ &.ilo--hero-card--right {
267
+ left: auto;
268
+ right: 0;
269
+ }
270
+ }
271
+
272
+ &.ilo--hero-card--dark {
273
+ background: rgba(
274
+ map-get($color, "hero", "card", "dark", "background"),
275
+ 0.55
276
+ );
277
+ }
278
+ }
279
+
280
+ &--portal {
281
+ background: map-get($color, "hero", "portal", "background");
282
+ color: map-get($color, "hero", "portal", "color");
283
+ padding: 24px;
284
+
285
+ @include breakpoint("large") {
286
+ max-width: 625px;
287
+ padding: 0 48px 48px 72px;
288
+ width: 100%;
289
+ }
290
+ }
291
+
292
+ &--publication {
293
+ margin-top: -64px;
294
+ padding: 24px;
295
+
296
+ @include breakpoint("large") {
297
+ max-width: 720px;
298
+ padding: 0 48px 48px 72px;
299
+ width: 100%;
300
+ }
301
+ }
302
+
303
+ &--datecopy {
304
+ @include font-styles("body-small");
305
+ @include textmargin("margin-bottom", 40px, "body-small", "copy", 0, 0);
306
+
307
+ color: map-get($color, "hero", "card", "light", "datecopy", "color");
308
+ }
309
+
310
+ &--eyebrow {
311
+ @include font-styles("body-small");
312
+ @include textmargin(
313
+ "margin-bottom",
314
+ 32px,
315
+ "body-small",
316
+ "copy",
317
+ "headline-2",
318
+ "display"
319
+ );
320
+
321
+ color: map-get($color, "hero", "card", "light", "eyebrow", "color");
322
+ }
323
+
324
+ &--intro {
325
+ @include font-styles("body-small");
326
+ @include textmargin(
327
+ "margin-bottom",
328
+ 40px,
329
+ "base",
330
+ "copy",
331
+ "body-small",
332
+ "copy"
333
+ );
334
+
335
+ @include breakpoint("large") {
336
+ @include font-styles("base");
337
+ }
338
+ }
339
+
340
+ &--title {
341
+ @include font-styles("headline-3");
342
+ @include textmargin(
343
+ "margin-bottom",
344
+ 40px,
345
+ "headline-2",
346
+ "display",
347
+ "base",
348
+ "copy"
349
+ );
350
+
351
+ font-family: $fonts-display;
352
+ font-weight: 700;
353
+
354
+ @include breakpoint("large") {
355
+ @include font-styles("headline-2");
356
+ }
357
+ }
358
+
359
+ &--list {
360
+ display: flex;
361
+ }
362
+
363
+ &--list--item {
364
+ display: inline-block;
365
+ margin-right: 32px;
366
+
367
+ &:last-of-type {
368
+ margin-right: 0;
369
+ }
370
+ }
371
+
372
+ &--link {
373
+ color: map-get($color, "hero", "card", "light", "link", "color");
374
+ display: inline-block;
375
+ overflow: hidden;
376
+ padding: 0 5px;
377
+ text-indent: -999px;
378
+ width: 100%;
379
+
380
+ &.icon {
381
+ background-position: center;
382
+ background-repeat: no-repeat;
383
+ background-size: auto 16px;
384
+ border-radius: 2px;
385
+ display: inline-block;
386
+ color: map-get($color, "hero", "card", "light", "icon", "color");
387
+ height: 24px;
388
+ width: px-to-rem(24px);
389
+
390
+ &:hover {
391
+ background-color: map-get(
392
+ $color,
393
+ "hero",
394
+ "card",
395
+ "light",
396
+ "iconhover",
397
+ "background"
398
+ );
399
+ transition: all 0.1s ease-in-out;
400
+ }
401
+
402
+ &--facebook {
403
+ @include dataurlicon(
404
+ "facebook",
405
+ map-get($color, "hero", "card", "light", "iconhover", "background")
406
+ );
407
+
408
+ &:hover {
409
+ @include dataurlicon(
410
+ "facebook",
411
+ map-get($color, "hero", "card", "light", "iconhover", "color")
412
+ );
413
+ }
414
+ }
415
+
416
+ &--twitter {
417
+ @include dataurlicon(
418
+ "twitter",
419
+ map-get($color, "hero", "card", "light", "iconhover", "background")
420
+ );
421
+
422
+ &:hover {
423
+ @include dataurlicon(
424
+ "twitter",
425
+ map-get($color, "hero", "card", "light", "iconhover", "color")
426
+ );
427
+ }
428
+ }
429
+
430
+ &--linkedin {
431
+ @include dataurlicon(
432
+ "linkedin",
433
+ map-get($color, "hero", "card", "light", "iconhover", "background")
434
+ );
435
+
436
+ &:hover {
437
+ @include dataurlicon(
438
+ "linkedin",
439
+ map-get($color, "hero", "card", "light", "iconhover", "color")
440
+ );
441
+ }
442
+ }
443
+ }
444
+ }
445
+ }
@@ -0,0 +1,42 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--image {
6
+ position: relative;
7
+
8
+ &--wrapper {
9
+ line-height: 0;
10
+ position: relative;
11
+ width: 100%;
12
+ }
13
+
14
+ &--img {
15
+ line-height: 0;
16
+ }
17
+
18
+ &--img,
19
+ img {
20
+ width: 100%;
21
+ }
22
+
23
+ &--caption {
24
+ border-left: $spacing-ux-caption-border-left solid
25
+ $color-ux-caption-border-left;
26
+ color: $color-font-caption;
27
+ font-weight: 400;
28
+ margin-top: px-to-rem(map-get($spacing, "padding-2"));
29
+ padding-left: px-to-rem(map-get($spacing, "padding-1"));
30
+ @include font-styles("image-caption");
31
+ }
32
+
33
+ .ilo--credit {
34
+ bottom: 0;
35
+ left: 0;
36
+ position: absolute;
37
+
38
+ @include breakpoint("large") {
39
+ bottom: -#{px-to-rem(map-get($spacing, "padding-0-5"))};
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,71 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--input {
6
+ -webkit-appearance: none;
7
+ -moz-appearance: none;
8
+ appearance: none;
9
+ background-color: map-get(
10
+ $color,
11
+ "formelements",
12
+ "input",
13
+ "default",
14
+ "background"
15
+ );
16
+ @include bordervalues("input", "formelements");
17
+ box-sizing: border-box;
18
+ font-family: $fonts-display;
19
+ font-weight: map-get($type, "weights", "section");
20
+ @include font-styles("label-medium");
21
+ height: px-to-rem(
22
+ map-get($spacing, "formelements", "input", "default", "height")
23
+ );
24
+ @include spacingvalues("margin", "input", "formelements");
25
+ outline: none;
26
+ @include spacingvalues("padding", "input", "formelements");
27
+ width: map-get($spacing, "formelements", "input", "default", "width");
28
+
29
+ &:hover {
30
+ background-color: map-get(
31
+ $color,
32
+ "formelements",
33
+ "input",
34
+ "hover",
35
+ "background"
36
+ );
37
+ @include bordervalues("input", "formelements", "hover");
38
+ padding-left: calc($spacing-formelements-input-default-padding-left - 1px);
39
+ }
40
+
41
+ &:focus {
42
+ background-color: map-get(
43
+ $color,
44
+ "formelements",
45
+ "input",
46
+ "focus",
47
+ "background"
48
+ );
49
+ @include bordervalues("input", "formelements", "focus");
50
+ padding-left: calc($spacing-formelements-input-default-padding-left - 1px);
51
+ outline: none;
52
+ }
53
+
54
+ &:disabled {
55
+ opacity: 45%;
56
+ pointer-events: none;
57
+ }
58
+
59
+ &:invalid,
60
+ &.error,
61
+ .error & {
62
+ background-color: map-get(
63
+ $color,
64
+ "formelements",
65
+ "input",
66
+ "error",
67
+ "background"
68
+ );
69
+ @include bordervalues("input", "formelements", "error");
70
+ }
71
+ }
@@ -0,0 +1,6 @@
1
+ @use "../tokens" as *;
2
+ @use "../mixins" as *;
3
+
4
+ .ilo--link {
5
+ @include linkstyles();
6
+ }
@@ -0,0 +1,148 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--link-list {
6
+ &--headline {
7
+ font-family: $fonts-display;
8
+ font-weight: map-get($type, "weights", "label");
9
+ @include font-styles("headline-5");
10
+ @include textmargin("margin-bottom", 30px, "headline-5", "display", 0, 0);
11
+ }
12
+
13
+ &--links {
14
+ &--headline {
15
+ font-family: $fonts-display;
16
+ font-weight: map-get($type, "weights", "label");
17
+ @include font-styles("headline-6");
18
+ @include textmargin("margin-bottom", 27px, "headline-6", "display", 0, 0);
19
+ @include textmargin(
20
+ "margin-top",
21
+ $spacing-padding-6,
22
+ "headline-6",
23
+ "display",
24
+ 0,
25
+ 0
26
+ );
27
+ }
28
+ }
29
+
30
+ &--links--item {
31
+ &.indented {
32
+ padding-left: px-to-rem($spacing-padding-4);
33
+
34
+ .ilo--link-list--label {
35
+ display: block;
36
+ padding-left: px-to-rem($spacing-padding-3);
37
+ position: relative;
38
+
39
+ &:before {
40
+ background-position: left center;
41
+ background-repeat: no-repeat;
42
+ background-size: contain;
43
+ content: "";
44
+ display: block;
45
+ height: px-to-rem($spacing-padding-1-5);
46
+ left: 0;
47
+ position: absolute;
48
+ top: 50%;
49
+ transform: translateY(-50%) rotate(-90deg);
50
+ transform-origin: center;
51
+ width: px-to-rem($spacing-padding-1-5);
52
+ @include dataurlicon(
53
+ "equilateraltriangle",
54
+ $color-base-neutrals-light
55
+ );
56
+ }
57
+ }
58
+
59
+ &:hover,
60
+ &:focus {
61
+ .ilo--link-list--label:before {
62
+ @include dataurlicon("equilateraltriangle", $color-link-text-hover);
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ &--link {
69
+ background-position: calc(100% - $spacing-padding-0-5) center;
70
+ background-repeat: no-repeat;
71
+ background-size: px-to-rem($spacing-padding-3) px-to-rem($spacing-padding-3);
72
+ border-bottom: px-to-rem($borders-base) solid $color-base-neutrals-lighter;
73
+ color: map-get($color, "link", "text", "default");
74
+ display: block;
75
+ font-family: $fonts-display;
76
+ font-weight: map-get($type, "weights", "section");
77
+ @include font-styles("body-small");
78
+ @include textmargin("padding-bottom", 25px, "body-small", "display", 0, 0);
79
+ @include textmargin("padding-top", 25px, "body-small", "display", 0, 0);
80
+ text-decoration: none;
81
+ @include dataurlicon("arrowright", $color-link-text-default);
82
+
83
+ &:visited {
84
+ color: map-get($color, "link", "text", "default");
85
+ }
86
+
87
+ &:active {
88
+ color: map-get($color, "link", "text", "active");
89
+ outline: none;
90
+ }
91
+
92
+ &:hover,
93
+ &:focus {
94
+ border-bottom: px-to-rem($borders-base) solid
95
+ map-get($color, "link", "text", "hover");
96
+ background-color: $color-base-blue-light;
97
+ color: map-get($color, "link", "text", "hover");
98
+ outline: none;
99
+ @include dataurlicon("arrowright", $color-link-text-hover);
100
+ }
101
+ }
102
+
103
+ &--dark {
104
+ .ilo--link-list--headline,
105
+ .ilo--link-list--links--headline {
106
+ color: $color-base-neutrals-white;
107
+ }
108
+
109
+ .ilo--link-list--label {
110
+ &:before {
111
+ @include dataurlicon("equilateraltriangle", $color-base-neutrals-white);
112
+ }
113
+ }
114
+
115
+ .ilo--link-list--link {
116
+ border-bottom: px-to-rem($borders-base) solid $color-base-purple-light;
117
+ @include dataurlicon("arrowright", $color-base-neutrals-white);
118
+
119
+ .ilo--link-list--label {
120
+ color: $color-base-neutrals-white;
121
+ }
122
+
123
+ &:visited {
124
+ .ilo--link-list--label {
125
+ color: $color-base-neutrals-white;
126
+ }
127
+ }
128
+
129
+ &:active {
130
+ outline: none;
131
+
132
+ .ilo--link-list--label {
133
+ color: map-get($color, "link", "text", "active");
134
+ }
135
+ }
136
+
137
+ &:hover,
138
+ &:focus {
139
+ outline: none;
140
+ @include dataurlicon("arrowright", $color-base-blue-medium);
141
+
142
+ .ilo--link-list--label {
143
+ color: $color-base-blue-medium;
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }