Como fazer darkmode em página com Javascript

O modo escuro tem se tornado cada vez mais popular no design de interfaces, trazendo conforto visual e permitindo que os usuários escolham o tema que preferem.

Neste artigo, você aprenderá como criar o modo escuro em uma página utilizando JavaScript, HTML, CSS e técnicas web modernas.

tutorial completo

Introdução ao Dark Mode

O modo escuro vem ganhando importância no design digital, refletindo uma mudança nas preferências dos usuários. Ele ajuda a reduzir o esforço ocular em ambientes com pouca iluminação, tornando a leitura mais confortável.

Introdução ao Dark Mode

Além disso, dispositivos móveis consomem menos bateria ao usar o modo escuro, especialmente em telas OLED. Isso beneficia quem usa o aparelho por longos períodos.

Com tantos benefícios, muitas aplicações e sites já oferecem essa opção, permitindo que os usuários personalizem suas experiências. O modo escuro não é apenas visualmente atraente, mas também facilita a navegação, tornando-a mais agradável.

Por que Adotar o Modo Escuro?

O uso do modo escuro oferece uma experiência visualmente mais confortável, especialmente em ambientes com pouca luz. Ele também permite que os usuários escolham o tema que mais lhes agrada, tornando a navegação mais personalizada.

Vantagens do Modo Escuro

Implementar o modo escuro traz várias vantagens. A principal é melhorar a experiência do usuário, tornando a leitura mais fácil, principalmente em ambientes escuros.

O texto em fundo escuro reduz o esforço visual, além de aumentar o engajamento dos usuários.

vantagens do dark mode

Pesquisas mostram que as pessoas passam mais tempo em sites que oferecem essa funcionalidade, indicando que as marcas que adotam o modo escuro estão mais alinhadas com as necessidades dos seus clientes.

Outro benefício significativo é a economia de bateria em dispositivos móveis com telas OLED, já que elas consomem menos energia no modo escuro.

Essa economia faz do dark mode uma escolha inteligente para usuários e desenvolvedores.

Vantagens do Modo Escuro:

  • Conforto Visual: Reduz o cansaço ocular em ambientes com pouca luz.
  • Aumento do Engajamento: Usuários permanecem mais tempo em páginas com dark mode.
  • Economia de Bateria: Reduz o consumo em dispositivos com telas OLED.
  • Personalização: Oferece aos usuários uma escolha que se adapta às suas preferências.

Utilizando Variáveis CSS e LocalStorage

As variáveis CSS são uma maneira prática de armazenar valores e facilitar a adaptação do design. Por exemplo, você pode usar --bg-grey-light para definir a cor de fundo clara e --text-dark para o texto escuro. Essas variáveis tornam a troca entre temas claro e escuro mais simples e eficiente.

O localStorage é uma ferramenta poderosa para guardar dados no navegador. Ele permite que as preferências dos usuários, como a escolha do tema, sejam salvas e aplicadas automaticamente em futuras visitas ao site.

Estrutura Básica do HTML

Uma estrutura HTML bem organizada é essencial para implementar o modo escuro. Elementos como botões de troca de tema e textos claros ajudam na navegação e na usabilidade do site.

Elementos Essenciais:

  • <button>: Botão para alternar entre os modos claro e escuro.
  • <h1>: Título principal da página.
  • <p>: Parágrafos de texto que facilitam a leitura.
  • <div>: Divisões para agrupar e estilizar conteúdo.

Estilizando com CSS

Escolher as cores certas é fundamental para tornar o modo escuro agradável. Utilizar classes como .light e .dark facilita a troca entre temas.

Exemplo de Cores:

  • Texto Principal: #000000 no tema claro, #FFFFFF no tema escuro.
  • Fundo: #FFFFFF no tema claro, #121212 no tema escuro.
  • Links: #007BFF no tema claro, #82B1FF no tema escuro.

Implementando o Modo Escuro com JavaScript

Para criar o modo escuro com JavaScript, é necessário manipular o DOM, adicionando classes ao elemento body da página. O primeiro passo é verificar o estado do tema no localStorage, garantindo que o tema escolhido pelo usuário seja mantido após o recarregamento da página.

Um código básico para implementar o modo escuro seria:

if (localStorage.getItem('darkMode') === 'enabled') {
    document.body.classList.add('dark-mode');
} else {
    document.body.classList.remove('dark-mode');
}

Manipulação de Eventos e Classes CSS

A funcionalidade do modo escuro é ativada com JavaScript usando event listeners, que detectam ações do usuário, como cliques em botões para trocar o tema.

Passos Básicos:

  1. Escolher o botão de troca de tema.
  2. Adicionar um event listener para detectar cliques.
  3. Alterar a classe do tema na página.

Manipular classes em JavaScript é fundamental para a implementação do dark mode. Usando classList, você pode alternar entre temas com facilidade.

document.body.classList.toggle('dark');

Testando e Melhorando a Implementação

É essencial testar a implementação do modo escuro para garantir que tudo funcione corretamente. Verifique se o tema selecionado pelo usuário é aplicado corretamente ao carregar a página e se a troca de temas ocorre sem problemas.

Melhorias Possíveis:

  • Implementar transições suaves entre temas para uma experiência visual mais agradável.
  • Oferecer opções de personalização de cores, permitindo que os usuários escolham entre diversas paletas.
  • Incluir funcionalidades de acessibilidade, como ajustes para daltônicos ou pessoas com dificuldades visuais.

Benefícios das Melhorias:

  • Transições Suaves: Melhoram a usabilidade e reduzem o desgaste visual.
  • Paletas Personalizáveis: Aumentam a satisfação do usuário e a personalização da interface.
  • Acessibilidade: Torna a experiência mais inclusiva, atendendo a diversas necessidades visuais.

Conclusão

Adotar o modo escuro vai além do aspecto visual; ele melhora a legibilidade, reduz a fadiga ocular e permite uma personalização que atende melhor às necessidades dos usuários.

Utilizando HTML, CSS e JavaScript, você pode transformar a experiência de navegação, oferecendo um design mais flexível e adaptado ao futuro digital.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *