La possibilità di cambiare tra un tema "light" e uno "dark", sembra ormai una prerogativa necessaria per ogni sito. Tanto che, se utilizziamo un tema scuro come default, sembrerà strano navigare all'interno di siti che hanno il bianco come colore di sfondo.
Attraverso i CSS e il controllo della media query prefers-color-scheme, possiamo facilmente identificare l'impostazione di default del dispositivo che sta mostrando la pagina web e adattare il tema di conseguenza. La logica che scriveremo si baserà sull'impostare dei valori all'interno di variabili CSS che verranno utilizzate all'interno del foglio di stile.
/* Light */
:root {
--body-bg: #FFFFFF;
--body-color: #000000;
}
/* Dark */
@media (prefers-color-scheme: dark) {
:root {
--body-bg: #000000;
--body-color: #FFFFFF;
}
}In questo modo il tema di default sarà quello light, a meno che lo user-agent non specifichi la richiesta di un tema dark. Avremmo potuto indicare una media query unicamente per il tema light, ma come la documentazione dice: in futuro potrebbero aggiungersi ulteriori colori, quindi per precauzione utilizziamo il light come default.
Ora non resta altro che utilizzare le variabili, come mostrato in questo esempio.
body {
background: var(--body-bg);
color: var(--body-color);
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Introduzione a GitHub Copilot CLI
Ricerca delle GitHub issue tramite operatori logici
Creare un file Zip partendo da uno stream sfruttando le classi del namespace System.IO.Compression
Eseguire i pre-commit hook di git con dependabot
Ottimizzare le API in ASP.NET con Feature Flags
Definire il colore di una scrollbar HTML tramite CSS
Response streaming con Blazor e .NET 10
Utilizzare le librerie native di .NET per decomprimere un file zip
Creare una file based app con C#
Evidenziare una porzione di testo in un pagina dopo una navigazione
Utilizzo del persistent state di Blazor nel prerendering


