Servizi pubblici · Nuova risorsa

sistema di design Europa Component Library.

Esamina i ruoli cromatici, tipografici e di spaziatura EC di Europa attraverso un brief completo con accordion nativo, inclusi l’uso da tastiera, l’apertura di tutti i pannelli e un’alternativa leggibile senza JavaScript.

Guida OpenDesign8 capitoli41 voci di riferimentoGuida applicativa originale
01

Anteprima dell’interfaccia del sistema di design Europa Component Library

Apri le singole note, espandi o chiudi tutte le sezioni e visualizza l’intero layout di lettura.

Esplora un documento di consultazione pubblicaApri l’esempio completo
Preset EC 4.11.2 CSS e runtime Accordion nativi, con contenuti originali e controllo per aprire tutti gli elementi. · Riferimento per l’implementazione
02

Riferimento di progettazione del sistema di design Europa Component Library

Foglio di stile e codice sorgente Accordion verificati di @ecl/preset-ec 4.11.2. Il comportamento nativo e la composizione originale del controllo per aprire tutti gli elementi sono distinti in modo esplicito.

Palette EC e ruoli di stato

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ecl-color-primary#3860ed Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-primary-140#0f2fa2 Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-secondary#ffbe5c Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-dark#26324b Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-info#3860ed Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-success#24a148 Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-error#da1e28 Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-warning#f39811 Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-background#fcfcfc Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-branding#004494 Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-neutral-20#f8f9fd Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-neutral-60#e0e5f5 Valori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.
--ecl-color-white#fffValori pubblicati del preset EC. Il blu del marchio è distinto dal colore primario delle azioni; i colori di stato non sostituiscono i messaggi testuali.

Scala di spaziatura

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ecl-spacing-2xs0.25remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-xs0.5remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-s0.75remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-m1remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-l1.25remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-xl1.5remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-2xl2remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-3xl2.5remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-4xl3remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-5xl3.5remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.
--ecl-spacing-6xl4remScala effettiva basata su rem del preset bloccato. La composizione personalizzata utilizza questi ruoli senza inventare una scala istituzionale diversa.

Tipografia e misura di lettura

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ecl-font-family-defaultarial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-xsnormal normal 400 0.75rem/1.125rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-snormal normal 400 0.875rem/1.125rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-mnormal normal 400 1rem/1.5rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-lnormal normal 400 1.25rem/1.75rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-xlnormal normal 400 1.5rem/2.25rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-2xlnormal normal 400 1.75rem/2.25rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-3xlnormal normal 400 2.5rem/2.75rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-font-4xlnormal normal 400 3.25rem/3.375rem arial,sans-serifI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.
--ecl-max-width80chI valori abbreviati completi includono peso, dimensione, interlinea e carattere di fallback. La famiglia di caratteri EC usata qui per lo schermo è Arial; non serve alcun font web personalizzato.

Contratto nativo del pannello a fisarmonica

Fonte
Nome / regolaValore / configurazioneUtilizzo
Initializationdata-ecl-auto-init="Accordion" + ECL.autoInit()Inizializza questo componente all’interno del preset; non serve alcun wrapper per framework.
Triggerdata-ecl-accordion-toggleIl listener nativo viene collegato al pulsante di ogni intestazione.
Targetaria-controls matches a panel IDI riferimenti mancanti generano un errore; ogni ID deve essere univoco.
Open statearia-expanded + panel.hiddenIl runtime modifica sia la semantica sia il contenuto visibile.
Eventroot.ECLAccordion.on("onToggle", callback)L’esempio calcola il numero di sezioni aperte dopo un’attivazione nativa.
Event payload{ item, isOpening }L’elemento è il pannello di destinazione, non un indice di array né una scheda selezionata.
Independent panelsSeveral may be open togetherAprire tutti gli elementi è un comportamento originale dell’applicazione, che attiva i pulsanti di apertura nativi.
03

Guida completa al sistema di design Europa Component Library

Una guida pratica per scegliere, applicare e valutare questo sistema in un’interfaccia reale.

DESIGN-europa-ecl.md

Indicazioni complete, un punto di partenza per l’implementazione e link alle fonti.

Scarica la guida

Preset Europa EC e scelta della versione del sistema di design Europa Component Library

Scegli EC o EU prima di importare gli asset

