← Back to portfolio

CoR & EESC · EU public sector · 2020–May 2026

A shared design system for EU digital services

Lead UX/UI Designer & Researcher
System scope
140+ components
Patterns
70+ documented
Implementations
HTML · React · Angular
Method
Agile Scrum · Sprint 0

Core impact

One shared design system used across CoR and EESC products in three frameworks

This project covered design-system and cross-application UX work for institutional platforms used by staff and members, built on the Europa Component Library (ECL). The work focused on making related products feel coherent, improving complex administrative journeys, and giving teams reusable patterns they could implement across different frameworks.

WCAG 2.2 AA was the design and validation baseline, built into component specifications and checked through a combination of accessibility tools and manual review. This was sustained modernization work across legacy products, not a single redesign or framework rewrite.

Many related products.

Applications had evolved separately, so familiar tasks could behave differently from one platform to another. The opportunity was to improve consistency and accessibility without ignoring existing business logic, framework differences, release schedules, or the need to keep daily services running.

Sprint 0 activities

  • Agreement with stakeholders with application owners and CoR/EESC IT and information-systems teams.
  • Business KPIs agreed up front: pattern consistency across products, component reuse, accessibility issues by severity, and design-to-development handoff effort.
  • Technical feasibility checks with developers responsible for HTML, React and Angular products.
  • Prioritisation of journeys and accessibility issues by user impact and severity.

Primary persona

Institutional super user

Job to be done
Work through institutional knowledge and HR platforms every day, quickly and without re-learning each tool.
Pain points
The same task behaves differently from one application to the next; dense data is hard to scan and filter.

Internal persona

Product & engineering team

Job to be done
Ship consistent, accessible features in their own framework and release cycle.
Pain points
Duplicated work across products, no shared reference for states and behaviour, and legacy technical limits.

Baseline usability barriers

Mapping journeys across products surfaced duplicated work, inconsistent behaviours and friction in high-use search and data tasks. The baseline recorded where the same task used different patterns in different products, and logged accessibility issues by severity.

How easy to use and accessible were the old products?

I reviewed existing interfaces against the 10 usability rules of Nielsen Norman Group, the EU design guidelines and the WCAG 2.2 AA accessibility standard, then turned the findings into shared system decisions.

Usability audit of the legacy CoR/EESC products and the design-system response.
Usability ruleWhat I evaluatedDesign-system response
Visibility of system statusState feedback, loading indicators and how clearly each screen showed what the system was doing.Complete, documented component states, including loading, empty, error and success.
Match between system and real worldInstitutional domain terminology in labels, navigation and data grids.Descriptive labels and content guidance written for each component.
Consistency and standardsColour, typography, data-grid and filter behaviour across products, compared with ECL and the EU guidelines.Shared design tokens and 140+ reusable components with one interaction language.
Recognition rather than recallHow much users had to remember to search and narrow large result sets.Reusable search and filter patterns with visible, editable criteria.
Accessibility and contrastContrast, keyboard behaviour, focus, semantics and reflow (WCAG 2.2 AA, EN 301 549).Contrast verified for every token pair (headings 10.06:1, buttons 10.0:1); keyboard and ARIA requirements in each spec.

WCAG 2.2 AA in practice

  • A

    Perceivable

    Review contrast, typography, responsive reflow, content hierarchy, and status communication so information is not conveyed by colour alone.

  • B

    Operable

    Specify keyboard behaviour, visible focus, logical order, sufficiently usable targets, and clear interaction states for common components.

  • C

    Understandable

    Design predictable navigation, descriptive labels, helpful instructions, and clear error messages that say how to fix the problem.

  • D

    Robust

    Document semantic structure and ARIA requirements for engineering review, then check behaviour with assistive technology where available.

Validation & trade-offs

My validation toolkit combined automated checks (including axe and WAVE), contrast review, manual keyboard checks, and assistive-technology review where available. Findings were prioritised by severity and user impact, then discussed with product and engineering partners.

When a legacy backend or framework constrained the ideal solution, I explored the most accessible feasible pattern, documented the trade-off, and kept unresolved work visible for follow-up. Automated results supported review; they did not replace human evaluation.

WCAG 2.2 AAEN 301 549axeWAVEKeyboard reviewAssistive technology

A practical design-to-delivery loop

I worked in short cycles with product owners and developers and tested each pattern in real tasks, with 5 participants from staff and members.

