Zum Inhalt springen
Marketing Factory Digital GmbH
Kontakt
Logo Marketing Factory Digital GmbH
  • Agentur
    • Aktuelles
    • Über uns
    • Geschichte
  • Leistungen
    • Beratung, Analyse und Strategie
    • Programmierung und Entwicklung
      • Schnittstellen
      • PIM-/ERP-Anbindungen
      • Individualentwicklungen
      • Seamless CMS Integration
    • Hosting und Betreuung
      • Cloud-Strategien
      • Hosting Partner der Marketing Factory
    • Leistungen mit Dritten
  • Technologie
    • TYPO3
      • Aktuelle TYPO3-Versionen
    • Shopware
    • IT-Sicherheit
      • DDoS-Protection
      • Continuous Upgrading
      • Privacy First
    • Tech Stack
      • Bekenntnis zu Open Source
      • Technologieauswahl
      • PHP-Ökosystem
      • Containerisierung & Clustering
      • Content Delivery Networks
      • Suchtechnologien
  • Referenzen
    • Projekte
    • Kunden
      • Kundenliste
    • Screenshot der Homepage der neuen Maxion Wheels WebsiteNEU: Relaunch der Corporate Website von Maxion Wheels
  • Community
    • Community-Initiativen
  • Blog
  • Kontakt
  • Deutsch
  • English

Sie sind here:

  1. Blog
  2. Hello Dark Mode, my old friend: Unser neues Frontend
Illustration der beiden Farbschemas
  • Development
12.05.2022

Hello Dark Mode, my old friend: Unser neues Frontend


Unsere neue Website ist seit kurzem online! Im letzten Jahr hat unser Relaunch-Team viel Zeit und Liebe investiert. Und natürlich möchten wir euch jetzt einige Neuerungen vorstellen und Entscheidungen erläutern. Ein paar Stolpersteine während der Umsetzung gab es auch. Heute schauen wir uns das Frontend etwas näher an.

Der Prototyp

Begonnen haben wir mit einigen Screendesign-Varianten in Sketch. Nachdem die gewünschte Richtung entschieden war, konnte mit der Entwicklung eines Prototyps begonnen werden.

Dieser Prototyp basiert auf einer Symfony-Applikation mit Twig-Templating. Das Template der neuen Website konnten wir so ohne großen Overhead entwickeln – kein Docker, kein CMS-Renderingprozess. Durch Twig war es möglich, wiederholende Bestandteile wie den Website-Header und die Navigationen in Partials auszulagern. Wir bekamen also das Beste aus beiden Welten: die Schnelligkeit von statischem HTML und die Flexibilität einer Template-Engine.

Der Frontend-Build-Prozess mit Yarn und Webpack ist (beinahe) identisch zum späteren TYPO3-Projekt konfiguriert. Das Bootstrap Package haben wir per Composer (ohne weitere Funktion) mitinstalliert, um dessen SCSS-Partials einbinden zu können.

Alle Stylesheet-Partials organisieren wir mit der ITCSS-Architektur, was die Styles dauerhaft wartbar und skalierbar halten soll. Für die eingebundenen Partials von Bootstrap (und Bootstrap Package) haben wir – nach meiner Einschätzung – geeignete Positionen in den ITCSS-Layern gefunden.

Zur Abnahme von Feature-Branches stand uns auch schon im Prototyp ein Kubernetes-Cluster zur Verfügung.

Als der Prototyp eine bestimmte Reife erreicht hatte, haben wir das Styling in das neu aufgesetzte TYPO3 überführt, um das Website-Template und Inhalts­elemente zu konfigurieren – und schließlich mit der Inhaltspflege zu beginnen.

Zeige größere Version von: Helle Version der Website
Zeige größere Version von: Dunkle Version der Website

Farbschemas a.k.a. Light/Dark Mode

Was macht man, wenn man sich nicht entscheiden kann? Beides! Unsere Website lässt sich mit hellem oder dunklem Hintergrund verwenden. Die Inhalte und anderen Elemente der Website passen sich der Auswahl entsprechend an (mit Ausnahme des stets hellen Headers).

Als Farbschema wird erst einmal das gewählte Erscheinungsbild des Betriebsystems bzw. Browsers berücksichtigt. Der Nutzer kann über den Button im Header eine manuelle Auswahl für die Seite treffen, die im LocalStorage des Browsers gespeichert wird.

Die Zuweisung der Farben erfolgt dann über CSS Custom Properties, umgangs­sprachlich CSS-Variablen genannt. Für jedes Farbschema gibt es ein Set an Variablen, die den Website-Elementen zugewiesen werden. Nicht für alle Farbwerte sind Custom Properties notwendig: bei semi­transparenten Hintergründen – etwa bei Cards – scheint einfach der aktuelle Website-Hintergrund durch.

Was wir nicht verschweigen möchten: Die Verwendung solcher Farbschemas bedeutet einigen Mehraufwand. Nicht nur in der technischen Umsetzung, sondern auch in der redaktionellen Pflege: Logos, Icons und andere Bilder ohne einen Hintergrund müssen auf Hell und Dunkel lesbar bleiben. Deshalb setzen wir stark auf Grafiken im SVG-Format, deren Quellcode wir per Fluid ViewHelper direkt ins HTML rendern. Im SVG-Code arbeiten wir dann mit dem Schlüsselwort currentColor, um Füllfarben an das aktuelle Farbschema anpassen zu können. Bei den Kundenlogos gibt es die Pflege­möglichkeit für ein Alternativbild, das dann nur im Dark Mode gezeigt wird.