Europa fornisce preset istituzionali distinti. Questo esempio usa deliberatamente @ecl/preset-ec alla versione 4.11.2, corrispondente alla documentazione EC collegata. Non combina markup EU, schermate EC storiche e un foglio di stile senza versione bloccata. Il pacchetto fornisce dist/styles/ecl-ec.css e dist/scripts/ecl-ec.js, quindi l’esempio statico può essere pubblicato senza introdurre un framework frontend.

Da questa guida su OpenDesign
  • Per l’implementazione EC mostrata qui, usa il preset EC.
  • Mantieni CSS e JavaScript alla stessa versione.
  • Quando riutilizzi gli elementi del pannello a fisarmonica, mantieni univoci gli ID sorgente.

Considerala un’implementazione con versione specifica

Il riferimento descrive la versione 4.11.2; non afferma che tutte le versioni successive abbiano token o comportamenti identici. Gli aggiornamenti devono confrontare insieme il preset scelto, il markup dei componenti e la loro inizializzazione. Il solo nome di un nuovo pacchetto o il numero di versione non dimostrano che un pattern copiato in precedenza continui a funzionare correttamente.

Ruoli cromatici di Europa e identità istituzionale del sistema di design Europa Component Library

Tieni separati il colore del marchio e quello dell’azione primaria

Il colore del marchio nel preset è #004494, mentre il colore primario è #3860ed. Il brief originale usa il colore del marchio solo per una sottile linea superiore, lasciando poi al componente il proprio stile per le azioni primarie. Il valore neutral-20 è usato per lo sfondo della pagina e neutral-60 per separare i contenuti. In questo modo si mantiene la distinzione tra un accento istituzionale e il colore di un controllo interattivo.

Non attribuire significati ufficiali all’esempio

La pagina è uno studio OpenDesign con note di consultazione fittizie. Non ha il logo della Commissione europea e non rappresenta un bando di finanziamento, un servizio o un requisito legale. Le voci della palette per errore, avviso e successo sono elencate come token effettivi, ma l’anteprima non genera un messaggio artificiale di successo dell’applicazione solo per mostrare tutti i colori.

Tipografia e scala di spaziatura di Europa del sistema di design Europa Component Library

Usa i valori completi della proprietà shorthand per i caratteri

Il preset EC definisce Arial come famiglia di caratteri predefinita per lo schermo. Il ruolo m corrisponde a 1rem con interlinea di 1.5rem e peso 400; i ruoli di dimensione maggiore hanno ciascuno la propria interlinea. Il riferimento riporta dichiarazioni complete, anziché soltanto dimensioni isolate in punti. Il peso del titolo nello studio è una scelta originale di enfasi applicata al ruolo fornito, mentre il testo dei componenti resta sotto il controllo del foglio di stile nativo.

Mantieni visibili la spaziatura in rem e la misura dei contenuti

La sequenza di spaziatura comprende 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5 e 4rem. La misura massima nativa per la lettura è 80ch. Il layout originale usa un limite esterno centrato di 1080px e una spaziatura interna responsive, mentre ogni pannello a fisarmonica mantiene la propria spaziatura del preset. La larghezza esterna è una scelta compositiva, non un nuovo token ufficiale.

Markup e comportamento nativo del pannello a fisarmonica Europa del sistema di design Europa Component Library

Fai in modo che i pulsanti delle intestazioni controllino pannelli reali

Ogni .ecl-accordion__item contiene un’intestazione con un pulsante .ecl-accordion__toggle. Il relativo aria-controls punta al pannello .ecl-accordion__content corrispondente. L’esempio include un ID stabile per il pulsante di attivazione e aria-labelledby per ogni regione. Lo script nativo trova il pannello di destinazione tramite ID, modifica aria-expanded e imposta panel.hidden; le relazioni devono rimanere corrette anche se gli elementi vengono riordinati o copiati.

Usa un indicatore esplicito senza sprite esterni

Sistema di design Europa Component Library Europa: eventi dell’accordion e comportamento di apertura di tutte le sezioni

Ricava lo stato dal componente nativo

ECL.autoInit() espone il componente inizializzato come root.ECLAccordion. L’applicazione ascolta l’evento onToggle e calcola quanti pulsanti di attivazione hanno attualmente aria-expanded="true". Il payload dell’evento include l’elemento di destinazione e isOpening, utile per gestire i singoli pannelli. Il conteggio non deduce lo stato dal testo visibile e non mantiene un secondo array indipendente con lo stato di apertura.

