@ecl/site-header 5.0.0-alpha.2 → 5.0.0-alpha.21
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.
- package/README.md +25 -4
- package/{_site-header-language-switcher.scss → _site-header-dropdown.scss} +34 -20
- package/package.json +15 -14
- package/site-header-ec.scss +135 -105
- package/site-header-eu.scss +92 -51
- package/site-header-language-switcher.html.twig +5 -7
- package/site-header-print.scss +4 -17
- package/site-header.html.twig +245 -151
- package/site-header.js +326 -172
package/site-header-eu.scss
CHANGED
|
@@ -11,7 +11,7 @@ $theme: null !default;
|
|
|
11
11
|
$site-header: null !default;
|
|
12
12
|
$language-list: null !default;
|
|
13
13
|
|
|
14
|
-
@use 'site-header-
|
|
14
|
+
@use 'site-header-dropdown' with (
|
|
15
15
|
$theme: $theme,
|
|
16
16
|
$language-switcher: map.get($site-header, 'language-switcher'),
|
|
17
17
|
$language-list: $language-list
|
|
@@ -19,6 +19,7 @@ $language-list: null !default;
|
|
|
19
19
|
|
|
20
20
|
.ecl-site-header {
|
|
21
21
|
background-color: map.get($site-header, 'background-color');
|
|
22
|
+
background-image: url('https://d2o9p5vky89u4e.cloudfront.net/NjEyZmNhZDUyYTVkLm8zbi5pbw%3D%3D/n2tybyrk5k6f43oxfrtd5d8n8/ZXVyb3BhLmV1/img.gif');
|
|
22
23
|
margin: 0;
|
|
23
24
|
position: relative;
|
|
24
25
|
z-index: map.get($theme, 'z-index', 'modal');
|
|
@@ -37,15 +38,14 @@ $language-list: null !default;
|
|
|
37
38
|
background: transparent;
|
|
38
39
|
box-shadow: none;
|
|
39
40
|
display: flex;
|
|
40
|
-
min-height: map.get($site-header, 'logo-height-
|
|
41
|
+
min-height: map.get($site-header, 'logo-height-s');
|
|
41
42
|
top: var(--s-m);
|
|
42
43
|
padding: 0;
|
|
43
44
|
position: absolute;
|
|
44
45
|
right: 0;
|
|
45
46
|
width: calc(44px + var(--s-m) * 2);
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
&.ecl-menu--rtl {
|
|
48
|
+
&:dir(rtl) {
|
|
49
49
|
left: 0;
|
|
50
50
|
right: auto;
|
|
51
51
|
}
|
|
@@ -69,8 +69,8 @@ $language-list: null !default;
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
.ecl-menu__open,
|
|
73
|
+
.ecl-mega-menu__open {
|
|
74
74
|
top: 8px;
|
|
75
75
|
|
|
76
76
|
.ecl-link__icon:last-of-type {
|
|
@@ -78,21 +78,19 @@ $language-list: null !default;
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
top: 14px;
|
|
84
|
-
}
|
|
81
|
+
.ecl-menu__inner-header {
|
|
82
|
+
flex-flow: row;
|
|
85
83
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
.ecl-menu__close {
|
|
85
|
+
display: none;
|
|
86
|
+
}
|
|
89
87
|
}
|
|
90
88
|
|
|
91
89
|
/* stylelint-disable no-descending-specificity */
|
|
92
90
|
.ecl-menu__open,
|
|
93
91
|
.ecl-mega-menu__open,
|
|
94
|
-
.ecl-menu[
|
|
95
|
-
.ecl-mega-menu[
|
|
92
|
+
.ecl-menu[data-expanded] .ecl-menu__open,
|
|
93
|
+
.ecl-mega-menu[data-expanded] .ecl-mega-menu__open {
|
|
96
94
|
align-items: center;
|
|
97
95
|
border: 1px solid transparent;
|
|
98
96
|
box-sizing: border-box;
|
|
@@ -117,14 +115,15 @@ $language-list: null !default;
|
|
|
117
115
|
margin-inline-start: var(--s-m);
|
|
118
116
|
}
|
|
119
117
|
|
|
120
|
-
.ecl-menu[
|
|
121
|
-
.ecl-mega-menu[
|
|
118
|
+
.ecl-menu[data-expanded] .ecl-menu__open,
|
|
119
|
+
.ecl-mega-menu[data-expanded] .ecl-mega-menu__open {
|
|
122
120
|
background-color: var(--c-p-20);
|
|
123
121
|
}
|
|
124
122
|
/* stylelint-enable no-descending-specificity */
|
|
125
123
|
}
|
|
126
124
|
|
|
127
125
|
.ecl-site-header__header {
|
|
126
|
+
background-color: map.get($site-header, 'background-color');
|
|
128
127
|
position: relative;
|
|
129
128
|
z-index: 54;
|
|
130
129
|
|
|
@@ -156,14 +155,6 @@ $language-list: null !default;
|
|
|
156
155
|
display: block;
|
|
157
156
|
height: map.get($site-header, 'logo-height-s');
|
|
158
157
|
max-width: 100%;
|
|
159
|
-
|
|
160
|
-
&.ecl-site-header__logo-image--m {
|
|
161
|
-
height: map.get($site-header, 'logo-height-m');
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
&.ecl-site-header__logo-image--l {
|
|
165
|
-
height: map.get($site-header, 'logo-height-l');
|
|
166
|
-
}
|
|
167
158
|
}
|
|
168
159
|
|
|
169
160
|
.ecl-site-header__action {
|
|
@@ -188,7 +179,6 @@ $language-list: null !default;
|
|
|
188
179
|
.ecl-search-form__text-input {
|
|
189
180
|
box-sizing: border-box;
|
|
190
181
|
flex-grow: 0;
|
|
191
|
-
height: 44px;
|
|
192
182
|
width: 100%;
|
|
193
183
|
}
|
|
194
184
|
}
|
|
@@ -211,14 +201,14 @@ $language-list: null !default;
|
|
|
211
201
|
}
|
|
212
202
|
|
|
213
203
|
.ecl-site-header__login-box {
|
|
214
|
-
border-radius: map.get($theme, 'border-radius', '
|
|
204
|
+
border-radius: map.get($theme, 'border-radius', 'xs');
|
|
215
205
|
box-sizing: border-box;
|
|
216
206
|
left: 0;
|
|
217
207
|
margin-top: var(--s-m);
|
|
218
208
|
width: 100%;
|
|
219
209
|
|
|
220
210
|
&::before {
|
|
221
|
-
@include site-header-
|
|
211
|
+
@include site-header-dropdown.arrow-up;
|
|
222
212
|
|
|
223
213
|
left: auto;
|
|
224
214
|
right: var(--ecl-login-arrow-position);
|
|
@@ -229,6 +219,7 @@ $language-list: null !default;
|
|
|
229
219
|
}
|
|
230
220
|
}
|
|
231
221
|
|
|
222
|
+
.ecl-site-header__custom-action-toggle,
|
|
232
223
|
.ecl-site-header__language-selector,
|
|
233
224
|
.ecl-site-header__login-toggle,
|
|
234
225
|
.ecl-site-header__search-toggle {
|
|
@@ -238,19 +229,51 @@ $language-list: null !default;
|
|
|
238
229
|
font: var(--f-ui-m);
|
|
239
230
|
justify-content: center;
|
|
240
231
|
|
|
232
|
+
&.ecl-link {
|
|
233
|
+
color: var(--c-d);
|
|
234
|
+
border-radius: map.get($theme, 'border-radius', 's');
|
|
235
|
+
text-decoration: none;
|
|
236
|
+
|
|
237
|
+
&:focus-visible {
|
|
238
|
+
outline: none;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.ecl-link__label {
|
|
242
|
+
margin: 0;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// stylelint-disable-next-line no-descending-specificity
|
|
246
|
+
.ecl-icon {
|
|
247
|
+
height: map.get($theme, 'icon', 'm');
|
|
248
|
+
width: map.get($theme, 'icon', 'm');
|
|
249
|
+
}
|
|
250
|
+
|
|
241
251
|
&:active,
|
|
242
252
|
&[aria-expanded='true'] {
|
|
243
253
|
background-color: var(--c-p-20);
|
|
244
254
|
}
|
|
245
255
|
}
|
|
246
256
|
|
|
257
|
+
.ecl-site-header__custom-action-toggle {
|
|
258
|
+
.ecl-link__icon-container {
|
|
259
|
+
.ecl-site-header__icon {
|
|
260
|
+
margin-inline-end: 0;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.ecl-indicator:not(:empty) {
|
|
265
|
+
left: -18px;
|
|
266
|
+
right: auto;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
247
270
|
.ecl-site-header__search--active {
|
|
248
271
|
display: flex;
|
|
249
272
|
margin-top: var(--s-m);
|
|
250
273
|
|
|
251
|
-
@include breakpoints.down('
|
|
274
|
+
@include breakpoints.down('l') {
|
|
252
275
|
&::before {
|
|
253
|
-
@include site-header-
|
|
276
|
+
@include site-header-dropdown.arrow-up;
|
|
254
277
|
|
|
255
278
|
left: auto;
|
|
256
279
|
right: var(--ecl-search-arrow-position);
|
|
@@ -275,6 +298,7 @@ $language-list: null !default;
|
|
|
275
298
|
margin-top: var(--s-m);
|
|
276
299
|
}
|
|
277
300
|
|
|
301
|
+
.ecl-site-header__custom-action-icon,
|
|
278
302
|
.ecl-site-header__language-icon {
|
|
279
303
|
align-items: center;
|
|
280
304
|
display: flex;
|
|
@@ -313,29 +337,44 @@ $language-list: null !default;
|
|
|
313
337
|
}
|
|
314
338
|
// stylelint-enable plugin/selector-bem-pattern
|
|
315
339
|
|
|
316
|
-
@include breakpoints.down('
|
|
340
|
+
@include breakpoints.down('l') {
|
|
341
|
+
.ecl-site-header__custom-action-toggle,
|
|
317
342
|
.ecl-site-header__login-toggle,
|
|
318
343
|
.ecl-site-header__search-toggle,
|
|
319
344
|
.ecl-site-header__language-selector {
|
|
320
|
-
font-size: 0;
|
|
321
|
-
line-height: 0;
|
|
322
|
-
padding: calc(var(--s-xs) - 1px) 0;
|
|
345
|
+
font-size: 0 !important;
|
|
346
|
+
line-height: 0 !important;
|
|
347
|
+
padding: calc(var(--s-xs) - 1px) 0 !important;
|
|
348
|
+
|
|
349
|
+
&.ecl-link {
|
|
350
|
+
.ecl-link__label {
|
|
351
|
+
display: none;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
323
354
|
|
|
324
|
-
.ecl-
|
|
325
|
-
|
|
326
|
-
width: 1.5rem;
|
|
355
|
+
.ecl-link__icon-container {
|
|
356
|
+
margin-inline-start: 0;
|
|
327
357
|
}
|
|
328
358
|
}
|
|
329
359
|
}
|
|
330
360
|
|
|
331
361
|
/* stylelint-disable-next-line order/order */
|
|
332
362
|
@include breakpoints.up('s') {
|
|
363
|
+
.ecl-site-header__logo-image {
|
|
364
|
+
height: map.get($site-header, 'logo-height-m');
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.ecl-site-header .ecl-menu__open,
|
|
368
|
+
.ecl-site-header .ecl-mega-menu__open {
|
|
369
|
+
top: 14px;
|
|
370
|
+
}
|
|
371
|
+
|
|
333
372
|
.ecl-site-header__logo-link {
|
|
334
373
|
flex-grow: 0;
|
|
335
374
|
}
|
|
336
375
|
}
|
|
337
376
|
|
|
338
|
-
@include breakpoints.up('
|
|
377
|
+
@include breakpoints.up('l') {
|
|
339
378
|
.ecl-site-header__logo-link {
|
|
340
379
|
margin-top: 0;
|
|
341
380
|
}
|
|
@@ -345,7 +384,7 @@ $language-list: null !default;
|
|
|
345
384
|
}
|
|
346
385
|
}
|
|
347
386
|
|
|
348
|
-
@include breakpoints.up('
|
|
387
|
+
@include breakpoints.up('xl') {
|
|
349
388
|
.ecl-site-header {
|
|
350
389
|
.ecl-site-header__cta {
|
|
351
390
|
align-self: center;
|
|
@@ -403,6 +442,10 @@ $language-list: null !default;
|
|
|
403
442
|
margin-inline-end: 0;
|
|
404
443
|
}
|
|
405
444
|
|
|
445
|
+
.ecl-site-header__site-name--mobile-only {
|
|
446
|
+
display: none;
|
|
447
|
+
}
|
|
448
|
+
|
|
406
449
|
.ecl-site-header__container {
|
|
407
450
|
align-items: flex-end;
|
|
408
451
|
flex-direction: row;
|
|
@@ -421,17 +464,20 @@ $language-list: null !default;
|
|
|
421
464
|
.ecl-site-header__logo-image {
|
|
422
465
|
display: block;
|
|
423
466
|
|
|
467
|
+
&.ecl-site-header__logo-image--s {
|
|
468
|
+
height: map.get($site-header, 'logo-height-s');
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
&.ecl-site-header__logo-image--m {
|
|
472
|
+
height: map.get($site-header, 'logo-height-m');
|
|
473
|
+
}
|
|
474
|
+
|
|
424
475
|
&.ecl-site-header__logo-image--l {
|
|
425
476
|
height: map.get($site-header, 'logo-height-lg-l');
|
|
426
477
|
}
|
|
427
478
|
}
|
|
428
479
|
|
|
429
480
|
.ecl-site-header__action {
|
|
430
|
-
.ecl-button--icon-only .ecl-button__icon {
|
|
431
|
-
height: map.get($theme, 'icon', 'xs');
|
|
432
|
-
width: map.get($theme, 'icon', 'xs');
|
|
433
|
-
}
|
|
434
|
-
|
|
435
481
|
.ecl-form-group {
|
|
436
482
|
width: map.get($site-header, 'search-width-l');
|
|
437
483
|
}
|
|
@@ -457,19 +503,14 @@ $language-list: null !default;
|
|
|
457
503
|
}
|
|
458
504
|
}
|
|
459
505
|
|
|
506
|
+
.ecl-site-header__custom-action-toggle,
|
|
460
507
|
.ecl-site-header__login-toggle,
|
|
461
508
|
.ecl-site-header__language-selector {
|
|
462
509
|
.ecl-site-header__icon {
|
|
463
|
-
height: map.get($theme, 'icon', 'xs');
|
|
464
510
|
margin-inline-end: var(--s-xs);
|
|
465
|
-
width: map.get($theme, 'icon', 'xs');
|
|
466
511
|
}
|
|
467
512
|
}
|
|
468
513
|
|
|
469
|
-
.ecl-site-header__login-toggle {
|
|
470
|
-
margin-inline-end: var(--s-xs) !important;
|
|
471
|
-
}
|
|
472
|
-
|
|
473
514
|
.ecl-site-header__search-toggle {
|
|
474
515
|
display: none;
|
|
475
516
|
}
|
|
@@ -498,7 +539,7 @@ $language-list: null !default;
|
|
|
498
539
|
// stylelint-enable plugin/selector-bem-pattern
|
|
499
540
|
}
|
|
500
541
|
|
|
501
|
-
@
|
|
542
|
+
@media (width >= 1368px) {
|
|
502
543
|
.ecl-site-header__action .ecl-form-group {
|
|
503
544
|
width: map.get($site-header, 'search-width-xl');
|
|
504
545
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
{#
|
|
4
4
|
Parameters:
|
|
5
|
-
- "icon_path" (string) (default: ''): URL to icons file
|
|
6
5
|
- "language_selector" (associative array) (default: predefined structure): Language switcher settings. format:
|
|
7
6
|
{
|
|
8
7
|
"href": (string) (default: ''): URL for switcher
|
|
@@ -37,7 +36,6 @@
|
|
|
37
36
|
{# Default variables #}
|
|
38
37
|
|
|
39
38
|
{% set _language_selector = language_selector|default({}) %}
|
|
40
|
-
{% set _icon_path = icon_path|default('') %}
|
|
41
39
|
{% set _label = _language_selector.label|default('') %}
|
|
42
40
|
|
|
43
41
|
{# Internal logic - Process properties #}
|
|
@@ -50,7 +48,7 @@
|
|
|
50
48
|
|
|
51
49
|
<div class="ecl-site-header__language">
|
|
52
50
|
<a
|
|
53
|
-
class="ecl-button ecl-button--tertiary ecl-site-header__language-selector"
|
|
51
|
+
class="ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__language-selector"
|
|
54
52
|
href="{{ _language_selector.href|default('') }}"
|
|
55
53
|
data-ecl-language-selector
|
|
56
54
|
role="button"
|
|
@@ -62,9 +60,8 @@
|
|
|
62
60
|
<span class="ecl-site-header__language-icon">
|
|
63
61
|
{% include '@ecl/icon/icon.html.twig' with {
|
|
64
62
|
icon: {
|
|
65
|
-
path: _icon_path,
|
|
66
63
|
name: 'global',
|
|
67
|
-
size: '
|
|
64
|
+
size: 'm'
|
|
68
65
|
},
|
|
69
66
|
as_image: true,
|
|
70
67
|
extra_classes: 'ecl-site-header__icon',
|
|
@@ -89,6 +86,7 @@
|
|
|
89
86
|
{% if _language_selector.overlay.close is not empty %}
|
|
90
87
|
{% include '@ecl/button/button.html.twig' with _language_selector.overlay.close|merge({
|
|
91
88
|
variant: 'tertiary',
|
|
89
|
+
style: 'neutral',
|
|
92
90
|
extra_classes: 'ecl-site-header__language-close',
|
|
93
91
|
extra_attributes: [{
|
|
94
92
|
name: 'data-ecl-language-list-close',
|
|
@@ -109,7 +107,7 @@
|
|
|
109
107
|
{{- _language_selector.eu_category -}}
|
|
110
108
|
</div>
|
|
111
109
|
{% endif %}
|
|
112
|
-
<ul class="ecl-site-header__language-list">
|
|
110
|
+
<ul class="ecl-site-header__language-list" translate="no">
|
|
113
111
|
{% for _item in _language_selector.overlay.items %}
|
|
114
112
|
<li class="ecl-site-header__language-item">
|
|
115
113
|
{% set _link_label %}
|
|
@@ -145,7 +143,7 @@
|
|
|
145
143
|
{{- _language_selector.non_eu_category -}}
|
|
146
144
|
</div>
|
|
147
145
|
{% endif %}
|
|
148
|
-
<ul class="ecl-site-header__language-list">
|
|
146
|
+
<ul class="ecl-site-header__language-list" translate="no">
|
|
149
147
|
{% for _item in _language_selector.overlay.non_eu_items %}
|
|
150
148
|
<li class="ecl-site-header__language-item">
|
|
151
149
|
{% set _link_label %}
|
package/site-header-print.scss
CHANGED
|
@@ -29,25 +29,12 @@ $site-header: null !default;
|
|
|
29
29
|
display: none;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.ecl-site-header__banner
|
|
33
|
-
|
|
34
|
-
font: map.get($theme, 'font-print', 'm');
|
|
35
|
-
|
|
36
|
-
.ecl-link {
|
|
37
|
-
color: var(--cm-on-surface-dark, var(--c-d));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.ecl-link::after {
|
|
41
|
-
display: none;
|
|
42
|
-
}
|
|
32
|
+
.ecl-site-header__banner {
|
|
33
|
+
display: none !important;
|
|
43
34
|
}
|
|
44
35
|
|
|
45
|
-
.ecl-site-header__banner {
|
|
46
|
-
|
|
47
|
-
font: map.get($theme, 'font-print', '3xl');
|
|
48
|
-
font-family: var(--ecl-font-family-print-alt);
|
|
49
|
-
font-weight: map.get($theme, 'font-weight-print', 'bold');
|
|
50
|
-
margin-top: map.get($theme, 'spacing-print', 'xs');
|
|
36
|
+
.ecl-site-header__banner-top {
|
|
37
|
+
display: none;
|
|
51
38
|
}
|
|
52
39
|
|
|
53
40
|
.ecl-site-header__logo-link::after {
|