GH GambleHub

Dark Mode e comfort visivo

1) Perché un argomento oscuro

Comfort degli occhi in bassa illuminazione, meno riflessi e «flash luminosi».
Energia: gli schermi scuri OLED/AMOLED spendono meno della batteria.
Il focus sui dati è sul contenuto, non sullo sfondo.
Attesa utente: flag di sistema «prefers-color-scheme» - standard di fatto.

2) Principi

1. Sfondo grigio scuro> nero puro per le superfici UI (migliore leggibilità e gradazione).
2. Il contrasto sui contenuti non è «bianco su nero», ma le tonalità morbide per i testi lunghi.
3. Luminosità attenta: evidenziazione/accento attenuato, ma differente.
4. La profondità dell'ombra è che lavoriamo con un'ombra chiara e sfumata, non con un contrasto forte.
5. Disponibilità: WCAG AA (minimo), attivo visibile e stato comprensibile.
6. Le impostazioni di sistema sono principali: failover automatico e movimento ridotto.

3) Tavolozza e token (esempio)

token JSON:
json
{
"mode": "dark",
"color": {
"bg": { "base": "#0E1116", "elev1": "#141821", "elev2": "#1A1F2B", "subtle": "#0B0E13" },
"fg": { "primary": "#E6E8EB", "muted": "#A6AEB8", "inverse": "#11131A" },
"accent": { "primary": "#6EA0FF", "warning": "#FFB547", "critical": "#FF6A6A", "success": "#66D19E" },
"border": { "soft": "#2A2F37", "strong": "#3A4150" },
"chart": { "a": "#6EA0FF", "b": "#66D19E", "c": "#FFB547", "d": "#C58CFF", "e": "#7DD3FC" }
},
"radius": { "sm": 8, "md": 12, "lg": 16 },
"shadow": { "sm": "0 1px 2px rgba(0,0,0,.35)", "md": "0 6px 18px rgba(0,0,0,.45)" }
}
Variabili CSS (semplificate):
css
@media (prefers-color-scheme: dark) {
:root {
--bg-base:#0E1116; --bg-elev1:#141821; --bg-elev2:#1A1F2B;
--fg-primary:#E6E8EB; --fg-muted:#A6AEB8;
--accent:#6EA0FF; --warning:#FFB547; --critical:#FF6A6A; --success:#66D19E;
--bd-soft:#2A2F37; --bd-strong:#3A4150;
}
}
Raccomandazioni:
  • L'accento in modalità scura è + 8-12% più chiaro di quello in modalità luce.
  • Utilizzate le scala di grigio (4-5 passi) per evitare l'assoluto # 000 per gli spazi più grandi (l'eccezione è AMOLED).

4) Testo e leggibilità

Il testo principale è «# E6E8EB» in grigio chiaro su «# 0E1116».
Testo secondario: '# A6AEB8'; i suggerimenti sono un altro passo più scuro/trasparente.
Lettura lunga: tonalità leggermente calde (riducono il galo).
Collegamenti - Accento + sottolineatura predefinita il colore è l'unico portatore di significato.

5) Superfici, profondità e vetro

Elevations: `base` → `elev1` → `elev2`; ogni strato è più chiaro/caldo del 2-4%.
Ombre - morbide, ampie, a bassa opacità; evitare i tratti «luminosi».
I pannelli di traslazione (blur) sono moderati; assicurate il contrasto del testo con il sottovuoto.
I separatori sono bordi semidiretti' --bd-soft'o «hare» appena visibili.

6) Stati e attivo

Hover: + 2-3% più chiaro di sfondo; Active: - 2-3% (più scuro).
Focus: anello chiaro (ad esempio, 'outline: 2px solid # 6EA0FF; outline-offset: 2px; '), visibile anche nei pulsanti.
Disabled: ridurre il contrasto con attenzione; non scendere al di sotto del livello di lettura del testo.

7) Pulsanti, moduli e tabelle

Primary: sfondo --accent, testo # 0E1116.
Secondary: sfondo --bg-elev1, border --bd-strong, testo --fg-primary.
I campi di input sono lo sfondo --bg-elev1, il borgo è accentrato. Il placeholder è più tondo, ma lo leggiamo.
Tabelle: sfondo zebra a malapena visibile, la selezione della riga hover è + 2-3% più chiara.

8) Illustrazioni, loghi e foto

Logo e icone - versioni invertite su scuro; evitare linee di luce sottili su fondi saturi.
Foto: aggiungi una maschera scura (40-60%) per i titoli di contrasto sopra.
Icone - Spessore unico, tracciato + riempimento - Non velenoso.

9) Data-visualizzazione in un argomento oscuro

Colori delle righe - saturazione moderata; Almeno un 5 di toni diversi.
Le griglie e gli assi sono abbassati (alfa 20-30%), le firme sono --fg-muted.
Annotazioni/incidenti - brillanti ma leggibili; sottolineare con un modulo o un indicatore, non solo con un colore.
I dati vuoti/lega sono nebbie morbide, non campi bianchi.

