Shopware Design & Themes

DataFirefly Dark Mode — Dunkelmodus mit Browser-Erkennung und Kundenpräferenz für Shopware 6.7

Dunkelmodus für den Shopware-6.7-Storefront mit Browser-Erkennung, persistierter Kundenpräferenz und garantiertem Anti-FOUC.

Shopware 6.7 bietet keinen nativen Dunkelmodus im Storefront. Dabei ist der OS-Dunkelmodus seit 2023 massiv verbreitet: iOS schaltet nachts automatisch um, macOS und Windows haben automatische Helligkeitseinstellungen, Power-User halten ihren Bildschirm 60-80 % der Zeit dunkel. Ein Shop ohne Dunkelmodus sendet diesen Besuchern bei jedem Seitenaufruf einen aggressiven weißen Blitz, besonders unangenehm nachts und auf Mobilgeräten. DfDarkMode fügt Ihrem Shopware-6.7-Storefront einen vollständigen Dunkelmodus hinzu: automatische Erkennung des prefers-color-scheme, 3-Zustands-Toggle im Header (Auto / Hell / Dunkel), Präferenzkarte im Kundenprofil, Persistenz per Cookie für Besucher und Kunden-Custom-Field für eingeloggte Nutzer. Anti-FOUC garantiert durch ein Inline-Skript im head-Tag, das das Theme VOR dem Rendering anwendet. Automatische Synchronisierung der Kundenpräferenz beim Login. Mehrsprachige Snippets FR / EN / DE inklusive. Kompatibel mit der Bootstrap-data-bs-theme-Konvention.

Shopware 6.7 Anti-FOUC Auto / Hell / Dunkel Kundenpräferenz Snippets FR / EN / DE Bootstrap data-bs-theme MIT-Lizenz
  • 30 Tage Rückgaberecht
  • 12 Monate Updates
  • 24-h-Support
www.datafirefly.com/de/
Datafirefly dark mode Shopware module
v1.0.0 · aktualisiert 2026-05-08
Was es leistet

Die Kurzfassung.

01

Anti-FOUC: kein weißer Blitz, auch beim ersten Laden

Ein minimales Inline-Skript im head-Tag liest den Präferenz-Cookie und setzt das data-bs-theme-Attribut am Root-Element BEFORE dem ersten Paint des Browsers. Ergebnis: Ein Besucher im Dunkelmodus sieht die Seite direkt dunkel, ohne den weißen Blitz, der das Fehlen eines Dunkelmodus in den meisten aktuellen Shopware-Themes verrät.

02

3 Zustände: Auto (folgt dem Browser), Hell, Dunkel

Der Header-Toggle wechselt zwischen 3 Zuständen: Auto (folgt dem prefers-color-scheme des Browsers in Echtzeit per MediaQuery-Listener), Hell (erzwingt Hell), Dunkel (erzwingt Dunkel). Der Benutzer behält die Kontrolle. Beschriftungen sind in FR / EN / DE übersetzt.

03

Gespeicherte Präferenz, geräteübergreifend beim Login synchronisiert

Anonyme Besucher: df-dark-mode-Cookie, 1 Jahr gültig, SameSite=Lax. Eingeloggte Kunden: df_dark_mode_preference Kunden-Custom-Field (Typ Select), automatisch auf allen ihren Geräten abgerufen, beim Login per Cookie synchronisiert. Eine Auswahlkarte wird der Kundenprofilseite hinzugefügt.

04

Kompatibel mit Ihrem bestehenden Dunkel-Theme, ohne CSS zu ändern

Das Plugin setzt data-bs-theme="dark" am Root-Element der Seite — die Bootstrap-5.3+-Standardkonvention für den Dunkelmodus. Wenn Ihr Theme oder CSS bereits Regeln für [data-bs-theme="dark"] verwendet, werden sie automatisch angewendet — keine CSS-Änderungen erforderlich.

Die ausführliche Fassung

Alles, was Sie wissen sollten bevor Sie installieren.

Ein detaillierter Blick darauf, wie DataFirefly Dark Mode — Dunkelmodus mit Browser-Erkennung und Kundenpräferenz für Shopware 6.7 funktioniert, warum wir es so gebaut haben und der Gedanke hinter den Funktionen oben.

§ 01

Warum ein Dunkelmodus in Shopware 6.7?