Rendi prevedibile l’azione collettiva

Quando tutti i pannelli sono aperti, l’azione collettiva li chiude; altrimenti li apre tutti. Il gestore attiva solo i pulsanti nativi il cui stato deve cambiare. Non imposta direttamente hidden o aria-expanded, così gli eventi nativi e il conteggio derivato rimangono coerenti. L’etichetta del controllo alterna tra Apri tutte le sezioni e Chiudi tutte le sezioni per comunicare l’azione successiva.

Sistema di design Europa Component Library Europa: tastiera e lettura progressiva

Usa la normale interazione con i pulsanti

Il tasto Tab sposta il focus su un pulsante nell’intestazione; Invio o la barra spaziatrice lo attivano tramite il comportamento nativo dei pulsanti del browser. Questo è un accordion, non un tablist: non aggiungere la navigazione tra schede con i tasti freccia per analogia. Più pannelli possono rimanere aperti, così è possibile confrontare le note. L’indicatore di focus è fornito dal foglio di stile del componente e rimane visibile sullo sfondo chiaro.

Mantieni il testo leggibile senza JavaScript

Il codice sorgente HTML mostra inizialmente tutti i pannelli e imposta aria-expanded="true". Dopo che l’inizializzazione nativa è riuscita, l’applicazione li chiude attivando i relativi pulsanti. Se JavaScript è disabilitato, il testo rimane quindi visibile e la barra degli strumenti inattiva per le azioni collettive viene nascosta dallo stile no-js. Questa modalità di fallback è stata verificata controllando la visibilità effettiva, non solo la presenza dei paragrafi nel codice sorgente.

Sistema di design Europa Component Library Europa: pannelli adattivi e contenuti lunghi

Consenti l’altezza naturale e il ritorno a capo

Il documento non usa un’altezza fissa per l’accordion. Le note espanse possono estendersi per contenere intestazioni, elenchi numerati e una nota decisionale evidenziata. Sugli schermi più piccoli si riduce il padding esterno originale e il titolo usa un ruolo tipografico più piccolo tra quelli disponibili. Il testo lungo dei pulsanti di attivazione va a capo, mentre l’indicatore rimane visibile. Il comportamento è stato verificato a 280px e alle larghezze per desktop, tablet e telefono.

Non trasformare i controlli di lettura in un flusso di approvazione

Aprire o chiudere un pannello ne modifica solo la presentazione. Il conteggio indica quante sezioni sono aperte, non quante sono state completate o quanti requisiti sono stati soddisfatti. Il piè di pagina specifica che non viene inviata alcuna risposta alla consultazione né concessa un’approvazione formale. Un servizio reale avrebbe bisogno di comportamenti specifici per idoneità, persistenza e backend, nessuno dei quali è implicito nella demo del componente.

Sistema di design Europa Component Library Europa: configurazione statica completa

Installa il preset corrispondente e salva tutti i file

Il file index.html fornito carica il foglio di stile del preset bloccato alla versione specificata e lo script per browser prima di ecl-app.js. Salva i file ecl.css ed ecl-app.js allegati nella stessa cartella e servila tramite HTTP. Sono inclusi tutti i contenuti, gli SVG degli indicatori e i gestori dello stato. Per questa demo non serve alcuna struttura applicativa nascosta né scaricare icone separatamente.

  1. Installa il preset EC bloccato alla versione specificata.
  2. Salva insieme index.html, ecl.css ed ecl-app.js.
  3. Servi la directory e verifica l’attivazione singola e collettiva.
  4. Ripeti la verifica con la tastiera, su una finestra stretta e con JavaScript disabilitato.

Rendi verificabili gli aggiornamenti dei componenti

Sistema di design Europa Component Library Esempi di componenti del sistema di progettazione

ecl-index.html — sorgente completa

Markup completo del componente, contenuti, indicatori inline e percorsi degli asset del preset.

