Login erforderlich

Jamies Night Shift

Melde dich an, um die komplette Lernwelt freizuschalten.

Jamies Code-Abenteuer · Schwarz-Weiß

HTML, CSS & JavaScript – wie ein Nacht-Quest

Alles ist dunkel, klar und aufgeräumt. Sammle XP, schalte Räume frei und halte dein Journal fest. Sobald du eingeloggt bist, speichert das Backend deinen Fortschritt in SQLite.

Struktur Style Logik Deployment

Aktive Woche

Erhöht sich, wenn du Quests abschließt.

Gesamt-XP

0 XP

0/100 XP bis Level 2

Fokus

Wechsle unten: HTML, CSS oder JS.

Skill-Tracker

Level-Fortschritt

XP basieren auf erledigten Quests. Alles wird im Backend gespeichert.

Fokus wechseln

Wechsel den Modus, wenn du einen anderen Bereich übst.

Abzeichen

HTML Scout
CSS Taktiker
JS Stratege
Projekt Boss

Roadmap · 12 Wochen

  • 1-3 Grundlagen: HTML-Karten, Pokémon-Galerie, Zelda-Formulare.
  • 4-6 Styles: Palette, Flex/Grid, Animationen.
  • 7-9 Logik: Events, Arrays, Mini-Game.
  • 10 Debugging & APIs: DevTools, Fehlersuche, erste Fetch-Ideen.
  • 11 Projekte & Git: Portfolio-Section, Mini-App, Versionierung.
  • 12 Review & Deploy: A11y-Check, Coolify-Plan, letzte Tests.

Jede Woche endet mit einem Screenshot + kurzem Journal-Eintrag.

⚔️

HTML Quest

Strukturieren wie Kartenstapel – semantisch und sauber.

Woche 1 – Monsterkarte

Nutze Überschriften, Absätze und Listen, um ein Monster zu beschreiben.

  • Semantik: <section>, <h1-3>, Listen.
  • Attribute: alt, title, aria-label.
  • Struktur: Eltern-Kind-Beziehungen laut erklären.

Deine Monsterkarte

Legendärer Platzhalter

Element: Licht

Fähigkeit: Wird aktualisiert, sobald du etwas eintippst.

  • ATK: 2000
  • DEF: 1500

Woche 2 – Pokémon-Galerie

Bilder, Beschriftungen und Links – erzähle eine kleine Geschichte.

  • <figure> + <figcaption> erklären Bilder.
  • Alt-Texte: schreibe wie ein Mini-Hörbuch.
  • Links: target, rel, sichere Navigationspfade.

Galerie

Pokémon Mehr erfahren

Woche 3 – Zelda-Formular

Formulare, Labels und eine Aufgabenliste zum Ausfüllen.

  • Verknüpfung: label + for.
  • Validierung: type="email" testen.
  • Inventar: Listen für Schrittpläne.

Quest-Anmeldung

Trage oben deine Heldendaten ein.

  • Schritt: Das Dorf besuchen

Woche 4 – Semantik & Barrierefreiheit

Verbessere Texte, Landmarken und Tastatur-Navigation.

  • Landmarks: <header>, <main>, <nav>.
  • Labels: Nutze aria-label und sprechende Button-Texte.
  • Tab-Reihenfolge: Prüfe, ob alles per Tastatur erreichbar ist.

Teste mit der Tab-Taste und lese Texte laut vor. Wenn etwas unklar klingt, ergänze Kontext.

Accessibility-Check

Markiere drei Elemente, die du verbessern möchtest, und schreibe Notizen.

Tipps: Prüfe Kontrast, fokussierbare Elemente, Alt-Texte.

🎨

CSS Arena

Nur Schwarz & Weiß, klare Kontraste, animierte Details.

Woche 4 – Farb- und Fontsystem

Definiere Variablen, teste Hintergründe und Fonts.

  • Variablen: :root + sinnvolle Namen.
  • Kontrast prüfen: Hell auf Dunkel, Buttons klar absetzen.
  • Typografie begründen: Warum diese Schrift?

Style-Board

Minimalistischer Stil

Passe Farben & Schrift an.

.karte {
  background: #0b0c12;
  border-top: 6px solid #ffffff;
  font-family: Space Grotesk;
}

Woche 5 – Flexbox/Grid

Sortiere Elemente wie ein Team im Kampf.

  • Haupt- und Querachse laut benennen.
  • gap statt margin zwischen Kindern.
  • Responsiv: Spalte vs. Reihe ausprobieren.

Arena

Feuer
Wasser
Pflanze
.arena {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 16px;
}

Woche 6 – Animation

Schwebe-Effekte mit Keyframes.

  • Keyframes: Anfang, Mitte, Ende definieren.
  • Tempo anpassen: Geschwindigkeit ändert Stimmung.
  • Iteration: einmal vs. unendlich.

Rupee-Tanz

Niedrige Werte = schneller Tanz.

Bonus – Grid & Layout-Systeme

Nutze CSS Grid, um mehrere Karten auszurichten.

  • Tracks: repeat(3, 1fr) vs. auto-fit.
  • Alignment: align-items, justify-items.
  • Gaps: Einheitliche Abstände mit gap.

Grid-Board

Karte 1
Karte 2
Karte 3
Karte 4
.board {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, 1fr);
}
🪄

JavaScript Gilde

Events, Arrays, Mini-Games und Debugging.

Woche 7 – Events & Variablen

Reagiere auf Klicks und logge Ereignisse.

  • Event Listener: addEventListener.
  • Zähler: Variablen erhöhen, anzeigen.
  • Logs: Klar schreiben, was passiert.

Kartenbeschwörung

Beschworene Monster: 0