Shopware 6.7 bietet keinen nativen Dunkelmodus im Storefront. Dabei ist der OS-Dunkelmodus seit 2023 massiv verbreitet: iOS schaltet nachts automatisch mit True Tone um, macOS und Windows haben automatische Helligkeitseinstellungen, Power-User halten ihren Bildschirm 60-80 % der Zeit dunkel. Ein Shop ohne Dunkelmodus sendet diesen Besuchern bei jedem Seitenaufruf einen aggressiven weißen Blitz — besonders unangenehm nachts und auf Mobilgeräten. Es ist ein umgekehrtes Qualitätssignal: Ihre Website ist nicht auf dem Stand der 2026er Nutzungsgewohnheiten. DfDarkMode schließt diese Lücke mit einer sauberen, Anti-FOUC-Implementierung, die die Präferenz des Kunden respektiert.

§ 02

Anti-FOUC: das Detail, das einen professionellen Dunkelmodus von einem improvisierten unterscheidet

FOUC steht für „Flash of Unstyled Content“ — der Bruchteil einer Sekunde, in dem die Seite weiß erscheint, bevor JavaScript das dunkle Theme anwendet. Die meisten Dunkelmodus-Plugins lassen diesen Blitz, weil sie das Theme über JavaScript in DOMContentLoaded anwenden, das nach dem ersten Paint des Browsers ausgeführt wird. DfDarkMode löst das Problem mit einem minimalen Inline-Skript direkt im head-Tag des Base-Layouts: Dieses Skript liest den Präferenz-Cookie (synchron, ~10 JS-Zeilen) und setzt das data-bs-theme-Attribut am Root-Element BEFORE dem ersten Paint des Browsers. Ergebnis: kein weißer Blitz, auch beim ersten Laden und im erzwungenen Dunkelmodus.

§ 03

3 Zustände und vollständige Persistenz

Der Header-Toggle wechselt zwischen Auto, Hell, Dunkel. Auto folgt dem prefers-color-scheme des Browsers in Echtzeit per MediaQuery-Listener — wenn das OS des Besuchers um 18 Uhr auf Dunkel wechselt, ändert sich der Storefront sofort, ohne Seitenneuladen. Hell und Dunkel erzwingen den Modus unabhängig von der Browser-Präferenz. Die Präferenz wird je nach Status unterschiedlich gespeichert: anonyme Besucher per df-dark-mode-Cookie (1 Jahr gültig), eingeloggte Kunden per df_dark_mode_preference Kunden-Custom-Field, das bei der Installation automatisch erstellt wird. Die Kundenprofilseite enthält eine Auswahlkarte zum direkten Ändern der Präferenz. Beim Login wird der Cookie mit dem Custom-Field-Wert synchronisiert.

§ 04

Bootstrap-data-bs-theme-Kompatibilität: kein CSS zu schreiben

Bootstrap 5.3+ hat die Konvention data-bs-theme="dark" als Standard für den Dunkelmodus eingeführt. Wenn Ihr Shopware-Theme bereits CSS-Regeln für den [data-bs-theme="dark"]-Selektor verwendet — der Fall bei den meisten Premium-Themes 2025+ — ist DfDarkMode sofort kompatibel: installieren, aktivieren, es funktioniert. Falls Ihr Theme noch keine Dunkel-Styles hat, können Sie native Bootstrap-Variablen (--bs-body-bg, --bs-body-color usw.) nutzen oder eigene Regeln nach und nach hinzufügen. DfDarkMode berührt Ihr CSS nicht.

§ 05

Saubere, standardkonforme Shopware-Architektur

Das Plugin folgt strikt den Shopware-6.7-Konventionen: PSR-4-Autoload unter dem Df/DarkMode-Namespace, Plugin-Klasse mit install / update / uninstall-Lifecycle, Kunden-Custom-Field über das Standard-DAL-Repository erstellt, AJAX-Route per PHP-8-Symfony-Routing-Attributen deklariert, Services per services.xml injiziert, Subscriber an kernel.event_subscriber gebunden. Die Deinstallation respektiert das keepUserData-Flag. Keine benutzerdefinierten Schema-Migrationen erforderlich. Klartext-Quellcode, MIT-lizenziert, prüfbar.

§ 06

Anpassung und JS-Event für Integrationen

Standardmäßig wird der Toggle im Block base_header_actions_wishlist des Base-Layouts eingebettet. Um ihn zu verschieben, überschreiben Sie einfach base.html.twig und platzieren Sie das dark-mode-toggle-Komponenten-Include in einem anderen Block (Suche, Konto, Benutzerdefiniert usw.) — vollständiges Beispiel im README. Auf der JS-Seite emittiert das Plugin bei jeder Änderung ein df-dark-mode-changed-Event auf dem Dokument mit event.detail.preference (auto / light / dark) und event.detail.resolvedTheme (berechnetes light / dark). Praktisch zum Synchronisieren einer anderen Komponente (Recharts-Diagramm, externer iframe, Calendly-Embed usw.) mit dem aktuellen Theme.