Personalizzare il tema¶
Questa guida accompagna nella personalizzazione dell'aspetto visivo del Navigator. Per i dettagli sull'interfaccia dell'editor, vedi Interfaccia del Theme Editor.
Workflow consigliato¶
- Aprire il Theme Editor (
http://localhost:8000/theme-editor.html) - Partire dal tema predefinito o caricarne uno esistente con Open
- Modificare le impostazioni verificando l'effetto nell'anteprima
- Salvare con Save e copiare il file nella cartella del progetto
- Aggiornare
config.jsonper puntare al nuovo tema - Verificare nel Navigator reale con uno scenario completo
L'anteprima del Theme Editor usa uno scenario semplificato. Per vedere il risultato finale con contenuti reali, è necessario testare nel Navigator.
Consigli per il branding¶
Logo¶
| Formato | Uso consigliato |
|---|---|
| SVG | Scalabilità ottimale, file leggero |
| PNG trasparente | Buona qualità, compatibilità universale |
| JPG | Solo se necessario, evitare per loghi |
Evitare immagini troppo grandi: il logo viene ridimensionato automaticamente ma file pesanti rallentano il caricamento. Dimensione consigliata: massimo 200x60 pixel o equivalente.
Il campo accetta sia URL esterni (https://azienda.com/logo.png) sia percorsi relativi (images/logo.png). Per progetti distribuibili, preferire percorsi relativi.
Consigli per la tipografia¶
| Contesto | Font consigliati |
|---|---|
| Aziendale/professionale | Inter, Roboto, Source Sans 3 |
| Creativo/informale | Poppins, Nunito, Montserrat |
| Massima compatibilità | System Default |
"System Default" non carica font esterni: usa quello del dispositivo dell'utente. È la scelta più leggera e garantisce leggibilità su qualsiasi sistema.
Consigli per i colori¶
Contrasto¶
Il testo deve essere leggibile sullo sfondo. Combinazioni sicure:
| Sfondo | Testo principale | Testo secondario |
|---|---|---|
| Bianco (#ffffff) | Grigio scuro (#1f2937) | Grigio medio (#4b5563) |
| Grigio scuro (#1f2937) | Bianco (#ffffff) | Grigio chiaro (#9ca3af) |
Colore accent¶
Il colore accent definisce la personalità dell'interfaccia. Usare il colore principale del brand aziendale per coerenza visiva. Verificare che sia sufficientemente saturo da risaltare come elemento interattivo.
Stati dei pulsanti¶
La distinzione cromatica tra pulsanti aiuta l'utente a orientarsi:
- Scelte disponibili: colore accent, invita all'azione
- Scelte già fatte: colore diverso (verde predefinito), conferma visiva
- Scelte esplorate: grigio neutro, indica "già visto in un altro percorso"
Mantenere coerenza tra i colori dei pulsanti e quelli della mappa per un linguaggio visivo uniforme.
Salvare e applicare¶
Il pulsante Save genera un file JSON. Rinominarlo con un nome descrittivo:
theme-azienda-2024.json
theme-corso-sicurezza.json
theme-dark.json
Per applicare il tema, aggiornare config.json:
{
"scenario": "scenario-corso.json",
"theme": "theme-azienda-2024.json",
"showCredits": false
}
Ricaricare il Navigator (Ctrl+Shift+R) per vedere il tema applicato.
Gestire temi multipli¶
È possibile creare più temi per contesti diversi:
- Varianti di luminosità: tema chiaro e tema scuro
- Clienti diversi: un tema per ogni cliente con il suo branding
- Contesti diversi: tema formale per compliance, tema vivace per onboarding
Cambiando il valore theme in config.json si passa da un tema all'altro senza modificare lo scenario. Lo stesso contenuto può avere aspetti completamente diversi.
Modificare il tema via JSON¶
Per chi preferisce lavorare direttamente sul file, la struttura è:
{
"brand": {
"name": "Nome Azienda",
"logo": "images/logo.png",
"website": "https://esempio.com"
},
"typography": {
"fontFamily": "inter"
},
"colors": {
"background": "#ffffff",
"text": "#1f2937",
"textSecondary": "#4b5563",
"accent": "#6366f1"
},
"buttons": {
"choiceBackground": "#6366f1",
"choiceText": "#ffffff",
"visitedBackground": "#10b981",
"visitedText": "#ffffff",
"exploredBackground": "#e5e7eb",
"exploredText": "#374151",
"restartBackground": "#f59e0b",
"restartText": "#ffffff"
},
"map": {
"nodeCurrent": "#6366f1",
"nodeCurrentText": "#ffffff",
"nodeVisited": "#3730a3",
"nodeVisitedText": "#ffffff",
"nodeUnvisited": "#f3f4f6",
"nodeUnvisitedText": "#6b7280",
"nodeUnvisitedBorder": "#d1d5db",
"lineVisited": "#6366f1",
"lineUnvisited": "#d1d5db"
}
}
Tutti i campi sono opzionali. I valori mancanti vengono presi da defaults.json. Questo permette di creare temi minimali che specificano solo ciò che cambia:
{
"brand": {
"name": "Azienda XYZ",
"logo": "images/logo-xyz.png"
},
"colors": {
"accent": "#dc2626"
}
}
Valori disponibili per fontFamily: system, inter, roboto, open-sans, lato, montserrat, poppins, source-sans-3, nunito.