@eeacms/volto-eea-design-system 1.12.0 → 1.13.0

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/CHANGELOG.md CHANGED
@@ -4,6 +4,48 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ ### [1.13.0](https://github.com/eea/volto-eea-design-system/compare/1.12.1...1.13.0) - 8 June 2023
8
+
9
+ #### :boom: Breaking Change
10
+
11
+ - breaking(footer): use url parameter instead of link for footer actions [David Ichim - [`5b9cc2c`](https://github.com/eea/volto-eea-design-system/commit/5b9cc2c8a2979f3d49d69841a57684b3f80d5ea2)]
12
+ - breaking(footer): renamed contact-block to contact-wrapper [David Ichim - [`2fbb7df`](https://github.com/eea/volto-eea-design-system/commit/2fbb7df66eb37e17ab5391feb46d7ce2cfdfcbf3)]
13
+
14
+ #### :rocket: New Features
15
+
16
+ - feat(search): added matchpath to specify search location #352 from eea/searchpopup_update [ichim-david - [`7c236d5`](https://github.com/eea/volto-eea-design-system/commit/7c236d52f5de620f77b820387181fe1d902247d3)]
17
+
18
+ #### :nail_care: Enhancements
19
+
20
+ - change(footer): add dedicated classes for theme sites logos [David Ichim - [`adebd04`](https://github.com/eea/volto-eea-design-system/commit/adebd04bcf5dc5b28b90db540816384fc60b4073)]
21
+ - change(footer): header can now be added anywhere in the footer section [David Ichim - [`6ae4872`](https://github.com/eea/volto-eea-design-system/commit/6ae48728dd961d783c6a8120c8a88dc38f63eed6)]
22
+
23
+ #### :house: Internal changes
24
+
25
+
26
+ #### :house: Documentation changes
27
+
28
+ - docs: Update and rename Corporate-site-templates to 2-corporate-site-templates.md [Antonio De Marinis - [`41ffc55`](https://github.com/eea/volto-eea-design-system/commit/41ffc5545def9034e3955bf967a2b0b947023528)]
29
+
30
+ #### :hammer_and_wrench: Others
31
+
32
+ - test: Fix test config, coverage Refs #253277 [valentinab25 - [`12f31a2`](https://github.com/eea/volto-eea-design-system/commit/12f31a2018d8c73173fc7ff091c5c3ddd3b29f64)]
33
+ - bump package version due to breaking changes [David Ichim - [`75c83f0`](https://github.com/eea/volto-eea-design-system/commit/75c83f024dc40388086faeaec449f04da68c0d9b)]
34
+ - Rename to eea-storybook Refs #251478 [valentinab25 - [`bc4e753`](https://github.com/eea/volto-eea-design-system/commit/bc4e753a8e604ab323a32a1315c46fc5827aadbd)]
35
+ - added matchpath, we can independently specify on which location to apply a rule for the search popup [Zoltan Szabo - [`f4a40e0`](https://github.com/eea/volto-eea-design-system/commit/f4a40e04f50e87f5b0383a1b28d3459a2b91199b)]
36
+ ### [1.12.1](https://github.com/eea/volto-eea-design-system/compare/1.12.0...1.12.1) - 24 May 2023
37
+
38
+ #### :bug: Bug Fixes
39
+
40
+ - fix(header): Increase z-index on top bar #350 from eea/fix-header [ichim-david - [`59bc935`](https://github.com/eea/volto-eea-design-system/commit/59bc935470da8e97f80c22f05f40231df242555f)]
41
+ - fix(header): Increase z-index on top bar [kreafox - [`ccaa08d`](https://github.com/eea/volto-eea-design-system/commit/ccaa08d61b2681368f94ebf6304fa70073eac0db)]
42
+ - fix(subsite): Fix z-index to make it clickable - refs #253352 [alin - [`e0203fd`](https://github.com/eea/volto-eea-design-system/commit/e0203fd8e7c0887cddfcf5d140ca1c3cdaa54e4d)]
43
+ - fix: Stop image disappear over and over - ref253080 [dobri1408 - [`a8208e7`](https://github.com/eea/volto-eea-design-system/commit/a8208e7dd656d54cb975f8e7a9887775cfa4bd94)]
44
+
45
+ #### :house: Internal changes
46
+
47
+ - style: remove unnecessary z-index on content-area [Miu Razvan - [`f5e574f`](https://github.com/eea/volto-eea-design-system/commit/f5e574f5a15ac0844e7b5ce184003e0e89e7d76b)]
48
+
7
49
  ### [1.12.0](https://github.com/eea/volto-eea-design-system/compare/1.11.0...1.12.0) - 19 May 2023
8
50
 
9
51
  #### :boom: Breaking Change
@@ -20,6 +62,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
20
62
 
21
63
  #### :hammer_and_wrench: Others
22
64
 
65
+ - Release #347 from eea/develop [ichim-david - [`3eaa504`](https://github.com/eea/volto-eea-design-system/commit/3eaa50494ba5480c460c7d83141eff954579e962)]
23
66
  - bump package version as we have some breaking changes [David Ichim - [`064e170`](https://github.com/eea/volto-eea-design-system/commit/064e170ee40a8e58533a2e6db0ed6b58c38ad7bb)]
24
67
  - printing at topics [Dobricean Ioan Dorian - [`6c9e4a0`](https://github.com/eea/volto-eea-design-system/commit/6c9e4a072785e74022e7557132ae067e00066ef0)]
25
68
  - printing at topics [Dobricean Ioan Dorian - [`341866a`](https://github.com/eea/volto-eea-design-system/commit/341866ab4ade6ba29c160e857003ca4dbda7106b)]
@@ -5,6 +5,7 @@ module.exports = {
5
5
  '!src/**/*.d.ts',
6
6
  ],
7
7
  moduleNameMapper: {
8
+ '\\.(css|less|scss|sass)$': 'identity-obj-proxy',
8
9
  '@plone/volto/cypress': '<rootDir>/node_modules/@plone/volto/cypress',
9
10
  '@plone/volto/babel': '<rootDir>/node_modules/@plone/volto/babel',
10
11
  '@plone/volto/(.*)$': '<rootDir>/node_modules/@plone/volto/src/$1',
@@ -17,7 +18,6 @@ module.exports = {
17
18
  '~/(.*)$': '<rootDir>/src/$1',
18
19
  'load-volto-addons':
19
20
  '<rootDir>/node_modules/@plone/volto/jest-addons-loader.js',
20
- '\\.(css|less|scss|sass)$': 'identity-obj-proxy',
21
21
  },
22
22
  transform: {
23
23
  '^.+\\.js(x)?$': 'babel-jest',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-eea-design-system",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "@eeacms/volto-eea-design-system: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -1,3 +1,3 @@
1
1
  export useClickOutside from './useClickOutside';
2
2
  export usePrevious from './usePrevious';
3
- export useOnScreen from './useOnScreen';
3
+ export useFirstVisited from './useFirstVisited';
@@ -1,13 +1,14 @@
1
1
  /* eslint-disable react-hooks/exhaustive-deps */
2
2
  import React from 'react';
3
3
 
4
- function useOnScreen(ref, rootMargin = '0px') {
5
- const [isIntersecting, setIntersecting] = React.useState(false);
4
+ function useFirstVisited(ref, rootMargin = '0px') {
5
+ const [intersected, setIntersected] = React.useState(false);
6
6
 
7
7
  React.useEffect(() => {
8
+ if (intersected) return;
8
9
  const observer = new IntersectionObserver(
9
10
  ([entry]) => {
10
- setIntersecting(entry.isIntersecting);
11
+ setIntersected(intersected === false ? entry.isIntersecting : true);
11
12
  },
12
13
  {
13
14
  rootMargin,
@@ -24,8 +25,8 @@ function useOnScreen(ref, rootMargin = '0px') {
24
25
  }
25
26
  observer.disconnect();
26
27
  };
27
- }, [ref, rootMargin]);
28
- return isIntersecting;
28
+ }, [ref, rootMargin, intersected]);
29
+ return intersected;
29
30
  }
30
31
 
31
- export default useOnScreen;
32
+ export default useFirstVisited;
@@ -8,16 +8,16 @@ const Contact = ({ children, contacts }) =>
8
8
  children?.length ? (
9
9
  children
10
10
  ) : (
11
- <div className="contact-block">
11
+ <div className="contact-wrapper">
12
12
  {contacts?.map((contact, index) => (
13
13
  <div className="contact" key={index}>
14
- {isInternalURL(contact.link) ? (
15
- <Link to={contact.link} className="bold">
14
+ {isInternalURL(contact.url) ? (
15
+ <Link to={contact.url} className="bold">
16
16
  {contact.text}
17
17
  </Link>
18
18
  ) : (
19
19
  <a
20
- href={contact.link}
20
+ href={contact.url}
21
21
  target={'_blank'}
22
22
  rel="noopener noreferrer"
23
23
  className={'bold'}
@@ -28,21 +28,21 @@ const Contact = ({ children, contacts }) =>
28
28
  {contact.children && (
29
29
  <div className="subcontact">
30
30
  {contact.children.map((child, index) => (
31
- <>
32
- {isInternalURL(child.link) ? (
33
- <Link to={child.link} key={index}>
31
+ <React.Fragment key={index}>
32
+ {isInternalURL(child.url) ? (
33
+ <Link to={child.url} key={index}>
34
34
  {child.text}
35
35
  </Link>
36
36
  ) : (
37
37
  <a
38
- href={child.link}
38
+ href={child.url}
39
39
  target={'_blank'}
40
40
  rel="noopener noreferrer"
41
41
  >
42
42
  {child.text}
43
43
  </a>
44
44
  )}
45
- </>
45
+ </React.Fragment>
46
46
  ))}
47
47
  </div>
48
48
  )}
@@ -12,7 +12,7 @@ import FooterHeader from '@eeacms/volto-eea-design-system/ui/Footer/FooterHeader
12
12
  import SubFooter from '@eeacms/volto-eea-design-system/ui/Footer/SubFooter';
13
13
  import Social from '@eeacms/volto-eea-design-system/ui/Footer/Social';
14
14
  import Contact from '@eeacms/volto-eea-design-system/ui/Footer/Contact';
15
- import useOnScreen from '../../helpers/useOnScreen';
15
+ import { useFirstVisited } from '@eeacms/volto-eea-design-system/helpers';
16
16
  import Description from '@eeacms/volto-eea-design-system/ui/Footer/Description';
17
17
 
18
18
  /**
@@ -26,7 +26,7 @@ const Footer = (props) => {
26
26
  const { children } = props;
27
27
 
28
28
  const bgImgRef = React.useRef();
29
- const onScreen = useOnScreen(bgImgRef);
29
+ const onScreen = useFirstVisited(bgImgRef);
30
30
  return (
31
31
  <footer id={'footer'}>
32
32
  <div
@@ -33,64 +33,82 @@ Default.args = {
33
33
  header: 'Environmental information systems',
34
34
  description: '',
35
35
  actions: [
36
- { link: '/privacy', title: 'Privacy' },
37
- { link: '/sitemap', title: 'Sitemap' },
38
- { link: 'https://www.eea.europa.eu/en/login', title: 'CMS Login' },
36
+ { url: '/privacy', title: 'Privacy' },
37
+ { url: '/sitemap', title: 'Sitemap' },
38
+ { url: 'https://www.eea.europa.eu/en/login', title: 'CMS Login' },
39
39
  ],
40
40
  copyright: [
41
- { link: 'https://status.eea.europa.eu/', title: 'System status' },
41
+ { url: 'https://status.eea.europa.eu/', title: 'System status' },
42
42
  {
43
- link: '/copyright',
43
+ url: '/copyright',
44
44
  title: '© Copyright 2023 EEA',
45
45
  },
46
46
  ],
47
47
  sites: [
48
- { link: 'https://water.europa.eu/marine', src: Marine, alt: 'WISE marine' },
49
48
  {
50
- link: 'https://water.europa.eu/freshwater',
49
+ url: 'https://water.europa.eu/marine',
50
+ src: Marine,
51
+ alt: 'WISE marine',
52
+ className: 'marine logo',
53
+ },
54
+ {
55
+ url: 'https://water.europa.eu/freshwater',
51
56
  src: Freshwater,
52
57
  alt: 'WISE freshwater',
58
+ className: 'freshwater logo',
59
+ },
60
+ {
61
+ url: 'https://biodiversity.europa.eu/',
62
+ src: Bise,
63
+ alt: 'Biodiversity',
64
+ className: 'biodiversity logo',
53
65
  },
54
- { link: 'https://biodiversity.europa.eu/', src: Bise, alt: 'Biodiversity' },
55
66
  {
56
- link: 'https://forest.eea.europa.eu/',
67
+ url: 'https://forest.eea.europa.eu/',
57
68
  src: Fise,
58
69
  alt: 'Forest information system for europe',
70
+ className: 'fise logo',
59
71
  },
60
72
  {
61
- link: 'https://climate-adapt.eea.europa.eu/observatory',
73
+ url: 'https://climate-adapt.eea.europa.eu/observatory',
62
74
  src: ClimateHealth,
63
75
  alt: 'Information platform for chemical monitoring',
76
+ className: 'climate logo',
64
77
  },
65
78
  {
66
- link: 'https://climate-adapt.eea.europa.eu/',
79
+ url: 'https://climate-adapt.eea.europa.eu/',
67
80
  src: Cca,
68
81
  alt: 'Climate adapt',
82
+ className: 'cca logo',
69
83
  },
70
84
  {
71
- link: 'https://industry.eea.europa.eu/',
85
+ url: 'https://industry.eea.europa.eu/',
72
86
  src: Industry,
73
87
  alt: 'European industrial emissions portal',
88
+ className: 'industry logo',
74
89
  },
75
90
  {
76
- link: 'https://climate-energy.eea.europa.eu/',
91
+ url: 'https://climate-energy.eea.europa.eu/',
77
92
  src: Energy,
78
93
  alt: 'Climate and energy in the EU',
94
+ className: 'energy logo',
79
95
  },
80
96
  {
81
- link: 'https://land.copernicus.eu/',
97
+ url: 'https://land.copernicus.eu/',
82
98
  src: Copernicus,
83
99
  alt: 'Copernicus land monitoring service',
100
+ className: 'copernicus logo',
84
101
  },
85
102
  {
86
- link: 'https://insitu.copernicus.eu/',
103
+ url: 'https://insitu.copernicus.eu/',
87
104
  src: Insitu,
88
105
  alt: 'Copernicus in situ',
106
+ className: 'insitu logo',
89
107
  },
90
108
  ],
91
109
  managedBy: [
92
110
  {
93
- link: 'https://www.eea.europa.eu/',
111
+ url: 'https://www.eea.europa.eu/',
94
112
  src: EEA,
95
113
  alt: 'EEA Logo',
96
114
  className: 'site logo',
@@ -101,7 +119,7 @@ Default.args = {
101
119
  },
102
120
  },
103
121
  {
104
- link: 'https://www.eionet.europa.eu/',
122
+ url: 'https://www.eionet.europa.eu/',
105
123
  src: Eionet,
106
124
  alt: 'EIONET Logo',
107
125
  className: 'eionet logo',
@@ -116,40 +134,40 @@ Default.args = {
116
134
  {
117
135
  name: 'twitter',
118
136
  icon: 'ri-twitter-fill',
119
- link: 'https://twitter.com/euenvironment',
137
+ url: 'https://twitter.com/euenvironment',
120
138
  },
121
139
  {
122
140
  name: 'facebook',
123
141
  icon: 'ri-facebook-box-fill',
124
- link: 'https://www.facebook.com/European.Environment.Agency',
142
+ url: 'https://www.facebook.com/European.Environment.Agency',
125
143
  },
126
144
  {
127
145
  name: 'linkedin',
128
146
  icon: 'ri-linkedin-fill',
129
- link: 'https://www.linkedin.com/company/european-environment-agency',
147
+ url: 'https://www.linkedin.com/company/european-environment-agency',
130
148
  },
131
149
  {
132
150
  name: 'youtube',
133
151
  icon: 'ri-youtube-fill',
134
- link: 'https://www.youtube.com/user/EEAvideos',
152
+ url: 'https://www.youtube.com/user/EEAvideos',
135
153
  },
136
154
  {
137
155
  name: 'instagram',
138
156
  icon: 'ri-instagram-fill',
139
- link: 'https://www.instagram.com/ourplanet_eu',
157
+ url: 'https://www.instagram.com/ourplanet_eu',
140
158
  },
141
- { name: 'rss', icon: 'ri-rss-fill', link: '/subscription/news-feeds' },
159
+ { name: 'rss', icon: 'ri-rss-fill', url: '/subscription/news-feeds' },
142
160
  ],
143
161
  contacts: [
144
162
  {
145
163
  text: 'About us',
146
- link: '/about',
164
+ url: '/about',
147
165
  children: [
148
- { text: 'FAQs', link: 'http://external.site' },
149
- { text: 'Careers', link: '/careers' },
166
+ { text: 'FAQs', url: 'http://external.site' },
167
+ { text: 'Careers', url: '/careers' },
150
168
  ],
151
169
  },
152
- { text: 'Contact us', link: '/contact-us' },
153
- { text: 'Sign up to our newsletter', link: '/newsletter' },
170
+ { text: 'Contact us', url: '/contact-us' },
171
+ { text: 'Sign up to our newsletter', url: '/newsletter' },
154
172
  ],
155
173
  };
@@ -15,13 +15,13 @@ const FooterActions = (props) => {
15
15
  <div className="actions">
16
16
  {props.actions &&
17
17
  props.actions.map((action, index) =>
18
- isInternalURL(action.link) ? (
19
- <Link to={action.link} key={index}>
18
+ isInternalURL(action.url) ? (
19
+ <Link to={action.url} key={index}>
20
20
  {action.title}
21
21
  </Link>
22
22
  ) : (
23
23
  <a
24
- href={action.link}
24
+ href={action.url}
25
25
  key={index}
26
26
  target={'_blank'}
27
27
  rel={'noreferrer'}
@@ -37,13 +37,13 @@ const FooterActions = (props) => {
37
37
  <div className="copyright">
38
38
  {props.copyright &&
39
39
  props.copyright.map((copyright, index) =>
40
- isInternalURL(copyright.link) ? (
41
- <Link to={copyright.link} key={index}>
40
+ isInternalURL(copyright.url) ? (
41
+ <Link to={copyright.url} key={index}>
42
42
  {copyright.title}
43
43
  </Link>
44
44
  ) : (
45
45
  <a
46
- href={copyright.link}
46
+ href={copyright.url}
47
47
  key={index}
48
48
  target={'_blank'}
49
49
  rel={'noreferrer'}
@@ -1,10 +1,8 @@
1
1
  import React from 'react';
2
2
 
3
3
  const FooterHeader = (props) => {
4
- return (
5
- <div className="theme-sites">
6
- <h3 className="header text-center">{props.children}</h3>
7
- </div>
8
- );
4
+ return props.children ? (
5
+ <h2 className="footer-header text-center">{props.children}</h2>
6
+ ) : null;
9
7
  };
10
8
  export default FooterHeader;
@@ -12,14 +12,22 @@ const Sites = (props) => {
12
12
  const nextItem = logos[i + 1];
13
13
  column.push(
14
14
  <Grid.Column className="logo" key={i}>
15
- <a className="logo" href={item.link}>
15
+ <a className="logo" href={item.url}>
16
16
  <LazyLoadComponent>
17
- <Image src={item.src} alt={item.alt}></Image>
17
+ <Image
18
+ className={item.className}
19
+ src={item.src}
20
+ alt={item.alt}
21
+ ></Image>
18
22
  </LazyLoadComponent>
19
23
  </a>
20
- <a className="logo" href={nextItem.link}>
24
+ <a className="logo" href={nextItem.url}>
21
25
  <LazyLoadComponent>
22
- <Image src={nextItem.src} alt={nextItem.alt}></Image>
26
+ <Image
27
+ className={nextItem.className}
28
+ src={nextItem.src}
29
+ alt={nextItem.alt}
30
+ ></Image>
23
31
  </LazyLoadComponent>
24
32
  </a>
25
33
  </Grid.Column>,
@@ -11,7 +11,7 @@ const Social = (props) => {
11
11
  <Grid.Row>
12
12
  <div className="social">
13
13
  {props.social?.map((item, index) => (
14
- <a href={item.link} aria-label={`${item.name} link`} key={index}>
14
+ <a href={item.url} aria-label={`${item.name} link`} key={index}>
15
15
  <Icon className={item.icon}></Icon>
16
16
  </a>
17
17
  ))}
@@ -23,7 +23,7 @@ const SubFooter = (props) => {
23
23
  >
24
24
  <div className="item">
25
25
  <div className={manager.className}>
26
- <a href={manager.link}>
26
+ <a href={manager.url}>
27
27
  <LazyLoadComponent>
28
28
  <Image src={manager.src} alt={manager.alt}></Image>
29
29
  </LazyLoadComponent>
@@ -55,7 +55,7 @@ const SubFooter = (props) => {
55
55
  >
56
56
  <div className="item">
57
57
  <div className={manager.className}>
58
- <a href={manager.link}>
58
+ <a href={manager.url}>
59
59
  <LazyLoadComponent>
60
60
  <Image src={manager.src} alt={manager.alt}></Image>
61
61
  </LazyLoadComponent>
@@ -23,7 +23,7 @@ function HeaderSearchPopUp({
23
23
  const headerSearchViews = headerSearchBox || [];
24
24
  const defaultView = headerSearchViews.filter((v) => v.isDefault);
25
25
  const localView = headerSearchViews.filter((v) =>
26
- location.pathname.includes(v.path),
26
+ location.pathname.match(v.matchpath ? v.matchpath : v.path),
27
27
  );
28
28
  const activeView = localView.length > 0 ? localView[0] : defaultView[0];
29
29
 
@@ -109,13 +109,6 @@
109
109
  }
110
110
  }
111
111
 
112
-
113
- // ensure background of content-box goes above the content area
114
- // draft image for non published pages
115
- .view-viewview:not(.wf-state-published) .content-area {
116
- z-index: 0;
117
- }
118
-
119
112
  // remove margin from block headings overriding blocks.less rule
120
113
  .block h1:last-child, .block h2:last-child, .block h3:last-child, .block h4:last-child, .block h5:last-child {
121
114
  margin: 0;
@@ -38,11 +38,21 @@ footer .theme-sites {
38
38
  margin: @mobileThemeSitesLogoMargin;
39
39
  }
40
40
 
41
- .header {
42
- font-size: @mobileFooterTitleFontSize;
43
- }
41
+ }
42
+ footer .footer-header {
43
+ font-size: @mobileFooterTitleFontSize;
44
44
  }
45
45
 
46
+ .theme-sites .logo.freshwater {
47
+ max-width: @freshwaterLogoMaxWidth;
48
+ }
49
+ .subfooter .item {
50
+ display: @subFooterItemDisplay;
51
+ justify-content: @subFooterItemJustifyContent;
52
+ width: @subFooterItemWidth;
53
+ height: @subFooterItemHeight;
54
+ align-items: @subFooterItemAlignItems;
55
+ }
46
56
  .subfooter .item .ui.grid {
47
57
  align-items: center;
48
58
  }
@@ -54,11 +64,11 @@ footer .theme-sites {
54
64
  }
55
65
  }
56
66
 
57
- .subfooter .contact-block {
67
+ .subfooter .contact-wrapper {
58
68
  margin-bottom: @tabletContactBlockMarginBottom;
59
69
  }
60
70
 
61
- .contact-block .subcontact a {
71
+ .contact-wrapper .subcontact a {
62
72
  font-size: @computerSubContactIconFontSize;
63
73
  margin-right: @computerSubContactIconMarginRight;
64
74
  font-weight: @computerSubContactIconFontWeight;
@@ -149,7 +159,7 @@ footer .footer-wrapper .menu {
149
159
  font-weight: @mobileMenuCopyrightFontWeight;
150
160
  }
151
161
 
152
- .contact-block .subcontact {
162
+ .contact-wrapper .subcontact {
153
163
  margin-top: @mobileSubcontactBlockMarginTop;
154
164
  }
155
165
  }
@@ -159,7 +169,7 @@ footer .footer-wrapper .menu {
159
169
  background: @computerFooterBackgroundGradient;
160
170
  }
161
171
 
162
- footer .theme-sites .header {
172
+ footer .footer-header {
163
173
  font-size: @tabletFooterTitleFontSize;
164
174
  }
165
175
 
@@ -167,14 +177,6 @@ footer .footer-wrapper .menu {
167
177
  .logo img {
168
178
  max-height: 100px;
169
179
  }
170
-
171
- .site.logo img {
172
- padding-right: @siteLogoPaddingRight;
173
- }
174
-
175
- .contact-block {
176
- padding-left: @siteLogoPaddingRight;
177
- }
178
180
  }
179
181
 
180
182
  .subfooter .contact {
@@ -184,11 +186,11 @@ footer .footer-wrapper .menu {
184
186
  gap: @tabletContactGap;
185
187
  }
186
188
 
187
- .subfooter .contact-block {
189
+ .subfooter .contact-wrapper {
188
190
  margin-inline: @tabletContactBlockMarginInline;
189
191
  }
190
192
 
191
- .contact-block .subcontact a {
193
+ .contact-wrapper .subcontact a {
192
194
  font-size: @tabletSubContactIconFontSize;
193
195
  margin-right: @tabletSubContactIconMarginRight;
194
196
  }
@@ -216,6 +218,9 @@ footer .footer-wrapper .menu {
216
218
  padding: @computerWrapperPadding;
217
219
  background-size: @computerWrapperBackgroundSize;
218
220
  }
221
+ .footer-wrapper-nobg {
222
+ padding: @computerWrapperPadding;
223
+ }
219
224
  }
220
225
 
221
226
  footer .theme-sites {
@@ -234,10 +239,9 @@ footer .footer-wrapper .menu {
234
239
  .header {
235
240
  margin-bottom: @computerItemHeaderMarginBottom;
236
241
  }
237
-
238
242
  }
239
243
 
240
- .contact-block .subcontact a {
244
+ .contact-wrapper .subcontact a {
241
245
  font-size: @computerSubContactIconFontSize;
242
246
  margin-right: @computerSubContactIconMarginRight;
243
247
  }
@@ -23,15 +23,20 @@
23
23
  @computerThemeSitesLogoMargin : 0 auto @rem-space-10;
24
24
  @mobileFooterTitleFontSize : @mobileH4;
25
25
  @tabletFooterTitleFontSize : @h3;
26
+ @freshwaterLogoMaxWidth : 122px;
27
+
28
+ /* Sub-footer Item */
29
+ @subFooterItemDisplay: flex;
30
+ @subFooterItemJustifyContent: center;
31
+ @subFooterItemAlignItems: center;
32
+ @subFooterItemWidth: 100%;
33
+ @subFooterItemHeight: 100%;
26
34
 
27
35
  /* Sub-footer Item Header */
28
36
  @mobileItemHeaderMarginBottom : @space-5;
29
37
  @computerItemHeaderMarginBottom : @space-12;
30
38
  @computerLogoHeaderMarginLeft : -50px;
31
39
 
32
- /* Site Logo */
33
- @siteLogoPaddingRight : 20%;
34
-
35
40
  /* Contact Info */
36
41
  @tabletContactBlockMarginInline : 0;
37
42
  @tabletContactBlockMarginBottom : @space-4;
@@ -318,7 +318,8 @@
318
318
  }
319
319
 
320
320
  .eea.header .subsite-logo {
321
- position: relative;
321
+ position: @subsitePosition;
322
+ z-index: @subsiteZIndex;
322
323
  color: @subsiteColor;
323
324
  font-family: @subsiteFontFamily;
324
325
  font-size: @mobileSubsiteFontSize;
@@ -33,7 +33,7 @@
33
33
  @topSectionItemFontSize : @font-size-00;
34
34
  @mobileTopSectionItemFontSize : @font-size-00;
35
35
  @tabletTopSectionItemFontSize : @font-size-00;
36
- @topSectionZIndex : @z-index-1;
36
+ @topSectionZIndex : @z-index-3;
37
37
  @dropdownColor : @blue-grey-6;
38
38
  @mobileDropdownFontSize : @font-size-00;
39
39
  @tabletDropdownFontSize : @font-size-00;
@@ -130,6 +130,8 @@
130
130
 
131
131
 
132
132
  /* Subsite */
133
+ @subsitePosition : relative;
134
+ @subsiteZIndex : 1;
133
135
  @subsiteFontFamily : @headerFont;
134
136
  @subsiteFontWeight : @headerFontWeight;
135
137
  @subsiteColor : @linkColor;