Governo e servizi pubblici · Nuova risorsa

Sistema di design VA.

Crea percorsi di servizio chiari con i token semantici e il Process List nativo di VA: spiegazioni visibili delle fasi, etichette di stato significative e dettagli supplementari che mantengono leggibile il percorso principale.

Guida OpenDesign8 capitoli21 voci di riferimentoGuida applicativa originale
01

Sistema di design VA Anteprima dell’interfaccia

Esplora tre stati esemplificativi del processo e apri una spiegazione aggiuntiva senza nascondere il riepilogo delle fasi.

Comprendere il percorso di una richiestaApri l’esempio completo
Web Components nativi VA 24.14.0 (dipendenza component-library 56.14.0) e token css-library 0.36.1; controller dello scenario originale e font di fallback. · Riferimento per l’implementazione
02

Sistema di design VA Riferimento di progettazione

Variabili css-library 0.36.1 pubblicate e dipendenza component-library 56.14.0 web-components 24.14.0. I font di fallback locali sono espliciti. Il contenitore dell’esempio da 52rem è una scelta dell’applicazione.

Tipografia semantica

Fonte
Nome / regolaValore / configurazioneUtilizzo
--vads-font-family-headingBitter, Georgia, Cambria, Times New Roman, Times, serifFamiglia per i titoli; l’anteprima usa Georgia.
--vads-font-family-sansSource Sans Pro Web / Source Sans Pro, system sans fallbacksFamiglia per il corpo del testo e l’interfaccia; l’anteprima usa Arial.
--vads-font-size-body-default1.06rem (about 17px)Preferire il ruolo semantico a source-sans-normalized.
--vads-font-size-heading-level-1 / 2 / 32.5 / 2 / 1.25rem40 / 32 / 20px con radice a 16px.
--vads-font-size-heading-level-4 / 5 / 61.063 / .938 / .938remCirca 17 / 15 / 15px.
--vads-font-line-height-default / heading / body-lead1.5 / 1.2 / 1.75Usare il ruolo tipografico appropriato.

Spaziatura

Fonte
Nome / regolaValore / configurazioneUtilizzo
--vads-spacing-inset-s / m / l1 / 1.5 / 2rem16 / 24 / 32px.
--vads-spacing-vertical-stack-default1rem / 16pxSpaziatura verticale generica.
--vads-forms-spacing-vertical-stack-default2rem / 32pxSpaziatura verticale dei campi del modulo.
--vads-spacing-0p5 / 1 / 1p5 / 2 / 2p5 / 34 / 8 / 12 / 16 / 20 / 24pxScala primitiva con dimensione radice standard.
--vads-spacing-4 / 5 / 6 / 7 / 832 / 40 / 48 / 56 / 64pxValori primitivi più ampi.

Colori semantici

Fonte
Nome / regolaValore / configurazioneUtilizzo
--vads-color-text#1b1b1b Ruolo predefinito consigliato per il testo.
--vads-color-link / link-active#005ea2 / #0b4778Ruoli predefiniti e attivi dei link.
--vads-color-primary-darker#162e51 Riferimento per una superficie primaria ad alta enfasi.
--vads-color-base-lighter / base-lightest#dfe1e2 / #f0f0f0Divisori e sfondi neutri.
--vads-color-error#d54309 Usare la semantica di errore anziché il rosso secondario deprecato.
--vads-color-success-darker#216e1f Riferimento per un colore di successo più scuro; lo stato va comunque espresso a parole.

Breakpoint responsive

Fonte
Nome / regolaValore / configurazioneUtilizzo
--vads-breakpoint-mobile / mobile-lg320 / 480pxLimiti di riferimento per gli schermi piccoli.
--vads-breakpoint-tablet / tablet-lg640 / 880pxLayout intermedi.
--vads-breakpoint-desktop / desktop-lg1024 / 1201pxLimiti per desktop.
--vads-breakpoint-widescreen1400pxRiferimento per layout ampi.
03

Sistema di design VA Guida completa

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

DESIGN-va.md

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

Scarica la guida

Sistema di design VA Un sistema di servizi per i veterani

Fondamenti e componenti sono pacchetti separati

Il sistema VA combina modelli di servizio, linee guida sui contenuti, token, utilità CSS e Web Components. L’installazione documentata usa un pacchetto CSS-library per i fondamenti globali e un pacchetto component-library per gli elementi interattivi. Questo riferimento abbina component-library 56.14.0 a css-library 0.36.1; i due pacchetti hanno numeri di versione indipendenti.