From discovery to reusable patterns

  1. 01

    Audit & understand

    Reviewed existing interfaces and accessibility issues; mapped journeys across products to find duplicated work, inconsistent behaviours, and friction.

  2. 02

    Prioritise with stakeholders

    Aligned user needs, product priorities, policy requirements, and implementation constraints with application owners and delivery teams.

  3. 03

    Design & document

    Created flows, wireframes, prototypes, design tokens, component states, usage guidance, and accessibility requirements in Figma.

  4. 04

    Validate & refine

    Used usability feedback, heuristic review, accessibility checks, and developer collaboration to refine patterns before and during implementation.

Friction in the legacy pattern and the system pattern that replaced it.
Test scenarioLegacy patternSystem pattern
Find a record with search and filtersSearch and filters behaved differently in each product.One search and filter pattern with visible, editable criteria.
Complete a common admin taskThe same task had different steps and labels per application.Shared components and labels across applications.
Complete the task by keyboard onlyMissing focus states and inconsistent tab order.Visible focus and documented keyboard behaviour in every component spec.

Frequent users relied on habits built in one application and were slowed down when the next one behaved differently.

Key insight from usability testing

Artifacts that connect design decisions to delivery

The system connected visual decisions to implementation guidance: shared foundations, reusable components, interaction states, and documented behaviour for HTML, React and Angular, responsive down to compact phone viewports. Explore the full design system documentation.

FigmaECLStorybookHTMLReactAngularDesign tokensWCAG 2.2 AAEN 301 549
The European flag: twelve gold stars in a circle on a blue background

Brand foundations: CoR and EESC identity aligned with the EU emblem

I wrote the logo and colour guidelines for the CoR and EESC brands so both institutions sit clearly within the European family. Logo usage follows the rules of the European emblem, the twelve gold stars on Reflex Blue, so institutional marks and the EU emblem appear together consistently.

  • Logos: placement next to the EU emblem, clear space, minimum sizes, and positive and negative versions for light and dark backgrounds.
  • Colour: Corporate Blue (Pantone Reflex Blue, the EU emblem blue) as the primary colour, with six secondary colours and five soft tints.
  • Digital use: every brand colour mapped to design tokens and checked for contrast before use in UI text and components.

Colour palette

  • Corporate BluePrimary · Reflex Blue · #003399
  • Light Blue#7DB4E6
  • Teal#00A69C
  • Purple#7B3F8D
  • Magenta#E6007E
  • Orange#E85D27
  • Yellow#F9B233
  • Pink#F4B3C2
  • Lavender#B09BC8
  • Peach#F5C2A8
  • Mint#9DD4CF
  • Cream#F9E5B8
Brand guideline page for the primary colour, Corporate Blue, Pantone Reflex Blue, hex 003399

Primary colour guideline

Corporate Blue, shared with the EU emblem, with Pantone, HEX, RGB and CMYK values for print and screen.

Joint logos of the European Economic and Social Committee and the European Committee of the Regions, each built around the EU flag

Joint logos

The EESC and CoR logos side by side, both built around the EU flag.

Overview of the institutional design system and its component library

System overview

A map of the shared styles and components used in every product.

Persona artifact representing an experienced institutional platform user

User context

Persona work helped keep the needs of experienced, frequent users visible while improving clarity for less frequent users.

Artemis request detail showing the state of one document in 24 EU languages, with translation, transcription, printshop and distribution dates per language

Artemis: multilingual request tracking

One view of a document’s progress across all 24 EU languages, from translation to printshop and distribution, built from the system’s data-grid and dialog components.

Opinions dashboard with counts of adopted and ongoing opinions, upcoming commission dates, filters by date, theme and commission, and lists of plenary sessions and active opinions

Opinions dashboard

Key figures, commission deadlines and active opinions on one screen, with date, theme and commission filters, colour-coded by commission.

Contrast verification reference used to review text and interface colour combinations

Contrast verification

Colour decisions were checked against contrast requirements and documented as part of the accessibility work.

UX metrics reference showing measures used to frame and evaluate user experience

Measurement mindset

UX metrics give the team one way to measure usability and check whether a change really helps users.

A stronger foundation for consistent product decisions

What changed

  • →

    Measurable results

    140+ components and 70+ documented patterns, specified for HTML, React and Angular, with WCAG 2.2 AA requirements in every component.

  • →

    More consistent experiences

    Shared patterns gave related products a common interaction language while leaving room for application-specific needs.

  • →

    Clearer implementation conversations

    Tokens, component states, and framework-aware specifications gave design and engineering teams a shared reference for decisions.

  • →

    Accessibility from the start

    Accessibility is now part of every component from day one, not a fix at the end.

Retrospective

Rather than treating handoff as the finish line, I stayed involved as designs met existing code and release constraints, helping teams make informed trade-offs without losing sight of the user need.

This project strengthened my ability to align product owners, policy stakeholders, and engineers around evidence and shared standards, especially when the best solution must work within an existing platform.