Progettazione di prodotti aziendali · Nuova risorsa

Sistema di design Visa Product.

Usa Nova CSS di Visa per creare una preferenza chiara nel formato dell’estratto conto, con controlli radio nativi, intestazione di colore alternativo e riepilogo di revisione. Esamina i valori esatti del tema 1.6.5, la spaziatura scalabile e l’integrazione completa del foglio di stile.

Guida OpenDesign7 capitoli40 voci di riferimentoGuida applicativa originale
01

Anteprima dell'interfaccia sistema di design Visa Product

Seleziona un formato e una frequenza, controlla la preferenza locale e reimpostala.

Preferenza sul formato dell'estratto contoApri l’esempio completo
CSS nativo di @visa/nova-styles 1.6.5 e tema Visa incorporati localmente; regole font-face remote rimosse e font di sistema utilizzati. Layout originale dell'applicazione e script locale. · Riferimento per l’implementazione
02

Riferimento di design sistema di design Visa Product

Stili pubblicati di @visa/nova-styles 1.6.5, tema Visa e metadati dell'esempio. I valori predefiniti/light sono distinti dalle varianti alternative e scure. L'anteprima incorpora localmente CSS ufficiale e rimuove le regole font-face remote, usando un font di sistema come fallback.

Palette predefinita

Fonte
Nome / regolaValore / configurazioneUtilizzo
--palette-default-active#1434cb Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-active-hover#173be8 Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-active-pressed#0f2595 Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-active-accent#fcc015 Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-surface-1#ffffff Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-surface-2#f5f5f5 Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-surface-3#f0f0f0 Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-text#000000 Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-text-subtle#4a4a4a Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-text-on-active#ffffff Riferimento al tema predefinito/light di Visa 1.6.5.
--palette-default-borderrgba(0, 0, 0, 0.1)Riferimento al tema predefinito/light di Visa 1.6.5.

Dimensioni e tipografia del tema

Fonte
Nome / regolaValore / configurazioneUtilizzo
--theme-font-size14pxRiferimento al tema predefinito/light di Visa 1.6.5.
--theme-border-radius6pxRiferimento al tema predefinito/light di Visa 1.6.5.
--typography-headline-1-font-size2.2857142857remRiferimento al tema predefinito/light di Visa 1.6.5.
--typography-headline-2-font-size1.7857142857remRiferimento al tema predefinito/light di Visa 1.6.5.
--typography-headline-3-font-size1.4285714286remRiferimento al tema predefinito/light di Visa 1.6.5.
--typography-body-1-font-size1.1428571429remRiferimento al tema predefinito/light di Visa 1.6.5.
--typography-body-2-font-size1remRiferimento al tema predefinito/light di Visa 1.6.5.
--typography-body-3-font-size0.8571428571remRiferimento al tema predefinito/light di Visa 1.6.5.

Dimensioni scalabili

Fonte
Nome / regolaValore / configurazioneUtilizzo
--size-scalable-4calc(4px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.
--size-scalable-8calc(8px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.
--size-scalable-12calc(12px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.
--size-scalable-16calc(16px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.
--size-scalable-24calc(24px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.
--size-scalable-32calc(32px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.
--size-scalable-40calc(40px * var(--theme-scale-factor))Dimensione scalabile di base; nei contesti reattivi può essere applicato un ulteriore fattore.

Classi di utility e componenti pubblicate

Fonte
Nome / regolaValore / configurazioneUtilizzo
v-flexFlex layoutNecessario come genitore per gli esempi con gap.
v-gap-20Gap utilityMostrato nell'esempio ufficiale con spaziatura predefinita.
v-col-gap-20Column gap utilitySepara le colonne.
v-buttonPrimary buttonUsa un elemento button nativo.
v-button-secondarySecondary modifierAzione Reset di supporto nell'esempio.
v-radioNative radio styleMantieni lo stesso name e valori distinti.
v-labelLabel styleMantieni un'etichetta associata o un'etichetta contenitore.
v-alternateAlternate palette contextVisualizzato su una superficie o un pulsante.
v-typography-headline-1Headline visual roleApplicalo all'elemento h1 semantico di questa pagina.

Contratto di composizione

Fonte
Nome / regolaValore / configurazioneUtilizzo
Radio groupOne shared name per questionFormato e frequenza sono gruppi indipendenti.
fieldset / legendGroup questionSpiega a cosa rispondono le opzioni.
checkedNative selected stateNon usare solo CSS per la selezione.
disabledNative unavailable stateMantieni una spiegazione visibile se l'opzione non è disponibile.
aria-describedbyOptional supporting descriptionCollega il testo aggiuntivo quando non fa parte dell'etichetta.
03

Guida completa sistema di design Visa Product

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

DESIGN-visa.md

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

Scarica la guida

Sistema di design Visa Product Un'attività di scelta con uno stato di revisione chiaro

Mantieni separate le domande

L'esempio chiede il formato dell'estratto conto e la frequenza del riepilogo. Sono due gruppi radio separati: modificare la frequenza non deseleziona il formato. Il riepilogo ripete entrambe le scelte prima dell'azione principale, così l'utente può verificarne il risultato senza dover interpretare un'icona o un valore predefinito nascosto.

Da questa guida su OpenDesign

La revisione della preferenza registra solo una conferma locale. La pagina non richiede un numero di carta, non accede a un account, non genera un estratto conto e non modifica impostazioni di servizi finanziari. In questo modo, l'esempio si concentra sui comportamenti di selezione e feedback del design system.

Leggi la specifica di supporto

Sistema di design Visa Product Gli stili Nova e il tema Visa sono importazioni separate

La struttura non costituisce l'intero tema

L'installazione ufficiale mostra prima styles.css e poi themes/visa/index.css. Il primo fornisce le regole per i componenti e le utility; il secondo fornisce il tema Visa. Caricarne solo uno comporta un'integrazione incompleta. Sia l'esempio autonomo sia lo snippet di importazione mantengono quest'ordine.

Il pacchetto verificato è alla versione 1.6.5. L'esempio incorpora localmente il proprio CSS, così al momento della visualizzazione non dipende da una richiesta di foglio di stile a terze parti. Le dichiarazioni font-face remote sono rimosse e l'applicazione usa esplicitamente un font di sistema come fallback: è Nova CSS nativo con una sostituzione del font dichiarata, non una garanzia di corrispondenza esatta con il font proprietario.

Leggi la specifica di supporto

Sistema di design Visa Product Le palette predefinita e alternativa includono colori di primo piano abbinati

Non trasferire un colore di riempimento senza il relativo ruolo del testo

Il colore attivo predefinito/light è #1434cb, diventa #173be8 al passaggio del puntatore e #0f2595 quando viene premuto. Il ruolo del testo sul colore attivo è bianco. Il contesto del tema alternativo modifica la mappatura dei ruoli: per questo l'esempio applica v-alternate alla superficie dell'intestazione, invece di sovrascriverne solo lo sfondo.

L’accento #fcc015 non è un riempimento universale per i pulsanti. È il contesto del tema a determinare l’uso dei ruoli di accento e di stato attivo. La tabella di riferimento descrive la palette predefinita; le definizioni successive per i temi scuri e alternativi nello stesso foglio di stile non vengono unite in un unico insieme di valori fuorviante.

Leggi la specifica di supporto

Sistema di design Visa Product Leggi la scala rem in base alla radice del tema

Una radice del tema di 14 pixel modifica i valori rem a cui sei abituato

Il tema Visa definisce una radice tipografica di 14 pixel. Il valore headline-1, pari a circa 2.285714rem, corrisponde quindi a 32 pixel con questa radice, non al valore che si ottiene ipotizzando una radice di 16 pixel. body-1 è circa 1.142857rem, mentre body-2 è 1rem.

I token di dimensione scalabili esprimono una quantità in pixel moltiplicata per il fattore di scala del tema. Nei contesti responsive può intervenire un secondo fattore. Quando adatti la spaziatura a un’applicazione, mantieni l’espressione: copiare solo il numero calcolato predefinito fa perdere questa relazione. L’esempio usa le utility ufficiali per gli spazi nei controlli di frequenza e le dimensioni originali dell’applicazione per il layout complessivo a due colonne.

Leggi la specifica di supporto

Sistema di design Visa Product Semantica nativa dei pulsanti di opzione sotto la presentazione Nova

Un cerchio stilizzato non è un gruppo di pulsanti di opzione

I metadati pubblici associano v-radio a un vero input type="radio" e a una label. L’anteprima mantiene questa struttura nativa e racchiude nella label la descrizione visibile di ciascuna opzione. Le frecce della tastiera consentono di spostarsi all’interno del gruppo e lo stato selezionato resta disponibile al browser e alle tecnologie assistive.

Un fieldset e un legend identificano ciascuna domanda. Le opzioni di formato ne spiegano le conseguenze: un PDF è un estratto di esempio scaricabile, mentre HTML viene descritto come adattabile al flusso del testo. Il contenuto specifico del prodotto è originale; struttura e classi dei controlli provengono dalla libreria nativa.

  • Usa un name per le due opzioni di formato e un altro per la frequenza.
  • Mantieni distinto il valore del pulsante di opzione dal testo visibile, così il riepilogo può usare un’etichetta stabile.
  • Per indicare lo stato usa gli attributi checked e disabled, non solo una classe decorativa.

Leggi la specifica di supporto

Sistema di design Visa Product Nova CSS applica lo stile ai controlli; gli elementi nativi HTML gestiscono la scelta

Mantieni la logica di raggruppamento e revisione fuori dal foglio di stile

L’esempio applica la classe v-radio di Nova a veri input radio. Gli attributi name condivisi rendono esclusive le opzioni di formato, mentre un name diverso separa il gruppo della frequenza. Fieldset e legend forniscono il contesto del gruppo; una label associata rende l’intero testo dell’opzione parte del nome accessibile del controllo.

Il pacchetto CSS non seleziona un’opzione, non gestisce la persistenza dell’applicazione e non crea un record di revisione. Lo script fornito legge i due gruppi nativi e crea un riepilogo locale. Una modifica cancella il riepilogo, perché i valori precedenti non descrivono più la preferenza corrente.

Nell’implementazione mantieni sia il foglio di stile strutturale sia il tema Visa. L’intestazione alternativa usa v-alternate, mentre il modulo resta nel contesto cromatico predefinito; non imitare l’intestazione cambiandone solo lo sfondo e lasciando irrisolti i ruoli del primo piano.

Leggi la specifica di supporto

Sistema di design Visa Product Un unico ordine di lettura a ogni larghezza

Sposta il riepilogo senza modificare la sequenza delle attività

Negli schermi ampi, i gruppi di opzioni e il riepilogo della selezione corrente appaiono affiancati. Negli schermi piccoli, il riepilogo segue il modulo. L’illustrazione originale del documento scompare perché non aggiunge informazioni utili all’attività, mentre restano tutte le etichette, le spiegazioni e le azioni.

La libreria CSS supporta i browser evergreen moderni. Le linee guida ufficiali di sviluppo non garantiscono la compatibilità con i browser meno recenti; perciò un team di produzione dovrebbe testare le versioni effettivamente supportate, invece di considerare universale il supporto solo perché l’anteprima moderna funziona.

  1. Carica CSS strutturale e tema Visa bloccati a una versione specifica, poi aggiungi gli stili di layout dell’applicazione.
  2. Seleziona Accessible HTML e Trimestrale, rivedi la preferenza e verifica che entrambe le scelte compaiano nel riepilogo.
  3. Modifica una delle due scelte, verifica che le indicazioni di revisione si azzerino, quindi prova Reimposta e il layout stretto.

Leggi la specifica di supporto

Esempi di componenti del sistema di design sistema di design Visa Product

Composizione completa delle preferenze Nova CSS

Due gruppi nativi di pulsanti di opzione aggiornano subito un riepilogo; l’azione principale crea uno stato di revisione locale esplicito.

html
<!-- index.html after installing @visa/[email protected] in a Vite vanilla project -->
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Statement preference</title>
<link rel="stylesheet" href="/node_modules/@visa/nova-styles/styles.css">
<link rel="stylesheet" href="/node_modules/@visa/nova-styles/themes/visa/index.css">
<style>:root{font-family:Arial,sans-serif}body{font-family:Arial,sans-serif;background:#fff}*{box-sizing:border-box}.app{max-width:1150px;margin:auto;padding:24px}.hero{padding:32px;display:grid;grid-template-columns:1fr 150px;align-items:center;gap:24px;border-radius:6px}.hero h1{font-family:Arial,sans-serif;font-weight:600;line-height:1.2;margin:12px 0 16px}.hero p{font-family:Arial,sans-serif}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:600}.paper{width:120px;height:150px;background:white;border-radius:6px;transform:rotate(8deg);padding:20px;box-shadow:8px 8px 0 #0f2595;position:relative}.paper span{display:block;height:3px;background:#1434cb;margin:10px 0;width:70px}.paper span:nth-child(2){width:45px}.paper b{position:absolute;bottom:10px;right:15px;color:#1434cb;font:600 36px Arial}.workspace{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;margin:32px 0}.workspace h2,.workspace legend{font-family:Arial,sans-serif;font-weight:600}.hint{font-size:14px;color:#4a4a4a;line-height:1.5;margin:12px 0 16px}.option{display:flex;gap:16px;padding:20px 16px;border:1px solid #ddd;border-radius:6px;margin:12px 0;cursor:pointer}.option:has(:checked){border:2px solid #1434cb;padding:19px 15px;background:#f6f9ff}.option b{font-size:16px}.option small{display:block;font-size:14px;color:#4a4a4a;line-height:1.5;margin-top:4px}.option .v-radio{flex-shrink:0}.frequency{margin-top:28px}.frequency legend{margin-bottom:16px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.v-button{font-family:Arial,sans-serif}.summary{background:#f5f5f5;padding:24px;border-radius:6px;align-self:start;min-height:285px}.summary h2{margin:16px 0 8px}.rule{height:1px;background:#ddd;margin-top:20px}.status{padding:16px 0;font-size:14px;line-height:1.5}.confirmed{color:#1434cb;font-weight:600}footer{font-size:12px;color:#4a4a4a;border-top:1px solid #ddd;padding-top:16px;line-height:1.5}@media(max-width:650px){.app{padding:16px}.hero{padding:24px;grid-template-columns:1fr}.paper{display:none}.workspace{grid-template-columns:1fr;gap:24px}.hero h1{font-size:28px}.option{padding:16px 12px}.option:has(:checked){padding:15px 11px}}
</style><main class="app"><header class="v-surface v-alternate hero"><div><p class="eyebrow">ACCOUNT PREFERENCES / SAMPLE</p><h1 class="v-typography-headline-1">Choose how you read<br>your statement.</h1><p class="v-typography-body-1">One clear choice, with the details visible before you confirm.</p></div><div class="paper" aria-hidden="true"><span></span><span></span><span></span><b>01</b></div></header><div class="workspace"><form id="form"><fieldset><legend class="v-typography-headline-3">Statement format</legend><p class="hint">This page stores a demonstration preference only.</p><label class="option"><input class="v-radio" type="radio" name="delivery" value="Digital PDF" checked><span><b>Digital PDF</b><small>A downloadable sample statement for offline reading.</small></span></label><label class="option"><input class="v-radio" type="radio" name="delivery" value="Accessible HTML"><span><b>Accessible HTML</b><small>A reflowable sample statement with structured headings.</small></span></label></fieldset><fieldset class="frequency"><legend class="v-typography-headline-3">Summary frequency</legend><div class="v-flex v-gap-16"><label class="v-flex v-align-items-center v-gap-4"><input class="v-radio" type="radio" name="frequency" value="Monthly" checked>Monthly</label><label class="v-flex v-align-items-center v-gap-4"><input class="v-radio" type="radio" name="frequency" value="Quarterly">Quarterly</label></div></fieldset><div class="actions"><button class="v-button" type="submit">Review preference</button><button class="v-button v-button-secondary" id="reset" type="button">Reset</button></div></form><aside class="summary"><p class="eyebrow">YOUR CURRENT SELECTION</p><h2 class="v-typography-headline-3" id="selection">Digital PDF</h2><p id="period">Monthly summary</p><div class="rule"></div><p class="hint">No account data is used. No statement is generated or delivered.</p><p class="status" id="status" role="status">Review your preference to create a local confirmation.</p></aside></div><footer>Nova styles 1.6.5 and Visa theme. The example application styles use a system-font fallback. Original demonstration, no financial service connection.</footer></main>
<script>const form=document.querySelector('#form'),status=document.querySelector('#status');function update(){document.querySelector('#selection').textContent=form.elements.delivery.value;document.querySelector('#period').textContent=form.elements.frequency.value+' summary';status.textContent='Review your preference to create a local confirmation.';status.classList.remove('confirmed')}form.onchange=update;form.onsubmit=e=>{e.preventDefault();status.textContent='Reviewed locally: '+form.elements.delivery.value+', '+form.elements.frequency.value.toLowerCase()+'. No account setting changed.';status.classList.add('confirmed')};document.querySelector('#reset').onclick=()=>{HTMLFormElement.prototype.reset.call(form);update()};</script>
</html>

Riferimento del codice

  • CSS fornisce la presentazione dei componenti; un piccolo script aggiunge il comportamento dell’applicazione.
  • La modifica di una preferenza cancella il precedente stato di revisione.
  • L’intestazione alternativa usa un vero contesto del tema, non un’imitazione della palette disegnata a mano.
  • Salva il file HTML completo come index.html e aprilo in un browser con accesso agli URL pubblici CSS bloccati a una versione specifica. L’anteprima incorporata in questa guida mantiene gli stili in locale.

Carica insieme struttura e tema

In un’applicazione con bundle, importa entrambi i livelli una sola volta prima del foglio di stile dell’applicazione.

javascript
import '@visa/nova-styles/styles.css';
import '@visa/nova-styles/themes/visa/index.css';
import './application.css';

Riferimento del codice

  • Se manca il file del tema, le classi strutturali possono essere presenti senza i token Visa previsti.
04

Configurazione dell’agente AI sistema di design Visa Product

Punto di partenza per l’implementazione

HTML completo usa i percorsi verificati styles.css e themes/visa/index.css. Sono necessari entrambi. Nell’iframe questi stili sono incorporati localmente; le dichiarazioni ufficiali font-face sono omesse.

shell / html
npm create vite@latest statement-preference -- --template vanilla
cd statement-preference
npm install
npm install @visa/[email protected]
# Replace index.html with the complete example below.
npm run dev

Un prompt per il tuo progetto

Prompt per l’agente
Crea l’esempio di preferenza dell’estratto conto Visa Nova usando CSS strutturale e tema bloccati a una versione specifica. Mantieni i gruppi nativi di pulsanti di opzione, i legend chiari e le label associate. Separa i ruoli del tema predefinito da quelli alternativi e tieni conto della radice di 14px quando interpreti i valori rem. Mantieni locale la revisione, cancella le conferme obsolete dopo le modifiche e disponi il riepilogo in verticale sugli schermi piccoli.
05

Sistema di design Visa Product Fonti e ambito

Guida indipendente a OpenDesign con CSS nativo Nova. Questa attività immaginaria sulla preferenza non usa dati del conto né modifica alcun servizio finanziario. L’anteprima segnala la sostituzione del font con quello di sistema.