Servizi pubblici · Nuova risorsa

sistema di design .italia.

Implementa una sequenza di servizio leggibile con la tipografia reale di Bootstrap Italia, la struttura responsive di Stepper e uno stato locale del modulo ripristinabile.

Guida OpenDesign8 capitoli22 voci di riferimentoGuida applicativa originale
01

Anteprima dell’interfaccia sistema di design .italia

Segui un piano locale realistico in tre passaggi, gestisci una scelta mancante e torna indietro senza perdere la nota.

Prepara una visita in bibliotecaApri l’esempio completo
Bootstrap Italia 2.18.3 CSS nativo e Titillium Web; logica del flusso originale. · Riferimento per l’implementazione
02

Riferimento di design sistema di design .italia

Pacchetto installato e documentazione ufficiale di Bootstrap Italia 2.18.3; verificati CSS nativo e rendering dei font a tre larghezze.

Tipografia e font

Fonte
Nome / regolaValore / configurazioneUtilizzo
Main familyTitillium WebNell’anteprima sono inclusi i pesi WOFF2 nativi 400/600/700.
Long reading / codeLora / Roboto Monofont-serif e font-monospace; non usare il monospace per l’intera interfaccia.
Body16px / 1.5Base predefinita dalla revisione tipografica 2.7.
H1 mobile40px / 48pxCSS 2.18.3 effettivo sotto i 576px.
H1 from 576px48px / 56pxCSS nativo misurato; la tabella della documentazione riporta ancora un’interlinea di 60px.
Responsive typography576px thresholdDiversa dalla soglia compatta dello Stepper, pari a 992px.

Token semantici nativi

Fonte
Nome / regolaValore / configurazioneUtilizzo
--bs-primaryhsl(210,100%,40%) = #0066ccColore per azioni primarie e link.
--bs-body-colorhsl(0,0%,10%)Colore predefinito per il testo.
--bs-successhsl(160,100%,25%)Indica un esito positivo, non uno stato di completamento automatico.
--bs-dangerhsl(350,60%,50%)Indica un errore o un’azione distruttiva.
--bs-warninghsl(36,100%,30%)Ruolo di avviso, distinto dal giallo della palette.
--bs-border-radius4pxSono disponibili anche le varianti piccola da 2px e grande da 8px.

Spaziatura e layout

Fonte
Nome / regolaValore / configurazioneUtilizzo
Utility sizes 0–50, 4, 8, 16, 24, 48pxCon una radice standard di 16px; ad es., p-3=1rem e p-5=3rem.
Responsive thresholds576 / 768 / 992 / 1200 / 1400pxDa sm a xxl.
Container maxima540 / 720 / 960 / 1176 / 1320pxCSS effettivo di Italia; xl è diverso dai 1140px di Bootstrap standard.
Preview width900px maximumScelta dell’applicazione per un breve piano locale, non un token ufficiale del contenitore.
Stepper compact modeBelow 992pxSono visibili solo l’etichetta attiva e l’indice testuale.

Struttura dello Stepper

Fonte
Nome / regolaValore / configurazioneUtilizzo
Root/headersteppers / steppers-headerL’intestazione contiene un elenco di fasi.
Stage statesconfirmed / activeIl codice dell’applicazione deve aggiornarle dopo la convalida.
Mobile indexsteppers-indexMantieni n/totale sincronizzato con la fase attiva.
Bodysteppers-content; aria-live=politeAnnuncia i cambiamenti dei contenuti della pagina singola.
Navigationsteppers-nav; steppers-btn-prev / steppers-btn-nextLe classi definiscono la presentazione, non la navigazione automatica del modulo.
03

Guida completa sistema di design .italia

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

DESIGN-designers-italia.md

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

Scarica la guida

Sistema e implementazione sistema di design .italia

Designers Italia attraverso la sua libreria di codice

