Dark mode e preferenze utente

La possibilità di alternare tra modalità chiara e scura una interfaccia web è ormai una funzionalità ricercata, in risposta alle preferenze degli utenti e alle preoccupazioni per la salute degli occhi.

Negli ultimi anni, la possibilità di avere una modalità scura (Dark Mode) di una stessa interfaccia web di altro colore, solitamente chiara, ha guadagnato popolarità tra gli utenti di applicazioni e siti web. Questo trend non è solo una questione estetica, ma risponde a esigenze concrete di usabilità e benessere visivo. Scopriamone le ragioni e come questa funzionalità viene implementata dai frontend developer per migliorare l'esperienza utente.

Vantaggi per la salute degli occhi

L'introduzione di questa modalità risponde a una serie di esigenze: da una migliore leggibilità in ambienti scarsamente illuminati a una riduzione della fatica oculare durante l'uso prolungato di dispositivi digitali. Ma da dove nasce questa esigenza e come si è evoluta nel tempo? Uno dei principali motivi per cui gli utenti preferiscono la Dark Mode è il minor affaticamento visivo. L'uso di sfondi scuri con testo chiaro può ridurre il bagliore dello schermo, soprattutto in ambienti poco illuminati. Questo comporta una minore tensione per gli occhi, contribuendo a prevenire problemi come la secchezza oculare e la cefalea digitale. 

Ecco alcune considerazioni scientifiche:

  1. Riduzione dell'abbagliamento e dell'esposizione alla luce blu: La modalità scura può ridurre l'abbagliamento dello schermo e diminuire l'esposizione alla luce blu, che è nota per causare affaticamento degli occhi e disturbi del sonno. Questo effetto è particolarmente utile in ambienti a bassa luminosità, dove uno schermo chiaro può risultare irritante​ (fonti: Vision Center  - Microbiologia Italia)​.

  2. Sintomi della sindrome da visione al computer: La modalità scura è stata associata a una riduzione della fatica visiva e di altri sintomi della sindrome da visione al computer (CVS), come secchezza oculare e visione offuscata. Tuttavia, gli studi sono ancora inconcludenti e suggeriscono che la preferenza personale e le condizioni ambientali giocano un ruolo significativo nell'efficacia della modalità scura​ (fonti:  All About Vision -Oculista Italiano)​.

  3. Effetti sul ritmo circadiano e sulla qualità del sonno: Anche se è stato suggerito che la modalità scura possa aiutare a migliorare la qualità del sonno riducendo l'interferenza della luce blu con la produzione di melatonina, gli studi non hanno trovato differenze significative in questo aspetto. La regolazione della luminosità dello schermo sembra essere altrettanto, se non più, importante​ (fonti: Livestrong.com EYE DOCTOR)​​

In sintesi, mentre alcuni utenti riferiscono benefici nell'uso della modalità scura, come una maggiore comodità visiva e una riduzione dell'affaticamento oculare, la ricerca scientifica non ha ancora fornito prove definitive su questi effetti. Pertanto, la scelta tra modalità scura e chiara dovrebbe basarsi sulle preferenze personali e sull'ambiente di utilizzo.

Accessibilità e feedback

La possibilità di alternare tra modalità chiara e scura non è solo una questione di preferenze estetiche, ma anche di accessibilità. Alcuni utenti con disabilità visive trovano la Dark Mode più facile da usare. Offrire questa opzione migliora l'inclusività delle applicazioni e dei siti web. Se vi interessa approfondire il tema dell'accessibilità ne abbiamo parlato parlato qui.

Un altro aspetto cruciale è il feedback degli utenti. La Dark Mode non è una soluzione unica per tutti e richiede aggiustamenti continui basati sulle esigenze e le preferenze degli utenti. Alcuni siti web, quindi, consentono non sono di poter passare dall'interfaccia a sfondo chiaro a quella a sfondo scuro, ma hanno un sistema di settaggi che consente all'utente di cambiare lo sfondo, il testo e a volte anche le dimensioni dei caratteri. 


github-dark-mode.png

Implementazione: sfide e soluzioni

Dal punto di vista di uno sviluppatore frontend, l'implementazione della Dark Mode non è priva di sfide. La gestione dei temi, la coerenza del design e la compatibilità con diverse tecnologie sono solo alcuni degli ostacoli da superare. In questa sezione, discuteremo le migliori pratiche per l'implementazione della Dark Mode, compresi gli strumenti e i framework più efficaci.

1. Utilizzare le CSS custom properties

Le CSS custom properties (variabili CSS) permettono di definire colori e altre proprietà di stile che possono essere facilmente aggiornate per supportare sia la modalità chiara che quella scura. Questo approccio rende il codice più pulito e facile da mantenere.

Esempio:

    :root {
        --background-color: #ffffff;
        --text-color: #000000;
    }
    
    body {
        background-color: var(--background-color);
        color: var(--text-color);
    }
    
    @media (prefers-color-scheme: dark) {
        :root {
            --background-color: #000000;
            --text-color: #ffffff;
        }
    }
    
Vantaggi:
  • Facilità di gestione delle proprietà CSS.
  • Supporto nativo per il rilevamento del tema preferito dall'utente (media query prefers-color-scheme).

2. Implementare il supporto per il tema preferito dall'utente

Supportare le preferenze di tema dell'utente attraverso il media query prefers-color-scheme. Questo consente di adattare automaticamente l'interfaccia utente in base alle impostazioni di sistema dell'utente.

    body {
        background-color: white;
        color: black;
    }
    
    @media (prefers-color-scheme: dark) {
        body {
            background-color: black;
            color: white;
        }
    }
Vantaggi:
  • Esperienza utente migliorata, poiché il sito web rispetta le preferenze di sistema.
  • Nessuna necessità di aggiungere opzioni di tema manuali, semplificando l'implementazione.

3. Memorizzare le preferenze del tema dell'utente

Permettere all'utente di scegliere manualmente il tema e salvare questa preferenza utilizzando Local Storage. Questo approccio garantisce che le preferenze dell'utente siano mantenute anche dopo il riavvio del browser.

    <button id="toggle-theme">Toggle Theme</button>
body.light-mode {
    background-color: white;
    color: black;
}

body.dark-mode {
    background-color: black;
    color: white;
}
    const toggleButton = document.getElementById('toggle-theme');
    const currentTheme = localStorage.getItem('theme') || 'light-mode';
    
    document.body.classList.add(currentTheme);
    
    toggleButton.addEventListener('click', () => {
        const newTheme = document.body.classList.contains('light-mode') ? 'dark-mode' : 'light-mode';
        document.body.classList.remove('light-mode', 'dark-mode');
        document.body.classList.add(newTheme);
        localStorage.setItem('theme', newTheme);
    });


Uno snippet pratico: guarda subito come funziona!


Conclusioni

La Dark Mode rappresenta una risposta significativa alle esigenze moderne di usabilità e salute degli occhi. Per i frontend developer, implementare questa funzionalità significa non solo seguire un trend, ma anche migliorare l'esperienza utente complessiva. Guardando al futuro, la personalizzazione e l'adattabilità continueranno a essere al centro dello sviluppo web e delle applicazioni.

Autoreadmin
Potrebbero interessarti...