@ecl/site-header 5.0.0-alpha.3 → 5.0.0-alpha.5

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 CHANGED
@@ -16,6 +16,7 @@ npm install --save @ecl/site-header
16
16
  - **"logo"** (associative array) (default: predefined structure): Logo image settings. format:
17
17
  - "title" (string) (default: ''): Logo title attribute.
18
18
  - "alt" (string) (default: ''): Logo alt attribute.
19
+ - "breakpoint": (string) (default: 's') Expected value in EU is "l"
19
20
  - "href" (string) (default: ''): Logo URL.
20
21
  - "src_desktop" (string) (default: ''): Desktop logo image file path
21
22
  - "src_mobile" (string) (default: ''): Mobile logo image file path for EU only
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@ecl/site-header",
3
3
  "author": "European Commission",
4
4
  "license": "EUPL-1.2",
5
- "version": "5.0.0-alpha.3",
5
+ "version": "5.0.0-alpha.5",
6
6
  "description": "ECL Site Header",
7
7
  "publishConfig": {
8
8
  "access": "public"
@@ -10,20 +10,20 @@
10
10
  "main": "site-header.js",
11
11
  "module": "site-header.js",
12
12
  "dependencies": {
13
- "@ecl/button": "5.0.0-alpha.3",
14
- "@ecl/dom-utils": "5.0.0-alpha.3",
15
- "@ecl/grid": "5.0.0-alpha.3",
16
- "@ecl/icon": "5.0.0-alpha.3",
17
- "@ecl/link": "5.0.0-alpha.3",
18
- "@ecl/menu": "5.0.0-alpha.3",
19
- "@ecl/notification": "5.0.0-alpha.3",
20
- "@ecl/picture": "5.0.0-alpha.3",
21
- "@ecl/search-form": "5.0.0-alpha.3",
13
+ "@ecl/button": "5.0.0-alpha.5",
14
+ "@ecl/dom-utils": "5.0.0-alpha.5",
15
+ "@ecl/grid": "5.0.0-alpha.5",
16
+ "@ecl/icon": "5.0.0-alpha.5",
17
+ "@ecl/link": "5.0.0-alpha.5",
18
+ "@ecl/menu": "5.0.0-alpha.5",
19
+ "@ecl/notification": "5.0.0-alpha.5",
20
+ "@ecl/picture": "5.0.0-alpha.5",
21
+ "@ecl/search-form": "5.0.0-alpha.5",
22
22
  "focus-trap": "7.6.4"
23
23
  },
24
24
  "devDependencies": {
25
- "@ecl/resources-ec-logo": "5.0.0-alpha.3",
26
- "@ecl/resources-eu-logo": "5.0.0-alpha.3"
25
+ "@ecl/resources-ec-logo": "5.0.0-alpha.5",
26
+ "@ecl/resources-eu-logo": "5.0.0-alpha.5"
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",
@@ -39,5 +39,5 @@
39
39
  "design-system",
40
40
  "twig"
41
41
  ],
42
- "gitHead": "d81707eac4ec89a4c0858a2e31bcd07284dff272"
42
+ "gitHead": "47fe59d4f5dc0921874036ebf5b3c47b086fbe14"
43
43
  }
@@ -23,7 +23,7 @@ $language-list: null !default;
23
23
  z-index: map.get($theme, 'z-index', 'modal');
24
24
 
25
25
  .ecl-site-header__inner {
26
- box-shadow: var(--sh-6);
26
+ box-shadow: var(--sh-2);
27
27
  }
28
28
 
29
29
  .ecl-site-header__background {
@@ -53,7 +53,7 @@ $language-list: null !default;
53
53
  .ecl-menu__open,
54
54
  .ecl-mega-menu__open {
55
55
  position: relative;
56
- top: calc(-1 * var(--s-2xs));
56
+ top: calc(-1 * var(--s-xl));
57
57
  z-index: 54;
58
58
  }
59
59
 
@@ -74,7 +74,7 @@ $language-list: null !default;
74
74
  }
75
75
 
76
76
  .ecl-site-header__header {
77
- box-shadow: var(--sh-6);
77
+ box-shadow: var(--sh-2);
78
78
  position: relative;
79
79
  z-index: 54;
80
80
  }