Zeige größere Version von: Der Menüpunkt "Technologie" ist per Tabulator-Taste ausgewählt, das Untermenü wird angezeigt
In der Hauptnavigation lässt sich wahlweise der Link zu „Technologie“ öffnen (Eingabetaste) oder das Untermenü mit weiteren Ebenen einblenden (Leertaste).

Accessibility und Usability

Auch wenn das Thema hier im Beitrag erst gegen Ende behandelt wird: berücksichtigt wurden Barriere­freiheit und Nutzer­freundlichkeit von Beginn an. Unter anderem besitzen alle Elemente unserer Website sauber definierte Focus-Styles zur Tastatur­steuerung. Die Reihenfolge der Fokussierung ist logisch, aktuell nicht sichtbare Elemente werden nicht angesteuert.

Die Hauptnavigation ab Tablet aufwärts unterstützt die Steuerung per Touch, Maus und Tastatur. Nutzt man die Tastatur, öffnet die Eingabetaste den aktuellen Link und die Leertaste blendet das Untermenü ein (was auch per Screenreader kommuniziert wird). Das umgeht ein gängiges Problem in Navigationen, bei denen per Tab jede Unterseite angesteuert werden muss.

Zeige größere Version von: Gegenüberstellung der mobilen Ansicht
Wenn man in der mobilen Ansicht nach unten scrollt, wird das Logo zu einem Kreis transformiert. Im freigewordenen Raum wird ein Kontakt-Button eingeblendet.

All the small things

Der Internet Explorer spielt für uns keine Rolle mehr. Im Juni 2022 wird er auch von Microsoft endlich in den verdienten Ruhestand geschickt. Das ersparte uns einige Workarounds und Polyfills.

Bei unseren selbstgeschriebenen JavaScripts sowie allen Plugins verzichten wir auf die jQuery-Bibliothek und verschlanken damit die Frontend-Ressourcen.

Auf Mobilgeräten transformieren wir (beim Scrollen) unser Logo zu einem Kreis, um Platz für den Kontakt-Link zu schaffen. Die Animation machte im Safari anfangs einige Probleme: nach einer gewissen Zeit setzte sich die SVG-Transformation unabhängig vom Scroll-Status zurück. Ursache war letztlich die Kombination aus SVG-Transformation und dem scroll-EventListener. Mit der Umstellung auf den IntersectionObserver war das Problem gelöst.

Das soll erst einmal genügen. Im nächsten Beitrag wird euch Christian in unseren Maschinenraum mitnehmen.

Sebastian Klein

Steht irgendwo zwischen Front- und Backend. Mit einem Faible für Usability und Dokumentation. Immer auf der Suche nach Good Practices.

Weitere Beiträge dieses Autors

Blog als RSS-Feed abonnieren

Alle Teile der Blogreihe

  1. Keyvisual der StartseiteMarketing Factory goes TYPO3 Version 11
  2. Illustration der beiden FarbschemasHello Dark Mode, my old friend: Unser neues Frontend
  3. Das Main Engineering Set als Teil der Star Trek Original Series Set TourAus dem Maschinenraum: Unser Tech Stack – was setzen wir ein und worauf setzen wir?
  4. Ausschnitt der deutschen Blog-StartseiteUnser Blog erstrahlt in neuem Glanz!

Wir freuen uns, wenn Ihr diesen Beitrag teilt.


Kommentare

Keine Kommentare gefunden.

Kommentar verfassen.

Ich bin darauf hingewiesen worden, dass die Verarbeitung meiner Daten auf freiwilliger Basis erfolgt und dass ich mein Einverständnis ohne für mich nachteilige Folgen verweigern bzw. jederzeit gegenüber der Marketing Factory Digital GmbH per Post (Marienstraße 14, D-40212 Düsseldorf) oder E-Mail (info@marketing-factory.de) widerrufen kann.

Mir ist bekannt, dass die oben angegebenen Daten so lange gespeichert werden, wie ich die Kontaktaufnahme durch Marketing Factory wünsche. Nach meinem Widerruf werden meine Daten gelöscht. Eine weitergehende Speicherung kann im Einzelfall erfolgen, wenn dies gesetzlich vorgeschrieben ist.

  • Datenschutzerklärung
  • Impressum

© Marketing Factory Digital GmbH

Bildnachweise
  1. "Beitragsbild Farbschemas": © Sebastian Klein / Marketing Factory Digital GmbH
  2. "Leistungen im Light Mode": © Sebastian Klein / Marketing Factory Digital GmbH
  3. "Leistungen im Dark Mode": © Sebastian Klein / Marketing Factory Digital GmbH
  4. "Geöffnete Hauptnavigation": © Sebastian Klein / Marketing Factory Digital GmbH
  5. "Mobilversion der Website": © Sebastian Klein / Marketing Factory Digital GmbH