Designers Italia è più ampio di un pacchetto CSS: include indicazioni per la progettazione dei servizi, kit e risorse per l’implementazione. Questo esempio si concentra sull’implementazione documentata di Bootstrap Italia, fissata alla versione 2.18.3. Non implica che installare la libreria basti a progettare un servizio pubblico o a soddisfare tutti i requisiti di un sito comunale.

Da questa guida su OpenDesign

Nella versione esaminata, Bootstrap Italia include e personalizza Bootstrap 5.2.3. Non sovrapporre un secondo bundle standard di Bootstrap. L’anteprima usa il suo CSS nativo e i file dei font Titillium Web forniti localmente, con un flusso originale in tre fasi per pianificare una visita in biblioteca.

Leggi la specifica di supporto

Tipografia e valori esatti di sistema di design .italia

Font con funzioni distinte

Titillium Web è il carattere principale dell’interfaccia. Lora è l’opzione serif per i testi più lunghi, mentre Roboto Mono è adatto al codice o ai contenuti a larghezza fissa. L’anteprima carica i pesi effettivi di Titillium Web che utilizza e mantiene la licenza del font, anziché sostituirlo senza dichiararlo con un carattere di sistema.

Il testo del corpo resta a 16px. Le intestazioni cambiano a 576px: H1 è di 40px con interlinea di 48px sugli schermi piccoli, poi di 48px con interlinea di 56px nell’installazione di CSS. La tabella della documentazione indica un’interlinea desktop di 60px; la tabella di riferimento qui riporta i valori della versione esaminata e spiega la discrepanza, invece di mescolare due fonti.

Leggi la specifica di supporto

Breakpoint responsive e spaziatura di sistema di design .italia

Due breakpoint per esigenze diverse

La soglia tipografica è 576px, mentre l’intestazione dello Stepper cambia presentazione sotto i 992px. Sugli schermi compatti restano visibili l’etichetta corrente e l’indice n/totale. I nomi delle altre fasi non vengono compressi in colonne illeggibili. Chi usa il servizio da dispositivo mobile deve comunque poter sapere qual è la fase corrente: l’esempio lo comunica tramite il focus sull’intestazione e il testo degli stati accessibili.

Le utility di spaziatura seguono la scala rem verificata: 4, 8, 16, 24 e 48px per le dimensioni da 1 a 5 con una radice standard. Le larghezze massime del contenitore della griglia includono 1176px a xl, anziché il valore standard di Bootstrap da 1140px, spesso ricordato in modo errato. Il piano indipendente usa una larghezza massima più contenuta, pari a 900px, come scelta esplicita dell’applicazione.

Leggi la specifica di supporto

Struttura e responsabilità dello Stepper sistema di design .italia

L’intestazione non gestisce il flusso

La struttura documentata separa steppers-header, steppers-content e steppers-nav. Gli elementi dell’elenco dell’intestazione ricevono le classi confirmed e active; l’indice indica la posizione. Ai pulsanti Precedente e Avanti vengono assegnate le rispettive classi. Queste classi descrivono la presentazione. Spetta all’applicazione decidere se il modulo corrente è valido e se è possibile passare a una fase successiva.

L’esempio usa sezioni normali per ogni passaggio e mantiene i controlli nel DOM, nascondendo le sezioni inattive. Tornando al passaggio della nota di accesso, la nota viene quindi conservata. Il passaggio di riepilogo legge i controlli esistenti; non li ricrea sulla base di un risultato server ipotizzato.

html
<div class="steppers">
  <div class="steppers-header">
    <ul>
      <li class="confirmed">Visit type <span class="visually-hidden">Completed</span></li>
      <li class="active" aria-current="step">Access note <span class="visually-hidden">Current step</span></li>
      <li>Review</li>
    </ul>
    <span class="steppers-index" aria-hidden="true">2/3</span>
  </div>
  <div class="steppers-content" aria-live="polite">
    <h2>Add an access note</h2>
    <label for="note">Access note (optional)</label>
    <textarea id="note" class="form-control" rows="3"></textarea>
  </div>
  <nav class="steppers-nav" aria-label="Plan steps">
    <button class="btn btn-outline-primary steppers-btn-prev">Back</button>
    <button class="btn btn-primary steppers-btn-next">Continue</button>
  </nav>
