From ad7a7ade97e42b4be613907cdc10d51288e1b127 Mon Sep 17 00:00:00 2001
From: druid <druid@druids-MBP-2.lan>
Date: Tue, 2 Mar 2021 16:32:26 +0200
Subject: [PATCH] top bar structure

---
 src/components.d.ts                           | 10 +++
 .../menu-language/menu-language.scss          | 17 +++++
 .../menu-language/menu-language.tsx           |  8 ++-
 .../navigation/menu-language/readme.md        |  1 +
 src/components/site-header/readme.md          |  2 +
 src/components/site-header/site-header.scss   | 34 ++++++---
 src/components/site-header/site-header.tsx    | 71 +++++++++++--------
 .../site-header/site-logo/readme.md           | 15 ++--
 .../site-header/site-logo/site-logo.scss      | 36 ++++++++--
 .../site-header/site-logo/site-logo.tsx       |  8 ++-
 .../site-header/site-search/readme.md         |  1 +
 .../site-header/site-search/site-search.scss  | 17 +++++
 .../site-header/site-search/site-search.tsx   |  6 +-
 13 files changed, 168 insertions(+), 58 deletions(-)

diff --git a/src/components.d.ts b/src/components.d.ts
index 058df522..af51b3b7 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -595,6 +595,7 @@ export namespace Components {
   }
   interface HyMenuLanguage {
     dataMenuLanguage: MenuLanguage[] | string;
+    isGroup: boolean;
     isMobile: boolean;
     labels?: ComponentLabels[] | string;
   }
