Dies ist eine alte Version des Dokuments!
Projekt 1: Landingpage Hero Section (Light/Dark Mode)
Projektziel: Sie setzen eine Hero Section pixel-nah nach Figma um und bauen einen Light/Dark-Mode Switch mit JavaScript.
Lernziele
- HTML-Struktur mit
header/nav/main/sectionbauen - CSS: Variablen, Typografie, Flexbox, Responsive (Media Query)
- JS: DOM-Elemente abfragen, EventListener, Klassen toggeln
Material
- Figma-Design + Assets (SVG/PNG)
- Starter-Ordner (
index.html,resources/) - Live Server / Preview im Browser
Ablauf in Etappen
Etappe A: Design analysieren (15 Min.)
- Identifizieren Sie: Header, Navigation, Hero, 2-Spalten-Layout, Switch
- Messen Sie Abstände und Font-Sizes genau (nicht raten).
- Legen Sie eine Farbpalette fest → als CSS-Variablen.
Etappe B: HTML-Struktur (30–40 Min.)
<header>erstellen: Logo +<nav>+ Switch<main>und<section>für Hero- Textblock (
h3/h1/p) und Button-Gruppe - Hero-Bild mit
srcseteinbauen
Check: Wenn CSS/JS aus ist, ist die Seite trotzdem logisch lesbar.
Etappe C: CSS-Basics (30–45 Min.)
- Reset:
* { margin:0; padding:0; box-sizing:border-box } :rootVariablen (Farben, Fontgrössen)- Typografie: font-family, font-weight, line-height
- Max-Width + Padding in
.main-wrapper
Etappe D: Layout mit Flexbox (45 Min.)
- Header: Logo links, Navigation mittig, Switch rechts
- Hero: 2 Spalten (Text links, Bild rechts)
- Buttons als Gruppe (
display:flex,gap)
Etappe E: Responsive (30–45 Min.)
- Ab einer Breite (z.B. < 1024px):
- Hero wird
flex-direction: column-reverse - Abstände/Fontgrössen mit Variablen anpassen
Etappe F: JS Interaktivität (30–45 Min.)
1. Elemente holen:
document.getElementById(…)document.documentElement
2. Funktion applyTheme(…):
- Klasse
theme-darkauf<html>toggeln - Logo-Datei wechseln
3. EventListener:
changeauf Checkbox (nichtonclickim HTML!)
Debugging-Checkliste
- Öffnen Sie DevTools → Console
- Prüfen Sie, ob Selektoren etwas finden (nicht
null) - Prüfen Sie Pfade zu
./resources/…
Abgabe-Kriterien
- Struktur semantisch (nav als Liste)
- Layout desktop + mobile korrekt
- Switch funktioniert und wechselt Farben + Logo
- Code lesbar: sprechende Namen, wenig “magische” Selektoren
Stretch Goals
- Mobile Menu (Hamburger) als echtes
buttonmitaria-expanded - “prefers-color-scheme” als Default berücksichtigen
- Features als
ul/listattspan