Dark mode com uma linha de codigo
Boa noite galera.
Aqui vai uma tecnica que vai facilitar muito a implementacao do dark mode, e pelo que percebi nao eh muito conhecida.
A linha magica:
<meta name="color-scheme" content="light dark">
O que essa meta tag faz: ela diz pro seu navegador que seu site esta preparado para usar o dark mode. Assim ele utiliza o stylesheet interno dele com as cores apropriadas.
Alem disso, a ordem dos temas pode ser alterado, no exemplo acima a preferencia eh do tema light, se quisermos dar preferencia pelo tema escuro, basta escrever dark light
no conteudo.
Porem esse esquema eh bem limitado, se alguma cor do tema padrao for trocada o outro tema ira herda-la e provavelmente nao tera o efeito desejado, se voce gosta do tradicional preto no branco essa linha basta. Para ter as cores do seu jeito vamos indicar isso usando CSS.
Personalizando as cores
Para conseguirmos utilizar cores nao padroes usamos uma media query para indicarmos as cores desejadas para cada tema. No exemplo abaixo expecificamos uma cor de font para o elemento h1
no tema escuro, ao inves de branco foi escolhido cinza:
@media (prefers-color-scheme: dark) {
h1 {
color: gray;
}
}
Isso eh necessario se voce nao quer a cor padrao ou se voce personalizou ela para o outro tema.
Note que a meta tag so indica qual eh o tema padrao para o navegador, eh o jeito do desenvolvedor indicar para os usuarios o tema pretendido.
Notas
- A meta tag possui uma opcao CSS de mesmo nome mas que pode ser aplicado para cada elemento.
Espero que seja util pra voces tambem. Abracos e ate a proxima.
Referencias
- https://html.spec.whatwg.org/multipage/semantics.html#meta-color-scheme
- https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
NB
Perdao pela falta de acentos, eu troquei de laptop e ainda nao configurei.
Eu sou back-end entao o preto no branco padrao eh meu esquema preferido de cores.