Da questa guida su OpenDesign

L’esempio descrive una richiesta fittizia di documenti. Mostra come un elenco di processo comunichi l’avanzamento, senza affermare che una richiesta sia stata presentata o che una persona abbia diritto a un beneficio. Non compaiono loghi VA, banner istituzionali, dati personali né stati reali di pratiche. I testi dei servizi in produzione devono comunque essere verificati con il programma VA responsabile.

Leggi la specifica di supporto

Sistema di design VA Ruoli tipografici semantici

Le famiglie tipografiche per il corpo del testo e i titoli sono volutamente diverse

La famiglia semantica per i titoli è Bitter, con Georgia e altri caratteri serif come fallback. La famiglia per il corpo del testo inizia con Source Sans Pro Web e Source Sans Pro, seguiti dai sans-serif della piattaforma. Il ruolo predefinito per il corpo del testo è 1.06rem, circa 17px con una radice di 16px; i titoli usano 40px per il livello 1, 32px per il livello 2, 20px per il livello 3 e circa 17px per il livello 4.

Usare --vads-font-size-body-default anziché il nome precedente source-sans-normalized. Il token semantico indica il ruolo, mentre il vecchio nome di normalizzazione rivela un dettaglio di implementazione del font. L’anteprima usa esplicitamente Arial per il corpo del testo e Georgia per i titoli. Il componente di processo nativo CSS mantiene comunque la propria struttura interna e le proprie dimensioni; il fallback non pretende di riprodurre esattamente le metriche di Source Sans e Bitter.

Leggi la specifica di supporto

L’interlinea dipende dal ruolo

L’interlinea predefinita dei paragrafi è 1.5 e quella dei titoli è 1.2. Il testo introduttivo ha un ruolo con interlinea 1.75; il token di interlinea serif è 1.9 ed è destinato al testo corrente serif, non a ogni titolo serif. Assegnare 1.9 a un titolo compatto di un processo confonderebbe due ruoli distinti. Gli elementi del processo in questo esempio usano il livello 3, sotto il titolo di sezione di livello 2 della pagina.

Leggi la specifica di supporto

Sistema di design VA Spaziatura semantica e layout

Distinguere una spaziatura verticale ordinaria da quella di un modulo

Il valore predefinito della spaziatura verticale generica è 1rem/16px. Quello dei moduli è 2rem/32px. La differenza è utile: due brevi elementi esplicativi richiedono un ritmo diverso da domande separate con etichette, suggerimenti, controlli ed errori. Gli inset s, m e l corrispondono rispettivamente a 16, 24 e 32px.

La famiglia di spaziature primitive include 4, 8, 12, 16, 20 e 24px, valori più ampi con incrementi di otto pixel e valori speciali di uno e due pixel. Preferire i nomi semantici della spaziatura quando corrispondono allo scopo del layout. Il contenitore esterno da 52rem dell’esempio è una scelta dell’applicazione, mentre l’inset da 24px e la separazione da 32px tra le sezioni usano valori della scala pubblicata. Questa scelta non impone quel contenitore a tutti i modelli di pagina VA.

Leggi la specifica di supporto

Sistema di design VA Colori e token responsivi

Usare un ruolo anziché un alias storico