</div>

Riferimento del codice

Leggi la specifica di supporto

Convalida e avanzamento significativo di sistema di design .italia

Avanza solo dopo aver effettuato la scelta obbligatoria

Il tipo di visita è obbligatorio. Se si seleziona Continua senza averlo scelto, la prima fase resta attiva, viene mostrato un messaggio di errore specifico e il focus passa al primo pulsante radio. Dopo aver scelto un tipo e aver selezionato Continua, la prima fase viene contrassegnata come completata. La nota è facoltativa e può restare vuota; in tal caso, il riepilogo indica che non è stata aggiunta alcuna nota.

Indietro passa alla fase precedente senza cancellare la selezione o la nota. Ricomincia cancella esplicitamente entrambi i dati e riporta all’inizio. La schermata finale è presentata come piano locale: non afferma mai che una prenotazione sia stata inviata, approvata o salvata.

  1. Seleziona Continua senza aver scelto un pulsante radio e verifica l’errore.
  2. Scegli un tipo di visita, aggiungi una breve nota e apri il riepilogo.
  3. Torna alla nota, verifica che il suo contenuto sia ancora presente, quindi seleziona Ricomincia per cancellare il piano.

Leggi la specifica di supporto

Stati accessibili e focus di sistema di design .italia

Allinea la posizione visiva a quella annunciata

L’elemento dell’elenco attivo ha aria-current="step" e un’etichetta visivamente nascosta che indica la fase corrente. Le fasi precedenti ricevono un testo di completamento oltre alla classe confirmed. L’indice numerico compatto è nascosto alle tecnologie assistive, perché l’intestazione corrente e la semantica della fase comunicano già la posizione; resta visibile per orientarsi visivamente.

Come raccomandato dalle indicazioni ufficiali per una sequenza su pagina singola, il contenuto che cambia usa aria-live="polite". L’esempio porta inoltre il focus sulla nuova intestazione, così chi usa la tastiera ha un punto di partenza prevedibile per la lettura. Verifica questa combinazione con le tecnologie assistive supportate per evitare annunci eccessivamente ripetitivi nei moduli più complessi.

  • Usa pulsanti reali per cambiare fase e disabilita Indietro nella prima fase.
  • Associa le etichette ai pulsanti radio e all’area di testo; il testo segnaposto non è un’etichetta.
  • Comunica gli stati corrente e completato anche con il testo, non solo tramite il colore blu o un’icona.

Leggi la specifica di supporto

Asset nativi e inizializzazione di sistema di design .italia

CSS, font e JavaScript facoltativo

Il pacchetto include CSS, uno script integrato, i font sorgente e uno sprite SVG. Questo esempio di Stepper richiede CSS e i font scelti; la navigazione è gestita dalla logica dell’applicazione. Gli altri widget usano data-bs-toggle o gli attributi data descritti nella documentazione per l’inizializzazione automatica. Non combinare l’inizializzazione automatica con una seconda istanza manuale dello stesso widget.

Se usi i moduli, importa solo i componenti necessari all’applicazione. Le indicazioni ufficiali specificano che i metodi di transizione restituiscono il controllo prima che la transizione sia terminata e che le chiamate effettuate durante una transizione possono essere ignorate. Per concatenare azioni dipendenti in questi componenti, attendi l’evento di completamento pertinente; questo semplice Stepper non inventa un API di transizione nativo.

Leggi la specifica di supporto

Limiti dell’integrazione di sistema di design .italia

Usa il kit senza suggerire che il servizio sia stato completato