10) Prestazioni e batteria

OLED effettivamente risparmia nero puro (# 000) - Utilizzare la modalità AMOLED in base all'opzione utente.
Evitare una candela/blur totale su GPU deboli.
Rispetta «preferers-reduced-motion»: semplifica le animazioni/transizioni.

11) Comportamento e commutazione

L'impostazione predefinita è «preferers-color-scheme».
Date all'utente un pulsante esplicito (Light/Dark/System) e salvate la selezione (cookie/localStorage).
Quando si cambia argomento - senza flash - Aggiunge una classe di argomento al render.

Snippet:
html
<script>
const saved = localStorage. getItem('theme');
const sysDark = window. matchMedia?.('(prefers-color-scheme: dark)'). matches;
document. documentElement. dataset. theme = saved?? (sysDark? 'dark': 'light');
</script>

12) Disponibilità (A11y)

Contrasto del testo 4. 5:1 (normale), 3:1 (grande).
Non codificare lo stato solo con il colore: usa l'icona/pattern/firma.
Gli stili di attivazione e la navigazione da tastiera sono obbligatori.
Ruoli, etichette, fila di tabù.

13) Anti-pattern

Un testo completamente bianco in fondo nero su grandi piazze - «stanchezza» e stanchezza.
L'accento al neon sul buio è il rumore della luce.
Ombre ad alto contrasto (grigio su nero).
Testo trasparente nella foto senza maschera.
Placeholder in estinzione (alfa troppo basso).

14) Esempi di componenti

Pulsante

css
.button {
background: var(--accent); color: var(--bg-base);
border-radius: 12px; padding: 10px 16px;
box-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.button:hover { filter: brightness(1. 06); }
.button:active { filter: brightness(.94); }
.button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

Scheda

css
.card {
background: var(--bg-elev1); border: 1px solid var(--bd-soft); border-radius: 12px;
box-shadow: 0 6px 18px rgba(0,0,0,.45);
}

15) Test-piano

Illuminazione camera oscura/luce del giorno/notte di strada.
I device sono OLED e IPS, mobile/disctop, densità diverse.
A11y - Contrassegno, tastiera, lettura placeholder'ov.
Percezione: ab-test stanchezza oculare e errori di notte.
Perfomance: metriche RUM (INP/CLS) dopo l'attivazione del tema oscuro; carica GPU (effetti blur/ombra).

16) Metriche di qualità

Contrast Violations/1k elementi (obiettivo: → 0).
Complaint Rate su «troppo scuro/luminoso».
Night Sessions Complition (metriche comportamentali per sessioni 22: 00-06: 00).
INP/CLS p75 in Dark Mode vs Light (non peggio di base).
Opt-in Dark Mode e trattenere gli utenti che hanno scelto un argomento.

17) Assegno foglio di avvio

  • Tavolozza di tema oscuro con 4-5 livelli di superficie
  • Il contrasto testo/icona/limite corrisponde a WCAG AA
  • Stili e stati visibili (hover/active/disabled)
  • Loghi/icone/foto adattati, maschere aggiunte alla foto
  • Grafici - griglie abbassate, etichette a lettura, righe non velenose
  • Interruttore Light/Dark/System, salvare la selezione senza «flash»
  • Rispettare «preferers-color-scheme» e «preferers-reduced-motion»
  • RUM/perf-dashboard, alert di regressione

18) Piano di implementazione (3 iterazioni)

Iterazione 1 - Fondamenta (1-2 settimane)

Tavolozza/token, superfici di base (base/elev1/elev2), testo/limite, pulsanti/campi/tabelle, pulsante di scelta.

Iterazione 2 - Dettagli (3-4 settimane)

Grafici e immagini in scuro, maschere in foto, focus/stato, animazioni in base a reduced-motion, perf-verifiche.

Iterazione 3 - Ottimizzazione (continua)

Modalità AMOLED come opzione, regolazione sottile dei contrasti, test usability di notte, confronto RUM Light vs Dark, regolari marchi/verifiche UX.

19) Mini FAQ

Fare uno sfondo nero?
Per l'UI è meglio il grigio scuro profondo; «Modalità AMOLED» netta # 000.

Dobbiamo aumentare la saturazione degli accenti?
Nel buio, di solito, al contrario, si illumina leggermente e si riduce la saturazione in modo da non «brillare».

E le immagini dei banner?
Aggiungi un sottolivello scuro/maschera, controlla il contrasto tra testo e logo.

Totale

Il tema scuro non è l'inversione dei colori, ma una modalità di progettazione separata: tavolozza elaborata, livelli di superficie, leggibilità, stati corretti, grafica e media adattati e rispetto delle impostazioni di sistema. Affidarsi ai token, controllare il contrasto e la perfomance - e Dark Mode sarà uno strumento comodo, stabile e bello per gli utenti notturni e diurni.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Telegram
@Gamble_GC
Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.