Inicio > Desarrollo Web > Tutoriales de CSS > Guía para implementar Dark Mode (modo oscuro) en tu sitio web con CSS y JS

Guía para implementar Dark Mode (modo oscuro) en tu sitio web con CSS y JS

Diego Cortés
Diego Cortés
September 19, 2024
Guía para implementar Dark Mode (modo oscuro) en tu sitio web con CSS y JS

El modo oscuro se ha convertido en una tendencia popular en el diseño web y de aplicaciones. No solo ofrece una apariencia moderna, sino que también puede ayudar a reducir la fatiga visual y ahorrar energía en dispositivos OLED. En esta guía, exploraremos diferentes métodos para implementar el modo oscuro en tu sitio web, así como las mejores prácticas para garantizar una experiencia de usuario óptima.

¿Qué es el Modo Oscuro?

El modo oscuro es una opción de diseño que utiliza un esquema de colores oscuros, donde el fondo es generalmente negro o gris oscuro y el texto es de colores claros. Este modo es beneficioso en diversas situaciones:

  • Reducción de la fatiga ocular: Reduce el contraste entre el fondo y el texto, lo que puede ser menos perjudicial para los ojos.
  • Ahorro de energía: En pantallas OLED, los píxeles oscuros consumen menos energía que los píxeles claros.
  • Estética moderna: El diseño oscuro normalmente se considera más elegante y contemporáneo.

Cómo Implementar el Modo Oscuro

1. Detectar la Preferencia del Usuario

Una buena manera de comenzar es detectar si el usuario prefiere un tema oscuro. Puedes hacer esto utilizando la consulta de medios CSS prefers-color-scheme y JavaScript. 

CSS

/* Estilos por defecto */
body {
    background-color: white;
    color: black;
}

/* Estilos para el modo oscuro */
@media (prefers-color-scheme: dark) {
    body {
        background-color: black;
        color: white;
    }
}

JavaScript

Para usuarios que no tienen esta preferencia configurada, podrías permitirles alternar entre el modo claro y oscuro manualmente. 

const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');

toggleSwitch.addEventListener('change', switchTheme, false);

function switchTheme(event) {
    if (event.target.checked) {
        document.documentElement.setAttribute('data-theme', 'dark');
    } else {
        document.documentElement.setAttribute('data-theme', 'light');
    }    
}

2. Utilizar Variables CSS

Las variables CSS permiten un manejo más sencillo y eficaz de colores en tu sitio web. Puedes definir colores para el modo claro y oscuro de forma más organizada.

:root {
    --background-color: white;
    --text-color: black;
}

[data-theme='dark'] {
    --background-color: black;
    --text-color: white;
}

body {
    background-color: var(--background-color);
    color: var(--text-color);
}

3. Actualizar Elementos Interactivos

No te olvides de los elementos interactivos de tu sitio web. Asegúrate de que todos los botones, enlaces y estados de hover también sean visibles en ambos modos. Por ejemplo, puedes hacer que los botones cambien de color cuando se esté en modo oscuro.

button {
    background-color: var(--button-background-color);
    color: var(--button-text-color);
}

[data-theme='dark'] button {
    --button-background-color: gray;
    --button-text-color: white;
}

Mejores Prácticas

1. Accesibilidad

Asegúrate de que tu diseño en modo oscuro sea accesible para todos los usuarios. Un buen contraste entre el texto y el fondo es crucial para garantizar que la información sea legible. Utiliza herramientas de contraste de colores para verificar la legibilidad.

2. Pruebas Extensas

No te limites a probar solo en pantallas de escritorio. Asegúrate de que el modo oscuro funcione en dispositivos móviles y en diferentes navegadores. Prueba también con diferentes configuraciones de pantallas para asegurar que los colores se vean como esperas.

3. Permitir a los Usuarios Elegir

Aunque puedes detectar la preferencia del sistema de un usuario, también es importante permitirles cambiar entre modos a voluntad. Esto se puede lograr mediante un simple botón de alternancia.

Conclusión

Implementar un modo oscuro en tu sitio web no solo mejora la estética, sino que también puede resultar en una experiencia más cómoda para tus usuarios. Siguiendo los pasos y buenas prácticas mencionados en esta guía, puedes asegurarte de que tu sitio esté a la vanguardia en diseño y accesibilidad.

Recuerda siempre estar atento a las tendencias de diseño y las preferencias de los usuarios, ya que el mundo del diseño web está siempre en evolucíón. Añadir modo oscuro es un pequeño paso hacia una mejor experiencia de usuario en tu sitio web. ¡Empieza hoy mismo y mejora tu plataforma con esta funcionalidad!

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Categorías

Page loaded in 27.69 ms