====== LU03: Light Dark Mode Switch mit JavaScript ======
**Ziel von LU03:** Sie erweitern Ihre Landingpage um drei Dinge:
\\
* Favicon verlinken
* Feature-Icons mit CSS Pseudo-Elementen umsetzen
* Light Dark Mode Switch stylen und mit JavaScript funktional machen
**Wichtig:** Ihr Code darf sich von den Beispielen unterscheiden. Entscheidend ist, dass Ihr Ergebnis im Browser korrekt funktioniert und Ihr Code verständlich bleibt.
===== Voraussetzungen =====
Ihr Stand nach LU02 ist vorhanden und funktioniert im Desktop und Mobile Layout.
**Hilfreiche Links**
\\
* MDN Favicon: [[https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel#icon|rel="icon"]]
* MDN Pseudo-Elemente: [[https://developer.mozilla.org/en-US/docs/Web/CSS/::before|::before]]
* MDN classList: [[https://developer.mozilla.org/en-US/docs/Web/API/Element/classList|classList]]
* MDN addEventListener: [[https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener|addEventListener]]
* MDN Checkbox change event: [[https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event|change event]]
===== Schritt 1 Favicon verlinken =====
{{:de:modul:m291:learningunits:lu03:aufgaben:screenshot_2026-02-23_at_09.29.47.png?nolink&400|Screenshot mit Browsertab und Favicon}}
\\
//Screenshot mit Browsertab und Favicon//
**Aufgabe**
* Ergänzen Sie im ''%%
%%'' Ihrer HTML-Datei ein Favicon.
* Verwenden Sie dazu ein ''%%%%'' Tag mit ''rel="icon"''.
* Achten Sie darauf, dass der Pfad zu Ihrer Datei stimmt (z.B. ''./resources/favicon.ico'').
**Checkliste**
* Das Icon erscheint im Browser-Tab (auf Chrome oder Firefox testen, Safari zeigt das Favicon nicht an (weil File lokal gespeichert ist)).
* In DevTools → Network gibt es keinen 404 Fehler für das Favicon.
===== Schritt 2 Feature-Icons mit Pseudo-Elementen umsetzen =====
{{:de:modul:m291:learningunits:lu03:aufgaben:screenshot_2026-02-23_at_09.28.00.png?nolink&400|}}
\\
Sie haben in Ihrer Info-Zeile zwei Feature-Texte, z.B. „No credit card required". Vor jedem Text soll ein Icon erscheinen.
**Beispiel für das Anwenden von Pseudo-Elementen** (nicht so umzusetzen im Projekt Landingpage Alarado, sondern wie oben abgebildet -> Feature-Texte mit grünem Haken)
{{:de:modul:m291:learningunits:lu03:aufgaben:1_p0ryo3ias6k1zbyv9kusva.png?nolink&400|}}
\\
//Wenn wir vor oder nach einem Text ein Icon oder Emoji einblenden möchten, eignen sich Pseudo-Elemente sehr gut.//
**Umsetzung des im Bild oben gezeigten Designs (The Div Soup) mit HTML und CSS:**
The Div Soup
body {
background-color: #000000;
}
h1 {
color: #fff;
}
h1::before {
content: "🚀"; /* Add a rocket icon before the text */
}
h1::after {
content: "🔥"; /* Add a fire icon after the text */
}
Kurze Erklärung: Wir betten die grünen OK-Haken per CSS ein und nicht als ''%%%%''-Tag, weil sie keinen eigenen Inhalt transportieren. Sie sind reine Dekoration. So können wir das Icon einmal in einer CSS-Regel definieren und dann auf mehrere Elemente anwenden.
**Aufgabe**
* Ergänzen Sie bei ''.icon-ok'' sinnvolle Innenabstände links, damit Platz für ein Icon entsteht.
* Setzen Sie ''.icon-ok'' auf ''position: relative''.
* Nutzen Sie ''.icon-ok::before'', um das Icon einzufügen.
* Positionieren Sie das Icon mit ''position: absolute'' links neben dem Text.
Bei Pseudo-Elementen können Sie Icons z.B. über ''content: url(...)'' einfügen.
/* Aufgabe: Platz schaffen und Positionierung vorbereiten */
.icon-ok {
/* z.B. padding-left setzen */
/* position: relative */
}
/* Aufgabe: Icon einfügen und positionieren */
.icon-ok::before {
/* content: url("PFAD_ZUM_ICON") */
/* position: absolute */
/* left: 0; top: ... */
}
**Checkliste**
* Vor beiden Feature-Texten steht ein Icon.
* Das Icon überlappt den Text nicht.
* Der Abstand wirkt im Desktop und Mobile sauber.
===== Video Switch Dark Light Mode =====
{{:de:modul:m291:learningunits:lu03:aufgaben:m291_lu03_dark-light-switch.mp4?1040x585|Video mit Erklärung zum Dark Light Mode.}}
\\
//Video mit Erklärung zum Dark Light Mode und dessen Umsetzung.//
===== Schritt 3 Switch Styling einbauen =====
{{:de:modul:m291:learningunits:lu03:aufgaben:screenshot_2026-02-23_at_09.32.33.png?nolink&300|}}
\\
//Aus der Checkbox wird ein Switch. Nutzen Sie dazu den vorgegebenen Code unten.//
Jetzt stylen Sie die Checkbox als Switch. Den folgenden Code dürfen Sie 1 zu 1 übernehmen.
**Aufgabe**
* Ergänzen Sie im HTML im ''%%