From b2074d556327b777cb95d1c000cd77478984dea2 Mon Sep 17 00:00:00 2001 From: Maggie Serino Date: Wed, 6 Nov 2024 18:54:39 +0100 Subject: [PATCH 1/6] TMZ-74 wip header fixes --- .../assets/js/hello-plus-header.js | 20 ++-- .../assets/scss/hello-plus-header.scss | 55 +++++++++-- .../classes/render/widget-header-render.php | 12 ++- modules/template-parts/widgets/ehp-footer.php | 12 ++- modules/template-parts/widgets/ehp-header.php | 92 ++++++++++--------- 5 files changed, 124 insertions(+), 67 deletions(-) diff --git a/modules/template-parts/assets/js/hello-plus-header.js b/modules/template-parts/assets/js/hello-plus-header.js index a3d8507a..469cd5b6 100644 --- a/modules/template-parts/assets/js/hello-plus-header.js +++ b/modules/template-parts/assets/js/hello-plus-header.js @@ -131,24 +131,26 @@ class elementorHelloPlusHeaderHandler { toggleSubMenu( event ) { event.preventDefault(); - const subMenu = event.target.nextElementSibling; - const itemTarget = event.target; + const target = event.target; + const isSvg = target.classList.contains( 'ehp-header__submenu-toggle-icon' ); + const targetItem = isSvg ? target.parentElement : target; + const subMenu = isSvg ? target.parentElement.nextElementSibling : target.nextElementSibling; const ariaHidden = subMenu.getAttribute( 'aria-hidden' ); if ( 'true' === ariaHidden ) { - this.openSubMenu( itemTarget, subMenu ); + this.openSubMenu( targetItem, subMenu ); } else { - this.closeSubMenu( itemTarget, subMenu ); + this.closeSubMenu( targetItem, subMenu ); } } - openSubMenu( itemTarget, subMenu ) { - itemTarget.setAttribute( 'aria-expanded', 'true' ); + openSubMenu( targetItem, subMenu ) { + targetItem.setAttribute( 'aria-expanded', 'true' ); subMenu.setAttribute( 'aria-hidden', 'false' ); } - closeSubMenu( itemTarget, subMenu ) { - itemTarget.setAttribute( 'aria-expanded', 'false' ); + closeSubMenu( targetItem, subMenu ) { + targetItem.setAttribute( 'aria-expanded', 'false' ); subMenu.setAttribute( 'aria-hidden', 'true' ); } @@ -207,5 +209,5 @@ class elementorHelloPlusHeaderHandler { } window.addEventListener( 'elementor/frontend/init', () => { - elementorFrontend.hooks.addAction( 'frontend/element_ready/header.default', () => new elementorHelloPlusHeaderHandler() ); + elementorFrontend.hooks.addAction( 'frontend/element_ready/emp-header.default', () => new elementorHelloPlusHeaderHandler() ); } ); diff --git a/modules/template-parts/assets/scss/hello-plus-header.scss b/modules/template-parts/assets/scss/hello-plus-header.scss index d85e4ac1..55104503 100644 --- a/modules/template-parts/assets/scss/hello-plus-header.scss +++ b/modules/template-parts/assets/scss/hello-plus-header.scss @@ -63,6 +63,7 @@ --header-button-icon-size: var(--header-button-primary-icon-size); --header-toggle-icon-color: #555963; + --header-toggle-icon-color-active: #555963; --header-toggle-icon-size: 22px; --header-menu-item-color: #555963; @@ -95,6 +96,7 @@ --header-dropdown-text-align: flex-start; --header-dropdown-divider-color: #E0E1E2; + --header-dropdown-divider-width: 1px; --header-box-padding-block-start: 16px; --header-box-padding-block-end: 16px; @@ -159,10 +161,27 @@ } } + &.has-align-link { + + &-start { + + } + + &-center { + + .ehp-header__site-link { + grid-area: center; + justify-content: center; + } + } + } + &__elements-container { - display: flex; + display: grid; + grid-template-areas: + "start center end"; + grid-template-columns: repeat(3, 1fr); flex-grow: 1; - justify-content: space-between; position: relative; & > .ehp-header__ctas-container { @@ -174,8 +193,6 @@ &__site-link { align-items: center; display: flex; - order: var(--header-logo-order); - justify-content: var(--header-logo-order); img { width: var(--header-logo-width); @@ -209,6 +226,12 @@ transition: $transition; } + svg { + fill: currentColor; + height: 1em; // height is relative to the font-size + width: 1em; // width is relative to the font-size + } + &.has-border { border-color: var(--header-button-border-color); border-style: solid; @@ -285,6 +308,7 @@ cursor: pointer; display: none; grid-area: end; + justify-content: flex-end; order: 3; padding: 0; @@ -299,6 +323,11 @@ width: var(--header-toggle-icon-size); } + .ehp-header__toggle-icon--close { + color: var(--header-toggle-icon-color-active); + fill: var(--header-toggle-icon-color-active); + } + i { color: var(--header-toggle-icon-color); font-size: var(--header-toggle-icon-size); @@ -546,7 +575,7 @@ &.has-responsive-divider { & > .menu-item { - border-bottom: 1px solid var(--header-dropdown-divider-color); + border-bottom: var(--header-dropdown-divider-width) solid var(--header-dropdown-divider-color); padding-block-end: var(--header-menu-item-spacing); width: 100%; @@ -559,6 +588,10 @@ } } + .menu-item { + justify-content: var(--header-dropdown-text-align); + } + .menu-item.menu-item-has-children { align-items: var(--header-dropdown-text-align); display: flex; @@ -574,7 +607,15 @@ @mixin responsive_styles_desktop { + &.has-align-link-start { + + .ehp-header__navigation { + justify-content: center; + } + } + .ehp-header { + &__navigation { align-items: center; background: none !important; // Override the default background color @@ -585,10 +626,6 @@ } } - &__ghost-element { - display: none; - } - &__dropdown { padding: 16px 32px; diff --git a/modules/template-parts/classes/render/widget-header-render.php b/modules/template-parts/classes/render/widget-header-render.php index d0687d71..48239d42 100644 --- a/modules/template-parts/classes/render/widget-header-render.php +++ b/modules/template-parts/classes/render/widget-header-render.php @@ -34,6 +34,8 @@ public function render(): void { $behavior_float = $this->settings['behavior_float']; $behavior_float_shape = $this->settings['behavior_float_shape']; $behavior_on_scroll = $this->settings['behavior_onscroll_select']; + $align_logo = $this->settings['style_align_logo']; + $align_title = $this->settings['style_align_title']; if ( ! empty( $navigation_breakpoint ) ) { $layout_classnames .= ' has-navigation-breakpoint-' . $navigation_breakpoint; @@ -55,6 +57,14 @@ public function render(): void { $layout_classnames .= ' has-behavior-onscroll-' . $behavior_on_scroll; } + if ( ! empty( $align_logo ) ) { + $layout_classnames .= ' has-align-link-' . $align_logo; + } + + if ( ! empty( $align_title ) ) { + $layout_classnames .= ' has-align-link-' . $align_title; + } + $render_attributes = [ 'class' => $layout_classnames, 'data-scroll-behavior' => $behavior_on_scroll, @@ -190,7 +200,7 @@ public function render_navigation(): void { 'ehp-header__navigation', ] ); ?> - +