Shopware Diseño & Temas

DataFirefly Dark Mode — Modo oscuro con detección de navegador y preferencia de cliente para Shopware 6.7

Modo oscuro para el storefront de Shopware 6.7 con detección de navegador, preferencia de cliente persistida y anti-FOUC garantizado.

Shopware 6.7 no ofrece modo oscuro nativo en el storefront. Sin embargo, desde 2023, el modo oscuro del sistema operativo está masivamente adoptado: iOS cambia automáticamente por la noche, macOS y Windows tienen ajustes de brillo automático, los usuarios avanzados mantienen su pantalla en oscuro entre el 60 y el 80% del tiempo. Una tienda sin modo oscuro envía a estos visitantes un destello blanco agresivo en cada carga de página, especialmente molesto por la noche y en móvil. DfDarkMode añade un modo oscuro completo a tu storefront de Shopware 6.7: detección automática del prefers-color-scheme del navegador, toggle de 3 estados en el encabezado (Auto / Claro / Oscuro), tarjeta de preferencia en el perfil de cliente, persistencia mediante cookie para visitantes y campo personalizado de cliente para los conectados. Anti-FOUC garantizado gracias a un script en línea cargado en la etiqueta head que aplica el tema ANTES del renderizado. Sincronización automática de la preferencia del cliente en el inicio de sesión. Snippets multilingües FR / EN / DE incluidos. Compatible con la convención Bootstrap data-bs-theme="dark".

Shopware 6.7 Anti-FOUC Auto / Claro / Oscuro Preferencia de cliente Snippets FR / EN / DE Bootstrap data-bs-theme Licencia MIT
  • Reembolso de 30 días
  • 12 meses de actualizaciones
  • Soporte 24h
www.datafirefly.com/es/
Datafirefly dark mode Shopware module
v1.0.0 · actualizado 2026-05-08
Qué hace

La versión corta.

01

Anti-FOUC: cero destello blanco, incluso en la primera carga

Un script en línea mínimo cargado en la etiqueta head lee la cookie de preferencia y establece el atributo data-bs-theme en el elemento raíz ANTES del primer pintado del navegador. Resultado: un visitante en modo oscuro ve la página directamente en modo oscuro, sin el destello blanco que delata la ausencia de modo oscuro en la mayoría de los temas Shopware actuales.

02

3 estados: Auto (sigue el navegador), Claro, Oscuro

El toggle en el encabezado alterna entre 3 estados: Auto (sigue el prefers-color-scheme del navegador en tiempo real), Claro (fuerza el modo claro), Oscuro (fuerza el modo oscuro). El usuario mantiene el control sin verse forzado a un modo concreto. Las etiquetas están traducidas al FR / EN / DE.

03

Preferencia persistida, sincronizada entre dispositivos en el inicio de sesión

Visitantes anónimos: cookie df-dark-mode válida 1 año, SameSite=Lax. Clientes conectados: campo personalizado df_dark_mode_preference (tipo Select), recuperado automáticamente en todos sus dispositivos, sincronizado en el inicio de sesión. Se añade una tarjeta de selección en la página de perfil de cliente.

04

Compatible con tu tema oscuro existente, sin modificar el CSS

El plugin establece data-bs-theme="dark" en el elemento raíz de la página, la convención estándar Bootstrap 5.3+. Si tu tema ya usa reglas CSS para [data-bs-theme="dark"], se aplican automáticamente, sin necesidad de cambios en el CSS.

La versión larga

Todo lo que querrías saber antes de instalar.

Una mirada detallada a cómo funciona DataFirefly Dark Mode — Modo oscuro con detección de navegador y preferencia de cliente para Shopware 6.7, por qué lo construimos así y la lógica detrás de las características anteriores.

§ 01

¿Por qué un modo oscuro en Shopware 6.7?

