@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,667 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--card {
6
+ $self: &;
7
+ margin: 16px 0;
8
+
9
+ &--action:hover,
10
+ &--action:focus {
11
+ background: $brand-ilo-white;
12
+ color: $brand-ilo-blue;
13
+ text-decoration: none;
14
+
15
+ #{$self}--dark {
16
+ background: $brand-ilo-white;
17
+ }
18
+
19
+ #{$self}--eyebrow {
20
+ color: $brand-ilo-blue;
21
+ }
22
+
23
+ #{$self}--title {
24
+ color: $brand-ilo-blue;
25
+ }
26
+
27
+ #{$self}--intro {
28
+ color: $brand-ilo-blue;
29
+ }
30
+
31
+ #{$self}--date {
32
+ color: $brand-ilo-blue;
33
+ }
34
+
35
+ #{$self}--eventdate {
36
+ color: $brand-ilo-blue;
37
+ }
38
+ }
39
+
40
+ &--link {
41
+ background: none;
42
+ color: transparent;
43
+ height: 100%;
44
+ left: 0;
45
+ position: absolute;
46
+ text-decoration: none;
47
+ top: 0;
48
+ width: 100%;
49
+ z-index: 2;
50
+ }
51
+
52
+ &--light {
53
+ background: $brand-ilo-white;
54
+ }
55
+
56
+ &--dark {
57
+ background: $brand-ilo-dark-blue;
58
+
59
+ #{$self}--eyebrow {
60
+ color: $brand-ilo-grey-light;
61
+ }
62
+
63
+ #{$self}--title {
64
+ color: $brand-ilo-white;
65
+ }
66
+
67
+ #{$self}--intro {
68
+ color: $brand-ilo-grey-light;
69
+ }
70
+
71
+ #{$self}--date {
72
+ color: $brand-ilo-grey-light;
73
+ }
74
+
75
+ #{$self}--eventdate {
76
+ color: $brand-ilo-grey-light;
77
+ }
78
+ }
79
+
80
+ &--cornercut {
81
+ margin-top: 40px;
82
+ padding-top: 0 !important;
83
+ position: relative;
84
+
85
+ @include breakpoint("medium") {
86
+ margin-top: 48px;
87
+ }
88
+
89
+ @include breakpoint("large") {
90
+ margin-top: 64px;
91
+ }
92
+
93
+ &::before {
94
+ background: inherit;
95
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
96
+ content: "";
97
+ display: block;
98
+ height: 40px;
99
+ left: 0;
100
+ position: absolute;
101
+ top: -39.7px;
102
+ width: 100%;
103
+
104
+ @include breakpoint("medium") {
105
+ height: 48px;
106
+ top: -47.7px;
107
+ }
108
+
109
+ @include breakpoint("large") {
110
+ height: 64px;
111
+ top: -63.7px;
112
+ }
113
+ }
114
+ }
115
+
116
+ &--eyebrow {
117
+ color: $brand-ilo-purple;
118
+ @include font-styles("body-small");
119
+ @include textmargin(
120
+ "margin-bottom",
121
+ 16px,
122
+ "headline-5",
123
+ "display",
124
+ "body-small",
125
+ "copy"
126
+ );
127
+
128
+ #{$self}--link:hover &,
129
+ #{$self}--link:focus & {
130
+ color: $brand-ilo-blue;
131
+ }
132
+ }
133
+
134
+ &--title {
135
+ color: $brand-ilo-dark-blue;
136
+ font-family: $fonts-display;
137
+ font-weight: 700;
138
+ @include font-styles("headline-5");
139
+ @include textmargin(
140
+ "margin-bottom",
141
+ 10px,
142
+ "headline-5",
143
+ "display",
144
+ "body-small",
145
+ "copy"
146
+ );
147
+
148
+ #{$self}--link:hover &,
149
+ #{$self}--link:focus & {
150
+ color: $brand-ilo-blue;
151
+ }
152
+ }
153
+
154
+ &--intro {
155
+ color: $brand-ilo-grey-charcoal;
156
+ @include font-styles("body-small");
157
+ @include textmargin("margin-bottom", 30px, "body-small", "copy", 0, 0);
158
+
159
+ #{$self}--link:hover &,
160
+ #{$self}--link:focus & {
161
+ color: $brand-ilo-blue;
162
+ }
163
+ }
164
+
165
+ &--date {
166
+ color: $brand-ilo-grey-accessible;
167
+ @include font-styles("body-small");
168
+ @include textmargin("margin-bottom", 30px, "body-small", "copy", 0, 0);
169
+
170
+ #{$self}--link:hover &,
171
+ #{$self}--link:focus & {
172
+ color: $brand-ilo-blue;
173
+ }
174
+ }
175
+
176
+ &--event-date {
177
+ @include font-styles("body-small");
178
+ @include textmargin("margin-bottom", 30px, "body-small", "copy", 0, 0);
179
+ }
180
+
181
+ &--image {
182
+ max-width: 100%;
183
+ width: 100%;
184
+ }
185
+
186
+ &--cta {
187
+ position: relative;
188
+ z-index: 2;
189
+ }
190
+
191
+ // CARD VARIANTS
192
+ &--multilink {
193
+ padding: 24px;
194
+
195
+ @include breakpoint("medium") {
196
+ padding: 40px;
197
+ }
198
+
199
+ @include breakpoint("large") {
200
+ padding: 56px 48px;
201
+ }
202
+ }
203
+
204
+ &--detail {
205
+ border-bottom: 3px solid $brand-ilo-grey-accessible;
206
+ margin: 32px 0;
207
+
208
+ &::before {
209
+ display: none;
210
+ }
211
+
212
+ &:hover,
213
+ &:focus {
214
+ picture::before {
215
+ opacity: 0.4;
216
+ z-index: 2;
217
+ }
218
+
219
+ #{$self}--event-date {
220
+ &::before {
221
+ @include dataurlicon("equilateraltriangle", $brand-ilo-blue);
222
+ }
223
+ }
224
+ }
225
+
226
+ picture {
227
+ display: flex;
228
+ position: relative;
229
+
230
+ &::before {
231
+ background-color: $brand-ilo-blue;
232
+ content: "";
233
+ display: block;
234
+ height: 100%;
235
+ left: 0;
236
+ opacity: 0;
237
+ position: absolute;
238
+ top: 0;
239
+ transition: opacity 0.15s ease-in-out;
240
+ width: 100%;
241
+ z-index: -1;
242
+ }
243
+ }
244
+
245
+ #{$self}--wrap {
246
+ display: flex;
247
+ }
248
+
249
+ #{$self}--image {
250
+ object-fit: contain;
251
+ width: 77px;
252
+
253
+ @include breakpoint("large") {
254
+ width: 200px;
255
+ }
256
+
257
+ &--wrapper {
258
+ max-width: 77px;
259
+ width: 100%;
260
+
261
+ @include breakpoint("large") {
262
+ max-width: 200px;
263
+ }
264
+ }
265
+ }
266
+
267
+ #{$self}--content {
268
+ padding: 16px 24px 40px;
269
+
270
+ @include breakpoint("large") {
271
+ padding: 24px 24px 64px;
272
+ }
273
+ }
274
+
275
+ #{$self}--title {
276
+ @include font-styles("headline-6");
277
+
278
+ @include breakpoint("large") {
279
+ @include font-styles("headline-5");
280
+ }
281
+ }
282
+
283
+ #{$self}--event-date {
284
+ @include font-styles("body-small");
285
+ margin-bottom: 0;
286
+ padding-left: 24px;
287
+ position: relative;
288
+
289
+ &::before {
290
+ background-repeat: no-repeat;
291
+ content: "";
292
+ display: inline-block;
293
+ height: px-to-rem(14px);
294
+ left: 0;
295
+ position: absolute;
296
+ top: 50%;
297
+ transform: rotate(-90deg) translateX(50%);
298
+ width: px-to-rem(12px);
299
+ @include dataurlicon("equilateraltriangle", $brand-ilo-grey-charcoal);
300
+ }
301
+ }
302
+
303
+ #{$self}--date {
304
+ @include font-styles("body-small");
305
+ }
306
+
307
+ // #{}
308
+ // title shrinks on mobile
309
+ // color border on cards
310
+ // padding around cards
311
+ }
312
+
313
+ &--graphic {
314
+ border-bottom: 3px solid $brand-ilo-grey-ui;
315
+ margin-top: 40px;
316
+ padding: 0 24px 40px;
317
+ position: relative;
318
+
319
+ &::before {
320
+ background: inherit;
321
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
322
+ content: "";
323
+ display: block;
324
+ height: 40px;
325
+ left: 0;
326
+ position: absolute;
327
+ top: -39.7px;
328
+ width: 100%;
329
+ }
330
+
331
+ @include breakpoint("medium") {
332
+ padding: 0 32px 40px;
333
+ }
334
+
335
+ &#{$self}--dark {
336
+ border-bottom: 3px solid $brand-ilo-purple;
337
+ }
338
+
339
+ #{$self}--eyebrow {
340
+ @include textmargin(
341
+ "margin-bottom",
342
+ 24px,
343
+ "base",
344
+ "copy",
345
+ "headline-5",
346
+ "display"
347
+ );
348
+ }
349
+
350
+ #{$self}--title {
351
+ @include font-styles("headline-6");
352
+ @include textmargin(
353
+ "margin-bottom",
354
+ 40px,
355
+ "headline-6",
356
+ "display",
357
+ "base",
358
+ "copy"
359
+ );
360
+
361
+ @include breakpoint("medium") {
362
+ @include font-styles("headline-5");
363
+ @include textmargin(
364
+ "margin-bottom",
365
+ 40px,
366
+ "headline-5",
367
+ "display",
368
+ "base",
369
+ "copy"
370
+ );
371
+ }
372
+ }
373
+
374
+ #{$self}--date {
375
+ @include textmargin("margin-bottom", 32px, "base", "copy", 0, 0);
376
+ }
377
+ }
378
+
379
+ &--graphicpromo {
380
+ max-width: 920px;
381
+ padding: 40px 24px;
382
+ width: 100%;
383
+
384
+ @include breakpoint("medium") {
385
+ padding: 48px;
386
+ }
387
+
388
+ @include breakpoint("large") {
389
+ padding: 64px 72px;
390
+ }
391
+
392
+ &#{$self}--light:not(:hover) #{$self}--title {
393
+ color: $brand-ilo-grey-charcoal;
394
+ }
395
+
396
+ #{$self}--title {
397
+ @include font-styles("headline-4");
398
+ @include textmargin(
399
+ "margin-bottom",
400
+ 24px,
401
+ "headline-4",
402
+ "display",
403
+ "body-small",
404
+ "copy"
405
+ );
406
+
407
+ @include breakpoint("medium") {
408
+ @include font-styles("headline-3");
409
+ @include textmargin(
410
+ "margin-bottom",
411
+ 32px,
412
+ "headline-3",
413
+ "display",
414
+ "base",
415
+ "copy"
416
+ );
417
+ }
418
+ }
419
+
420
+ #{$self}--intro {
421
+ @include font-styles("body-small");
422
+ @include textmargin("margin-bottom", 40px, "body-small", "copy", 0, 0);
423
+
424
+ @include breakpoint("medium") {
425
+ @include font-styles("base");
426
+ @include textmargin("margin-bottom", 40px, "base", "copy", 0, 0);
427
+ }
428
+ }
429
+ }
430
+
431
+ &--factlist {
432
+ padding: 0 24px 48px 24px;
433
+ max-width: 856px;
434
+
435
+ &::before {
436
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
437
+ height: 40px;
438
+ top: -39.7px;
439
+ }
440
+
441
+ @include breakpoint("large") {
442
+ padding: 0 40px 56px 40px;
443
+
444
+ &::before {
445
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
446
+ height: 48px;
447
+ top: -47.7px;
448
+ }
449
+ }
450
+
451
+ #{$self}--title {
452
+ color: $brand-ilo-grey-charcoal;
453
+ @include font-styles("headline-5");
454
+ @include textmargin(
455
+ "margin-bottom",
456
+ 32px,
457
+ "headline-5",
458
+ "display",
459
+ "body-small",
460
+ "copy"
461
+ );
462
+
463
+ @include breakpoint("large") {
464
+ @include font-styles("headline-4");
465
+ @include textmargin(
466
+ "margin-bottom",
467
+ 40px,
468
+ "headline-4",
469
+ "display",
470
+ "base",
471
+ "copy"
472
+ );
473
+ }
474
+ }
475
+ }
476
+
477
+ &--stat {
478
+ border-bottom: 3px solid $brand-ilo-purple;
479
+ padding: 0 24px 24px 30px;
480
+ width: 100%;
481
+
482
+ &::before {
483
+ clip-path: polygon(75% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
484
+ height: 40px;
485
+ top: -39.7px;
486
+ }
487
+
488
+ &#{$self}--blue {
489
+ background: $brand-ilo-light-blue;
490
+ }
491
+
492
+ &#{$self}--yellow {
493
+ background: $brand-ilo-yellow;
494
+ }
495
+
496
+ &#{$self}--green {
497
+ background: $brand-ilo-green;
498
+ }
499
+
500
+ &#{$self}--turquoise {
501
+ background: $brand-ilo-turquoise;
502
+ }
503
+
504
+ #{$self}--content {
505
+ display: flex;
506
+ flex-wrap: wrap;
507
+ height: 100%;
508
+ }
509
+
510
+ #{$self}--title {
511
+ color: $brand-ilo-dark-blue;
512
+ @include font-styles("headline-3");
513
+ @include textmargin("margin-bottom", 24px, "headline-3", "display", 0, 0);
514
+ width: 100%;
515
+ }
516
+
517
+ #{$self}--intro {
518
+ color: $brand-ilo-dark-blue;
519
+ @include font-styles("nav-md-sm");
520
+ @include textmargin("margin-bottom", 40px, "nav-md-sm", "copy", 0, 0);
521
+ width: 100%;
522
+ }
523
+
524
+ .ilo--link {
525
+ @include font-styles("image-credit");
526
+ align-self: flex-end;
527
+ }
528
+ }
529
+
530
+ &--data {
531
+ background: $brand-ilo-light-blue;
532
+ border-bottom: 3px solid #82afdc;
533
+ max-width: 600px;
534
+ padding: 0 24px 56px;
535
+
536
+ &::before {
537
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
538
+ height: 40px;
539
+ top: -39.7px;
540
+ }
541
+
542
+ @include breakpoint("large") {
543
+ &::before {
544
+ clip-path: polygon(90% 0, 100% 100%, 100% 100%, 0% 100%, 0% 0%);
545
+ height: 48px;
546
+ top: -47.7px;
547
+ }
548
+ }
549
+
550
+ #{$self}--image--wrapper {
551
+ width: max(205px, 50%);
552
+ }
553
+
554
+ &--content-label {
555
+ @include font-styles("body-xs");
556
+ @include textmargin(
557
+ "margin-bottom",
558
+ 16px,
559
+ "body-xs",
560
+ "copy",
561
+ "headline-5",
562
+ "display"
563
+ );
564
+ color: $brand-ilo-grey-accessible;
565
+ }
566
+
567
+ &--content-copy {
568
+ @include font-styles("headline-5");
569
+ @include textmargin(
570
+ "margin-bottom",
571
+ 40px,
572
+ "headline-5",
573
+ "display",
574
+ "body-xs",
575
+ "copy"
576
+ );
577
+ color: $brand-ilo-grey-charcoal;
578
+ font-family: $fonts-display;
579
+ font-weight: 500;
580
+ }
581
+
582
+ &--content-files {
583
+ margin-bottom: 40px;
584
+ }
585
+
586
+ .ilo--link {
587
+ @include font-styles("headline-6");
588
+ }
589
+
590
+ &--file {
591
+ margin: 4px 8px 4px 0;
592
+
593
+ &:last-of-type {
594
+ margin-right: 0;
595
+ }
596
+ }
597
+ }
598
+
599
+ &--feature {
600
+ margin-top: 0;
601
+
602
+ &::before {
603
+ display: none;
604
+ }
605
+
606
+ &:hover,
607
+ &:focus {
608
+ picture::before {
609
+ opacity: 0.4;
610
+ z-index: 1;
611
+ }
612
+ }
613
+
614
+ picture {
615
+ display: flex;
616
+ position: relative;
617
+
618
+ &::before {
619
+ background-color: $brand-ilo-blue;
620
+ content: "";
621
+ display: block;
622
+ height: 100%;
623
+ left: 0;
624
+ opacity: 0;
625
+ position: absolute;
626
+ top: 0;
627
+ transition: opacity 0.15s ease-in-out;
628
+ width: 100%;
629
+ z-index: -1;
630
+ }
631
+ }
632
+
633
+ #{$self}--content {
634
+ padding: 24px 24px 40px;
635
+ }
636
+
637
+ #{$self}--title {
638
+ @include font-styles("headline-5");
639
+ @include textmargin(
640
+ "margin-bottom",
641
+ 40px,
642
+ "headline-5",
643
+ "display",
644
+ "body-eyebrow",
645
+ "copy"
646
+ );
647
+ font-family: $fonts-display;
648
+ font-weight: 700;
649
+ }
650
+
651
+ #{$self}--eyebrow {
652
+ @include font-styles("body-eyebrow");
653
+ @include textmargin(
654
+ "margin-bottom",
655
+ 10px,
656
+ "body-eyebrow",
657
+ "copy",
658
+ "headline-5",
659
+ "display"
660
+ );
661
+ }
662
+
663
+ #{$self}--date {
664
+ margin-bottom: 0;
665
+ }
666
+ }
667
+ }
@@ -0,0 +1,45 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--cardgroup {
6
+ $card: ".ilo--card";
7
+ background: #e5e5e5;
8
+ padding: 112px 40px;
9
+
10
+ &--inner {
11
+ display: flex;
12
+ flex-wrap: wrap;
13
+ justify-content: space-between;
14
+ margin: auto;
15
+ max-width: 1189px;
16
+
17
+ #{$card} {
18
+ width: 100%;
19
+ }
20
+ }
21
+
22
+ &--two {
23
+ @include breakpoint("large") {
24
+ #{$card} {
25
+ width: calc(50% - 16px);
26
+ }
27
+ }
28
+ }
29
+
30
+ &--three {
31
+ @include breakpoint("large") {
32
+ #{$card} {
33
+ width: calc(33.333% - 16px);
34
+ }
35
+ }
36
+ }
37
+
38
+ &--four {
39
+ @include breakpoint("large") {
40
+ #{$card} {
41
+ width: calc(25% - 16px);
42
+ }
43
+ }
44
+ }
45
+ }