@eeacms/volto-eea-design-system 1.60.3 → 1.60.4

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/AGENTS.md ADDED
@@ -0,0 +1,105 @@
1
+ # volto-eea-design-system — Agent Notes
2
+
3
+ ## Project Type
4
+
5
+ - **Volto add-on**, not a standalone app. Entrypoint is `src/index.js`.
6
+ - Provides a **Semantic UI theme** (`theme/`) and ~49 React UI components (`src/ui/`).
7
+ - Published as `@eeacms/volto-eea-design-system`.
8
+ - Depends on `@eeacms/volto-corsproxy`.
9
+
10
+ ## Development Environment
11
+
12
+ - **Everything runs in Docker.** Do not run `yarn start` or `yarn test` directly on the host.
13
+ - Default stack: Plone backend (`eeacms/plone-backend`) + Volto frontend (builder image).
14
+ - **Setup:**
15
+ ```bash
16
+ make # builds images (clean + install)
17
+ make start # docker compose up; wait for "Volto started at 0.0.0.0:3000"
18
+ ```
19
+ - **Volto version override:**
20
+ ```bash
21
+ VOLTO_VERSION=17 make # for legacy Volto 17
22
+ VOLTO_VERSION=17 make start
23
+ ```
24
+ Default is `18-yarn`.
25
+ - **Shell inside frontend container:** `make shell`
26
+ - The repo root is volume-mounted into the container at `/app/src/addons/volto-eea-design-system`.
27
+
28
+ ## Testing
29
+
30
+ - **Unit tests (Jest):** run inside Docker only.
31
+ ```bash
32
+ make test # run tests
33
+ make test-update # update snapshots (-u)
34
+ ```
35
+ Under the hood: `docker compose run --no-deps -e CI=1 frontend test`.
36
+ - The project uses a custom `jest-addon.config.js` that resolves Volto and EEA addon aliases. Coverage thresholds are intentionally low (5%).
37
+ - **E2E tests (Cypress):** require the full Docker stack running on ports 3000 and 8080.
38
+ ```bash
39
+ make # build
40
+ make start # start backend + frontend in background or separate terminal
41
+ make cypress-open # interactive
42
+ make cypress-run # headless (uses Chromium)
43
+ ```
44
+ - Retries: 2 in run mode, 0 in open mode.
45
+ - Base URL: `http://localhost:3000`.
46
+ - **Do not run `yarn test` directly** — it will fail because it expects the Volto monorepo context inside the container.
47
+
48
+ ## Linting & Formatting
49
+
50
+ Three separate linters; all wrapped in `make`:
51
+
52
+ ```bash
53
+ make lint # ESLint src/**/*.{js,jsx}
54
+ make lint-fix # ESLint --fix
55
+ make prettier # Prettier --check
56
+ make prettier-fix # Prettier --write
57
+ make stylelint # Stylelint src/**/*.{css,less}
58
+ make stylelint-overrides # Stylelint theme/**/*.overrides
59
+ make stylelint-fix # Fixes both src and theme styles
60
+ make i18n # Extract i18n strings (deletes build/messages first)
61
+ ```
62
+
63
+ - **Pre-commit hook** (Husky + lint-staged):
64
+ - Staged `src/**/*.{js,jsx,ts,tsx,json}` → `make lint-fix && make prettier-fix`
65
+ - Staged `src/**/*.jsx` → `make i18n`
66
+ - Staged `theme/**/*.{css,less}` / `src/**/*.{css,less}` / `**/*.overrides` → `make stylelint-fix`
67
+ - **One-shot fix-all:** `make ci-fix` runs lint-fix, prettier-fix, and stylelint-fix.
68
+
69
+ ## Release Workflow
70
+
71
+ - **Production releases:** fully automated via Jenkins.
72
+ - Trigger: merge a PR from `develop` → `master`.
73
+ - Jenkins runs tests on both Volto 18-yarn and Volto 17, then releases using the `eeacms/gitflow` image with `release-it`.
74
+ - `master` is protected; direct commits are blocked.
75
+ - **Beta releases:** manual from `develop` branch only.
76
+ ```bash
77
+ yarn release-beta # prepatch / preminor / premajor beta
78
+ yarn release-major-beta # premajor beta pre-selected
79
+ yarn release # generic (avoid on master)
80
+ ```
81
+ - Requires `GITHUB_TOKEN` and optionally `.npmrc` with auth token.
82
+ - **Do not keep a `develop` → `master` PR open while doing beta releases.** The auto-release bot will overwrite `CHANGELOG.md` and `package.json` on every commit.
83
+ - **Changelog:** auto-generated by `auto-changelog`. Commits containing `[JENKINS]` or `[YARN]` are excluded.
84
+
85
+ ## Architecture Notes
86
+
87
+ - **Theme system:**
88
+ - `theme/theme.config` maps every Semantic UI component to the `eea` theme.
89
+ - `theme/themes/eea/` contains the actual Less overrides and assets.
90
+ - `theme/theme.less` is the entrypoint for custom EEA variables and utilities.
91
+ - **Webpack aliases** (`razzle.extend.js`):
92
+ - `../../theme.config$` → `./theme/theme.config`
93
+ - `eea-volto-themes` → `./theme/themes`
94
+ - `ui-theme` / `ui-assets` → `./theme/themes/eea/...`
95
+ - **Add-on wiring:** `src/index.js` exports an `applyConfig` function that mutates the Volto config object (e.g., sets `navDepth: 3`).
96
+ - **i18n:** Translations live in `locales/`. Run `make i18n` after adding new translatable strings.
97
+ - **Storybook:** Not built from this repo. The `.storybook/` folder only has a `manager.js`. Storybook deployments are handled by the `eea-storybook` repo (triggered via GitHub Actions on pushes to `develop`).
98
+ - **Documentation site:** Docusaurus in `website/`; deployed by GitHub Actions on pushes to `develop`.
99
+
100
+ ## CI / Jenkins Quirks
101
+
102
+ - Jenkins tests run in Docker containers and execute `make` targets inside them.
103
+ - On non-master/non-develop branches, Jenkins may skip tests if `eeacms/gitflow /check_if_testing_needed.sh` returns 0.
104
+ - Automated code fixes: Jenkins runs `make ci-fix` on feature branches and pushes the result back to the branch if changes are found.
105
+ - Coverage reports are published as HTML; unit test results are JUnit XML.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ 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.60.4](https://github.com/eea/volto-eea-design-system/compare/1.60.3...1.60.4) - 18 May 2026
8
+
9
+ #### :house: Documentation changes
10
+
11
+ - docs: add DESIGN.md per Google design.md spec [Antonio De Marinis - [`6479de1`](https://github.com/eea/volto-eea-design-system/commit/6479de1c0da4e109ded021ae9a6c0a02577cf9f4)]
12
+ - docs: add AGENTS.md for agentic design context [Antonio De Marinis - [`5a85e38`](https://github.com/eea/volto-eea-design-system/commit/5a85e385083fe47d6d15c9637e9d56490fff6e9d)]
13
+
7
14
  ### [1.60.3](https://github.com/eea/volto-eea-design-system/compare/1.60.2...1.60.3) - 12 May 2026
8
15
 
9
16
  #### :bug: Bug Fixes
package/DESIGN.md ADDED
@@ -0,0 +1,406 @@
1
+ ---
2
+ version: alpha
3
+ name: EEA Design System
4
+ description: >
5
+ European Environment Agency design system for Volto-based web applications.
6
+ User-centered, WCAG-compliant, with a focus on clarity, functionality,
7
+ and consistent responsive behaviour across devices.
8
+ colors:
9
+ # ── Semantic / Core ──
10
+ primary: "#004B7F"
11
+ secondary: "#007B6C"
12
+ tertiary: "#3D5265"
13
+ text: "#3D5265"
14
+ background: "#FFFFFF"
15
+ background-supplementary: "#F9F9F9"
16
+ highlight: "#007B6C"
17
+
18
+ # ── Link states ──
19
+ link-default: "#006BB8"
20
+ link-hover: "#004B7F"
21
+ link-visited: "#753AAD"
22
+ link-active: "#003052"
23
+
24
+ # ── State / feedback ──
25
+ success: "#007B6C"
26
+ warning: "#FF9933"
27
+ error: "#B83230"
28
+ info: "#004B7F"
29
+
30
+ # ── Brown palette ──
31
+ brown-0: "#FFF6EC"
32
+ brown-1: "#FFEDD8"
33
+ brown-2: "#E7BC91"
34
+ brown-3: "#BC8A5F"
35
+ brown-4: "#8B5E34"
36
+ brown-5: "#603808"
37
+ brown-6: "#3D2201"
38
+
39
+ # ── Purple palette ──
40
+ purple-0: "#EFEBF2"
41
+ purple-1: "#DFD6E7"
42
+ purple-2: "#BEADCE"
43
+ purple-3: "#9E84B6"
44
+ purple-4: "#753AAD"
45
+ purple-5: "#5C3285"
46
+ purple-6: "#3C096C"
47
+
48
+ # ── Red palette ──
49
+ red-0: "#FBEEF8"
50
+ red-1: "#F6DDF0"
51
+ red-2: "#E7B2C0"
52
+ red-3: "#D78890"
53
+ red-4: "#C65B59"
54
+ red-5: "#B83230"
55
+ red-6: "#5C1918"
56
+
57
+ # ── Yellow palette ──
58
+ yellow-0: "#FEF6CD"
59
+ yellow-1: "#FBEC9B"
60
+ yellow-2: "#FAD936"
61
+ yellow-3: "#FAC50D"
62
+ yellow-4: "#FDAF20"
63
+ yellow-5: "#FF9933"
64
+ yellow-6: "#C35527"
65
+
66
+ # ── Green palette ──
67
+ green-0: "#C8FFF8"
68
+ green-1: "#A0E5DC"
69
+ green-2: "#78CAC0"
70
+ green-3: "#50B0A4"
71
+ green-4: "#289588"
72
+ green-5: "#007B6C"
73
+ green-6: "#005248"
74
+
75
+ # ── Blue palette ──
76
+ blue-0: "#A0D7FF"
77
+ blue-1: "#47B3FF"
78
+ blue-2: "#008FF5"
79
+ blue-3: "#0079CF"
80
+ blue-4: "#006BB8"
81
+ blue-5: "#004B7F"
82
+ blue-6: "#003052"
83
+
84
+ # ── Blue-grey palette ──
85
+ blue-grey-0: "#DAE8F4"
86
+ blue-grey-1: "#ACCAE5"
87
+ blue-grey-2: "#87A7C3"
88
+ blue-grey-3: "#6989A5"
89
+ blue-grey-4: "#4C677F"
90
+ blue-grey-5: "#3D5265"
91
+ blue-grey-6: "#2E3E4C"
92
+
93
+ # ── Grey palette ──
94
+ grey-0: "#FFFFFF"
95
+ grey-1: "#F9F9F9"
96
+ grey-2: "#E6E7E8"
97
+ grey-3: "#BCBEC0"
98
+ grey-4: "#747678"
99
+ grey-5: "#323232"
100
+ grey-6: "#000000"
101
+
102
+ # ── Thematic platforms ──
103
+ biodiversity-primary: "#289588"
104
+ biodiversity-secondary: "#FAC50D"
105
+ forest-primary: "#007B6C"
106
+ forest-secondary: "#005248"
107
+ freshwater-primary: "#0079CF"
108
+ freshwater-secondary: "#004B7F"
109
+ marine-primary: "#004B7F"
110
+ marine-secondary: "#0079CF"
111
+
112
+ typography:
113
+ h1:
114
+ fontFamily: Roboto
115
+ fontSize: 44px
116
+ fontWeight: 700
117
+ lineHeight: 1.2
118
+ letterSpacing: -0.015em
119
+ h2:
120
+ fontFamily: Roboto
121
+ fontSize: 32px
122
+ fontWeight: 700
123
+ lineHeight: 1.2
124
+ letterSpacing: -0.015em
125
+ h3:
126
+ fontFamily: Roboto
127
+ fontSize: 26px
128
+ fontWeight: 700
129
+ lineHeight: 1.2
130
+ letterSpacing: -0.015em
131
+ h4:
132
+ fontFamily: Roboto
133
+ fontSize: 20px
134
+ fontWeight: 700
135
+ lineHeight: 1.2
136
+ letterSpacing: -0.015em
137
+ h5:
138
+ fontFamily: Roboto
139
+ fontSize: 18px
140
+ fontWeight: 700
141
+ lineHeight: 1.2
142
+ letterSpacing: -0.015em
143
+ body:
144
+ fontFamily: Roboto
145
+ fontSize: 16px
146
+ fontWeight: 400
147
+ lineHeight: 1.5
148
+ letterSpacing: 0em
149
+ caption:
150
+ fontFamily: Roboto
151
+ fontSize: 14px
152
+ fontWeight: 400
153
+ lineHeight: 1.5
154
+ letterSpacing: 0.01em
155
+ small:
156
+ fontFamily: Roboto
157
+ fontSize: 12px
158
+ fontWeight: 400
159
+ lineHeight: 1.5
160
+ letterSpacing: 0.01em
161
+ label:
162
+ fontFamily: Roboto
163
+ fontSize: 12px
164
+ fontWeight: 500
165
+ lineHeight: 1.0
166
+ letterSpacing: 0.1em
167
+
168
+ spacing:
169
+ space-025: 1px
170
+ space-05: 2px
171
+ space-1: 4px
172
+ space-2: 8px
173
+ space-3: 12px
174
+ space-4: 16px
175
+ space-5: 20px
176
+ space-6: 24px
177
+ space-7: 28px
178
+ space-8: 32px
179
+ space-9: 36px
180
+ space-10: 40px
181
+ space-11: 44px
182
+ space-12: 48px
183
+ space-13: 52px
184
+ space-14: 56px
185
+ space-15: 60px
186
+ space-16: 64px
187
+ space-17: 68px
188
+ space-18: 72px
189
+ space-19: 76px
190
+ space-20: 80px
191
+ space-24: 96px
192
+
193
+ rounded:
194
+ none: 0px
195
+ sm: 2px
196
+ md: 4px
197
+ lg: 8px
198
+ full: 9999px
199
+
200
+ components:
201
+ button-primary:
202
+ backgroundColor: "{colors.secondary}"
203
+ textColor: "{colors.grey-0}"
204
+ rounded: "{rounded.none}"
205
+ padding: 12px
206
+ button-primary-hover:
207
+ backgroundColor: "{colors.green-6}"
208
+ button-secondary:
209
+ backgroundColor: "{colors.primary}"
210
+ textColor: "{colors.grey-0}"
211
+ rounded: "{rounded.none}"
212
+ padding: 12px
213
+ button-secondary-hover:
214
+ backgroundColor: "{colors.blue-6}"
215
+ input:
216
+ backgroundColor: "{colors.grey-0}"
217
+ textColor: "{colors.text}"
218
+ rounded: "{rounded.none}"
219
+ padding: 12px
220
+ link:
221
+ textColor: "{colors.link-default}"
222
+ typography: "{typography.body}"
223
+ tag:
224
+ backgroundColor: "{colors.grey-1}"
225
+ textColor: "{colors.text}"
226
+ rounded: "{rounded.none}"
227
+ padding: 4px
228
+ ---
229
+
230
+ ## Overview
231
+
232
+ The EEA Design System is built on a foundation of **functional clarity** and **institutional trust**. Every visual choice serves the content first, avoiding decorative excess. The system is user-centered, follows WCAG 2.1 accessibility guidelines, and is designed for responsive deployment across a network of thematic platforms.
233
+
234
+ Key design characteristics:
235
+
236
+ - **Minimal drop shadows** — visual hierarchy is achieved through color contrast, spacing, and typography rather than elevation.
237
+ - **Sharp edges and corners** — the default border radius is 0px, reinforcing a clean, engineered, and authoritative aesthetic.
238
+ - **Uncluttered, distraction-free design** — whitespace is used deliberately. Content breathes.
239
+ - **High readability with clear typography** — Roboto at 16px base, with a strict hierarchy of weights and sizes.
240
+ - **Easily adjusted for responsive design** — desktop and mobile type scales are defined, and the 8px grid system adapts to any viewport.
241
+
242
+ The system emphasizes **function over appearance** while maintaining a consistent look irrespective of screen resolution or device type. Unnecessary decorative elements are avoided to support faster loading times and clearer user journeys.
243
+
244
+ ## Colors
245
+
246
+ The EEA color system is designed for accessibility, thematic flexibility, and clear communication. All color combinations must meet WCAG AA contrast ratios (4.5:1 for normal text). The palette is organized into semantic roles, full shade families, and thematic platform variants.
247
+
248
+ ### Semantic Colors
249
+
250
+ - **Primary (#004B7F):** EEA Blue — the dominant institutional color, used for primary actions, headers, and key structural elements.
251
+ - **Secondary (#007B6C):** EEA Green — used for highlights, success states, and complementary actions.
252
+ - **Tertiary (#3D5265):** Deep Blue-Grey — the default body text color, providing high contrast on white backgrounds.
253
+ - **Background (#FFFFFF):** Pure white is the default page background.
254
+ - **Background Supplementary (#F9F9F9):** A near-white tone used for alternate sections or subtle differentiation.
255
+
256
+ ### State Colors
257
+
258
+ - **Success (#007B6C):** Positive confirmations, valid form states.
259
+ - **Warning (#FF9933):** Cautionary messages, non-critical alerts.
260
+ - **Error (#B83230):** Critical errors, invalid form states, destructive actions.
261
+ - **Info (#004B7F):** Informational messages, neutral alerts.
262
+
263
+ ### Link Colors
264
+
265
+ - **Default (#006BB8):** Standard interactive links.
266
+ - **Hover (#004B7F):** Link state on mouse hover.
267
+ - **Visited (#753AAD):** Links the user has already followed.
268
+ - **Active (#003052):** Link state during active press.
269
+
270
+ ### Full Palettes
271
+
272
+ Each color family contains 7 shades (0–6), from lightest to darkest. These are used for gradients, hover states, backgrounds, and data visualizations.
273
+
274
+ **Brown** — warm earth tones for natural-science contexts: #FFF6EC, #FFEDD8, #E7BC91, #BC8A5F, #8B5E34, #603808, #3D2201.
275
+
276
+ **Purple** — for distinct thematic differentiation: #EFEBF2, #DFD6E7, #BEADCE, #9E84B6, #753AAD, #5C3285, #3C096C.
277
+
278
+ **Red** — error, urgency, attention: #FBEEF8, #F6DDF0, #E7B2C0, #D78890, #C65B59, #B83230, #5C1918.
279
+
280
+ **Yellow** — warning, highlights, energy: #FEF6CD, #FBEC9B, #FAD936, #FAC50D, #FDAF20, #FF9933, #C35527.
281
+
282
+ **Green** — success, nature, positive action: #C8FFF8, #A0E5DC, #78CAC0, #50B0A4, #289588, #007B6C, #005248.
283
+
284
+ **Blue** — primary institutional tone, trust, water: #A0D7FF, #47B3FF, #008FF5, #0079CF, #006BB8, #004B7F, #003052.
285
+
286
+ **Blue-Grey** — text, borders, neutral UI: #DAE8F4, #ACCAE5, #87A7C3, #6989A5, #4C677F, #3D5265, #2E3E4C.
287
+
288
+ **Grey** — neutrals from white to black: #FFFFFF, #F9F9F9, #E6E7E8, #BCBEC0, #747678, #323232, #000000.
289
+
290
+ ### Thematic Platforms
291
+
292
+ The EEA network uses the full palette above, but each thematic platform has a unique pair of brand colors extracted from its identity:
293
+
294
+ - **Biodiversity:** primary #289588, secondary #FAC50D.
295
+ - **Forest:** primary #007B6C, secondary #005248.
296
+ - **Wise Freshwater:** primary #0079CF, secondary #004B7F.
297
+ - **Wise Marine:** primary #004B7F, secondary #0079CF.
298
+
299
+ ## Typography
300
+
301
+ The type system uses **Roboto** as the primary typeface, with **Arial** as the web-safe fallback. Roboto is chosen for its geometric clarity and excellent legibility at screen resolutions. Weights from 300 (Light) to 700 (Bold) are available. Bold is reserved for headings; Regular (400) is used for body text.
302
+
303
+ ### Scale
304
+
305
+ The desktop type scale defines the canonical sizes. Mobile sizes are reduced proportionally to maintain hierarchy without overcrowding small screens.
306
+
307
+ **Desktop:**
308
+
309
+ - **H1:** 44px, Bold, line-height 1.2, letter-spacing -0.015em.
310
+ - **H2:** 32px, Bold, line-height 1.2, letter-spacing -0.015em.
311
+ - **H3:** 26px, Bold, line-height 1.2, letter-spacing -0.015em.
312
+ - **H4:** 20px, Bold, line-height 1.2, letter-spacing -0.015em.
313
+ - **H5:** 18px, Bold, line-height 1.2, letter-spacing -0.015em.
314
+ - **Body:** 16px, Regular, line-height 1.5, letter-spacing 0em.
315
+ - **Caption:** 14px, Regular, line-height 1.5, letter-spacing 0.01em.
316
+ - **Small:** 12px, Regular, line-height 1.5, letter-spacing 0.01em.
317
+
318
+ **Mobile:**
319
+
320
+ - **H1:** 30px (down from 44px).
321
+ - **H2:** 24px (down from 32px).
322
+ - **H3:** 20px (down from 26px).
323
+ - **H4:** 18px (down from 20px).
324
+ - **Body, Caption, Small:** remain the same as desktop.
325
+
326
+ ### Line Length
327
+
328
+ For optimal readability, limit line length to **no more than 80 characters** (including spaces) on desktop, and **40 to 60 characters** on mobile.
329
+
330
+ ## Layout
331
+
332
+ The layout system is built on an **8px base grid**. All major measurements — spacing, component heights, and layout gaps — align to this grid. Smaller elements such as icons may align to a 4px sub-grid, and typography sits on a 4px baseline grid.
333
+
334
+ ### Spacing Scale
335
+
336
+ Two spacing scales are used:
337
+
338
+ - **Component spacing** (inside elements): 4px, 8px, 12px, 16px, 20px, 24px, 32px, 36px, 40px, 48px.
339
+ - **Layout spacing** (between elements): 16px, 24px, 32px, 48px, 64px, 96px.
340
+
341
+ The full token scale runs from 1px to 96px in 4px increments (with 1px and 2px micro-steps for fine adjustments).
342
+
343
+ ### Container Widths
344
+
345
+ - **Narrow:** 900px
346
+ - **Container:** 1120px
347
+ - **Wide:** 1320px (1220px on laptop breakpoints)
348
+
349
+ ## Elevation & Depth
350
+
351
+ The EEA Design System avoids heavy shadows. Elevation is expressed primarily through **color contrast**, **spacing**, and **border definition** rather than drop shadows.
352
+
353
+ When elevation is required (e.g., for modals or dropdowns), use subtle, low-opacity shadows:
354
+
355
+ - **Subtle shadow:** `0px 1px 2px 0 rgba(0,0,0,0.05)` — for slight separation.
356
+ - **Floating shadow:** `0px 2px 4px 0px rgba(34,36,38,0.12), 0px 2px 10px 0px rgba(34,36,38,0.15)` — for elevated overlays.
357
+
358
+ The default global shadow is `none`.
359
+
360
+ ## Shapes
361
+
362
+ The shape language is defined by **architectural sharpness**. The default corner radius for all interactive elements, containers, and inputs is **0px**. This reinforces the institutional, precise, and uncluttered character of the design.
363
+
364
+ Circular elements (avatars, icon containers, badges) are the exception and use a **50% border radius**.
365
+
366
+ ## Components
367
+
368
+ ### Buttons
369
+
370
+ - **Primary button:** background EEA Green (#007B6C), white text, 0px radius, 12px padding. Hover darkens to #005248.
371
+ - **Secondary button:** background EEA Blue (#004B7F), white text, 0px radius, 12px padding. Hover darkens to #003052.
372
+
373
+ ### Inputs
374
+
375
+ - Background is white, text is deep blue-grey (#3D5265).
376
+ - No border radius (0px).
377
+ - Vertical padding 12px, horizontal padding 18px.
378
+ - Focus state uses a 0.2rem outline in #008FF5 (blue-2) for accessibility.
379
+ - Placeholder color: #B8C6C8.
380
+
381
+ ### Links
382
+
383
+ - Default color: #006BB8.
384
+ - No underline by default.
385
+ - Hover, visited, and active states follow the link color palette.
386
+
387
+ ### Tags / Chips
388
+
389
+ - Background: #F9F9F9 (grey-1).
390
+ - Text: #3D5265.
391
+ - 0px radius, 4px padding.
392
+ - Single-color, no gradients or shadows.
393
+
394
+ ## Do's and Don'ts
395
+
396
+ - **Do** ensure all text meets WCAG AA contrast ratios (4.5:1 for normal text, 3:1 for large text).
397
+ - **Do** use the 8px grid for all spacing and sizing decisions.
398
+ - **Do** use Roboto for all UI text; Arial is the acceptable fallback.
399
+ - **Do** keep line length under 80 characters on desktop and 40–60 on mobile.
400
+ - **Do** use images only when they add value to the content; always provide alt text.
401
+ - **Don't** use drop shadows as the primary method of conveying hierarchy.
402
+ - **Don't** apply border radius to cards, buttons, or inputs unless explicitly required by a component variant.
403
+ - **Don't** convey information using color alone; always pair with text, icons, or patterns.
404
+ - **Don't** embed text inside images (breaks translation and accessibility tools).
405
+ - **Don't** use more than two font weights on a single screen.
406
+ - **Don't** apply effects, gradients, borders, or filters to photographs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-eea-design-system",
3
- "version": "1.60.3",
3
+ "version": "1.60.4",
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",