@ilo-org/styles 0.3.5 → 0.4.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.
@@ -2,578 +2,272 @@
2
2
  @use "../functions" as *;
3
3
  @import "../mixins";
4
4
 
5
- .ilo--hero {
6
- background: map-get($color, "ux", "pagination", "default", "background");
7
- display: block;
8
- position: relative;
9
- width: 100%;
10
-
11
- &--home {
12
- .ilo--image {
13
- &::before {
14
- background: linear-gradient(
15
- 360deg,
16
- rgba($brand-ilo-black, 0.3) 0%,
17
- rgba($brand-ilo-black, 0) 24.88%
18
- ),
19
- transparent;
20
- content: "";
21
- height: 100%;
22
- left: 0;
23
- position: absolute;
24
- top: 0;
25
- width: 100%;
26
- z-index: 2;
27
- }
28
- }
5
+ .hero {
6
+ $c: &;
29
7
 
30
- @include breakpoint("large") {
31
- position: relative;
32
- }
33
- }
8
+ --tooltip-width: 30px;
9
+ --tooltip-height: 27px;
10
+ --corner-cut-height: 39px;
11
+ --image-max-height: 216px;
34
12
 
35
- &--portal {
36
- position: relative;
37
-
38
- @include breakpoint("large") {
39
- margin-bottom: 80px;
40
- padding-top: 170px;
41
-
42
- .ilo--image {
43
- height: calc(100% - 80px);
44
- left: 0;
45
- position: absolute;
46
- top: 0;
47
- width: 100%;
48
- }
49
-
50
- .ilo--image--wrapper {
51
- height: 100%;
52
- }
13
+ display: grid;
14
+ position: relative;
53
15
 
54
- .ilo--image--img {
55
- display: flex;
56
- height: 100%;
57
- object-fit: cover;
58
- width: 100%;
16
+ grid-template-rows:
17
+ minmax(var(--image-max-height), 1fr)
18
+ var(--tooltip-height)
19
+ 39px
20
+ auto;
21
+ grid-template-columns: 1fr;
59
22
 
60
- img {
61
- object-fit: cover;
62
- height: auto;
63
- width: 100%;
64
- }
65
- }
66
-
67
- .ilo--hero-card {
68
- top: 80px;
69
- }
70
- }
23
+ &--breadcrumbs {
24
+ display: none;
71
25
  }
72
26
 
73
- &--article {
74
- background: map-get($color, "hero", "article");
75
- padding: 88px 0 0 0;
76
-
77
- @include breakpoint("large") {
78
- margin-bottom: 80px;
79
- padding: 112px 0 0 0;
80
-
81
- .ilo--hero-card {
82
- top: 80px;
83
- }
84
- }
85
-
86
- &.ilo--hero--image {
87
- background-color: map-get($color, "hero", "image");
88
- padding: 0;
27
+ &--figure {
28
+ background-color: map-get($color, "base", "blue", "light");
29
+ position: relative;
89
30
 
90
- @include breakpoint("large") {
91
- .ilo--hero-card {
92
- top: 0;
93
- }
94
- }
95
- }
31
+ grid-area: 1 / 1 / 4 / 2;
96
32
 
97
- .ilo--hero-card {
98
- &--center {
99
- margin: auto;
100
- }
33
+ img {
34
+ position: absolute;
35
+ object-fit: cover;
36
+ width: 100%;
37
+ height: 100%;
101
38
  }
102
39
  }
103
40
 
104
- &--project {
105
- background: map-get($color, "hero", "project");
106
- padding: 88px 0 0 0;
107
-
108
- @include breakpoint("large") {
109
- margin-bottom: 80px;
110
- padding: 112px 0 0 0;
111
-
112
- .ilo--hero-card {
113
- top: 80px;
114
- }
115
- }
116
-
117
- &.ilo--hero--image {
118
- background-color: map-get($color, "hero", "image");
119
- padding: 0;
120
-
121
- @include breakpoint("large") {
122
- .ilo--hero-card {
123
- top: 0;
124
- }
125
- }
126
- }
127
-
128
- .ilo--hero-card {
129
- &--center {
130
- margin: auto;
131
- }
132
- }
41
+ &--card {
42
+ grid-area: 3 / 1 / 5 / 2;
133
43
  }
134
44
 
135
- &--image {
136
- background-color: map-get($color, "hero", "image");
45
+ &--caption {
46
+ grid-area: 2 / 1 / 3 / 2;
137
47
 
138
- @include breakpoint("large") {
139
- .ilo--image {
140
- height: 100%;
141
- max-height: 592px;
142
- overflow: hidden;
143
- width: 100%;
144
- }
48
+ &--wrapper {
49
+ background: map-get($color, "tooltip", "dark", "background");
50
+ height: var(--tooltip-height);
51
+ width: var(--tooltip-width);
145
52
 
146
- .ilo--image--wrapper {
147
- height: 100%;
148
- }
53
+ display: flex;
54
+ justify-content: center;
55
+ align-items: center;
56
+ position: relative;
149
57
 
150
- .ilo--image--img {
151
- display: flex;
152
- height: 100%;
153
- object-fit: cover;
154
- width: 100%;
58
+ &::after {
59
+ content: "";
60
+ position: absolute;
61
+ top: 0;
62
+ left: 100%;
63
+ width: 0;
64
+ height: 0;
65
+ border-top: var(--tooltip-height) solid transparent;
66
+ border-left: calc(var(--tooltip-height) - 4px) solid
67
+ map-get($color, "tooltip", "dark", "background");
155
68
 
156
- img {
157
- object-fit: cover;
158
- height: auto;
159
- width: 100%;
69
+ .right-to-left & {
70
+ left: auto;
71
+ right: 100%;
72
+ border-left: none;
73
+ border-right: calc(var(--tooltip-height) - 4px) solid
74
+ map-get($color, "tooltip", "dark", "background");
160
75
  }
161
76
  }
162
77
  }
163
78
  }
164
79
 
165
- .ilo--breadcrumb {
166
- width: 100%;
167
-
168
- .right-to-left & {
169
- left: auto;
170
- right: 0;
171
- }
172
-
173
- @include breakpoint("medium") {
174
- left: 0;
175
- max-width: 560px;
176
- position: absolute;
177
- top: 0;
178
- }
179
- }
180
- }
181
-
182
- .ilo--hero-card {
183
- @include cornercut(
184
- map-get($color, "hero", "card", "light", "background"),
185
- 40px
186
- );
187
- background: map-get($color, "hero", "card", "light", "background");
188
- color: map-get($color, "hero", "card", "light", "color");
189
- max-width: 920px;
190
- position: relative;
191
- padding: 16px 16px 40px 16px;
192
-
193
- &::before {
194
- left: 0;
195
- top: -39.7px;
196
-
197
- .right-to-left & {
198
- left: auto;
199
- right: 0;
200
- }
201
-
202
- @include breakpoint("large") {
203
- top: -63.7px;
204
- }
205
- }
206
-
207
- &::after {
208
- right: 0;
209
- top: -39.7px;
210
-
211
- .right-to-left & {
212
- left: 0;
213
- right: auto;
214
- }
215
-
216
- @include breakpoint("large") {
217
- top: -63.7px;
218
- }
219
- }
220
-
221
80
  @include breakpoint("large") {
222
- @include cornercut(
223
- map-get($color, "hero", "card", "light", "background"),
224
- 64px,
225
- 116px
226
- );
227
- padding: 0 70px 70px 70px;
228
-
229
- &.ilo--hero-card--graphic {
230
- padding: 0 70px 44px 70px;
231
- }
232
- }
81
+ --card-width: minmax(200px, 625px);
82
+ --corner-cut-height: 64px;
83
+ --breadcrumbs-height: 48px;
84
+ --card-offset: 109px;
85
+ --image-gap: 240px;
233
86
 
234
- .right-to-left & {
235
- direction: rtl;
236
- }
87
+ // Defaults to baseline
88
+ --row-1-lg: var(--breadcrumbs-height);
89
+ --row-2-lg: calc(var(--image-gap) - var(--breadcrumbs-height));
90
+ --row-3-lg: auto;
91
+ --row-4-lg: var(--tooltip-height);
92
+ --row-5-lg: 72px;
237
93
 
238
- &--center {
239
- margin: auto;
240
- }
94
+ --col-1-lg: 0;
95
+ --col-2-lg: var(--card-width);
96
+ --col-3-lg: var(--tooltip-width);
97
+ --col-4-lg: 1fr;
241
98
 
242
- &--dark {
243
- background: map-get($color, "hero", "card", "dark", "background");
244
- border-bottom: 3px solid $color-base-red-medium;
245
- color: map-get($color, "hero", "card", "dark", "color");
99
+ grid-template-rows:
100
+ var(--row-1-lg)
101
+ var(--row-2-lg)
102
+ var(--row-3-lg)
103
+ var(--row-4-lg)
104
+ var(--row-5-lg);
246
105
 
247
- &::after {
248
- @include dataurlicon("triangledecoration", $brand-ilo-dark-blue);
249
- }
106
+ grid-template-columns:
107
+ var(--col-1-lg)
108
+ var(--col-2-lg)
109
+ var(--col-3-lg)
110
+ var(--col-4-lg);
250
111
 
251
- .ilo--hero-card--link.icon {
252
- color: map-get($color, "hero", "card", "dark", "icon", "color");
253
-
254
- &:hover {
255
- background-color: map-get(
256
- $color,
257
- "hero",
258
- "card",
259
- "dark",
260
- "iconhover",
261
- "background"
262
- );
112
+ &__poster-size {
113
+ &__small {
114
+ --image-gap: 112px;
263
115
  }
264
116
 
265
- &--facebook {
266
- @include dataurlicon(
267
- "facebook",
268
- map-get($color, "hero", "card", "dark", "icon", "color")
269
- );
270
-
271
- &:hover {
272
- @include dataurlicon(
273
- "facebook",
274
- map-get($color, "hero", "card", "dark", "iconhover", "color")
275
- );
276
- }
117
+ &__medium {
118
+ --image-gap: 176px;
277
119
  }
278
120
 
279
- &--twitter {
280
- @include dataurlicon(
281
- "twitter",
282
- map-get($color, "hero", "card", "dark", "icon", "color")
283
- );
284
-
285
- &:hover {
286
- @include dataurlicon(
287
- "twitter",
288
- map-get($color, "hero", "card", "dark", "iconhover", "color")
289
- );
290
- }
121
+ &__large {
122
+ --image-gap: 240px;
291
123
  }
292
124
 
293
- &--linkedin {
294
- @include dataurlicon(
295
- "linkedin",
296
- map-get($color, "hero", "card", "dark", "icon", "color")
297
- );
298
-
299
- &:hover {
300
- @include dataurlicon(
301
- "linkedin",
302
- map-get($color, "hero", "card", "dark", "iconhover", "color")
303
- );
304
- }
125
+ &__xlarge {
126
+ --image-gap: 527px;
305
127
  }
306
128
  }
307
129
 
308
- .ilo--hero-card--eyebrow {
309
- color: map-get($color, "hero", "card", "dark", "eyebrow", "color");
310
- }
311
-
312
- .ilo--hero-card--datecopy {
313
- color: map-get($color, "hero", "card", "dark", "datecopy", "color");
314
- }
315
- }
316
-
317
- &--graphic {
318
- max-width: 856px;
319
- }
320
-
321
- &--home {
322
- border: none;
323
- padding: 24px;
130
+ &__card-size {
131
+ &__small {
132
+ --card-width: minmax(200px, 625px);
133
+ }
324
134
 
325
- &::before {
326
- display: none;
327
- }
135
+ &__medium {
136
+ --card-width: minmax(200px, 721px);
137
+ }
328
138
 
329
- &.ilo--hero-card--nobackground {
330
- background: transparent;
139
+ &__large {
140
+ --card-width: minmax(200px, 856px);
141
+ }
331
142
 
332
- > * {
333
- filter: drop-shadow(0px 12px 32px rgba(0, 0, 0, 0.16))
334
- drop-shadow(0px 0.8px 1.6px rgba(0, 0, 0, 0.02))
335
- drop-shadow(0px 2.7px 4.8px rgba(0, 0, 0, 0.04))
336
- drop-shadow(0px 8px 16px rgba(0, 0, 0, 0.08));
143
+ &__xlarge {
144
+ --card-width: minmax(200px, 920px);
337
145
  }
338
146
 
339
- &::before,
340
- &::after {
341
- content: "";
147
+ &__xxlarge {
148
+ --card-width: minmax(200px, 998px);
342
149
  }
343
150
  }
344
151
 
345
- @include breakpoint("large") {
346
- @include cornercut($brand-ilo-white, 48px, 87.4px);
347
- bottom: 72px;
348
- max-width: 720px;
349
- padding: 0 48px 48px 72px;
350
- position: absolute;
351
- width: 100%;
352
-
353
- &::before {
354
- left: 0;
355
- top: -48px;
152
+ &__card-justify {
153
+ &__start {
154
+ --col-1-lg: 0;
356
155
 
357
156
  .right-to-left & {
358
- left: auto;
359
- right: 0;
157
+ --col-1-lg: 1fr;
158
+ --col-2-lg: var(--tooltip-width);
159
+ --col-3-lg: var(--card-width);
160
+ --col-4-lg: 0;
360
161
  }
361
162
  }
362
163
 
363
- &::after {
364
- right: 0;
365
- top: -48px;
164
+ &__offset {
165
+ --col-1-lg: var(--card-offset);
366
166
 
367
167
  .right-to-left & {
368
- left: 0;
369
- right: auto;
168
+ --col-1-lg: 1fr;
169
+ --col-2-lg: var(--tooltip-width);
170
+ --col-3-lg: var(--card-width);
171
+ --col-4-lg: var(--card-offset);
370
172
  }
371
173
  }
372
174
 
373
- &.ilo--hero-card--center {
374
- left: 50%;
375
- right: auto;
376
- transform: translateX(-50%);
377
- }
175
+ &__center {
176
+ --col-1-lg: 1fr;
177
+ --col-4-lg: 1fr;
378
178
 
379
- &.ilo--hero-card--left {
380
- left: 0;
381
- right: auto;
179
+ .right-to-left & {
180
+ --col-2-lg: var(--tooltip-width);
181
+ --col-3-lg: var(--card-width);
182
+ }
382
183
  }
184
+ }
383
185
 
384
- &.ilo--hero-card--right {
385
- left: auto;
386
- right: 0;
186
+ &__card-align {
187
+ &__center {
188
+ --row-4-lg: calc(72px - var(--tooltip-height));
189
+ --row-5-lg: var(--tooltip-height);
387
190
  }
388
191
 
389
- &.ilo--hero-card--nobackground {
390
- background: transparent;
391
-
392
- &::before,
393
- &::after {
394
- content: "";
395
- }
192
+ &__bottom {
193
+ --row-3-lg: 0;
194
+ --row-4-lg: var(--corner-cut-height);
195
+ --row-5-lg: auto;
396
196
  }
397
197
  }
398
198
 
399
- &.ilo--hero-card--dark {
400
- @include breakpoint("large") {
401
- background: rgba(
402
- map-get($color, "hero", "card", "dark", "background"),
403
- 0.55
404
- );
199
+ &--breadcrumbs {
200
+ grid-area: 1 / 1 / 2 / 5;
201
+ z-index: 1;
202
+ display: flex;
203
+ flex-flow: row nowrap;
405
204
 
406
- &.ilo--hero-card--nobackground {
407
- background: transparent;
408
-
409
- &::before,
410
- &::after {
411
- content: "";
412
- }
413
- }
205
+ .right-to-left & {
206
+ flex-direction: row-reverse;
414
207
  }
415
208
 
416
- &::after {
417
- @include dataurlicon(
418
- "triangledecoration",
419
- rgba($brand-ilo-dark-blue, 0.55)
420
- );
209
+ &--wrapper {
210
+ max-width: 500px;
421
211
  }
422
212
  }
423
- }
424
-
425
- &--portal {
426
- background: map-get($color, "hero", "portal", "background");
427
- color: map-get($color, "hero", "portal", "color");
428
- padding: 24px;
429
-
430
- @include breakpoint("large") {
431
- max-width: 625px;
432
- padding: 0 48px 42px 72px;
433
- width: 100%;
434
- }
435
- }
436
213
 
437
- &--publication {
438
- padding: 24px;
214
+ &--figure {
215
+ grid-area: 1 / 1 / 5 / 5;
439
216
 
440
- .ilo--hero-card--eyebrow {
441
- margin-bottom: px-to-rem(6px);
442
- }
217
+ #{$c}__card-align__center & {
218
+ grid-area: 1 / 1 / 6 / 5;
219
+ }
443
220
 
444
- @include breakpoint("large") {
445
- margin-left: 106px;
446
- margin-top: -64px;
447
- max-width: 720px;
448
- padding: 0 48px 48px 48px;
449
- width: 100%;
221
+ #{$c}__card-align__bottom & {
222
+ grid-area: 1 / 1 / 5 / 5;
223
+ }
450
224
  }
451
- }
452
-
453
- &--datecopy {
454
- @include font-styles("body-small");
455
- margin-bottom: px-to-rem(28px);
456
225
 
457
- color: map-get($color, "hero", "card", "light", "datecopy", "color");
458
- }
459
-
460
- &--eyebrow {
461
- @include font-styles("body-small");
462
- margin-bottom: px-to-rem(16px);
463
-
464
- color: map-get($color, "hero", "card", "light", "eyebrow", "color");
465
- }
226
+ &--card {
227
+ grid-area: 3 / 2 / 6 / 3;
466
228
 
467
- &--intro {
468
- @include font-styles("body-small");
469
- margin-bottom: px-to-rem(28px);
229
+ .right-to-left & {
230
+ grid-area: 3 / 3 / 6 / 4;
231
+ }
470
232
 
471
- @include breakpoint("large") {
472
- @include font-styles("base");
473
- }
474
- }
233
+ #{$c}__card-align__center & {
234
+ grid-area: 3 / 2 / 4 / 3;
235
+ }
475
236
 
476
- &--title {
477
- @include font-styles("headline-3");
478
- @include textmargin(
479
- "margin-bottom",
480
- 40px,
481
- "headline-2",
482
- "display",
483
- "base",
484
- "copy"
485
- );
486
-
487
- font-family: $fonts-display;
488
- font-weight: 700;
489
-
490
- @include breakpoint("large") {
491
- @include font-styles("headline-2");
237
+ #{$c}__card-align__bottom & {
238
+ grid-area: 4 / 2 / 6 / 3;
239
+ }
492
240
  }
493
- }
494
-
495
- &--list {
496
- display: flex;
497
- }
498
241
 
499
- &--list--item {
500
- display: inline-block;
501
- margin-right: 24px;
242
+ &--caption {
243
+ grid-area: 4 / 3 / 5 / 4;
244
+ position: relative;
502
245
 
503
- &:last-of-type {
504
- margin-right: 0;
505
- }
506
- }
246
+ .right-to-left & {
247
+ grid-area: 4 / 2 / 5 / 3;
248
+ }
507
249
 
508
- &--link {
509
- color: map-get($color, "hero", "card", "light", "link", "color");
510
- display: inline-block;
511
- overflow: hidden;
512
- padding: 0 5px;
513
- text-indent: -999px;
514
- width: 100%;
515
-
516
- &.icon {
517
- background-position: center;
518
- background-repeat: no-repeat;
519
- background-size: auto 16px;
520
- border-radius: 2px;
521
- display: inline-block;
522
- color: map-get($color, "hero", "card", "light", "icon", "color");
523
- height: 24px;
524
- width: px-to-rem(24px);
525
-
526
- &:hover {
527
- background-color: map-get(
528
- $color,
529
- "hero",
530
- "card",
531
- "light",
532
- "iconhover",
533
- "background"
534
- );
535
- transition: all 0.1s ease-in-out;
250
+ #{$c}__card-align__center & {
251
+ grid-area: 5 / 1 / 6 / 3;
536
252
  }
537
253
 
538
- &--facebook {
539
- @include dataurlicon(
540
- "facebook",
541
- map-get($color, "hero", "card", "light", "icon", "color")
542
- );
543
-
544
- &:hover {
545
- @include dataurlicon(
546
- "facebook",
547
- map-get($color, "hero", "card", "light", "iconhover", "color")
548
- );
549
- }
254
+ #{$c}__card-align__bottom & {
255
+ grid-area: 4 / 1 / 5 / 2;
550
256
  }
551
257
 
552
- &--twitter {
553
- @include dataurlicon(
554
- "twitter",
555
- map-get($color, "hero", "card", "light", "icon", "color")
556
- );
557
-
558
- &:hover {
559
- @include dataurlicon(
560
- "twitter",
561
- map-get($color, "hero", "card", "light", "iconhover", "color")
562
- );
258
+ &--wrapper {
259
+ left: 2px;
260
+
261
+ .right-to-left & {
262
+ left: auto;
263
+ right: 2px;
563
264
  }
564
- }
565
265
 
566
- &--linkedin {
567
- @include dataurlicon(
568
- "linkedin",
569
- map-get($color, "hero", "card", "light", "icon", "color")
570
- );
571
-
572
- &:hover {
573
- @include dataurlicon(
574
- "linkedin",
575
- map-get($color, "hero", "card", "light", "iconhover", "color")
576
- );
266
+ #{$c}__card-align__center &,
267
+ #{$c}__card-align__bottom & {
268
+ position: absolute;
269
+ left: 0;
270
+ bottom: 0;
577
271
  }
578
272
  }
579
273
  }