html
<!doctype html><html lang="en" class="no-js"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Public conversation brief</title><link rel="stylesheet" href="./node_modules/@ecl/preset-ec/dist/styles/ecl-ec.css"><link rel="stylesheet" href="./ecl.css"></head><body><main><header class="mast"><p class="eyebrow">European Commission preset / original study</p><h1>A clear brief for a public conversation</h1><p>Explore three preparation notes with native ECL expandable sections and an explicit open-all control.</p></header><p class="scope">ECL EC 4.11.2 CSS and native Accordion runtime. Original OpenDesign sample text; this is not an EU service, funding programme or legal guide.</p><div class="toolbar"><p id="count" role="status">0 of 3 sections open</p><button id="all" type="button" class="ecl-button ecl-button--secondary">Open all sections</button></div><div class="ecl-accordion" data-ecl-accordion data-ecl-auto-init="Accordion"><section class="ecl-accordion__item"><h2 class="ecl-accordion__title"><button class="ecl-accordion__toggle" data-ecl-accordion-toggle aria-controls="purpose" aria-expanded="true" id="toggle-purpose" type="button"><span class="ecl-accordion__toggle-flex"><span class="ecl-accordion__toggle-title">Define the purpose before collecting information</span><span class="ecl-accordion__toggle-indicator"><svg class="ecl-accordion__toggle-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M11 3h2v8h8v2h-8v8h-2v-8H3v-2h8z"/></svg><svg class="ecl-accordion__toggle-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M3 11h18v2H3z"/></svg></span></span></button></h2><div class="ecl-accordion__content" id="purpose" role="region" aria-labelledby="toggle-purpose"><p>This fictional planning note describes a small community consultation. It is sample editorial content, not an EU funding call, legal requirement or official application process.</p><h3>Make a decision possible</h3><ol><li>State which decision the conversation will inform.</li><li>List information already available before asking participants for more.</li><li>Name what remains outside the consultation.</li></ol><aside class="decision"><h3>Keep the outcome proportionate</h3><p>A short conversation may support a next step; it does not by itself prove consent, eligibility or public support.</p></aside></div></section><section class="ecl-accordion__item"><h2 class="ecl-accordion__title"><button class="ecl-accordion__toggle" data-ecl-accordion-toggle aria-controls="participation" aria-expanded="true" id="toggle-participation" type="button"><span class="ecl-accordion__toggle-flex"><span class="ecl-accordion__toggle-title">Make participation understandable and accessible</span><span class="ecl-accordion__toggle-indicator"><svg class="ecl-accordion__toggle-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M11 3h2v8h8v2h-8v8h-2v-8H3v-2h8z"/></svg><svg class="ecl-accordion__toggle-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M3 11h18v2H3z"/></svg></span></span></button></h2><div class="ecl-accordion__content" id="participation" role="region" aria-labelledby="toggle-participation"><p>Give participants enough context to decide whether and how to take part. The invitation should explain the topic, expected duration, available formats and the use of any notes.</p><h3>Provide usable alternatives</h3><ol><li>Offer a plain-language explanation of the activity.</li><li>Allow a person to contribute without speaking to the whole group.</li><li>Explain how to ask for an accessible format.</li></ol><aside class="decision"><h3>Check the invitation itself</h3><p>A technically accessible page is only one part of participation. Timing, language and the route for asking a question also affect who can join.</p></aside></div></section><section class="ecl-accordion__item"><h2 class="ecl-accordion__title"><button class="ecl-accordion__toggle" data-ecl-accordion-toggle aria-controls="record" aria-expanded="true" id="toggle-record" type="button"><span class="ecl-accordion__toggle-flex"><span class="ecl-accordion__toggle-title">Record decisions and unresolved questions separately</span><span class="ecl-accordion__toggle-indicator"><svg class="ecl-accordion__toggle-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M11 3h2v8h8v2h-8v8h-2v-8H3v-2h8z"/></svg><svg class="ecl-accordion__toggle-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M3 11h18v2H3z"/></svg></span></span></button></h2><div class="ecl-accordion__content" id="record" role="region" aria-labelledby="toggle-record"><p>After the session, distinguish what was agreed from what still needs investigation. A clean record helps the next reader understand how a proposal changed and why.</p><h3>Prepare a readable follow-up</h3><ol><li>Write the next action with an owner and review date.</li><li>Make open questions visible alongside conclusions.</li><li>Invite participants to correct an inaccurate summary.</li></ol><aside class="decision"><h3>Avoid a false completion signal</h3><p>Closing these panels is a reading action only. This preview sends no consultation response and records no formal approval.</p></aside></div></section></div><p class="footer">Each heading is a native button. Use Tab to move between headings and Enter or Space to toggle; several sections can remain open. Without JavaScript the notes remain readable.</p></main><script src="./node_modules/@ecl/preset-ec/dist/scripts/ecl-ec.js"></script><script src="./ecl-app.js"></script></body></html>