Aktionen erscheinen hier.

Woche 8 – Arrays & Listen

Baue dein Pokémon-Team als Liste auf.

  • Speicher: Arrays sammeln Werte.
  • DOM-Ausgabe: Aus Arrays wieder HTML bauen.
  • Kopplung: Enter-Taste löst Event aus.

Team Builder

    Noch keine Mitglieder – los geht's!

    Woche 9 – Mini-Game

    Finde den goldenen Rupee.

    • Zufall: Math.random().
    • Bedingungen: if/else Entscheidungen.
    • Reset: Neues Spiel starten.

    Rupee-Jagd

    Wähle eine Truhe:

    Truhe 1
    Truhe 2
    Truhe 3

    Tippe, um dein Glück zu testen.

    Woche 10 – API Explorer

    Simuliere eine kleine API-Antwort und zeige sie formatiert an.

    • fetch Struktur verstehen: URL, Methode, JSON.
    • Fehlerfälle: Was, wenn Daten leer sind?
    • Formatierung: Arrays in Listen umwandeln.

    Auch ohne echtes Internet kannst du JSON-Strings testen.

    API-Simulator

    Warte auf JSON...

    Debugging, Tools & Labs

    Woche 10 – Debugging

    Checkliste: DevTools öffnen, Elemente inspizieren, Netzwerk-Tab prüfen, Fehlertexte laut vorlesen.

    • Nutze console.log() mit klaren Nachrichten.
    • Setze Breakpoints und beobachte Variablen.
    • Suche gezielt nach "undefined" oder Tippfehlern in Selektoren.

    Mini-Labs

    • HTML: Erstelle eine Checkliste mit <input type="checkbox">.
    • CSS: Baue einen dunklen Button mit Hover-Glow.
    • JS: Schreibe eine Funktion, die den Durchschnitt aus drei Zahlen berechnet.
    • Accessibility: Füge aria-label zu Inputs hinzu.

    Jedes Lab ist kurz und fokussiert – ideal für 10 Minuten.

    Interview-Fragen üben

    • Wann benutzt du flex vs. grid?
    • Was ist der Unterschied zwischen == und ===?
    • Wie funktioniert die Box-Model-Berechnung?
    • Was bedeuten HTTP-Statuscodes 200, 404, 500?

    Antworten laut formulieren. Das trainiert Erklärungen.

    A11y & QA

    • Kontraste prüfen (Schwarz auf Weiß, Buttons klar).
    • Tab-Reihenfolge testen, Fokus-Stile sichtbar lassen.
    • Screenreader: Alternativtexte und klare Überschriften.

    Git & Deployment

    • git init, git status, git commit -m.
    • README aktualisieren: Was hast du gebaut?
    • Coolify-Plan: Port 8000 freigeben, envs setzen, Datenbank behalten.

    Habits & Daily Challenges

    • 15 Minuten Fokus-Block ohne Ablenkung.
    • 1 Screenshot + 2 Sätze ins Journal.
    • 1 Mini-Challenge: Ersetze alle Inline-Styles durch Klassen.

    Wiederholung macht den Unterschied – kleine, tägliche Schritte.

    Reference · Cheatsheets

    HTML Essentials

    • Grundgerüst: <header>, <main>, <footer>.
    • Formulare: label + input, textarea, select.
    • Medien: figure + figcaption für Bilder.
    • Listen: ul/ol für Aufzählungen, dl für Begriffe.
    <form>
      <label for="mail">Mail</label>
      <input id="mail" type="email" required />
    </form>

    CSS Layout

    • Flex: display:flex, gap, justify-content.
    • Grid: grid-template-columns: repeat(3, 1fr).
    • Spacing: Nutze padding innen, margin außen.
    • Darkmode: hohe Kontraste, dezente Schatten.
    .grid {
      display: grid;
      gap: 12px;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }

    JavaScript Patterns

    • const für feste Referenzen, let für Zähler.
    • querySelector + Events für DOM.
    • Arrays: push, map, filter.
    • Fetch: fetch('/state').then(res => res.json()).
    const list = ['Pika', 'Evoli'];
    const output = list.map((name) => `
  • ${name}
  • `).join(''); document.getElementById('team').innerHTML = output;

    Lernjournal

    Alles was du speicherst, landet in der Datenbank. Nach Login bleibt es erhalten.

    Noch nichts gespeichert.

    HTML · Was habe ich strukturiert?

    CSS · Welche Styles wirken?

    JS · Was bewegt sich?

    Mindset · Was hat gut geklappt?

    Projects & Bossfights

    Projekt 1 – Portfolio Section

    Baue eine eigene Seite mit Monsterkarte, Galerie und Formular untereinander.

    • Nutze eine einheitliche Farbwelt (Schwarz/Weiß + 1 Akzent).
    • Füge ein kleines Navigationsmenü mit Ankern hinzu.
    • Packe das Ergebnis als Screenshot ins Journal.

    Projekt 2 – Mini-App

    Kombiniere HTML, CSS und JS zu einem kleinen Tool (z. B. Zufallsmonster-Generator).

    • Nutze mindestens ein Formularfeld und ein Button-Event.
    • Speichere Daten in localStorage oder per Fetch ins Backend.
    • Styling bleibt schwarz-weiß, aber mit klaren Abständen.

    Retro Checklist

    [📝] Deine Reise beginnt. Logge dich ein und starte Woche 1.

    Log wird mit jedem Event aktualisiert.

    Projekt 3 – Launch Ready

    Bereite eine Version vor, die du auf Coolify hosten kannst.

    • README: Install/Run/Deploy kurz beschreiben.
    • Screenshot oder kurzer Clip deiner App.
    • Teste Login, Quests, Journal – alles speichert?