La documentazione della libreria consiglia di mantenerla aggiornata e sconsiglia di dipendere da una CDN pubblica in produzione. La configurazione fissa la versione verificata e l’esempio locale include i propri asset e le relative licenze. Un servizio reale richiede comunque progettazione dei contenuti, gestione dei dati, convalida lato server e una risposta di conferma dell’invio.

L’esempio mostra una visita generica in biblioteca, senza logo comunale né emblemi ufficiali. È un esempio didattico di OpenDesign, non un servizio di un’autorità pubblica. Mantieni chiara questa distinzione in ogni prototipo, affinché un riepilogo curato dal punto di vista visivo non venga scambiato per la registrazione di una richiesta reale.

Leggi la specifica di supporto

Esempi di componenti del sistema di design sistema di design .italia

Struttura dello Stepper nella seconda fase

Il codice dell’applicazione deve sincronizzare gli stati confermato, attivo e dell’indice mobile.

html
<div class="steppers">
  <div class="steppers-header">
    <ul>
      <li class="confirmed">Visit type <span class="visually-hidden">Completed</span></li>
      <li class="active" aria-current="step">Access note <span class="visually-hidden">Current step</span></li>
      <li>Review</li>
    </ul>
    <span class="steppers-index" aria-hidden="true">2/3</span>
  </div>
  <div class="steppers-content" aria-live="polite">
    <h2>Add an access note</h2>
    <label for="note">Access note (optional)</label>
    <textarea id="note" class="form-control" rows="3"></textarea>
  </div>
  <nav class="steppers-nav" aria-label="Plan steps">
    <button class="btn btn-outline-primary steppers-btn-prev">Back</button>
    <button class="btn btn-primary steppers-btn-next">Continue</button>
  </nav>
</div>

Riferimento del codice

Flusso di pianificazione locale completo