Il token attuale per il testo è --vads-color-text (#1b1b1b). --vads-color-link è #005ea2 e il ruolo attivo dei link è #0b4778; non corrispondono a tutte le varianti più scure della famiglia primaria. Il ruolo di errore è #d54309. La famiglia rossa secondaria ereditata è deprecata per questo uso: un nuovo trattamento di convalida dovrebbe quindi basarsi sulla semantica di errore anziché su quella secondaria.

Le tabelle primitive e semantiche sono generate da una versione specifica di CSS-library. L’esempio carica le variabili effettive invece di copiare una vecchia palette USWDS e presentarla come VA. Oltre a queste variabili, i componenti nativi potrebbero includere valori compilati al proprio interno; durante un aggiornamento, verifica entrambi i livelli.

Leggi la specifica di supporto

I breakpoint VA non sono una scala generica di framework

Leggi la specifica di supporto

Sistema di design VA Anatomia dell’elenco di processo

Da tre a dieci fasi significative

L’elenco di processo VA viene descritto anche come una mappa della metropolitana. Illustra un processo articolato o indica a che punto si trova una persona. Le linee guida prevedono da tre a dieci fasi e un solo elenco di questo tipo per pagina. Ogni elemento deve avere un titolo conciso che inizi con un verbo e contenuti esplicativi visibili; non è un numero decorativo accanto a un titolo privo di contenuto.

I tag nativi sono va-process-list e va-process-list-item. Un elemento accetta header e level, oltre a active, pending, checkmark e status-text. Il modulo del componente pubblicato assegna la precedenza a checkmark, poi ad active e infine a pending. Per evitare combinazioni contraddittorie, deseleziona gli altri stati booleani quando ne imposti uno. Il testo di stato esplicito accompagna lo stile dello stato e rende comprensibile la fase anche senza leggere il colore.

html
<va-process-list>
  <va-process-list-item header="Prepare your request" level="3"
      checkmark="true" status-text="Complete">
    <p>Identify the record you need and the office that holds it.</p>
    <va-details label="What information helps identify a record?">
      <p>A title, approximate date, or reference number can help distinguish similar records. This is illustrative content, not a VA records-request procedure.</p>
    </va-details>
  </va-process-list-item>
  <va-process-list-item header="Send the request" level="3"
      active="true" status-text="Active">
    <p>In this example, a request is ready for the appropriate service. No request is sent from this page.</p>
  </va-process-list-item>
  <va-process-list-item header="Read the response" level="3"
      pending="true" status-text="Pending">
    <p>A real service should explain where a response appears and how to ask about missing information.</p>
  </va-process-list-item>
</va-process-list>

Riferimento del codice

Leggi la specifica di supporto

Sistema di design VA Details integra una fase visibile

Non trasformare ogni fase in un pannello a fisarmonica

Le linee guida per i processi sconsigliano di combinare l’intestazione di un pannello a fisarmonica con una fase del processo. Nascondere tutte le spiegazioni vanifica lo scopo di mostrare il processo. È invece possibile inserire un componente Details all’interno di una fase per aggiungere informazioni supplementari. L’esempio mantiene visibile la spiegazione sull’identificazione dei documenti e inserisce un approfondimento facoltativo in va-details.

L’attributo label del componente diventa la domanda visibile dell’elemento a scomparsa. Una domanda breve è più utile di Ulteriori informazioni, perché aiuta chi legge a capire se il contenuto nascosto è pertinente. In questo esempio, il contenuto di Details spiega cosa può aiutare a identificare un documento e precisa che si tratta di contenuti esemplificativi, non di istruzioni per una procedura VA specifica.

  • Mantieni visibile un riepilogo di ogni fase, comprese quelle contrassegnate come In sospeso.
  • Usare un elemento Details a scomparsa solo per una spiegazione secondaria all’interno di una fase.
  • Mantenere la prossima azione effettiva del servizio al di fuori del titolo del processo, anziché trasformare il titolo in un controllo.

Leggi la specifica di supporto

Sistema di design VA Dimostrazione e attendibilità degli stati

Usare un selettore di scenario, non un avanzamento fittizio

Il selettore Fase di esempio dell’anteprima cambia l’esempio del componente tra preparazione, invio e revisione della risposta. Non fa avanzare una richiesta reale, non stima i tempi ufficiali di elaborazione e non deduce il completamento dal clic di una persona su un pulsante. Un servizio attivo dovrebbe associare gli stati verificati dal backend a questi stati visivi e spiegare separatamente il significato di eventuali ritardi.

Modificando il selettore, le fasi precedenti vengono impostate su Completata, la fase selezionata su Attiva e quelle successive su In sospeso. Una frase di stato dinamica annuncia il cambiamento dello stato di esempio. Tutte e tre le spiegazioni restano visibili e lo stato facoltativo di Details viene mantenuto. Il ripristino riporta alla prima fase esemplificativa e chiude l’elemento supplementare a scomparsa.

Leggi la specifica di supporto

Sistema di design VA Caricare i Web Components nativi

Registrare una volta e preservare le dipendenze

Il percorso di bundling documentato importa main.css e richiama defineCustomElements dal pacchetto component-library. I font provengono da CSS-library e vengono distribuiti separatamente. I componenti che usano lo sprite delle icone richiedono un percorso dello sprite della stessa origine, per impostazione predefinita /img/sprite.svg. Si tratta di requisiti reali di integrazione, non di rifiniture facoltative da scoprire dopo la distribuzione.

L’esempio autonomo usa l’entry point ESM ufficiale per il browser di web-components 24.14.0, dipendenza dichiarata da component-library 56.14.0, oltre ai moduli lazy specifici per Process List, Process List Item e Details. Lo script dell’applicazione si limita a selezionare gli stati di esempio. Il runtime del browser fornisce il comportamento nativo degli elementi personalizzati, compreso il controllo Details.

  1. Caricare CSS dei token e l’entry point dei componenti per il browser corrispondenti, preservando la posizione relativa dei moduli.
  2. Attendi che va-process-list-item sia definito prima di assegnare le proprietà di stato dell’esempio.
  3. Verifica tutti gli stati dello scenario, il controllo da tastiera Details e le larghezze ridotte, senza nascondere i contenuti esplicativi.

Leggi la specifica di supporto

Esempi di componenti del sistema di design sistema di design VA

Una spiegazione nativa in tre fasi

Attributi reali dei Web Component e disclosure Details consentita all’interno di una fase.

html
<va-process-list>
  <va-process-list-item header="Prepare your request" level="3"
      checkmark="true" status-text="Complete">
    <p>Identify the record you need and the office that holds it.</p>
    <va-details label="What information helps identify a record?">
      <p>A title, approximate date, or reference number can help distinguish similar records. This is illustrative content, not a VA records-request procedure.</p>
    </va-details>
  </va-process-list-item>
  <va-process-list-item header="Send the request" level="3"
      active="true" status-text="Active">
    <p>In this example, a request is ready for the appropriate service. No request is sent from this page.</p>
  </va-process-list-item>
  <va-process-list-item header="Read the response" level="3"
      pending="true" status-text="Pending">
    <p>A real service should explain where a response appears and how to ask about missing information.</p>
  </va-process-list-item>
</va-process-list>

Riferimento del codice

  • Usa da 3 a 10 fasi e un solo Process List per pagina.
  • Non sostituire i titoli delle fasi con trigger di accordion.
  • Imposta un solo indicatore di stato per elemento.

Esempio autonomo completo

Il documento completo include layout, controlli e inizializzazione. Estrai l’archivio di esempio collegato per ottenere gli esatti asset vendor relativi, quindi avvialo tramite HTTP.

html
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Request journey — VA component specimen</title><link rel="stylesheet" href="vendor/va-56.14.0/variables.css"><style>*{box-sizing:border-box}:root{--font-serif:Georgia,serif;--font-sans:Arial,sans-serif;--vads-font-family-heading:Georgia,serif;--vads-font-family-serif:Georgia,serif;--vads-font-family-sans:Arial,sans-serif}body{margin:0;font:1.06rem/1.5 Arial,sans-serif;color:var(--vads-color-text);border-top:8px solid var(--vads-color-primary-darker)}main{max-width:52rem;margin:auto;padding:32px 24px}h1,h2{font-family:Georgia,serif;line-height:1.2}h1{font-size:40px;margin:16px 0 24px}h2{font-size:32px;margin:32px 0 24px}.controls{padding:24px;background:var(--vads-color-base-lightest);display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:32px 0}label{font-weight:bold}select,button{font:inherit;padding:8px 12px;max-width:100%;background:white;color:var(--vads-color-text);border:1px solid var(--vads-color-base-dark)}button{cursor:pointer;color:var(--vads-color-link)}select:focus-visible,button:focus-visible{outline:3px solid #ffbe2e;outline-offset:3px}va-process-list-item,va-process-list-item *,va-process-list-item::before{font-family:Arial,sans-serif!important}va-process-list-item .usa-process-list__heading{font-family:Georgia,serif!important}va-process-list-item p{margin:8px 0 16px}footer{border-top:1px solid #dfe1e2;padding-top:24px;margin-top:32px}.note{background:#e7f6f8;padding:16px;border-left:4px solid #005ea2}#state{font-weight:bold}@media(max-width:479px){h1{font-size:32px}.controls{padding:16px;align-items:flex-start;flex-direction:column}}</style></head><body><main><p>VA native component example</p><h1>Understand a request journey</h1><p>See how a service can explain preparation, sending a request, and reviewing its response.</p><p class="note">Fictional process for design exploration. These are not VA submission instructions or a real case status.</p><div class="controls"><label for="stage">Example stage</label><select id="stage"><option value="0">Preparing a request</option><option value="1">Sending a request</option><option value="2">Reviewing a response</option></select><button id="reset" type="button">Reset example</button></div><p id="state" role="status">Example: preparing a request.</p><h2>The three stages</h2><va-process-list>
  <va-process-list-item header="Prepare your request" level="3"
      checkmark="true" status-text="Complete">
    <p>Identify the record you need and the office that holds it.</p>
    <va-details label="What information helps identify a record?">
      <p>A title, approximate date, or reference number can help distinguish similar records. This is illustrative content, not a VA records-request procedure.</p>
    </va-details>
  </va-process-list-item>
  <va-process-list-item header="Send the request" level="3"
      active="true" status-text="Active">
    <p>In this example, a request is ready for the appropriate service. No request is sent from this page.</p>
  </va-process-list-item>
  <va-process-list-item header="Read the response" level="3"
      pending="true" status-text="Pending">
    <p>A real service should explain where a response appears and how to ask about missing information.</p>
  </va-process-list-item>
</va-process-list><footer>Native VA Web Components 24.14.0 · CSS tokens 0.36.1<br>Arial and Georgia fallbacks. No request is sent or stored.</footer></main><script>globalThis.getVaIconSpriteLocation=()=>new URL("vendor/va-web-24.14.0/sprite.svg",document.baseURI).pathname;</script><script type="module" src="vendor/va-web-24.14.0/component-library.esm.js"></script><script type="module">await customElements.whenDefined('va-process-list-item');const items=[...document.querySelectorAll('va-process-list-item')],select=document.querySelector('#stage');function render(){const current=Number(select.value);items.forEach((item,i)=>{for(const [key,on] of Object.entries({active:i===current,pending:i>current,checkmark:i<current})){item[key]=on;if(on)item.setAttribute(key,'true');else item.removeAttribute(key)}item.statusText=i<current?'Complete':i===current?'Active':'Pending';item.setAttribute('status-text',item.statusText)});document.querySelector('#state').textContent='Example: '+select.selectedOptions[0].textContent.toLowerCase()+'.'}select.addEventListener('change',render);document.querySelector('#reset').addEventListener('click',()=>{select.value='0';render();const detail=document.querySelector('va-details');if(detail.shadowRoot){if(detail.shadowRoot.querySelector('details').open)detail.shadowRoot.querySelector('summary').click()}select.focus()});render();</script></body></html>

Riferimento del codice

  • Scarica l’esempio completo dalla sezione Fonti. Il README indica il comando esatto per avviarlo in locale.
  • Mantieni i percorsi vendor relativi a questo documento; l’archivio include tutti gli asset usati da questa anteprima.
04

Configurazione dell’agent sistema di design VA

Punto di partenza per l’implementazione

Inizializzazione del bundler documentata con versioni dei pacchetti verificate. L’esempio autonomo nel browser usa la corrispondente distribuzione ESM nativa dei web component, anziché una build React. Il file ZIP dell’esempio completo e funzionante, disponibile in Sources, include anche le dipendenze esatte per l’anteprima e il documento completo. Estrailo, esegui python3 -m http.server 8080 in quella directory e poi apri http://localhost:8080/va.html. Non aprire gli esempi basati su moduli tramite file://.

javascript
// Install in an application with a JavaScript bundler:
// npm install @department-of-veterans-affairs/[email protected] \
//   @department-of-veterans-affairs/[email protected]
import '@department-of-veterans-affairs/component-library/dist/main.css';
import '@department-of-veterans-affairs/css-library/dist/tokens/css/variables.css';
import { defineCustomElements } from '@department-of-veterans-affairs/component-library';
defineCustomElements();
// Render the va-process-list markup in your page after this initialization.
// Deliver the CSS-library fonts separately, or choose an explicit fallback.
// Components that use va-icon also require the same-origin /img/sprite.svg.

Un prompt per il tuo progetto

Prompt per l’agente
Crea una spiegazione del processo di un servizio VA con un va-process-list contenente da tre a dieci elementi va-process-list-item. Usa intestazioni che iniziano con un verbo, level=3 sotto un h2, descrizioni visibili e un solo stato active/pending/checkmark per elemento, con status-text esplicito. Usa va-details solo per testo aggiuntivo all’interno di una fase, senza nascondere mai la fase intera. Importa il file dei token VADS CSS attuale e registra i componenti nativi. Mantieni il corpo del testo a 17px, i ruoli delle famiglie Bitter/Source Sans, la spaziatura semantica e i breakpoint di 320/480/640/880/1024/1201/1400px. Ogni esempio interattivo deve indicare che le fasi sono illustrative e non deve mai sembrare una richiesta VA inviata.
05

Fonti e ambito sistema di design VA

Dimostrazione tecnica di componenti con fasi fittizie di richiesta di documenti. Non rappresenta una richiesta reale alla VA, lo stato di una pratica, una decisione sui benefici né un’approvazione istituzionale.