From c08c3ca9ba23697524053d2e47c5aa36fa4c0e73 Mon Sep 17 00:00:00 2001 From: Ekaterina Kondareva <> Date: Tue, 17 Nov 2020 21:41:19 +0200 Subject: [PATCH] desktop menu nav, functionality, v.2 --- src/components.d.ts | 2 +- .../hy-desktop-menu-links.scss | 3 - .../hy-desktop-menu-links.tsx | 67 --------- .../hy-desktop-menu-panel.scss | 7 - .../hy-desktop-menu-panel.tsx | 17 --- src/components/icon/readme.md | 4 + .../navigation/menu-item/menu-item.scss | 44 ++++++ .../navigation/menu-item/menu-item.tsx | 11 ++ .../menu-level-container.scss | 16 ++- .../menu-level-container.tsx | 3 +- .../hy-desktop-menu-links.scss | 41 ++++++ .../hy-desktop-menu-links.tsx | 136 ++++++++++++++++++ .../hy-desktop-menu-links/readme.md | 7 +- .../hy-desktop-menu-panel.scss | 26 ++++ .../hy-desktop-menu-panel.tsx | 51 +++++++ .../hy-desktop-menu-panel/readme.md | 7 +- src/components/site-header/readme.md | 6 +- src/components/site-header/site-header.scss | 9 -- src/components/site-header/site-header.tsx | 41 ++++++ 19 files changed, 386 insertions(+), 112 deletions(-) delete mode 100644 src/components/hy-desktop-menu-links/hy-desktop-menu-links.scss delete mode 100644 src/components/hy-desktop-menu-links/hy-desktop-menu-links.tsx delete mode 100644 src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.scss delete mode 100644 src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx create mode 100644 src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss create mode 100644 src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx rename src/components/{ => site-header}/hy-desktop-menu-links/readme.md (85%) create mode 100644 src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.scss create mode 100644 src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx rename src/components/{ => site-header}/hy-desktop-menu-panel/readme.md (73%) diff --git a/src/components.d.ts b/src/components.d.ts index a6e62138..46deb148 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -29,7 +29,7 @@ import { ProcessFlowBoxVariants, SiteLogoSize, } from './utils/utils'; -import {DesktopLinks} from './components/hy-desktop-menu-links/hy-desktop-menu-links'; +import {DesktopLinks} from './components/site-header/hy-desktop-menu-links/hy-desktop-menu-links'; import {FooterBaseLinks, FooterBaseSome} from './components/footer/hy-footer-base/hy-footer-base'; import {FooterInfoLinks} from './components/footer/hy-footer-info/hy-footer-info'; import {KeyFigureValue} from './components/hy-key-figure-group/hy-key-figure-group'; diff --git a/src/components/hy-desktop-menu-links/hy-desktop-menu-links.scss b/src/components/hy-desktop-menu-links/hy-desktop-menu-links.scss deleted file mode 100644 index 5d4e87f3..00000000 --- a/src/components/hy-desktop-menu-links/hy-desktop-menu-links.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - display: block; -} diff --git a/src/components/hy-desktop-menu-links/hy-desktop-menu-links.tsx b/src/components/hy-desktop-menu-links/hy-desktop-menu-links.tsx deleted file mode 100644 index 4a9e3c96..00000000 --- a/src/components/hy-desktop-menu-links/hy-desktop-menu-links.tsx +++ /dev/null @@ -1,67 +0,0 @@ -export interface DesktopLinks { - label: string; - url: string; - menuLinkId: string; -} - -import {Component, h, Element, Prop, State, Watch} from '@stencil/core'; - -@Component({ - tag: 'hy-desktop-menu-links', - styleUrl: 'hy-desktop-menu-links.scss', - shadow: true, -}) -export class HyDesktopMenuLinks { - @Element() el: HTMLElement; - /* - First level menu links to be displayed on Desktop screens. - * */ - @Prop() dataDesktopLinks: DesktopLinks[] | string; - private _dataDesktopLinks: DesktopLinks[]; - @State() firstLevelLinksList: Array<object> = []; - - @Watch('dataDesktopLinks') dataDesktopLinksWatcher(data: DesktopLinks[] | string) { - this._dataDesktopLinks = typeof data === 'string' ? JSON.parse(data) : data; - } - - componentWillLoad() { - this.dataDesktopLinksWatcher(this.dataDesktopLinks); - } - - handleMenuDesktopHover(id) { - console.log(id); - - let panel = (this.el.parentElement as HTMLElement).nextElementSibling; - if (panel) { - //@todo hide/show panel here - - //@todo show proper subtree on panel based on given menu-link-id - console.log(document.querySelectorAll('[trigger-item="' + id + '"]')[0]); - /* - <hy-menu-item menu-link-id="538c248e4fd3cde8e72463b2387b571f" url="/en/lets-research" label="Research" data-drupal-link-system-path="node/90" class="hy-menu-item hy-menu-item--desktop hydrated" depth="1" menu-type="desktop" menu-button-submenu-expand="Expand submenu for"> - * */ - /* - <hy-menu-level-container menu-level="2" aria-expanded="false" class="hy-menu-level-container hy-menu-level-container--level-2 hy-menu-level-container--mobile hydrated" tabindex="-1" depth="2" trigger-item="68f5a4fa9dae69bb944a173f3f8af88f"><!----><hy-menu-item menu-type="mobile" class="hy-menu-item hy-menu-item--mobile hydrated" depth="2"> - * */ - } - } - - componentDidLoad() { - const links = this._dataDesktopLinks as Array<DesktopLinks>; - let firstLevelLinksList = []; - - for (let i = 0; i < links.length; i++) { - let className = 'desktop-menu-link-' + links[i].menuLinkId; - firstLevelLinksList.push( - <a class={className} href={links[i].url} onMouseOver={() => this.handleMenuDesktopHover(links[i].menuLinkId)}> - {links[i].label} - </a> - ); - } - this.firstLevelLinksList = firstLevelLinksList; - } - - render() { - return <div class={'hy-site-header__menu-desktop'}>{this.firstLevelLinksList}</div>; - } -} diff --git a/src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.scss b/src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.scss deleted file mode 100644 index 7fda1ffc..00000000 --- a/src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.scss +++ /dev/null @@ -1,7 +0,0 @@ -:host { - display: block; -} - -.hy-desktop-menu-panel { - background-color: cyan; -} diff --git a/src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx b/src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx deleted file mode 100644 index c045724e..00000000 --- a/src/components/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import {Component, h} from '@stencil/core'; - -@Component({ - tag: 'hy-desktop-menu-panel', - styleUrl: 'hy-desktop-menu-panel.scss', - shadow: true, -}) -export class HyDesktopMenuPanel { - render() { - const classAttributes = ['hy-desktop-menu-panel'].join(' '); - return ( - <div class={classAttributes}> - <slot></slot> - </div> - ); - } -} diff --git a/src/components/icon/readme.md b/src/components/icon/readme.md index 1a82cd62..2289e926 100644 --- a/src/components/icon/readme.md +++ b/src/components/icon/readme.md @@ -19,6 +19,8 @@ - [hy-button](../button) - [hy-cta-button](../cta-button) - [hy-cta-link](../cta-link) +- [hy-desktop-menu-links](../site-header/hy-desktop-menu-links) +- [hy-desktop-menu-panel](../site-header/hy-desktop-menu-panel) - [hy-footer-action](../footer/hy-footer-action) - [hy-footer-base](../footer/hy-footer-base) - [hy-footer-link-item](../footer/hy-footer-link-item) @@ -44,6 +46,8 @@ graph TD; hy-button --> hy-icon hy-cta-button --> hy-icon hy-cta-link --> hy-icon + hy-desktop-menu-links --> hy-icon + hy-desktop-menu-panel --> hy-icon hy-footer-action --> hy-icon hy-footer-base --> hy-icon hy-footer-link-item --> hy-icon diff --git a/src/components/navigation/menu-item/menu-item.scss b/src/components/navigation/menu-item/menu-item.scss index 830797c2..00dd904c 100644 --- a/src/components/navigation/menu-item/menu-item.scss +++ b/src/components/navigation/menu-item/menu-item.scss @@ -1,3 +1,12 @@ +:host(.hy-menu-item--desktop.hy-menu-item--is-active) { + display: block; + visibility: visible; +} +:host(.hy-menu-item--desktop:not(.hy-menu-item--is-active)) { + display: none; + visibility: hidden; +} + // Mobile. :host(.hy-menu-item--mobile) { background-color: var(--grayscale-white); @@ -37,6 +46,34 @@ visibility: visible !important; } +:host(.hy-menu-item--desktop[depth='1']) { + a { + @include font-size(18px, 18px); //@todo check font size + border: 1px solid orange; + background-color: var(--grayscale-background-box); + margin-bottom: 8px; //@todo check margin + padding-left: 32px; + padding-right: 32px; + text-transform: none; + + .hy-menu-item__label { + border: none; + } + } + a:before { + } +} +:host(.hy-menu-item--desktop[depth='2']) { + a { + @include font-size(14px, 14px); //@todo check font size + padding-left: 32px; + padding-right: 32px; + text-transform: none; + } + a:before { + } +} + :host(.hy-menu-item--desktop) { border: 0 none; --menu-item-display: none; @@ -125,6 +162,13 @@ a { } } + &.is-heading { + display: inherit; + @include breakpoint($extrawide) { + display: none; + } + } + &.hy-menu-item--desktop { @include breakpoint($medium) { @include font-size(14px, 14px); diff --git a/src/components/navigation/menu-item/menu-item.tsx b/src/components/navigation/menu-item/menu-item.tsx index c09ed296..da5b2dbb 100644 --- a/src/components/navigation/menu-item/menu-item.tsx +++ b/src/components/navigation/menu-item/menu-item.tsx @@ -165,8 +165,19 @@ export class MenuItem { 'is-demo': this.isDemo, }} > + {this.depth == 1 && ( + <span class="hy-menu-item__heading__icon"> + <hy-icon icon={'hy-icon-arrow-right'} size={20} /> + </span> + )} + {this.depth == 2 && ( + <span class="hy-menu-item__heading__icon"> + <hy-icon icon={'hy-icon-caret-right'} size={10} /> + </span> + )} <span class={'hy-menu-item__label'}>{this.label}</span> </a> + {this.hasChildren && <slot />} </Host> ); case MenuType.mobile: diff --git a/src/components/navigation/menu-level-container/menu-level-container.scss b/src/components/navigation/menu-level-container/menu-level-container.scss index b7459214..a80d5227 100644 --- a/src/components/navigation/menu-level-container/menu-level-container.scss +++ b/src/components/navigation/menu-level-container/menu-level-container.scss @@ -19,14 +19,24 @@ } &--desktop { - align-items: center; + //align-items: center; + align-items: flex-start; display: flex; - flex-flow: row; + flex-flow: column; + //max-width: 500px; // ?? Ask Mikko width: 100%; - &:not(.hy-menu-level-container--level-1) { + &.is-open { + display: block; + visibility: visible; + } + + &:not(.hy-menu-level-container--level-1):not(.hy-menu-level-container--level-2) { display: none; } + &.hy-menu-level-container--level-2 { + background-color: var(--grayscale-background-box); + } } &--sidenav { diff --git a/src/components/navigation/menu-level-container/menu-level-container.tsx b/src/components/navigation/menu-level-container/menu-level-container.tsx index 6233f212..03f77112 100644 --- a/src/components/navigation/menu-level-container/menu-level-container.tsx +++ b/src/components/navigation/menu-level-container/menu-level-container.tsx @@ -123,9 +123,10 @@ export class MenuLevelContainer { switch (this.menuType) { case MenuType.desktop: classAttributes = [...classAttributes, 'hy-menu-level-container--desktop']; + //menu-type="sidenav" return ( - <Host class={classAttributes.join(' ')}> + <Host class={classAttributes.join(' ')} menu-type="desktop"> <slot /> </Host> ); diff --git a/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss new file mode 100644 index 00000000..8877644e --- /dev/null +++ b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss @@ -0,0 +1,41 @@ +:host { + display: block; +} + +.hy-site-header { + &__menu-desktop { + align-items: center; + display: flex; + flex-flow: row; + width: 100%; + + .desktop-menu-link { + color: var(--brand-main-nearly-black); + cursor: pointer; + font-family: var(--main-font-family); + + @include breakpoint($medium) { + @include font-size(14px, 14px); + @include font-weight($bold); + border-top: 0 none; + padding: 10px 15px; + text-transform: uppercase; + } + + @include breakpoint($extrawide) { + @include font-size(15px, 16px); + padding: 10px 8px; + } + + @include breakpoint($overwide) { + @include font-size(18px, 16px); + padding: 10px; + } + + &--is-active { + background-color: var(--grayscale-background-box); + padding: 52px 10px; + } + } + } +} diff --git a/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx new file mode 100644 index 00000000..3dd11eae --- /dev/null +++ b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx @@ -0,0 +1,136 @@ +export interface DesktopLinks { + label: string; + url: string; + menuLinkId: string; +} + +import {Component, h, Element, Listen, Prop, State, Watch} from '@stencil/core'; + +@Component({ + tag: 'hy-desktop-menu-links', + styleUrl: 'hy-desktop-menu-links.scss', + shadow: true, +}) +export class HyDesktopMenuLinks { + @Element() el: HTMLElement; + /* + First level menu links to be displayed on Desktop screens. + * */ + @Prop() dataDesktopLinks: DesktopLinks[] | string; + private _dataDesktopLinks: DesktopLinks[]; + @State() firstLevelLinksList: Array<object> = []; + + @Watch('dataDesktopLinks') dataDesktopLinksWatcher(data: DesktopLinks[] | string) { + this._dataDesktopLinks = typeof data === 'string' ? JSON.parse(data) : data; + } + + componentWillLoad() { + this.dataDesktopLinksWatcher(this.dataDesktopLinks); + } + + closeDesktopMenuPanel() { + let hySiteHeader = document.querySelectorAll('hy-site-header')[0]; + + // Remove is-active from desktop menu links. + let hyDesktopMenuLinks = hySiteHeader.shadowRoot.querySelector('hy-desktop-menu-links'); + let desktopMenuItems = hyDesktopMenuLinks.shadowRoot.querySelectorAll('.desktop-menu-link'); + desktopMenuItems.forEach((item) => { + (item as HTMLElement).classList.remove('desktop-menu-link--is-active'); + }); + + // Close desktop menu panel. + let hyDesktopPanel = hySiteHeader.shadowRoot.querySelector('hy-desktop-menu-panel'); + if (hyDesktopPanel) { + //hide panel, remove class is-active + (hyDesktopPanel as HTMLElement).classList.remove('hy-desktop-menu-panel--is-active'); + + let parentMenu = document.querySelectorAll('hy-menu-level-container[menu-level="2"]'); + if (parentMenu) { + const items = Array.from(parentMenu); + items.forEach((item) => { + item.classList.add('hy-menu-level-container--mobile'); + item.classList.remove('hy-menu-level-container--desktop'); + }); + } + } + } + + @Listen('click') + handleMenuDesktopLinkClick(event) { + this.closeDesktopMenuPanel(); + event.stopPropagation(); + } + + handleMenuDesktopHover(id) { + let desktopMenuItems = this.el.shadowRoot.querySelectorAll('.desktop-menu-link'); + desktopMenuItems.forEach((item) => { + (item as HTMLElement).classList.remove('desktop-menu-link--is-active'); + }); + let desktopMenuActivatedItems = this.el.shadowRoot.querySelectorAll('.desktop-menu-link[link-id="' + id + '"]'); + (desktopMenuActivatedItems[0] as HTMLElement).classList.add('desktop-menu-link--is-active'); + + let hySiteHeader = document.querySelectorAll('hy-site-header')[0]; + if (hySiteHeader) { + let hyDesktopPanel = hySiteHeader.shadowRoot.querySelector('hy-desktop-menu-panel'); + + if (hyDesktopPanel) { + //show panel, add class is-active + (hyDesktopPanel as HTMLElement).classList.add('hy-desktop-menu-panel--is-active'); + + //@todo show proper subtree on panel based on given menu-link-id + // Hide all menu-item that have other menu-link-id attribute value. + let menuItems = document.querySelectorAll('hy-site-header hy-menu-item[depth="1"]'); + menuItems.forEach((item) => { + (item as HTMLElement).classList.remove('hy-menu-item--is-active'); + }); + + let menuItemsLevel2 = document.querySelectorAll('hy-site-header hy-menu-item[depth="2"]'); + menuItemsLevel2.forEach((item) => { + (item as HTMLElement).classList.remove('hy-menu-item--is-active'); + }); + + let menuActivatedItems = document.querySelectorAll('hy-site-header hy-menu-item[menu-link-id="' + id + '"]'); + (menuActivatedItems[0] as HTMLElement).classList.add('hy-menu-item--is-active'); + + let parentMenu = (menuActivatedItems[0] as HTMLElement).querySelector( + 'hy-menu-level-container[menu-level="2"]' + ); + if (parentMenu && parentMenu.children) { + (parentMenu as HTMLElement).classList.remove('hy-menu-level-container--mobile'); + (parentMenu as HTMLElement).classList.add('hy-menu-level-container--desktop'); + const items = Array.from(parentMenu.children); + items.forEach((item) => { + item.classList.add('hy-menu-item--is-active'); + }); + } + } + } + } + + componentDidLoad() { + const links = this._dataDesktopLinks as Array<DesktopLinks>; + let firstLevelLinksList = []; + + for (let i = 0; i < links.length; i++) { + //let className = 'desktop-menu-link-' + links[i].menuLinkId; + let className = 'desktop-menu-link'; + firstLevelLinksList.push( + <div + class={className} + link-id={links[i].menuLinkId} + onMouseOver={() => this.handleMenuDesktopHover(links[i].menuLinkId)} + > + {links[i].label} + <span class="desktop-menu-link__heading__icon"> + <hy-icon icon={'hy-icon-caret-right'} size={10} /> + </span> + </div> + ); + } + this.firstLevelLinksList = firstLevelLinksList; + } + + render() { + return <div class={'hy-site-header__menu-desktop'}>{this.firstLevelLinksList}</div>; + } +} diff --git a/src/components/hy-desktop-menu-links/readme.md b/src/components/site-header/hy-desktop-menu-links/readme.md similarity index 85% rename from src/components/hy-desktop-menu-links/readme.md rename to src/components/site-header/hy-desktop-menu-links/readme.md index 3d6ce575..97289c9d 100644 --- a/src/components/hy-desktop-menu-links/readme.md +++ b/src/components/site-header/hy-desktop-menu-links/readme.md @@ -12,12 +12,17 @@ ### Used by -- [hy-site-header](../site-header) +- [hy-site-header](..) + +### Depends on + +- [hy-icon](../../icon) ### Graph ```mermaid graph TD; + hy-desktop-menu-links --> hy-icon hy-site-header --> hy-desktop-menu-links style hy-desktop-menu-links fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.scss b/src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.scss new file mode 100644 index 00000000..aed2a965 --- /dev/null +++ b/src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.scss @@ -0,0 +1,26 @@ +:host { + display: none; +} +:host(.hy-desktop-menu-panel--is-active) { + display: block; +} + +.hy-desktop-menu-panel { + flex-direction: row; + justify-content: center; + position: relative; + top: 10px; + width: 100%; + + &__desktop-menu { + position: relative; + left: 300px; + width: 50%; + } + + &__panel-toggle { + position: absolute; + right: 10px; + top: 10px; + } +} diff --git a/src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx b/src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx new file mode 100644 index 00000000..0e99bfc8 --- /dev/null +++ b/src/components/site-header/hy-desktop-menu-panel/hy-desktop-menu-panel.tsx @@ -0,0 +1,51 @@ +import {Component, h} from '@stencil/core'; +import {ColorVariant} from '../../../utils/utils'; + +@Component({ + tag: 'hy-desktop-menu-panel', + styleUrl: 'hy-desktop-menu-panel.scss', + shadow: true, +}) +export class HyDesktopMenuPanel { + closeDesktopMenuPanel() { + let hySiteHeader = document.querySelectorAll('hy-site-header')[0]; + + // Remove is-active from desktop menu links. + let hyDesktopMenuLinks = hySiteHeader.shadowRoot.querySelector('hy-desktop-menu-links'); + let desktopMenuItems = hyDesktopMenuLinks.shadowRoot.querySelectorAll('.desktop-menu-link'); + desktopMenuItems.forEach((item) => { + (item as HTMLElement).classList.remove('desktop-menu-link--is-active'); + }); + + // Close desktop menu panel. + let hyDesktopPanel = hySiteHeader.shadowRoot.querySelector('hy-desktop-menu-panel'); + if (hyDesktopPanel) { + //hide panel, remove class is-active + (hyDesktopPanel as HTMLElement).classList.remove('hy-desktop-menu-panel--is-active'); + } + } + + render() { + const classAttributes = ['hy-desktop-menu-panel'].join(' '); + + return ( + <div class={classAttributes} onMouseLeave={() => this.closeDesktopMenuPanel()}> + <div class="hy-desktop-menu-panel__desktop-menu"> + <slot></slot> + </div> + <button + onClick={() => this.closeDesktopMenuPanel()} + class={{ + 'hy-desktop-menu-panel__panel-toggle': true, + }} + aria-label="close" + > + <span class="hy-desktop-menu-panel__panel-toggle__label"> + CLOSE + <hy-icon icon={'hy-icon-remove'} size={20} fill={ColorVariant.black} /> + </span> + </button> + </div> + ); + } +} diff --git a/src/components/hy-desktop-menu-panel/readme.md b/src/components/site-header/hy-desktop-menu-panel/readme.md similarity index 73% rename from src/components/hy-desktop-menu-panel/readme.md rename to src/components/site-header/hy-desktop-menu-panel/readme.md index 32711eb2..51da121c 100644 --- a/src/components/hy-desktop-menu-panel/readme.md +++ b/src/components/site-header/hy-desktop-menu-panel/readme.md @@ -6,12 +6,17 @@ ### Used by -- [hy-site-header](../site-header) +- [hy-site-header](..) + +### Depends on + +- [hy-icon](../../icon) ### Graph ```mermaid graph TD; + hy-desktop-menu-panel --> hy-icon hy-site-header --> hy-desktop-menu-panel style hy-desktop-menu-panel fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/site-header/readme.md b/src/components/site-header/readme.md index 1cc81add..119c5f02 100644 --- a/src/components/site-header/readme.md +++ b/src/components/site-header/readme.md @@ -21,11 +21,11 @@ ### Depends on - [hy-site-logo](site-logo) -- [hy-desktop-menu-links](../hy-desktop-menu-links) +- [hy-desktop-menu-links](hy-desktop-menu-links) - [hy-menu-language](../navigation/menu-language) - [hy-site-search](site-search) - [hy-icon](../icon) -- [hy-desktop-menu-panel](../hy-desktop-menu-panel) +- [hy-desktop-menu-panel](hy-desktop-menu-panel) ### Graph @@ -38,9 +38,11 @@ graph TD; hy-site-header --> hy-icon hy-site-header --> hy-desktop-menu-panel hy-site-logo --> hy-icon + hy-desktop-menu-links --> hy-icon hy-menu-language --> hy-menu-language-item hy-menu-language --> hy-icon hy-site-search --> hy-icon + hy-desktop-menu-panel --> hy-icon style hy-site-header fill:#f9f,stroke:#333,stroke-width:4px ``` diff --git a/src/components/site-header/site-header.scss b/src/components/site-header/site-header.scss index 39a17b68..58784ad2 100644 --- a/src/components/site-header/site-header.scss +++ b/src/components/site-header/site-header.scss @@ -9,7 +9,6 @@ display: flex; flex-flow: row; place-content: center space-between; - //position: relative; z-index: 99; @include breakpoint($medium) { @@ -29,13 +28,6 @@ height: 120px; } - &__desktop-header { - background-color: red; - } - &__menu-desktop-container { - background-color: cyan; - } - &__logo-container { margin: 16px 8px; @@ -98,7 +90,6 @@ padding: 10px; position: absolute; right: 0; - //top: 10px; top: 17px; z-index: 101; } diff --git a/src/components/site-header/site-header.tsx b/src/components/site-header/site-header.tsx index a3f5fc81..28863f1f 100644 --- a/src/components/site-header/site-header.tsx +++ b/src/components/site-header/site-header.tsx @@ -269,3 +269,44 @@ export class SiteHeader { } } } + +/* +<header class={classAttributes.join(' ')}> + <div class={{'hy-backdrop': true, 'is-active': this.isMenuOpen}} /> + <div class={'hy-site-header__logo-container'}> + <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} /> + </div> + + <hy-desktop-menu-links data-desktop-links={this.dataDesktopLinks}></hy-desktop-menu-links> + + <div class={'menu--secondary'}> + <hy-menu-language + class={'menu--secondary__item is-first'} + is-mobile={false} + data-menu-language={this.dataMenuLanguage} + labels={this.languageLabels} + /> + <hy-site-search + class={'menu--secondary__item'} + size={14} + color={ColorVariant.black} + show-label={true} + labels={this.searchLabels} + /> + {this.donateLink.map((i) => { + return ( + <a class={'menu--secondary__item hy-link__donate'} href={i.url}> + <hy-icon icon={'hy-icon-euro'} size={14} fill={ColorVariant.black} /> + <span class={'hy-link__donate__label'}>{i.label}</span> + </a> + ); + })} + </div> + </header>, + + <header> + <hy-desktop-menu-panel> + <slot name={'menu'} /> + </hy-desktop-menu-panel> + </header> +*/ -- GitLab