Shopware 6.7 no ofrece modo oscuro nativo en el storefront. Sin embargo, desde 2023, el modo oscuro del sistema operativo está masivamente adoptado: iOS cambia automáticamente por la noche con True Tone, macOS y Windows tienen ajustes de brillo automático, los usuarios avanzados mantienen su pantalla en oscuro entre el 60 y el 80 % del tiempo. Una tienda sin modo oscuro envía a estos visitantes un destello blanco agresivo en cada carga de página, especialmente molesto por la noche y en móvil. Es una señal de calidad al revés: tu sitio no está al día con los usos de 2026. DfDarkMode cubre esta carencia con una implementación limpia, anti-FOUC, que respeta la preferencia del cliente.

§ 02

Anti-FOUC: el detalle que separa un modo oscuro profesional de uno improvisado

FOUC significa «Flash of Unstyled Content»: esa fracción de segundo en la que la página aparece en blanco antes de que JavaScript aplique el tema oscuro. La mayoría de los plugins de modo oscuro dejan este destello porque aplican el tema mediante JavaScript en DOMContentLoaded, que se activa después del primer pintado del navegador. DfDarkMode resuelve el problema con un script en línea mínimo colocado directamente en la etiqueta head del base layout: este script lee la cookie de preferencia (síncrono, unas 10 líneas de JS) y establece el atributo data-bs-theme en el elemento raíz ANTES de que el navegador haga su primer pintado. Resultado: cero destello blanco, incluso en la primera carga y en modo oscuro forzado.

§ 03

3 estados y persistencia completa

El toggle en el encabezado alterna entre Auto, Claro, Oscuro. Auto sigue el prefers-color-scheme del navegador en tiempo real mediante un MediaQuery listener: cuando el sistema operativo del visitante cambia a oscuro a las 18h, el storefront cambia instantáneamente sin recargar la página. Claro y Oscuro fuerzan el modo independientemente de la preferencia del navegador. La preferencia se persiste de forma diferente según el estado: visitantes anónimos mediante cookie df-dark-mode válida 1 año, clientes conectados mediante campo personalizado df_dark_mode_preference creado automáticamente en la instalación. La página de perfil de cliente incluye una tarjeta de selección para cambiar la preferencia directamente desde la cuenta. Al iniciar sesión, la cookie se sincroniza con el valor del campo personalizado.

§ 04

Compatibilidad Bootstrap data-bs-theme: cero CSS que escribir

Bootstrap 5.3+ introdujo la convención data-bs-theme="dark" como estándar para el modo oscuro. Si tu tema de Shopware ya usa reglas CSS para [data-bs-theme="dark"] (el caso de la mayoría de los temas premium de 2025+), DfDarkMode es inmediatamente compatible: instalas, activas y funciona. Si tu tema aún no tiene estilos oscuros, puedes usar las variables nativas de Bootstrap o añadir tus propias reglas a tu ritmo. DfDarkMode no toca tu CSS: solo establece un atributo en el elemento raíz de la página.

§ 05

Arquitectura Shopware limpia y estándar

El plugin sigue estrictamente las convenciones de Shopware 6.7: autoload PSR-4 bajo el namespace Df/DarkMode, clase Plugin con ciclo de vida install / update / uninstall, campo personalizado de cliente creado mediante el repositorio DAL estándar, ruta AJAX declarada mediante atributos PHP 8 de Symfony Routing, servicios inyectados mediante services.xml, suscriptores adjuntos a kernel.event_subscriber. La desinstalación respeta el indicador keepUserData del contexto de Shopware. Sin migraciones de esquema personalizadas. Código fuente en texto claro, con licencia MIT, auditable.

§ 06

Personalización y evento JS para integraciones

Por defecto, el toggle se inserta en el bloque base_header_actions_wishlist del base layout. Para moverlo, sobreescribe base.html.twig y coloca el componente dark-mode-toggle en otro bloque (búsqueda, cuenta, personalizado, etc.): ejemplo completo en el README. En el lado JS, el plugin emite un evento df-dark-mode-changed en el documento con cada cambio, con event.detail.preference (auto / light / dark) y event.detail.resolvedTheme (light / dark calculado). Útil para sincronizar otro componente (gráfico Recharts, iframe externo, embed de Calendly, etc.) con el tema actual.