@@ -787,9 +788,12 @@ export namespace Components {
     menuLabelClose?: string;
     menuLabelOpen?: string;
     menuType: MenuType;
+    siteLabel?: string;
+    siteUrl?: string;
   }
   interface HySiteLogo {
     color: ColorVariant;
+    isGroup: boolean;
     label?: string;
     size: SiteLogoSize;
     type: FooterVariant;
@@ -799,6 +803,7 @@ export namespace Components {
     color: ColorVariant;
     dataSearchSpecialTools: string;
     isAlternative: boolean;
+    isGroup: boolean;
     labels?: ComponentLabels[] | string;
     searchLabels: string;
     searchTools: string;
@@ -1969,6 +1974,7 @@ declare namespace LocalJSX {
   }
   interface HyMenuLanguage {
     dataMenuLanguage?: MenuLanguage[] | string;
+    isGroup?: boolean;
     isMobile?: boolean;
     labels?: ComponentLabels[] | string;
     onMenuLanguageToggled?: (event: CustomEvent<any>) => void;
@@ -2166,9 +2172,12 @@ declare namespace LocalJSX {
     onHeaderScrollDown?: (event: CustomEvent<any>) => void;
     onHeaderScrollUp?: (event: CustomEvent<any>) => void;
     onMenuMobileToggled?: (event: CustomEvent<any>) => void;
+    siteLabel?: string;
+    siteUrl?: string;
   }
   interface HySiteLogo {
     color?: ColorVariant;
+    isGroup?: boolean;
     label?: string;
     size?: SiteLogoSize;
     type?: FooterVariant;
@@ -2178,6 +2187,7 @@ declare namespace LocalJSX {
     color?: ColorVariant;
     dataSearchSpecialTools?: string;
     isAlternative?: boolean;
+    isGroup?: boolean;
     labels?: ComponentLabels[] | string;
     onSearchPanelToggled?: (event: CustomEvent<any>) => void;
     searchLabels?: string;
diff --git a/src/components/navigation/menu-language/menu-language.scss b/src/components/navigation/menu-language/menu-language.scss
index 44696d8a..2d5db36d 100644
--- a/src/components/navigation/menu-language/menu-language.scss
+++ b/src/components/navigation/menu-language/menu-language.scss
@@ -76,6 +76,23 @@
     }
   }
 
+  &.is-group {
+    background: var(--grayscale-black);
+    border: 0 none;
+    color: var(--grayscale-white);
+
+    &:hover {
+      color: var(--grayscale-medium);
+      cursor: pointer;
+      span {
+        color: var(--grayscale-medium);
+      }
+      svg {
+        fill: var(--grayscale-medium);
+      }
+    }
+  }
+
   &.is-open {
     .menu--language__toggle__caret {
       transform: rotate(180deg);
diff --git a/src/components/navigation/menu-language/menu-language.tsx b/src/components/navigation/menu-language/menu-language.tsx
index 6af56d64..1acc3254 100644
--- a/src/components/navigation/menu-language/menu-language.tsx
+++ b/src/components/navigation/menu-language/menu-language.tsx
@@ -20,6 +20,7 @@ export class MenuLanguage {
   @Element() el: HTMLElement;
   @Prop() dataMenuLanguage: MenuLanguage[] | string;
   @Prop() isMobile: boolean = false;
+  @Prop() isGroup: boolean = false;
   @Prop() labels?: ComponentLabels[] | string;
   @State() isMenuOpen: boolean = false;
 
@@ -93,6 +94,8 @@ export class MenuLanguage {
 
   render() {
     const black = 'var(--brand-main-nearly-black)';
+    const white = 'var(--grayscale-white)';
+    const svgColor = this.isGroup ? white : black;
 
     return this.isMobile ? (
       <Host class={'menu--language'}>
@@ -121,10 +124,11 @@ export class MenuLanguage {
           class={{
             'menu--language__toggle': true,
             'is-open': this.isMenuOpen,
+            'is-group': this.isGroup,
           }}
           aria-label={this.isMenuOpen ? this._labels['close'] : this._labels['open']}
         >
-          <hy-icon class={'menu--language__globe-icon'} icon={'hy-icon-globe'} size={14} fill={black} />
+          <hy-icon class={'menu--language__globe-icon'} icon={'hy-icon-globe'} size={14} fill={svgColor} />
           <span>
             {this._dataMenuLanguage.map((item) => {
               if (item.isActive) {
@@ -132,7 +136,7 @@ export class MenuLanguage {
               }
             })}
           </span>
-          <hy-icon class={'menu--language__toggle__caret'} icon={'hy-icon-caret-down'} size={8} fill={black} />
+          <hy-icon class={'menu--language__toggle__caret'} icon={'hy-icon-caret-down'} size={8} fill={svgColor} />
         </button>
         <div
           class={{
diff --git a/src/components/navigation/menu-language/readme.md b/src/components/navigation/menu-language/readme.md
index cd19087f..2d769005 100644
--- a/src/components/navigation/menu-language/readme.md
+++ b/src/components/navigation/menu-language/readme.md
@@ -7,6 +7,7 @@
 | Property           | Attribute            | Description | Type                          | Default     |
 | ------------------ | -------------------- | ----------- | ----------------------------- | ----------- |
 | `dataMenuLanguage` | `data-menu-language` |             | `MenuLanguage[] \| string`    | `undefined` |
+| `isGroup`          | `is-group`           |             | `boolean`                     | `false`     |
 | `isMobile`         | `is-mobile`          |             | `boolean`                     | `false`     |
 | `labels`           | `labels`             |             | `ComponentLabels[] \| string` | `undefined` |
 
diff --git a/src/components/site-header/readme.md b/src/components/site-header/readme.md
index f22ff03c..e17f9cc8 100644
--- a/src/components/site-header/readme.md
+++ b/src/components/site-header/readme.md
@@ -20,6 +20,8 @@
 | `menuLabelClose`       | `menu-label-close`        |             | `string`                                                                                           | `undefined`        |
 | `menuLabelOpen`        | `menu-label-open`         |             | `string`                                                                                           | `undefined`        |
 | `menuType`             | `menu-type`               |             | `MenuType.desktop \| MenuType.mobile \| MenuType.sidenav \| MenuType.sidepanel \| MenuType.tablet` | `MenuType.default` |
+| `siteLabel`            | `site-label`              |             | `string`                                                                                           | `undefined`        |
+| `siteUrl`              | `site-url`                |             | `string`                                                                                           | `undefined`        |
 
 ## Events
 
diff --git a/src/components/site-header/site-header.scss b/src/components/site-header/site-header.scss
index 162b32b0..f2299aac 100644
--- a/src/components/site-header/site-header.scss
+++ b/src/components/site-header/site-header.scss
@@ -57,9 +57,16 @@
   @include breakpoint($xlarge) {
     height: 112px;
   }
+
+  // Group menus on group pages
+  &.group {
+    @include breakpoint($narrow) {
+      justify-content: flex-start;
+    }
+  }
 }
 
-.hy-site-header__content-group {
+.hy-site-header__content-top {
   align-items: center;
   background-color: var(--grayscale-black);
   color: var(--grayscale-white);
@@ -268,8 +275,6 @@
 
 .hy-link__donate {
   @include breakpoint($wide) {
-    //margin-left: 10px;
-    //margin-right: 10px;
     padding: 0;
     text-decoration: none;
 
@@ -280,16 +285,9 @@
   }
 
   @include breakpoint($extrawide) {
-    //margin-left: 8px;
-    //margin-right: 32px;
     margin-right: 0;
   }
 
-  @include breakpoint($xlarge) {
-    //margin-left: 10px;
-    //margin-right: 32px;
-  }
-
   &__label {
     @include breakpoint($wide) {
       @include font-size(14px, 24px);
@@ -311,6 +309,10 @@
       @include font-size(14px, 24px);
       letter-spacing: -0.5px;
     }
+
+    &.group {
+      color: var(--grayscale-white);
+    }
   }
 
   svg {
@@ -327,4 +329,16 @@
       width: 13.64px;
     }
   }
+
+  &.group {
+    &:hover {
+      color: var(--grayscale-medium);
+      span {
+        color: var(--grayscale-medium);
+      }
+      svg {
+        fill: var(--grayscale-medium);
+      }
+    }
+  }
 }
diff --git a/src/components/site-header/site-header.tsx b/src/components/site-header/site-header.tsx
index 0fc9e7f0..a4c55411 100644
--- a/src/components/site-header/site-header.tsx
+++ b/src/components/site-header/site-header.tsx
@@ -32,6 +32,8 @@ export class SiteHeader {
   @Prop() dataSiteSearchLabels: string;
   @Prop() logoUrl?: string;
   @Prop() logoLabel?: string;
+  @Prop() siteLabel?: string;
+  @Prop() siteUrl?: string;
   @Prop() menuLabel: string = 'Menu';
   @Prop() menuLabelOpen?: string;
   @Prop() menuLabelClose?: string;
@@ -118,6 +120,8 @@ export class SiteHeader {
     this.el.children[0].setAttribute('open', this.isMenuOpen.toString());
     this.el.children[0].setAttribute('logo-label', this.logoLabel);
     this.el.children[0].setAttribute('logo-url', this.logoUrl);
+    this.el.children[0].setAttribute('site-label', this.siteLabel);
+    this.el.children[0].setAttribute('site-url', this.siteUrl);
     this.el.children[0].setAttribute('menu-button-submenu-expand', this.menuLabels['expand']);
     this.el.children[0].setAttribute('menu-button-breadcrumb-return', this.menuLabels['return']);
     this.el.children[0].setAttribute('menu-button-breadcrumb-home', this.menuLabels['home']);
@@ -213,7 +217,9 @@ export class SiteHeader {
 
   render() {
     const logoSize = this.isMobile ? SiteLogoSize.small : SiteLogoSize.big;
+    const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;
     const logoColor = ColorVariant.black;
+    const logoColorGroup = ColorVariant.white;
     let classAttributes = ['hy-site-header', 'hy-site-header--' + this.menuType];
 
     switch (this.menuType) {
@@ -223,20 +229,23 @@ export class SiteHeader {
           <header class={classAttributes.join(' ')}>
             <div class={{'hy-backdrop': true, 'is-active': this.isMenuOpen}} />
             {this.isGroup && (
-              <div class="hy-site-header__content-group">
+              <div class="hy-site-header__content-top">
                 <div class={'hy-site-header__logo-container group '}>
-                  <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />
+                  <hy-site-logo
+                    is-group={true}
+                    size={logoSizeGroup}
+                    color={logoColorGroup}
+                    url={this.siteUrl}
+                    label={this.siteLabel}
+                  />
                 </div>
 
-                <hy-menu-main-group
-                  //className={'menu--secondary__item is-first'}
-                  is-mobile={false}
-                  data-main-menu={this.dataMainMenuLinks}
-                />
+                <hy-menu-main-group is-mobile={false} data-main-menu={this.dataMainMenuLinks} />
 
                 <div class={'menu--secondary menu--secondary--group'}>
                   <hy-menu-language
                     class={'menu--secondary__item is-first group'}
+                    is-group={true}
                     is-mobile={false}
                     data-menu-language={this.dataMenuLanguage}
                     labels={this.languageLabels}
@@ -244,7 +253,8 @@ export class SiteHeader {
                   <hy-site-search
                     class={'menu--secondary__item group'}
                     size={14}
-                    color={ColorVariant.black}
+                    color={logoColorGroup}
+                    is-group={true}
                     show-label={true}
                     labels={this.searchLabels}
                     search-labels={this.dataSiteSearchLabels}
@@ -253,7 +263,7 @@ export class SiteHeader {
                   {this.donateLink.map((i) => {
                     return (
                       <a class={'menu--secondary__item hy-link__donate group'} href={i.url}>
-                        <hy-icon icon={'hy-icon-heart-support'} size={14} fill={ColorVariant.black} />
+                        <hy-icon icon={'hy-icon-heart-support'} size={14} fill={logoColorGroup} />
                         <span class={'hy-link__donate__label group'}>{i.label}</span>
                       </a>
                     );
@@ -261,10 +271,12 @@ export class SiteHeader {
                 </div>
               </div>
             )}
-            <div class="hy-site-header__content">
+            <div class={{'hy-site-header__content': true, group: this.isGroup}}>
               <div class={'hy-site-header__logo-container'}>
                 {this.isGroup ? (
-                  <div class={'group'}>{this.logoLabel}</div>
+                  <a class={'group'} href={this.logoUrl}>
+                    {this.logoLabel}
+                  </a>
                 ) : (
                   <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />
                 )}
@@ -308,20 +320,17 @@ export class SiteHeader {
           <header class={classAttributes.join(' ')}>
             <div class={{'hy-backdrop': true, 'is-active': this.isMenuOpen}} />
             {this.isGroup && (
-              <div class="hy-site-header__content-group">
+              <div class="hy-site-header__content-top">
                 <div class={'hy-site-header__logo-container group '}>
-                  <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />
+                  <hy-site-logo size={logoSizeGroup} color={logoColorGroup} url={this.siteUrl} label={this.siteLabel} />
                 </div>
 
-                <hy-menu-main-group
-                  //className={'menu--secondary__item is-first'}
-                  is-mobile={false}
-                  data-main-menu={this.dataMainMenuLinks}
-                />
+                <hy-menu-main-group is-mobile={false} data-main-menu={this.dataMainMenuLinks} />
 
                 <div class={'menu--secondary menu--secondary--group'}>
                   <hy-menu-language
                     class={'menu--secondary__item is-first group'}
+                    is-group={true}
                     is-mobile={false}
                     data-menu-language={this.dataMenuLanguage}
                     labels={this.languageLabels}
@@ -329,8 +338,9 @@ export class SiteHeader {
                   <hy-site-search
                     class={'menu--secondary__item group'}
                     size={14}
-                    color={ColorVariant.black}
+                    color={logoColorGroup}
                     show-label={true}
+                    is-group={true}
                     labels={this.searchLabels}
                     search-labels={this.dataSiteSearchLabels}
                     search-tools={this.dataSearchTools}
@@ -338,7 +348,7 @@ export class SiteHeader {
                   {this.donateLink.map((i) => {
                     return (
                       <a class={'menu--secondary__item hy-link__donate group'} href={i.url}>
-                        <hy-icon icon={'hy-icon-heart-support'} size={14} fill={ColorVariant.black} />
+                        <hy-icon icon={'hy-icon-heart-support'} size={14} fill={logoColorGroup} />
                         <span class={'hy-link__donate__label group'}>{i.label}</span>
                       </a>
                     );
@@ -349,7 +359,9 @@ export class SiteHeader {
             <div class="hy-site-header__content">
               <div class={'hy-site-header__logo-container'}>
                 {this.isGroup ? (
-                  <div class={'group'}>{this.logoLabel}</div>
+                  <a class={'group'} href={this.logoUrl}>
+                    {this.logoLabel}
+                  </a>
                 ) : (
                   <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />
                 )}
@@ -428,22 +440,19 @@ export class SiteHeader {
           <header class={classAttributes.join(' ')}>
             <div class={{'hy-backdrop': true, 'is-active': this.isMenuOpen}} />
             {this.isGroup && (
-              <div class="hy-site-header__content-group">
+              <div class="hy-site-header__content-top">
                 <div class={'hy-site-header__logo-container group '}>
-                  <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />
+                  <hy-site-logo size={logoSizeGroup} color={logoColorGroup} url={this.siteUrl} label={this.siteLabel} />
                 </div>
 
-                <hy-menu-main-group
-                  //className={'menu--secondary__item is-first'}
-                  is-mobile={true}
-                  data-main-menu={this.dataMainMenuLinks}
-                />
+                <hy-menu-main-group is-mobile={true} data-main-menu={this.dataMainMenuLinks} />
 
                 <div class={'menu--secondary menu--secondary--group'}>
                   <hy-site-search
                     class={'menu--secondary__item group'}
                     size={14}
-                    color={ColorVariant.black}
+                    color={logoColorGroup}
+                    is-group={true}
                     show-label={true}
                     labels={this.searchLabels}
                     search-labels={this.dataSiteSearchLabels}
@@ -455,7 +464,9 @@ export class SiteHeader {
             <div class="hy-site-header__content">
               <div class={'hy-site-header__logo-container'}>
                 {this.isGroup ? (
-                  <div class={'group'}>{this.logoLabel}</div>
+                  <a class={'group'} href={this.logoUrl}>
+                    {this.logoLabel}
+                  </a>
                 ) : (
                   <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />
                 )}
diff --git a/src/components/site-header/site-logo/readme.md b/src/components/site-header/site-logo/readme.md
index cdb7cfb5..359a14c0 100644
--- a/src/components/site-header/site-logo/readme.md
+++ b/src/components/site-header/site-logo/readme.md
@@ -4,13 +4,14 @@
 
 ## Properties
 
-| Property | Attribute | Description | Type                                                           | Default                |
-| -------- | --------- | ----------- | -------------------------------------------------------------- | ---------------------- |
-| `color`  | `color`   |             | `ColorVariant.black \| ColorVariant.white`                     | `ColorVariant.black`   |
-| `label`  | `label`   |             | `string`                                                       | `undefined`            |
-| `size`   | `size`    |             | `SiteLogoSize.big \| SiteLogoSize.large \| SiteLogoSize.small` | `SiteLogoSize.big`     |
-| `type`   | `type`    |             | `FooterVariant.footer \| FooterVariant.header`                 | `FooterVariant.header` |
-| `url`    | `url`     |             | `string`                                                       | `undefined`            |
+| Property  | Attribute  | Description | Type                                                           | Default                |
+| --------- | ---------- | ----------- | -------------------------------------------------------------- | ---------------------- |
+| `color`   | `color`    |             | `ColorVariant.black \| ColorVariant.white`                     | `ColorVariant.black`   |
+| `isGroup` | `is-group` |             | `boolean`                                                      | `false`                |
+| `label`   | `label`    |             | `string`                                                       | `undefined`            |
+| `size`    | `size`     |             | `SiteLogoSize.big \| SiteLogoSize.large \| SiteLogoSize.small` | `SiteLogoSize.big`     |
+| `type`    | `type`     |             | `FooterVariant.footer \| FooterVariant.header`                 | `FooterVariant.header` |
+| `url`     | `url`      |             | `string`                                                       | `undefined`            |
 
 ## Dependencies
 
diff --git a/src/components/site-header/site-logo/site-logo.scss b/src/components/site-header/site-logo/site-logo.scss
index 3bd9dc7d..71393b7e 100644
--- a/src/components/site-header/site-logo/site-logo.scss
+++ b/src/components/site-header/site-logo/site-logo.scss
@@ -70,17 +70,39 @@
   }
 
   &__header {
-    &:hover {
-      color: var(--brand-main);
-      a,
-      span {
-        color: var(--brand-main) !important;
+    //&:hover {
+    &__page {
+      &:hover {
+        color: var(--brand-main);
+
+        a,
+        span {
+          color: var(--brand-main) !important;
+        }
+
+        svg {
+          fill: var(--brand-main);
+        }
       }
-      svg {
-        fill: var(--brand-main);
+    }
+    &__group {
+      &:hover {
+        color: var(--grayscale-medium);
+
+        a,
+        span {
+          color: var(--grayscale-medium) !important;
+        }
+
+        svg {
+          fill: var(--grayscale-medium);
+        }
       }
     }
+
+    //}
   }
+
   &__footer {
     &:hover {
       span {
diff --git a/src/components/site-header/site-logo/site-logo.tsx b/src/components/site-header/site-logo/site-logo.tsx
index 723cb51a..6153aadd 100644
--- a/src/components/site-header/site-logo/site-logo.tsx
+++ b/src/components/site-header/site-logo/site-logo.tsx
@@ -9,12 +9,18 @@ import {ColorVariant, FooterVariant, SiteLogoSize} from '../../../utils/utils';
 export class SiteLogo {
   @Prop() type: FooterVariant = FooterVariant.header;
   @Prop() color: ColorVariant = ColorVariant.black;
+  @Prop() isGroup: boolean = false;
   @Prop() label?: string;
   @Prop() size: SiteLogoSize = SiteLogoSize.big;
   @Prop() url?: string;
 
   render() {
-    const classAttributes = ['hy-site-logo', `hy-site-logo__${this.type}`].join(' ');
+    const isGroupClass = this.isGroup ? 'group' : 'page';
+    const classAttributes = [
+      'hy-site-logo',
+      `hy-site-logo__${this.type}__${isGroupClass}`,
+      `hy-site-logo__${this.type}`,
+    ].join(' ');
     return this.url ? (
       <Host class={classAttributes}>
         <a href={this.url}>
diff --git a/src/components/site-header/site-search/readme.md b/src/components/site-header/site-search/readme.md
index bf84fb50..332551f9 100644
--- a/src/components/site-header/site-search/readme.md
+++ b/src/components/site-header/site-search/readme.md
@@ -9,6 +9,7 @@
 | `color`                  | `color`                     |             | `ColorVariant.black \| ColorVariant.white` | `ColorVariant.black` |
 | `dataSearchSpecialTools` | `data-search-special-tools` |             | `string`                                   | `undefined`          |
 | `isAlternative`          | `is-alternative`            |             | `boolean`                                  | `false`              |
+| `isGroup`                | `is-group`                  |             | `boolean`                                  | `false`              |
 | `labels`                 | `labels`                    |             | `ComponentLabels[] \| string`              | `undefined`          |
 | `searchLabels`           | `search-labels`             |             | `string`                                   | `undefined`          |
 | `searchTools`            | `search-tools`              |             | `string`                                   | `undefined`          |
diff --git a/src/components/site-header/site-search/site-search.scss b/src/components/site-header/site-search/site-search.scss
index bfe7698c..84879201 100644
--- a/src/components/site-header/site-search/site-search.scss
+++ b/src/components/site-header/site-search/site-search.scss
@@ -62,6 +62,10 @@
       @include font-size(14px, 24px);
       letter-spacing: -0.5px;
     }
+
+    &__group {
+      color: var(--grayscale-white);
+    }
   }
 
   svg {
@@ -93,6 +97,19 @@
       fill: var(--brand-main);
     }
   }
+  &--group {
+    &:hover {
+      color: var(--grayscale-medium);
+
+      span {
+        color: var(--grayscale-medium);
+      }
+
+      svg {
+        fill: var(--grayscale-medium);
+      }
+    }
+  }
 }
 
 .site-search {
diff --git a/src/components/site-header/site-search/site-search.tsx b/src/components/site-header/site-search/site-search.tsx
index 0d3589d6..a4df3022 100644
--- a/src/components/site-header/site-search/site-search.tsx
+++ b/src/components/site-header/site-search/site-search.tsx
@@ -30,6 +30,7 @@ export class SiteSearch {
 
   @Prop() color: ColorVariant = ColorVariant.black;
   @Prop() isAlternative: boolean = false;
+  @Prop() isGroup: boolean = false;
   @Prop() labels?: ComponentLabels[] | string;
   @Prop() searchLabels: string;
   @Prop() searchTools: string;
@@ -172,6 +173,8 @@ export class SiteSearch {
   }
 
   render() {
+    const isGroupClass = this.isGroup ? 'group' : 'page';
+    const buttonSearchLabelClass = ['button--search__label', `button--search__label__${isGroupClass}`].join(' ');
     return (
       <Host
         class={{
@@ -184,12 +187,13 @@ export class SiteSearch {
           aria-expanded={`${this.isSearchPanelOpen}`}
           class={{
             'button--search': true,
+            'button--search--group': this.isGroup,
             'is-open--menu': this.isAlternative,
             'is-open': this.isSearchPanelOpen,
           }}
           onClick={(e) => this.handleSearchPanelToggle(e)}
         >
-          {this.showLabel ? <span class={'button--search__label'}>{this._labels['label']}</span> : ''}
+          {this.showLabel ? <span class={buttonSearchLabelClass}>{this._labels['label']}</span> : ''}
           <hy-icon icon={'hy-icon-search'} size={this.size} fill={this.color} />
         </button>
         <div
-- 
GitLab