CSS/fonts nativo, convalida obbligatoria dei radio button, nota facoltativa, revisione, indietro e ripristino.

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Prepare a library visit</title><link rel="stylesheet" href="vendor/bootstrap-italia-2.18.3/bootstrap-italia.min.css"><link rel="stylesheet" href="vendor/bootstrap-italia-2.18.3/fonts.css"><style>body{padding:32px 16px}main{max-width:900px;margin:auto}.steppers-content{padding:24px 0}.steppers-nav{display:flex;gap:16px;justify-content:space-between}.form-check{margin-bottom:16px}footer{font-size:14px;margin-top:32px;border-top:1px solid #ccc;padding-top:16px}[hidden]{display:none!important}.error{color:var(--bs-danger)}@media(max-width:575px){body{padding:24px 16px}}</style><main><p class="text-uppercase">Independent service example</p><h1>Prepare a library visit</h1><p class="lead">Choose a visit format, add a note and review your local plan.</p><div class="steppers"><div class="steppers-header"><ul id="steps"><li class="active" aria-current="step">Visit type <span class="visually-hidden">Current step</span></li><li>Access note</li><li>Review</li></ul><span class="steppers-index" id="index" aria-hidden="true">1/3</span></div><div class="steppers-content" aria-live="polite"><section data-step="0"><h2 tabindex="-1">Choose a visit type</h2><fieldset><legend class="visually-hidden">Visit type</legend><div class="form-check"><input id="guided" type="radio" name="visit" value="Guided introduction"><label for="guided">Guided introduction</label></div><div class="form-check"><input id="quiet" type="radio" name="visit" value="Quiet reading visit"><label for="quiet">Quiet reading visit</label></div></fieldset><p id="error" class="error" role="alert" hidden>Choose a visit type before continuing.</p></section><section data-step="1" hidden><h2 tabindex="-1">Add an access note</h2><p id="hint">Optional. Describe what would help you use the space; avoid sensitive personal information.</p><label for="note">Access note</label><textarea id="note" rows="3" class="form-control" aria-describedby="hint" maxlength="200"></textarea></section><section data-step="2" hidden><h2 tabindex="-1">Review your local plan</h2><dl><dt>Visit type</dt><dd id="review-type"></dd><dt>Access note</dt><dd id="review-note"></dd></dl><p>This is a local plan only. No booking or request has been sent.</p></section></div><nav class="steppers-nav" aria-label="Plan steps"><button id="back" class="btn btn-outline-primary steppers-btn-prev" disabled>Back</button><button id="next" class="btn btn-primary steppers-btn-next">Continue</button><button id="reset" class="btn btn-primary" hidden>Start again</button></nav></div><footer>Native Bootstrap Italia 2.18.3 CSS and Titillium Web. Original local planning flow; no municipal identity or booking service.</footer></main><script>let step=0;const labels=['Visit type','Access note','Review'];function render(){document.querySelectorAll('[data-step]').forEach(x=>x.hidden=Number(x.dataset.step)!==step);document.querySelectorAll('#steps li').forEach((li,i)=>{li.className=i===step?'active':i<step?'confirmed':'';li.removeAttribute('aria-current');li.textContent=labels[i];const state=document.createElement('span');state.className='visually-hidden';state.textContent=i===step?' Current step':i<step?' Completed':'';li.append(state);if(i===step)li.setAttribute('aria-current','step')});document.querySelector('#index').textContent=(step+1)+'/3';document.querySelector('#back').disabled=step===0;document.querySelector('#next').hidden=step===2;document.querySelector('#reset').hidden=step!==2;if(step===2){document.querySelector('#review-type').textContent=document.querySelector('[name=visit]:checked').value;document.querySelector('#review-note').textContent=document.querySelector('#note').value.trim()||'No note added'}document.querySelector('[data-step="'+step+'"] h2').focus()}document.querySelector('#next').onclick=()=>{if(step===0&&!document.querySelector('[name=visit]:checked')){document.querySelector('#error').hidden=false;document.querySelector('#guided').focus();return}document.querySelector('#error').hidden=true;step++;render()};document.querySelector('#back').onclick=()=>{step--;render()};document.querySelector('#reset').onclick=()=>{document.querySelectorAll('[name=visit]').forEach(x=>x.checked=false);document.querySelector('#note').value='';step=0;render()};</script></html>

Riferimento del codice

04

Configurazione dell’agente sistema di design .italia

Punto di partenza per l’implementazione

Configurazione nativa di CSS e dei font. La navigazione tra i passaggi è gestita dalla logica dell’applicazione; di seguito è disponibile un esempio completo funzionante. Lo ZIP dell’esempio completo funzionante, in Sources, include anche le dipendenze esatte per l’anteprima e il documento completo. Estrailo, esegui python3 -m http.server 8080 in quella directory, quindi apri http://localhost:8080/designers-italia.html. Non aprire gli esempi basati su moduli tramite file://.

bash
npm install [email protected]
# Copy dist/css/bootstrap-italia.min.css into public/vendor.
# Copy the needed src/fonts/Titillium_Web WOFF2 files and declare @font-face.
# CSS is sufficient for the Stepper presentation; application code owns navigation.
# For data-bs-toggle widgets, load dist/js/bootstrap-italia.bundle.min.js once.

Un prompt per il tuo progetto

Prompt per l’agente
Usa Bootstrap Italia 2.18.3 nativo CSS e Titillium Web. Crea la struttura documentata di stepper/header/content/nav, mantenendo sincronizzati gli stati attivo e confermato e l’indice per dispositivi mobili. Gestisci convalida e navigazione nel codice dell’applicazione, conserva i valori quando si torna indietro e assegna un’etichetta allo stato finale in base a una risposta reale del backend. Non combinare un secondo runtime Bootstrap né dichiarare che una revisione locale è stata inviata.
05

Fonti e ambito di sistema di design .italia

Esempio indipendente di OpenDesign, incentrato su Bootstrap Italia. Non rappresenta un’identità di un’autorità pubblica né un servizio di prenotazione reale.