Modo escuro com Tailwind CSS

Rafik Moreira -
29 de setembro de 2025

Darkmode

O modo escuro tem se tornado cada vez mais popular em aplicativos e websites. A popularidade se deve não apenas ao fato de ser mais agradável aos olhos, mas também porque pode auxiliar na economia de bateria em dispositivos móveis e na redução da fadiga visual.

Se o seu projeto utiliza o Tailwind CSS, adicionar o modo escuro é relativamente fácil. O Tailwind é um framework de CSS utilitário que permite criar estilos rapidamente, sem a necessidade de escrever CSS personalizado.

Caso você precise instalar e configurar o Tailwind, basta seguir o passo-a-passo disponibilizado na documentação oficial. — Tailwind CSS - Installation

Para o desenvolvimento deste tutorial, foi utilizado como referência um layout simples. Você pode conferir o exemplo em funcionamento no site: tailwind-dark-mode.rafikmoreira.dev.br. O código-fonte do projeto que implementa o modo escuro com Tailwind CSS está disponível no GitHub.

Vamos ver como implementar o modo escuro com Tailwind CSS em seu projeto.

Passo 1: Configurar as cores do modo escuro

O Tailwind CSS já possui uma série de cores pré-definidas que podem ser usadas nos seus estilos. Para criar um modo escuro funcional, é necessário definir as novas cores e configurar as variáveis correspondentes no seu arquivo de configuração do Tailwind.

Por exemplo, você pode definir as cores para o modo escuro da seguinte forma:

colors: {
  dark: {
    'primary': '#EAE9FF',
    'secondary': '#B19EF4',
    'background': '#413B5E',
  }
}

Em seguida, você deve ajustar as variáveis correspondentes no seu arquivo de configuração principal module.exports do Tailwind:

module.exports = {
  content: ['./app/**/*.{html,js,ts,jsx,tsx}'],
  darkMode: 'class',
  theme: {
    extend: {
      colors: {
        primary: {
          DEFAULT: '#FFB25A',
          dark: '#EAE9FF',
        },
        secondary: {
          DEFAULT: '#FFF0CE',
          dark: '#B19EF4',
        },
        background: {
          DEFAULT: '#FFFDEB',
          dark: '#413B5E',
        },
      },
    },
  },
  plugins: [],
};

É crucial notar que configuramos darkMode para 'class'. Isso significa que o modo escuro será ativado quando uma classe CSS específica (a classe dark) for adicionada ao elemento html.

Passo 2: Adicionar estilos para o modo escuro

Com as cores configuradas, podemos aplicar o modo escuro usando as classes CSS correspondentes diretamente no HTML.

Por exemplo, para alterar a cor de fundo do body quando o modo escuro estiver ativo, você pode adicionar a classe dark:bg-background-dark ao elemento body:

<body class="bg-background dark:bg-background-dark">
  <!-- meu conteúdo -->
</body>

Neste exemplo, a classe bg-background define a cor de fundo padrão para o modo claro.

Passo 3: Adicionar um botão de alternância para o modo escuro

Para que o usuário possa alternar manualmente entre o modo claro e o modo escuro, precisamos de um botão que alterne a classe dark no elemento html ao ser clicado.

Para isso, crie um novo arquivo TypeScript (por exemplo, dark-mode-manager.ts) e cole o seguinte código:

class DarkModeManager {
  constructor() {
    const toggleDarkModeButton = document.getElementById(
      'toggle-theme'
    ) as HTMLButtonElement | null;
    if (toggleDarkModeButton) {
      toggleDarkModeButton.addEventListener('click', this.handleToggleDarkMode);
    }
    if (this.getDarkModeState()) {
      this.setDarkMode(true);
    }
  }
  private getDarkModeState(): boolean {
    const darkMode = localStorage.getItem('darkMode');
    return darkMode === 'true';
  }
  private setDarkMode(darkMode: boolean): void {
    localStorage.setItem('darkMode', String(darkMode));
    const html = document.documentElement;
    if (darkMode) {
      html.classList.add('dark');
    } else {
      html.classList.remove('dark');
    }
  }
  private handleToggleDarkMode = (): void => {
    const isDarkMode = this.getDarkModeState();
    this.setDarkMode(!isDarkMode);
  };
}
const darkModeManager = new DarkModeManager();

Este código gerencia o estado do modo escuro, armazenando-o no localStorage e aplicando ou removendo a classe dark do elemento html.

Em seguida, abra o arquivo HTML onde deseja adicionar o botão:

<button id="toggle-theme">Alternar modo claro/escuro</button>

Por fim, adicione o link para o arquivo TypeScript no seu arquivo HTML:

<script src="dark-mode-manager.ts" type="module"></script>

Note que o atributo type deve ser definido como "module" para indicar que estamos importando um módulo TypeScript.

Salve e atualize o arquivo HTML no seu navegador para ver o botão alternando entre os modos escuro e claro em ação.

Lembre-se de que você pode ajustar o estilo do botão e da página conforme suas preferências. Boa sorte!

Fontes

Este artigo foi embasado nas seguintes fontes de informação: