@ilo-org/styles 0.0.2 → 0.1.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.
@@ -0,0 +1,621 @@
1
+ @use "../tokens" as *;
2
+ @use "../functions" as *;
3
+ @import "../mixins";
4
+
5
+ .ilo--header {
6
+ $self: &;
7
+ overflow-x: hidden;
8
+ position: relative;
9
+ z-index: 4;
10
+
11
+ &.ilo--mobile--open {
12
+ height: 100vh;
13
+ }
14
+
15
+ @include breakpoint("large") {
16
+ overflow: visible;
17
+ }
18
+
19
+ &--nav {
20
+ background: $brand-ilo-dark-blue;
21
+ }
22
+
23
+ &--menu {
24
+ @include dataurlicon("burger", $brand-ilo-white);
25
+ background-color: transparent;
26
+ background-position: center;
27
+ background-repeat: no-repeat;
28
+ background-size: 32px;
29
+ border: none;
30
+ cursor: pointer;
31
+ overflow: hidden;
32
+ position: relative;
33
+ text-indent: -999%;
34
+ transition: all 150ms ease-out;
35
+
36
+ &:hover,
37
+ &:focus {
38
+ @include dataurlicon("burger", $brand-ilo-blue);
39
+ background-color: $brand-ilo-light-blue;
40
+ background-position: center;
41
+ background-repeat: no-repeat;
42
+ background-size: 32px;
43
+ }
44
+
45
+ @include breakpoint("large") {
46
+ display: none;
47
+ }
48
+
49
+ &--close {
50
+ @include dataurlicon("close", $brand-ilo-dark-blue);
51
+ background-color: $brand-ilo-grey-light;
52
+ background-position: center;
53
+ background-repeat: no-repeat;
54
+ background-size: 32px;
55
+ border: none;
56
+ cursor: pointer;
57
+ height: 32px;
58
+ overflow: hidden;
59
+ position: relative;
60
+ text-indent: -999%;
61
+ transition: all 150ms ease-out;
62
+ width: 32px;
63
+
64
+ &:hover,
65
+ &:focus {
66
+ @include dataurlicon("close", $brand-ilo-blue);
67
+ background-color: $brand-ilo-light-blue;
68
+ background-position: center;
69
+ background-repeat: no-repeat;
70
+ background-size: 32px;
71
+ }
72
+
73
+ @include breakpoint("large") {
74
+ display: none;
75
+ }
76
+ }
77
+ }
78
+
79
+ &--logo {
80
+ display: block;
81
+
82
+ &-link {
83
+ display: block;
84
+ padding: 16px 0;
85
+ }
86
+ }
87
+
88
+ &--logo-bar {
89
+ background: $brand-ilo-blue;
90
+ display: flex;
91
+ width: 100%;
92
+
93
+ .ilo--header--inner {
94
+ display: flex;
95
+ justify-content: space-between;
96
+ }
97
+
98
+ @include breakpoint("large") {
99
+ background: $brand-ilo-blue;
100
+ }
101
+ }
102
+
103
+ &--utility-bar {
104
+ display: none;
105
+
106
+ @include breakpoint("large") {
107
+ background: $brand-ilo-blue;
108
+ display: flex;
109
+ justify-content: flex-end;
110
+ width: 100%;
111
+
112
+ &--local {
113
+ justify-content: space-between;
114
+ }
115
+ }
116
+ }
117
+
118
+ &--inner {
119
+ margin: auto;
120
+ max-width: 1300px;
121
+ padding: 0 16px;
122
+ width: 100%;
123
+
124
+ @include breakpoint("large") {
125
+ display: flex;
126
+ justify-content: space-between;
127
+ padding: 0 20px;
128
+ }
129
+ }
130
+
131
+ &--navigation {
132
+ background: $brand-ilo-white;
133
+ position: absolute;
134
+ top: 0;
135
+ left: 0;
136
+ transform: translateX(100%);
137
+ transition: transform 225ms ease-out;
138
+ width: 100%;
139
+
140
+ .ilo--header.ilo--mobile--open & {
141
+ transform: translateX(0);
142
+ }
143
+
144
+ @include breakpoint("large") {
145
+ background: $brand-ilo-dark-blue;
146
+ position: static;
147
+ transform: none;
148
+ }
149
+ }
150
+
151
+ &--logo-tagline {
152
+ @include font-styles("headline-6");
153
+ color: $brand-ilo-white;
154
+ display: none;
155
+ font-family: $fonts-display;
156
+ font-weight: 700;
157
+ padding: 20px 0;
158
+ text-align: right;
159
+
160
+ @include breakpoint("large") {
161
+ display: block;
162
+ }
163
+
164
+ &--small {
165
+ @include font-styles("tagline");
166
+ display: block;
167
+ font-weight: 500;
168
+ }
169
+ }
170
+ }
171
+
172
+ .ilo--nav {
173
+ width: 100%;
174
+
175
+ @include breakpoint("large") {
176
+ width: auto;
177
+ }
178
+
179
+ &--label:not(:focus):not(:active) {
180
+ clip: rect(0 0 0 0);
181
+ clip-path: inset(50%);
182
+ height: 1px;
183
+ overflow: hidden;
184
+ position: absolute;
185
+ white-space: nowrap;
186
+ width: 1px;
187
+ }
188
+
189
+ &--set {
190
+ width: 100%;
191
+
192
+ @include breakpoint("large") {
193
+ display: flex;
194
+ width: auto;
195
+ }
196
+ }
197
+
198
+ &--items {
199
+ @include font-styles("nav-md");
200
+ font-family: $fonts-display;
201
+ font-weight: 500;
202
+
203
+ @include breakpoint("large") {
204
+ display: flex;
205
+ align-items: center;
206
+
207
+ &:first-of-type {
208
+ margin-left: -20px;
209
+ }
210
+ }
211
+ }
212
+
213
+ &--link {
214
+ color: $brand-ilo-dark-blue;
215
+ display: block;
216
+ padding: 16px 36px 16px 8px;
217
+ text-decoration: none;
218
+
219
+ &:hover,
220
+ &:focus {
221
+ background: $brand-ilo-light-blue;
222
+ color: $brand-ilo-blue;
223
+ text-decoration: none;
224
+ }
225
+
226
+ @include breakpoint("large") {
227
+ background: $brand-ilo-dark-blue;
228
+ color: $brand-ilo-white;
229
+ display: inline-block;
230
+ padding: 21.5px 24px 20.5px;
231
+
232
+ &:hover,
233
+ &:focus {
234
+ background: $brand-ilo-white;
235
+ color: $brand-ilo-blue;
236
+ text-decoration: none;
237
+ }
238
+ }
239
+ }
240
+
241
+ &--trigger {
242
+ @include dataurlicon("arrowright", $brand-ilo-dark-blue);
243
+ @include font-styles("nav-md");
244
+
245
+ appearance: none;
246
+ background-color: $brand-ilo-white;
247
+ background-position: 90% 55%;
248
+ background-repeat: no-repeat;
249
+ background-size: 16px;
250
+ border: none;
251
+ color: $brand-ilo-dark-blue;
252
+ cursor: pointer;
253
+ display: block;
254
+ font-family: $fonts-display;
255
+ font-weight: 500;
256
+ padding: 16px 36px 16px 8px;
257
+ text-align: left;
258
+ transition: all 150ms ease-out;
259
+ width: 100%;
260
+
261
+ &:focus,
262
+ &:hover {
263
+ @include dataurlicon("arrowright", $brand-ilo-blue);
264
+ background-color: $brand-ilo-light-blue;
265
+ color: $brand-ilo-blue;
266
+ }
267
+
268
+ @include breakpoint("large") {
269
+ @include dataurlicon("add", $brand-ilo-white);
270
+ @include font-styles("nav-bold-b-sm");
271
+
272
+ background-color: $brand-ilo-dark-blue;
273
+ background-position: 90% 55%;
274
+ background-repeat: no-repeat;
275
+ background-size: 20px;
276
+ border: 1.5px solid rgba($brand-ilo-grey-ui, 0.5);
277
+ border-radius: 2px;
278
+ color: $brand-ilo-white;
279
+ cursor: pointer;
280
+ display: inline-block;
281
+ font-weight: 700;
282
+ margin-left: 20px;
283
+ padding: 7px 32px 5px 15px;
284
+ text-align: center;
285
+ transition: all 150ms ease-out;
286
+ width: auto;
287
+
288
+ &:focus,
289
+ &:hover {
290
+ @include dataurlicon("add", $brand-ilo-blue);
291
+ background-color: $brand-ilo-white;
292
+ border-color: $brand-ilo-white;
293
+ color: $brand-ilo-blue;
294
+ }
295
+ }
296
+ }
297
+
298
+ &--local {
299
+ display: flex;
300
+ justify-content: space-between;
301
+ padding: 0 0 0 max((100% - 1260px) / 2, 20px);
302
+
303
+ &--logo-link {
304
+ display: flex;
305
+ }
306
+
307
+ &--set {
308
+ display: flex;
309
+ justify-content: space-between;
310
+ }
311
+
312
+ &--item {
313
+ @include font-styles("nav-md");
314
+ color: $brand-ilo-white;
315
+ font-family: $fonts-display;
316
+ font-weight: 500;
317
+ }
318
+
319
+ &--link {
320
+ background: $brand-ilo-blue;
321
+ color: $brand-ilo-white;
322
+ display: flex;
323
+ padding: 13px 24px;
324
+ text-decoration: none;
325
+ transition: all 150ms ease-out;
326
+
327
+ &:hover,
328
+ &:focus {
329
+ background: $brand-ilo-light-blue;
330
+ color: $brand-ilo-blue;
331
+ }
332
+ }
333
+ }
334
+ }
335
+
336
+ .ilo--mobile--nav {
337
+ &--logo {
338
+ align-items: center;
339
+ display: flex;
340
+ justify-content: space-between;
341
+ }
342
+
343
+ @include breakpoint("large") {
344
+ display: none;
345
+ }
346
+ }
347
+
348
+ .ilo--language-switcher {
349
+ background: $brand-ilo-dark-blue;
350
+ display: flex;
351
+ padding: 0 max((100% - 1300px) / 2, 20px) 0 0;
352
+ position: relative;
353
+
354
+ &::before {
355
+ background: $brand-ilo-dark-blue;
356
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
357
+ content: "";
358
+ display: block;
359
+ height: 100%;
360
+ left: -32px;
361
+ position: absolute;
362
+ top: 0;
363
+ width: 32px;
364
+ }
365
+
366
+ &--wrap {
367
+ display: flex;
368
+ position: relative;
369
+ }
370
+
371
+ &--button {
372
+ @include font-styles("image-credit");
373
+ @include dataurlicon("global", $brand-ilo-white);
374
+ appearance: none;
375
+ background-color: $brand-ilo-dark-blue;
376
+ background-repeat: no-repeat;
377
+ background-position: 15px center;
378
+ background-size: 16px 16px;
379
+ border: none;
380
+ color: $brand-ilo-white;
381
+ cursor: pointer;
382
+ display: block;
383
+ font-weight: 500;
384
+ padding: 8px 30px 8px 40px;
385
+ transition: all 150ms ease-out;
386
+
387
+ &:hover,
388
+ &:focus {
389
+ @include dataurlicon("global", $brand-ilo-blue);
390
+ background-color: $brand-ilo-light-blue;
391
+ color: $brand-ilo-blue;
392
+ }
393
+ }
394
+
395
+ .ilo--context-menu {
396
+ opacity: 0;
397
+ position: absolute;
398
+ right: 0;
399
+ top: calc(100% + 12px);
400
+ transition: opacity 150ms ease-out;
401
+ z-index: -1;
402
+
403
+ .ilo--context--open & {
404
+ opacity: 1;
405
+ z-index: 1;
406
+ }
407
+ }
408
+ }
409
+
410
+ .ilo--subnav {
411
+ background: $brand-ilo-white;
412
+ padding: 0 0 32px;
413
+ position: absolute;
414
+ top: 0;
415
+ transform: translateX(100%);
416
+ transition: transform 225ms ease-out;
417
+ width: 100%;
418
+
419
+ .ilo--subnav--open & {
420
+ transform: translateX(0);
421
+ }
422
+
423
+ @include breakpoint("large") {
424
+ left: 0;
425
+ padding: 32px 0;
426
+ top: auto;
427
+ transform: translateY(-100%);
428
+ transition: transform 225ms ease-out;
429
+ z-index: -1;
430
+
431
+ .ilo--header.ilo--subnav--open & {
432
+ transform: translateY(0);
433
+ }
434
+ }
435
+
436
+ &--inner {
437
+ margin: auto;
438
+ max-width: 1300px;
439
+ padding: 0 20px;
440
+ width: 100%;
441
+
442
+ @include breakpoint("large") {
443
+ display: flex;
444
+ justify-content: space-between;
445
+ }
446
+ }
447
+
448
+ &--set {
449
+ display: grid;
450
+ grid-template-columns: 1fr;
451
+ width: 100%;
452
+
453
+ @include breakpoint("large") {
454
+ grid-auto-flow: column;
455
+ grid-template-columns: repeat(5, 1fr);
456
+ grid-template-rows: repeat(5, 1fr);
457
+ }
458
+ }
459
+
460
+ &--link {
461
+ @include font-styles("nav-md");
462
+ background: $brand-ilo-white;
463
+ color: $brand-ilo-dark-blue;
464
+ display: flex;
465
+ font-family: $fonts-display;
466
+ font-weight: 500;
467
+ padding: 18px 8px;
468
+ text-decoration: none;
469
+ transition: all 150ms ease-out;
470
+
471
+ &:hover,
472
+ &:focus {
473
+ background: $brand-ilo-light-blue;
474
+ color: $brand-ilo-blue;
475
+ text-decoration: none;
476
+ }
477
+ }
478
+ }
479
+
480
+ .ilo--mobile--subnav {
481
+ @include breakpoint("large") {
482
+ display: none;
483
+ }
484
+
485
+ &--menu {
486
+ align-items: center;
487
+ display: flex;
488
+ flex-wrap: wrap;
489
+ justify-content: space-between;
490
+ }
491
+
492
+ &--back {
493
+ @include font-styles("nav-md");
494
+ background-color: $brand-ilo-white;
495
+ border: none;
496
+ color: $brand-ilo-dark-blue;
497
+ cursor: pointer;
498
+ padding: 16px 16px 16px 32px;
499
+ position: relative;
500
+ transition: all 150ms ease-out;
501
+
502
+ &::before {
503
+ @include dataurlicon("arrowright", $brand-ilo-dark-blue);
504
+ background-position: 10% center;
505
+ background-repeat: no-repeat;
506
+ background-size: 24px;
507
+ content: "";
508
+ display: block;
509
+ height: 24px;
510
+ left: 0;
511
+ position: absolute;
512
+ top: 50%;
513
+ transform: translateY(-50%) rotate(180deg);
514
+ width: 24px;
515
+ }
516
+
517
+ &:hover,
518
+ &:focus {
519
+ background-color: $brand-ilo-light-blue;
520
+ color: $brand-ilo-blue;
521
+
522
+ &::before {
523
+ @include dataurlicon("arrowright", $brand-ilo-blue);
524
+ background-position: 10% center;
525
+ background-repeat: no-repeat;
526
+ background-size: 24px;
527
+ }
528
+ }
529
+
530
+ @include breakpoint("large") {
531
+ display: none;
532
+ }
533
+ }
534
+
535
+ &--label {
536
+ @include font-styles("headline-6");
537
+ border-bottom: 3px solid $brand-ilo-grey-light;
538
+ color: $brand-ilo-grey-charcoal;
539
+ font-family: $fonts-display;
540
+ font-weight: 700;
541
+ margin-bottom: 16px;
542
+ padding: 20px 8px;
543
+ width: 100%;
544
+ }
545
+ }
546
+
547
+ .ilo--search-box {
548
+ background: $brand-ilo-white;
549
+ position: absolute;
550
+ top: 0;
551
+ transform: translateX(100%);
552
+ transition: transform 225ms ease-out;
553
+ width: 100%;
554
+
555
+ .ilo--search--open & {
556
+ transform: translateX(0);
557
+ }
558
+
559
+ @include breakpoint("large") {
560
+ left: 0;
561
+ padding: 32px 0;
562
+ top: auto;
563
+ transform: translateY(-100%);
564
+ transition: transform 225ms ease-out;
565
+ z-index: -1;
566
+
567
+ .ilo--header.ilo--search--open & {
568
+ transform: translateY(0);
569
+ }
570
+ }
571
+
572
+ .ilo--header--inner {
573
+ align-items: center;
574
+ justify-content: center;
575
+ padding: 80px 20px;
576
+ }
577
+ }
578
+
579
+ .ilo--search {
580
+ display: none;
581
+
582
+ @include breakpoint("large") {
583
+ display: flex;
584
+ }
585
+
586
+ &--button {
587
+ @include dataurlicon("search", $brand-ilo-white);
588
+ appearance: none;
589
+ background-color: transparent;
590
+ background-position: center;
591
+ background-repeat: no-repeat;
592
+ background-size: 21.5px 21.5px;
593
+ border: none;
594
+ border-radius: 0;
595
+ cursor: pointer;
596
+ overflow: hidden;
597
+ position: relative;
598
+ text-indent: -999%;
599
+ transition: all 150ms ease-out;
600
+
601
+ &:hover,
602
+ &:focus {
603
+ @include dataurlicon("search", $brand-ilo-blue);
604
+ background-color: $brand-ilo-light-blue;
605
+ }
606
+
607
+ .ilo--search--open & {
608
+ @include dataurlicon("add", $brand-ilo-dark-blue);
609
+ background-color: $brand-ilo-white;
610
+ background-position: center;
611
+ background-repeat: no-repeat;
612
+ background-size: 21.5px 21.5px;
613
+
614
+ &:hover,
615
+ &:focus {
616
+ @include dataurlicon("add", $brand-ilo-blue);
617
+ background-color: $brand-ilo-light-blue;
618
+ }
619
+ }
620
+ }
621
+ }
@@ -23,6 +23,7 @@
23
23
  @use "list";
24
24
  @use "loading";
25
25
  @use "modal";
26
+ @use "navigation";
26
27
  @use "notification";
27
28
  @use "pagination";
28
29
  @use "profile";