@eeacms/volto-eea-design-system 1.0.7 → 1.12.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 +87 -1
- package/package.json +1 -1
- package/src/semantic.less +0 -4
- package/src/ui/Accordion/Accordion.stories.js +52 -123
- package/src/ui/Card/Card.stories.jsx +153 -11
- package/src/ui/Footer/Contact.jsx +31 -6
- package/src/ui/Footer/Footer.stories.js +76 -25
- package/src/ui/Header/Header.jsx +9 -3
- package/src/ui/Header/HeaderMenuPopUp.js +24 -10
- package/src/ui/Header/HeaderSearchPopUp.js +2 -1
- package/src/ui/Video/Video.jsx +44 -0
- package/src/ui/Video/Video.stories.jsx +53 -0
- package/src/ui/index.js +2 -2
- package/theme/theme.config +0 -3
- package/theme/themes/eea/assets/video/demo-track-el.vtt +11 -0
- package/theme/themes/eea/assets/video/demo-track-en.vtt +11 -0
- package/theme/themes/eea/assets/video/demo-track-ro.vtt +11 -0
- package/theme/themes/eea/collections/table.variables +1 -1
- package/theme/themes/eea/elements/header.overrides +0 -103
- package/theme/themes/eea/elements/image.overrides +6 -0
- package/theme/themes/eea/elements/image.variables +1 -0
- package/theme/themes/eea/elements/segment.overrides +7 -0
- package/theme/themes/eea/extras/banner.less +12 -0
- package/theme/themes/eea/extras/banner.variables +2 -0
- package/theme/themes/eea/extras/header.less +0 -11
- package/theme/themes/eea/extras/hero.less +33 -0
- package/theme/themes/eea/extras/hero.variables +1 -0
- package/theme/themes/eea/globals/mixins.less +8 -0
- package/theme/themes/eea/globals/site.overrides +40 -2
- package/theme/themes/eea/globals/utilities.less +47 -0
- package/theme/themes/eea/modules/accordion.overrides +7 -0
- package/theme/themes/eea/views/card.overrides +14 -11
- package/src/ui/Card/AvatarGrid/AvatarGrid.jsx +0 -61
- package/src/ui/Card/AvatarGrid/AvatarGrid.stories.jsx +0 -89
- package/src/ui/Card/RoundedCard.stories.jsx +0 -122
- package/theme/themes/eea/extras/avatar.variables +0 -28
- package/theme/themes/eea/extras/avatarGrid.less +0 -43
- package/theme/themes/eea/extras/avatarGrid.variables +0 -16
|
@@ -2,6 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { Link } from 'react-router-dom';
|
|
4
4
|
|
|
5
|
+
import { isInternalURL } from '@plone/volto/helpers/Url/Url';
|
|
6
|
+
|
|
5
7
|
const Contact = ({ children, contacts }) =>
|
|
6
8
|
children?.length ? (
|
|
7
9
|
children
|
|
@@ -9,15 +11,38 @@ const Contact = ({ children, contacts }) =>
|
|
|
9
11
|
<div className="contact-block">
|
|
10
12
|
{contacts?.map((contact, index) => (
|
|
11
13
|
<div className="contact" key={index}>
|
|
12
|
-
|
|
13
|
-
{contact.
|
|
14
|
-
|
|
14
|
+
{isInternalURL(contact.link) ? (
|
|
15
|
+
<Link to={contact.link} className="bold">
|
|
16
|
+
{contact.text}
|
|
17
|
+
</Link>
|
|
18
|
+
) : (
|
|
19
|
+
<a
|
|
20
|
+
href={contact.link}
|
|
21
|
+
target={'_blank'}
|
|
22
|
+
rel="noopener noreferrer"
|
|
23
|
+
className={'bold'}
|
|
24
|
+
>
|
|
25
|
+
{contact.text}
|
|
26
|
+
</a>
|
|
27
|
+
)}
|
|
15
28
|
{contact.children && (
|
|
16
29
|
<div className="subcontact">
|
|
17
30
|
{contact.children.map((child, index) => (
|
|
18
|
-
|
|
19
|
-
{child.
|
|
20
|
-
|
|
31
|
+
<>
|
|
32
|
+
{isInternalURL(child.link) ? (
|
|
33
|
+
<Link to={child.link} key={index}>
|
|
34
|
+
{child.text}
|
|
35
|
+
</Link>
|
|
36
|
+
) : (
|
|
37
|
+
<a
|
|
38
|
+
href={child.link}
|
|
39
|
+
target={'_blank'}
|
|
40
|
+
rel="noopener noreferrer"
|
|
41
|
+
>
|
|
42
|
+
{child.text}
|
|
43
|
+
</a>
|
|
44
|
+
)}
|
|
45
|
+
</>
|
|
21
46
|
))}
|
|
22
47
|
</div>
|
|
23
48
|
)}
|
|
@@ -33,29 +33,60 @@ Default.args = {
|
|
|
33
33
|
header: 'Environmental information systems',
|
|
34
34
|
description: '',
|
|
35
35
|
actions: [
|
|
36
|
-
{ link: '
|
|
37
|
-
{ link: '
|
|
38
|
-
{ link: '
|
|
36
|
+
{ link: '/privacy', title: 'Privacy' },
|
|
37
|
+
{ link: '/sitemap', title: 'Sitemap' },
|
|
38
|
+
{ link: 'https://www.eea.europa.eu/en/login', title: 'CMS Login' },
|
|
39
39
|
],
|
|
40
40
|
copyright: [
|
|
41
41
|
{ link: 'https://status.eea.europa.eu/', title: 'System status' },
|
|
42
|
-
{
|
|
42
|
+
{
|
|
43
|
+
link: '/copyright',
|
|
44
|
+
title: '© Copyright 2023 EEA',
|
|
45
|
+
},
|
|
43
46
|
],
|
|
44
47
|
sites: [
|
|
45
|
-
{ link: '
|
|
46
|
-
{
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
{ link: 'https://water.europa.eu/marine', src: Marine, alt: 'WISE marine' },
|
|
49
|
+
{
|
|
50
|
+
link: 'https://water.europa.eu/freshwater',
|
|
51
|
+
src: Freshwater,
|
|
52
|
+
alt: 'WISE freshwater',
|
|
53
|
+
},
|
|
54
|
+
{ link: 'https://biodiversity.europa.eu/', src: Bise, alt: 'Biodiversity' },
|
|
49
55
|
{
|
|
50
|
-
link: '
|
|
56
|
+
link: 'https://forest.eea.europa.eu/',
|
|
57
|
+
src: Fise,
|
|
58
|
+
alt: 'Forest information system for europe',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
link: 'https://climate-adapt.eea.europa.eu/observatory',
|
|
51
62
|
src: ClimateHealth,
|
|
52
63
|
alt: 'Information platform for chemical monitoring',
|
|
53
64
|
},
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
{
|
|
66
|
+
link: 'https://climate-adapt.eea.europa.eu/',
|
|
67
|
+
src: Cca,
|
|
68
|
+
alt: 'Climate adapt',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
link: 'https://industry.eea.europa.eu/',
|
|
72
|
+
src: Industry,
|
|
73
|
+
alt: 'European industrial emissions portal',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
link: 'https://climate-energy.eea.europa.eu/',
|
|
77
|
+
src: Energy,
|
|
78
|
+
alt: 'Climate and energy in the EU',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
link: 'https://land.copernicus.eu/',
|
|
82
|
+
src: Copernicus,
|
|
83
|
+
alt: 'Copernicus land monitoring service',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
link: 'https://insitu.copernicus.eu/',
|
|
87
|
+
src: Insitu,
|
|
88
|
+
alt: 'Copernicus in situ',
|
|
89
|
+
},
|
|
59
90
|
],
|
|
60
91
|
managedBy: [
|
|
61
92
|
{
|
|
@@ -82,23 +113,43 @@ Default.args = {
|
|
|
82
113
|
},
|
|
83
114
|
],
|
|
84
115
|
social: [
|
|
85
|
-
{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
{
|
|
116
|
+
{
|
|
117
|
+
name: 'twitter',
|
|
118
|
+
icon: 'ri-twitter-fill',
|
|
119
|
+
link: 'https://twitter.com/euenvironment',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'facebook',
|
|
123
|
+
icon: 'ri-facebook-box-fill',
|
|
124
|
+
link: 'https://www.facebook.com/European.Environment.Agency',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'linkedin',
|
|
128
|
+
icon: 'ri-linkedin-fill',
|
|
129
|
+
link: 'https://www.linkedin.com/company/european-environment-agency',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'youtube',
|
|
133
|
+
icon: 'ri-youtube-fill',
|
|
134
|
+
link: 'https://www.youtube.com/user/EEAvideos',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: 'instagram',
|
|
138
|
+
icon: 'ri-instagram-fill',
|
|
139
|
+
link: 'https://www.instagram.com/ourplanet_eu',
|
|
140
|
+
},
|
|
141
|
+
{ name: 'rss', icon: 'ri-rss-fill', link: '/subscription/news-feeds' },
|
|
91
142
|
],
|
|
92
143
|
contacts: [
|
|
93
144
|
{
|
|
94
145
|
text: 'About us',
|
|
95
|
-
link: '
|
|
146
|
+
link: '/about',
|
|
96
147
|
children: [
|
|
97
|
-
{ text: 'FAQs', link: '
|
|
98
|
-
{ text: 'Careers', link: '
|
|
148
|
+
{ text: 'FAQs', link: 'http://external.site' },
|
|
149
|
+
{ text: 'Careers', link: '/careers' },
|
|
99
150
|
],
|
|
100
151
|
},
|
|
101
|
-
{ text: 'Contact us', link: '
|
|
102
|
-
{ text: 'Sign up to our newsletter', link: '
|
|
152
|
+
{ text: 'Contact us', link: '/contact-us' },
|
|
153
|
+
{ text: 'Sign up to our newsletter', link: '/newsletter' },
|
|
103
154
|
],
|
|
104
155
|
};
|
package/src/ui/Header/Header.jsx
CHANGED
|
@@ -138,6 +138,7 @@ const Main = ({
|
|
|
138
138
|
transparency,
|
|
139
139
|
inverted,
|
|
140
140
|
hideSearch,
|
|
141
|
+
isMultilingual,
|
|
141
142
|
}) => {
|
|
142
143
|
const history = useHistory();
|
|
143
144
|
const [activeItem, setActiveItem] = React.useState(pathname);
|
|
@@ -154,10 +155,15 @@ const Main = ({
|
|
|
154
155
|
setSearchIsActive(false);
|
|
155
156
|
setBurger('');
|
|
156
157
|
// remove active menu when we have no pathname which means we hit logo to go home
|
|
157
|
-
if
|
|
158
|
+
//remove the lang route in order to check if empty
|
|
159
|
+
//setActiveItem as pathname when pathname changed
|
|
160
|
+
if (
|
|
161
|
+
!pathname ||
|
|
162
|
+
(isMultilingual === true && !pathname?.split('/')?.slice(2)?.join('/'))
|
|
163
|
+
) {
|
|
158
164
|
setActiveItem('');
|
|
159
|
-
}
|
|
160
|
-
}, [pathname]);
|
|
165
|
+
} else setActiveItem(pathname);
|
|
166
|
+
}, [isMultilingual, pathname]);
|
|
161
167
|
|
|
162
168
|
React.useEffect(() => {
|
|
163
169
|
if (searchIsActive) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { Transition } from 'semantic-ui-react';
|
|
3
3
|
import { Container, Grid, List, Icon, Accordion } from 'semantic-ui-react';
|
|
4
4
|
|
|
@@ -88,7 +88,7 @@ const Countries = ({ menuItem, renderMenuItem }) => (
|
|
|
88
88
|
<Grid.Column width={8}>
|
|
89
89
|
{menuItem.items.map((section, index) => (
|
|
90
90
|
<React.Fragment key={index}>
|
|
91
|
-
{
|
|
91
|
+
{index === 0 && (
|
|
92
92
|
<ItemGrid
|
|
93
93
|
sectionTitle={section.title}
|
|
94
94
|
item={section}
|
|
@@ -103,7 +103,7 @@ const Countries = ({ menuItem, renderMenuItem }) => (
|
|
|
103
103
|
<Grid columns={1} className="nested-grid">
|
|
104
104
|
{menuItem.items.map((section, index) => (
|
|
105
105
|
<React.Fragment key={index}>
|
|
106
|
-
{
|
|
106
|
+
{index !== 0 && (
|
|
107
107
|
<Grid.Column>
|
|
108
108
|
<ItemGrid
|
|
109
109
|
sectionTitle={section.title}
|
|
@@ -244,17 +244,31 @@ const SecondLevelContent = ({ element, topics = false, renderMenuItem }) => {
|
|
|
244
244
|
};
|
|
245
245
|
|
|
246
246
|
const NestedAccordion = ({ menuItems, renderMenuItem, pathName }) => {
|
|
247
|
-
|
|
247
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
248
|
+
|
|
249
|
+
useEffect(() => {
|
|
250
|
+
let index = 0;
|
|
251
|
+
menuItems.forEach((menuItem) => {
|
|
252
|
+
if (pathName.includes(menuItem.url)) setActiveIndex(index);
|
|
253
|
+
++index;
|
|
254
|
+
});
|
|
255
|
+
}, [menuItems, pathName]);
|
|
256
|
+
|
|
248
257
|
const rootPanels = [];
|
|
249
258
|
menuItems.forEach((element, index) => {
|
|
250
259
|
let x = {};
|
|
251
260
|
x.key = index;
|
|
252
|
-
|
|
253
|
-
if (pathName.indexOf(element.url) !== -1) {
|
|
254
|
-
defaultIndex = index;
|
|
255
|
-
}
|
|
256
261
|
x.title = (
|
|
257
|
-
<Accordion.Title
|
|
262
|
+
<Accordion.Title
|
|
263
|
+
key={`title-${index}`}
|
|
264
|
+
index={index}
|
|
265
|
+
as="button"
|
|
266
|
+
onClick={() => {
|
|
267
|
+
if (activeIndex === index) {
|
|
268
|
+
setActiveIndex(-1);
|
|
269
|
+
} else setActiveIndex(index);
|
|
270
|
+
}}
|
|
271
|
+
>
|
|
258
272
|
{element.title}
|
|
259
273
|
<Icon className="ri-arrow-down-s-line" size="small" />
|
|
260
274
|
</Accordion.Title>
|
|
@@ -289,7 +303,7 @@ const NestedAccordion = ({ menuItems, renderMenuItem, pathName }) => {
|
|
|
289
303
|
rootPanels.push(x);
|
|
290
304
|
});
|
|
291
305
|
|
|
292
|
-
return <Accordion
|
|
306
|
+
return <Accordion activeIndex={activeIndex} panels={rootPanels} />;
|
|
293
307
|
};
|
|
294
308
|
|
|
295
309
|
function HeaderMenuPopUp({
|
|
@@ -30,6 +30,7 @@ function HeaderSearchPopUp({
|
|
|
30
30
|
const {
|
|
31
31
|
path = '',
|
|
32
32
|
buttonTitle,
|
|
33
|
+
buttonUrl,
|
|
33
34
|
description,
|
|
34
35
|
placeholder = 'Search',
|
|
35
36
|
searchSuggestions,
|
|
@@ -115,7 +116,7 @@ function HeaderSearchPopUp({
|
|
|
115
116
|
<Container>
|
|
116
117
|
<div>{description}</div>
|
|
117
118
|
<a
|
|
118
|
-
href={defaultView[0].path}
|
|
119
|
+
href={buttonUrl || defaultView[0].path}
|
|
119
120
|
className="ui button white inverted"
|
|
120
121
|
title="Advanced search"
|
|
121
122
|
>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
|
|
4
|
+
function Video({ children, align }) {
|
|
5
|
+
return <div className={cx('block video align', align)}>{children}</div>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
Video.Body = ({ children, align }) => (
|
|
9
|
+
<div className={cx('video-inner', { 'full-width': align === 'full' })}>
|
|
10
|
+
{children}
|
|
11
|
+
</div>
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
Video.Embed = ({
|
|
15
|
+
children,
|
|
16
|
+
url,
|
|
17
|
+
loop,
|
|
18
|
+
autoPlay,
|
|
19
|
+
align,
|
|
20
|
+
placeholder_image,
|
|
21
|
+
required_caption,
|
|
22
|
+
}) => {
|
|
23
|
+
return (
|
|
24
|
+
<video
|
|
25
|
+
src={url}
|
|
26
|
+
controls={!autoPlay}
|
|
27
|
+
autoPlay={autoPlay}
|
|
28
|
+
muted={autoPlay}
|
|
29
|
+
loop={loop}
|
|
30
|
+
poster={placeholder_image}
|
|
31
|
+
type="video/mp4"
|
|
32
|
+
>
|
|
33
|
+
<track kind="captions" {...required_caption} />
|
|
34
|
+
{children}
|
|
35
|
+
</video>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
Video.Track = ({ tracks }) =>
|
|
40
|
+
tracks.map((track, index) => {
|
|
41
|
+
return <track {...track} />;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export default Video;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Container } from 'semantic-ui-react';
|
|
3
|
+
import Video from './Video';
|
|
4
|
+
import englishTrack from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/video/demo-track-en.vtt';
|
|
5
|
+
import romanianTrack from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/video/demo-track-ro.vtt';
|
|
6
|
+
import greekTrack from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/video/demo-track-el.vtt';
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: 'Components/Video',
|
|
10
|
+
component: Video,
|
|
11
|
+
argTypes: {
|
|
12
|
+
align: {
|
|
13
|
+
options: ['center', 'right', 'left'],
|
|
14
|
+
control: {
|
|
15
|
+
type: 'select',
|
|
16
|
+
labels: {
|
|
17
|
+
'': 'default',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultValue: 'center',
|
|
21
|
+
table: {
|
|
22
|
+
defaultValue: { summary: 'center' },
|
|
23
|
+
type: { summary: 'string' },
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const Template = (args) => (
|
|
30
|
+
<Container>
|
|
31
|
+
<Video align={args.align}>
|
|
32
|
+
<Video.Body align={args.align}>
|
|
33
|
+
<Video.Embed {...args}>
|
|
34
|
+
<Video.Track tracks={args.tracks} />
|
|
35
|
+
</Video.Embed>
|
|
36
|
+
</Video.Body>
|
|
37
|
+
</Video>
|
|
38
|
+
</Container>
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
export const Default = Template.bind({});
|
|
42
|
+
Default.args = {
|
|
43
|
+
url: 'https://cmshare.eea.europa.eu/s/Xw7kH2TJGCibHJf/download',
|
|
44
|
+
autoPlay: false,
|
|
45
|
+
loop: false,
|
|
46
|
+
align: 'center',
|
|
47
|
+
placeholder_image: '',
|
|
48
|
+
required_caption: { src: englishTrack, srclang: 'en', label: 'English' },
|
|
49
|
+
tracks: [
|
|
50
|
+
{ src: romanianTrack, kind: 'captions', srclang: 'ro', label: 'Română' },
|
|
51
|
+
{ src: greekTrack, kind: 'captions', srclang: 'el', label: 'Ελλήνικά' },
|
|
52
|
+
],
|
|
53
|
+
};
|
package/src/ui/index.js
CHANGED
|
@@ -22,8 +22,6 @@ export Timeline from './Timeline/Timeline';
|
|
|
22
22
|
|
|
23
23
|
export Testimonial from './Quote/Testimonial/Testimonial';
|
|
24
24
|
|
|
25
|
-
export AvatarGrid from './Card/AvatarGrid/AvatarGrid';
|
|
26
|
-
|
|
27
25
|
export KeyContent from './KeyContent/KeyContent';
|
|
28
26
|
|
|
29
27
|
export DownloadLabeledIcon from './DownloadLabeledIcon/DownloadLabeledIcon';
|
|
@@ -39,3 +37,5 @@ export RelatedContent from './Card/RelatedContent/RelatedContent';
|
|
|
39
37
|
export Hero from './Hero/Hero';
|
|
40
38
|
|
|
41
39
|
export Copyright from './Copyright/Copyright';
|
|
40
|
+
|
|
41
|
+
export Video from './Video/Video';
|
package/theme/theme.config
CHANGED
|
@@ -88,10 +88,8 @@
|
|
|
88
88
|
@tagList : 'eea';
|
|
89
89
|
@inpageNavigation : 'eea';
|
|
90
90
|
@contextNavigation : 'eea';
|
|
91
|
-
@avatar : 'eea';
|
|
92
91
|
@divider : 'eea';
|
|
93
92
|
@testimonial : 'eea';
|
|
94
|
-
@avatarGrid : 'eea';
|
|
95
93
|
@keyContent : 'eea';
|
|
96
94
|
@publicationCard : 'eea';
|
|
97
95
|
@contentBox : 'eea';
|
|
@@ -135,5 +133,4 @@
|
|
|
135
133
|
@import (optional) "@{siteFolder}/@{addon}/@{addontype}s/@{addonelement}.overrides";
|
|
136
134
|
}
|
|
137
135
|
|
|
138
|
-
|
|
139
136
|
/* End Config */
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
WEBVTT
|
|
2
|
+
|
|
3
|
+
00:00:00.000 --> 00:00:11.999 line:80%
|
|
4
|
+
[ΜΟΥΣΙΚΗ]
|
|
5
|
+
|
|
6
|
+
00:00:12.000 --> 00:01:35.999 line:80%
|
|
7
|
+
Αυτά τα components χρησιμοποιούνται ως παράδειγμα χρήσης.
|
|
8
|
+
Αυτοί οι υπότιτλοι έχουν σκοπό την επίδειξη της λειτουργικότητας.
|
|
9
|
+
|
|
10
|
+
00:01:36.000 --> 00:01:47.999 line:80%
|
|
11
|
+
[ΜΟΥΣΙΚΗ]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
WEBVTT
|
|
2
|
+
|
|
3
|
+
00:00:00.000 --> 00:00:11.999 line:80%
|
|
4
|
+
[MUSIC]
|
|
5
|
+
|
|
6
|
+
00:00:12.000 --> 00:01:35.999 line:80%
|
|
7
|
+
These components are used for demo purposes.
|
|
8
|
+
This track is an example to demonstrate the functionality.
|
|
9
|
+
|
|
10
|
+
00:01:36.000 --> 00:01:47.999 line:80%
|
|
11
|
+
[MUSIC]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
WEBVTT
|
|
2
|
+
|
|
3
|
+
00:00:00.000 --> 00:00:11.999 line:80%
|
|
4
|
+
[MUZICĂ]
|
|
5
|
+
|
|
6
|
+
00:00:12.000 --> 00:01:35.999 line:80%
|
|
7
|
+
Aceste componente sunt utilizate în scopuri demonstrative.
|
|
8
|
+
Această piesă este un exemplu pentru a demonstra funcționalitatea.
|
|
9
|
+
|
|
10
|
+
00:01:36.000 --> 00:01:47.999 line:80%
|
|
11
|
+
[MUZICĂ]
|
|
@@ -100,106 +100,3 @@
|
|
|
100
100
|
flex: 1 0 auto;
|
|
101
101
|
align-items: center;
|
|
102
102
|
}
|
|
103
|
-
|
|
104
|
-
//@media only screen and (max-width: @mobileWidth) {
|
|
105
|
-
// .ui.segment.header-wrapper {
|
|
106
|
-
// position: sticky !important;
|
|
107
|
-
// z-index: 3;
|
|
108
|
-
// background: @white;
|
|
109
|
-
// }
|
|
110
|
-
//
|
|
111
|
-
// .ui.segment {
|
|
112
|
-
// position: initial !important;
|
|
113
|
-
// }
|
|
114
|
-
//
|
|
115
|
-
// .header .logo-nav-wrapper {
|
|
116
|
-
// margin: 10px 0 10px;
|
|
117
|
-
// }
|
|
118
|
-
//}
|
|
119
|
-
//
|
|
120
|
-
//.ui.segment.header-wrapper {
|
|
121
|
-
// padding: 0;
|
|
122
|
-
//}
|
|
123
|
-
//
|
|
124
|
-
//.ui.segment .header {
|
|
125
|
-
// padding: 0 15px;
|
|
126
|
-
//}
|
|
127
|
-
//
|
|
128
|
-
//.header .logo-nav-wrapper {
|
|
129
|
-
// align-items: center;
|
|
130
|
-
//
|
|
131
|
-
// .navigation {
|
|
132
|
-
// display: flex;
|
|
133
|
-
// width: 100%;
|
|
134
|
-
// align-items: center;
|
|
135
|
-
// justify-content: center;
|
|
136
|
-
// }
|
|
137
|
-
//}
|
|
138
|
-
//
|
|
139
|
-
//.header .logo-nav-wrapper .ui.pointing.secondary {
|
|
140
|
-
// display: flex;
|
|
141
|
-
// width: 100%;
|
|
142
|
-
// max-width: 100%;
|
|
143
|
-
// justify-content: unset;
|
|
144
|
-
// margin: 0 !important;
|
|
145
|
-
//
|
|
146
|
-
// .navigation-links {
|
|
147
|
-
// display: inline-flex;
|
|
148
|
-
// width: 100%;
|
|
149
|
-
// justify-content: center;
|
|
150
|
-
// }
|
|
151
|
-
//
|
|
152
|
-
// .tools-wrapper {
|
|
153
|
-
// display: flex;
|
|
154
|
-
// flex: 1 0 auto;
|
|
155
|
-
// align-items: center;
|
|
156
|
-
// }
|
|
157
|
-
//
|
|
158
|
-
// .tools-search-wrapper {
|
|
159
|
-
// margin-left: 0;
|
|
160
|
-
// }
|
|
161
|
-
//
|
|
162
|
-
// .search form {
|
|
163
|
-
// padding-top: 0 !important;
|
|
164
|
-
// }
|
|
165
|
-
//}
|
|
166
|
-
//
|
|
167
|
-
//@media only screen and (max-width: 766px) {
|
|
168
|
-
// // #141204 take into account that for the header wrapper on mobile views
|
|
169
|
-
// // we have the volto toolbar on top
|
|
170
|
-
// .has-toolbar-collapsed .header-wrapper {
|
|
171
|
-
// top: 20px;
|
|
172
|
-
// }
|
|
173
|
-
//
|
|
174
|
-
// .has-toolbar .header-wrapper {
|
|
175
|
-
// top: 100px;
|
|
176
|
-
// }
|
|
177
|
-
//}
|
|
178
|
-
//
|
|
179
|
-
//@media only screen and (min-width: 768px) and (max-width: @mobileWidth) {
|
|
180
|
-
// // #141204 use fixed position instead of sticky in order to always
|
|
181
|
-
// // have the header on top from 768px to 1279px
|
|
182
|
-
// .ui.segment.header-wrapper {
|
|
183
|
-
// position: fixed !important;
|
|
184
|
-
// top: 0;
|
|
185
|
-
// }
|
|
186
|
-
//
|
|
187
|
-
// .header-wrapper {
|
|
188
|
-
// width: 100%; // when position fixed div behaves as inline
|
|
189
|
-
// }
|
|
190
|
-
//
|
|
191
|
-
// .has-toolbar .header-wrapper {
|
|
192
|
-
// width: calc(100% - 80px); // toolbar width
|
|
193
|
-
// }
|
|
194
|
-
//
|
|
195
|
-
// .has-toolbar-collapsed .header-wrapper {
|
|
196
|
-
// width: calc(100% - 20px);
|
|
197
|
-
// }
|
|
198
|
-
//}
|
|
199
|
-
//
|
|
200
|
-
//.ui.right.sidebar.metadata-sidebar.menu,
|
|
201
|
-
//.ui.left.sidebar.metadata-sidebar.menu {
|
|
202
|
-
// .ui.header {
|
|
203
|
-
// padding: 0;
|
|
204
|
-
// }
|
|
205
|
-
//}
|
|
@@ -88,6 +88,12 @@
|
|
|
88
88
|
position: relative;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
// https://www.eea.europa.eu/en/newsroom/photo-competitions
|
|
92
|
+
// ensure link focus goes over the image
|
|
93
|
+
.image-block-container > a {
|
|
94
|
+
display: @imageBlockContainerLinkDisplay;
|
|
95
|
+
}
|
|
96
|
+
|
|
91
97
|
/* if the image is smaller than the content area the copyright
|
|
92
98
|
isn't as big as the image unless the image is inline-block
|
|
93
99
|
*/
|
|
@@ -228,4 +228,16 @@
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
+
@media print {
|
|
232
|
+
.eea.banner .gradient .content,
|
|
233
|
+
.eea.banner .image .gradient .content {
|
|
234
|
+
padding-top: @printContentPadding;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.eea.banner .gradient .content > div > div {
|
|
238
|
+
padding-top: 0;
|
|
239
|
+
padding-bottom: 0;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
231
243
|
.loadUIOverrides();
|
|
@@ -17,11 +17,13 @@
|
|
|
17
17
|
@mobileContentPadding : 1rem 0 1.25rem;
|
|
18
18
|
@tabletContentPadding : 3rem 0 1.25rem;
|
|
19
19
|
@computerContentPadding : 5rem 0 1.25rem;
|
|
20
|
+
@printContentPadding : 15px;
|
|
20
21
|
|
|
21
22
|
@mobileContentPaddingWithImage : 6.25rem 0 1.25rem;
|
|
22
23
|
@tabletContentPaddingWithImage : 12.5rem 0 1.25rem;
|
|
23
24
|
@computerContentPaddingWithImage : 15.625rem 0 1.25rem;
|
|
24
25
|
|
|
26
|
+
|
|
25
27
|
/* Title */
|
|
26
28
|
@titleFontWeight : @bold;
|
|
27
29
|
@titleMaxWidth : 100%;
|