Riferimento del codice

  • Salva il file HTML come index.html e lascia invariati i nomi degli altri file forniti.

ecl.css — sorgente completa

Composizione adattiva originale basata sullo stile nativo dei componenti ECL.

css
*{box-sizing:border-box}body{margin:0;background:var(--ecl-color-neutral-20);font:var(--ecl-font-m);color:var(--ecl-color-dark)}main{max-width:1080px;margin:auto;padding:40px}.mast{border-top:6px solid var(--ecl-color-branding);padding:32px;background:white}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ecl-color-primary-140)}h1{font:var(--ecl-font-3xl);font-weight:700;margin:16px 0;max-width:22ch}.mast p{max-width:72ch}.scope{font:var(--ecl-font-s);margin:24px 0;max-width:90ch}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin:32px 0 16px}.toolbar p{margin:0}.ecl-accordion{background:white}.ecl-accordion__toggle-title{padding-right:16px}.ecl-accordion__toggle-icon{width:24px;height:24px}.ecl-accordion__content p:first-child{margin-top:0}.ecl-accordion__content ol,.ecl-accordion__content ul{padding-left:24px}.ecl-accordion__content li{margin:8px 0}.ecl-accordion__content h3{font-size:18px;line-height:1.4}.decision{border-left:4px solid var(--ecl-color-secondary);padding:16px;background:var(--ecl-color-neutral-20);margin:24px 0}.footer{font:var(--ecl-font-s);margin-top:24px;border-top:1px solid var(--ecl-color-neutral-60);padding-top:24px}.no-js .toolbar{display:none}@media(max-width:600px){main{padding:16px}.mast{padding:24px}h1{font:var(--ecl-font-2xl);font-weight:700}.ecl-accordion__toggle{overflow-wrap:anywhere}}

Riferimento del codice

  • Salva il file HTML come index.html e lascia invariati i nomi degli altri file forniti.

ecl-app.js — sorgente completa

Inizializzazione nativa e comportamento collettivo basato sugli eventi, con contenuti inizialmente leggibili senza HTML.

javascript
document.documentElement.classList.remove('no-js');ECL.autoInit();const root=document.querySelector('[data-ecl-accordion]');const buttons=[...root.querySelectorAll('[data-ecl-accordion-toggle]')];const all=document.querySelector('#all');function sync(){let open=buttons.filter(b=>b.getAttribute('aria-expanded')==='true').length;document.querySelector('#count').textContent=open+' of '+buttons.length+' sections open';all.textContent=open===buttons.length?'Close all sections':'Open all sections';}root.ECLAccordion.on('onToggle',sync);buttons.forEach(b=>b.click());all.addEventListener('click',()=>{let close=buttons.every(b=>b.getAttribute('aria-expanded')==='true');buttons.filter(b=>(b.getAttribute('aria-expanded')==='true')===close).forEach(b=>b.click());});sync();

Riferimento del codice

  • Salva il file HTML come index.html e lascia invariati i nomi degli altri file forniti.
04

Sistema di design Europa Component Library Configurazione dell’agente del sistema di progettazione

Punto di partenza per l’implementazione

Apri http://localhost:8000/. L’esempio usa il preset EC e non richiede di scaricare altre icone o font.

sh
npm init -y
npm install @ecl/[email protected]
# Save index.html, ecl.css and ecl-app.js from the supplied examples.
python3 -m http.server 8000

Un prompt per il tuo progetto

Prompt per l’agente
Implementa il brief fornito per l’accordion ECL EC 4.11.2 usando tutti e tre i file completi. Mantieni le relazioni native tra pulsanti e pannelli, il conteggio basato su onToggle, la logica di apertura e chiusura collettiva, l’attivazione dei pulsanti da tastiera, la leggibilità senza JavaScript e l’ambito esplicito dell’esempio originale. Non presentarlo come un servizio ufficiale dell’UE o come un invio formale.
05

Sistema di design Europa Component Library Fonti e ambito del sistema di progettazione

Una guida applicativa OpenDesign per ECL EC 4.11.2. Le note di esempio originali e la composizione della pagina non rappresentano un servizio della Commissione europea, un bando di finanziamento o un obbligo legale.