@@ -123,7 +123,6 @@ $language-list: null !default;
123
123
  .ecl-site-header__action {
124
124
  align-self: flex-end;
125
125
  display: flex;
126
- padding-bottom: var(--s-2xs);
127
126
 
128
127
  .ecl-button {
129
128
  box-sizing: border-box;
@@ -170,7 +169,7 @@ $language-list: null !default;
170
169
  .ecl-site-header__login-box,
171
170
  .ecl-site-header__search {
172
171
  background-color: map.get($theme, 'color', 'white');
173
- box-shadow: var(--sh-12);
172
+ box-shadow: var(--sh-3);
174
173
  box-sizing: border-box;
175
174
  color: var(--c-d);
176
175
  display: none;
@@ -253,7 +252,7 @@ $language-list: null !default;
253
252
  background-color: map.get($site-header, 'banner-background');
254
253
  color: map.get($site-header, 'banner-text-color');
255
254
  display: block;
256
- font: var(--f-l);
255
+ font: var(--f-2xl);
257
256
  min-height: 1.75rem;
258
257
  padding: var(--s-m) 0;
259
258
 
@@ -298,6 +297,17 @@ $menu-top: calc(44px + 2 * var(--s-xs));
298
297
  top: $menu-top;
299
298
  }
300
299
 
300
+ @include breakpoints.up('s') {
301
+ .ecl-site-header__logo-image {
302
+ height: map.get($site-header, 'logo-height-lg-m');
303
+ }
304
+
305
+ .ecl-site-header .ecl-mega-menu__open,
306
+ .ecl-site-header .ecl-menu__open {
307
+ top: calc(-1 * var(--s-s));
308
+ }
309
+ }
310
+
301
311
  @include breakpoints.down('m') {
302
312
  .ecl-site-header__login-toggle,
303
313
  .ecl-site-header__search-toggle,
@@ -334,7 +344,7 @@ $menu-top: calc(44px + 2 * var(--s-xs));
334
344
 
335
345
  @include breakpoints.up('l') {
336
346
  .ecl-site-header {
337
- box-shadow: var(--sh-6);
347
+ box-shadow: var(--sh-2);
338
348
 
339
349
  .ecl-site-header__cta {
340
350
  align-self: center;
@@ -350,7 +360,7 @@ $menu-top: calc(44px + 2 * var(--s-xs));
350
360
  width: 100%;
351
361
 
352
362
  .ecl-menu__mega {
353
- box-shadow: var(--sh-6);
363
+ box-shadow: var(--sh-2);
354
364
  }
355
365
  }
356
366
 
@@ -497,7 +507,7 @@ $menu-top: calc(44px + 2 * var(--s-xs));
497
507
 
498
508
  .ecl-site-header__banner {
499
509
  box-shadow: none;
500
- font: var(--f-l);
510
+ font: var(--f-3xl);
501
511
  min-height: 0;
502
512
  padding: 0;
503
513
 
@@ -37,7 +37,7 @@ $language-list: null !default;
37
37
  background: transparent;
38
38
  box-shadow: none;
39
39
  display: flex;
40
- min-height: map.get($site-header, 'logo-height-xs');
40
+ min-height: map.get($site-header, 'logo-height-s');
41
41
  top: var(--s-m);
42
42
  padding: 0;
43
43
  position: absolute;
@@ -69,8 +69,8 @@ $language-list: null !default;
69
69
  }
70
70
  }
71
71
 
72
- &.ecl-site-header-with-logo-s .ecl-menu__open,
73
- &.ecl-site-header-with-logo-s .ecl-mega-menu__open {
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,11 @@ $language-list: null !default;
78
78
  }
79
79
  }
80
80
 
81
- &.ecl-site-header-with-logo-m .ecl-menu__open,
82
- &.ecl-site-header-with-logo-m .ecl-mega-menu__open {
83
- top: 14px;
84
- }
85
-
86
- &.ecl-site-header-with-logo-l .ecl-menu__open,
87
- &.ecl-site-header-with-logo-l .ecl-mega-menu__open {
88
- top: 20px;
89
- }
90
-
91
81
  /* stylelint-disable no-descending-specificity */
92
82
  .ecl-menu__open,
93
83
  .ecl-mega-menu__open,
94
- .ecl-menu[aria-expanded='true'] .ecl-menu__open,
95
- .ecl-mega-menu[aria-expanded='true'] .ecl-mega-menu__open {
84
+ .ecl-menu[data-expanded] .ecl-menu__open,
85
+ .ecl-mega-menu[data-expanded] .ecl-mega-menu__open {
96
86
  align-items: center;
97
87
  border: 1px solid transparent;
98
88
  box-sizing: border-box;
@@ -117,8 +107,8 @@ $language-list: null !default;
117
107
  margin-inline-start: var(--s-m);
118
108
  }
119
109
 
120
- .ecl-menu[aria-expanded='true'] .ecl-menu__open,
121
- .ecl-mega-menu[aria-expanded='true'] .ecl-mega-menu__open {
110
+ .ecl-menu[data-expanded] .ecl-menu__open,
111
+ .ecl-mega-menu[data-expanded] .ecl-mega-menu__open {
122
112
  background-color: var(--c-p-20);
123
113
  }
124
114
  /* stylelint-enable no-descending-specificity */
@@ -156,14 +146,6 @@ $language-list: null !default;
156
146
  display: block;
157
147
  height: map.get($site-header, 'logo-height-s');
158
148
  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
149
  }
168
150
 
169
151
  .ecl-site-header__action {
@@ -330,6 +312,15 @@ $language-list: null !default;
330
312
 
331
313
  /* stylelint-disable-next-line order/order */
332
314
  @include breakpoints.up('s') {
315
+ .ecl-site-header__logo-image {
316
+ height: map.get($site-header, 'logo-height-m');
317
+ }
318
+
319
+ .ecl-site-header .ecl-menu__open,
320
+ .ecl-site-header .ecl-mega-menu__open {
321
+ top: 14px;
322
+ }
323
+
333
324
  .ecl-site-header__logo-link {
334
325
  flex-grow: 0;
335
326
  }
@@ -421,6 +412,14 @@ $language-list: null !default;
421
412
  .ecl-site-header__logo-image {
422
413
  display: block;
423
414
 
415
+ &.ecl-site-header__logo-image--s {
416
+ height: map.get($site-header, 'logo-height-s');
417
+ }
418
+
419
+ &.ecl-site-header__logo-image--m {
420
+ height: map.get($site-header, 'logo-height-m');
421
+ }
422
+
424
423
  &.ecl-site-header__logo-image--l {
425
424
  height: map.get($site-header, 'logo-height-lg-l');
426
425
  }
@@ -13,6 +13,7 @@
13
13
  {
14
14
  "title": (string) (default: ''): Logo title attribute.
15
15
  "alt": (string) (default: ''): Logo alt attribute.
16
+ "breakpoint": (string) (default: 's') Breakpoint where to switch the logo displayed. Expected value in EU is "l"
16
17
  "href": (string) (default: ''): Logo URL.
17
18
  "src_desktop": (string) (default: ''): Desktop logo image file path
18
19
  "src_mobile": (string) (default: ''): Mobile logo image file path for EU only
@@ -220,7 +221,7 @@
220
221
  {# Logo #}
221
222
  {% if _logo is not empty and _logo.src_desktop is not empty %}
222
223
  {% set _label %}
223
- {% set _picture = { sources: [{ src: _logo.src_desktop, media: 'l' }] } %}
224
+ {% set _picture = { sources: [{ src: _logo.src_desktop, media: _logo.breakpoint|default('s') }] } %}
224
225
  {% if _logo.src_mobile is defined and _logo.src_mobile is not empty %}
225
226
  {% set _picture = _picture|merge({
226
227
  img: {
package/site-header.js CHANGED
@@ -561,7 +561,9 @@ export class SiteHeader {
561
561
  if (loginRect.x === 0) {
562
562
  const loginToggleRect = this.loginToggle.getBoundingClientRect();
563
563
  const arrowPosition =
564
- window.innerWidth - loginToggleRect.right + loginToggleRect.width / 2;
564
+ document.documentElement.clientWidth -
565
+ loginToggleRect.right +
566
+ loginToggleRect.width / 2;
565
567
 
566
568
  this.loginBox.style.setProperty(
567
569
  '--ecl-login-arrow-position',
@@ -575,7 +577,9 @@ export class SiteHeader {
575
577
  if (searchRect.x === 0) {
576
578
  const searchToggleRect = this.searchToggle.getBoundingClientRect();
577
579
  const arrowPosition =
578
- window.innerWidth - searchToggleRect.right + searchToggleRect.width / 2;
580
+ document.documentElement.clientWidth -
581
+ searchToggleRect.right +
582
+ searchToggleRect.width / 2;
579
583
 
580
584
  this.searchForm.style.setProperty(
581
585
  '--ecl-search-arrow-position',