Video → Scroll-basierte Landing Page
Erstelle eine kinematische Landing Page, bei der der Hero-Bereich ein Video ist, das beim Scrollen abgespielt wird – ähnlich wie Apple-Produktseiten oder die GitHub Copilot-Landingpage. Die Einzelbilder werden aus dem Quellvideo extrahiert und beim Scrollen ausgetauscht; unterhalb des klebrigen Hero-Bereichs folgen normal scrollbare Abschnitte mit Text und Call-to-Action.
Wann aufrufen
- Benutzer lädt ein Video hoch und bittet um eine Landing Page, Scroll-Website, Scroll-Frame-Hero oder Website aus einem Video
- Erwähnungen von "Apple-Style Scroll", "GitHub Copilot Landing", "Scrub-on-Scroll", "Frame on Scroll"
- Hebräische Entsprechungen: "דף נחיתה מסרטון", "אתר עם גלילה", "סרטון בגלילה"
Speicherort
Standard: ~/Documents/yuv-projects/landings/<slug>/ – speichere Landing Pages immer hier ab, damit du sie wiederfindest. Erstelle das übergeordnete Verzeichnis, falls es fehlt.
mkdir -p ~/Documents/yuv-projects/landings
cd ~/Documents/yuv-projects/landings
# Erstelle <slug>/ hier.
Endgültiger Pfad: ~/Documents/yuv-projects/landings/<slug>/. Teile dem Benutzer am Ende jedes Builds mit, wo die Landing Page liegt.
Workflow (8 Schritte)
- Quelle analysieren –
ffprobefür Dauer, Bildrate, Abmessungen, Audio. - Anzahl der Einzelbilder festlegen – Standard
80. Minimum40(ruckelig darunter), Maximum160(schwere Seite). Wähle nach Dauer: ≤10s → 50, 10–30s → 80, 30–60s → 120, >60s → 160. - Ausgabeverzeichnis festlegen – Standard
~/Documents/yuv-projects/landings/<slug>/. Der<slug>ist kurz und leitet sich vom Videotitel oder Thema ab. Überschreibe nur auf ausdrücklichen Wunsch. - Einzelbilder extrahieren – führe
references/extract-frames.py <source-video> <output-dir> [count]aus. Ausgabe:output-dir/frames/f_0001.jpg… mit gleichbleibender JPG-Qualität 82 und einer maximalen Breite von 1920 (skaliert herunter, wenn das Quellmaterial größer ist). - Kopieren und anpassen von
references/landing-template.htmlinoutput-dir/index.html:- Ersetze den Platzhalter
__FRAMES__durch<img>-Tags für jedes Einzelbild (das Build-Skript erledigt dies automatisch, wenn du--build-htmlübergibst). - Fülle
__HEADLINE__,__TAGLINE__,__CTA_TEXT__,__CTA_HREF__und Abschnitte aus. - Für hebräischen Inhalt: setze
<html lang="he" dir="rtl">und tausche die Schriftarten auf Rubik/Assistant (siehereferences/design-notes.md).
- Ersetze den Platzhalter
- Einzelbilder optimieren – das Build-Skript skaliert bereits auf maximal 1920px Breite. Wenn das Gesamtgewicht der Seite > 12 MB beträgt, reduziere die Qualität auf 75 oder verringere die Anzahl der Einzelbilder.
- Vorschau –
python -m http.serverinnerhalb des Ausgabeverzeichnisses und öffnehttp://localhost:8000. Das Scroll-Gefühl ist auf einem anständigen Rechner flüssig. - Bereitstellen – lege den Ordner auf Vercel/Netlify/Cloudflare Pages ab. Kein Build-Schritt erforderlich.
Der Scroll-Mechanismus
- Äußerer Scroller
.scroll-stageHöhe in Viewport-Einheiten (Standard600vh= 5 Bildschirme scrollen, um alle Einzelbilder zu durchlaufen). - Klebriger Hero-Bereich
position: sticky; top: 0; height: 100vhenthält alle Einzelbilder absolut positioniert und ausgeblendet, außer dem aktiven. - Scroll-Listener berechnet
progress = scrolledIntoStage / scrollableHeightbegrenzt auf 0–1. idx = floor(progress * (N - 1))– wechsle die.active-Klasse zu diesem Einzelbild.- Ummantle den Listener mit
requestAnimationFrame, um 60fps zu halten.
Designregeln
- Verwende das Projektdesignsystem, falls angegeben, ansonsten standardmäßig das yuv-design-system-Skill: Anton + Inter (Englisch) / Rubik + Assistant (Hebräisch), Fly High Purple (
#5E17EB) + Gelb (#FFEC00) + Grau (#F1F2F2)-Palette, Off-White (nie reines#fff), 0px oder 999px Radien (keine 8–12px Ecken). Warm Editorial (Pink+Gelb+Beige) ist nur für die Hope/bigcats-Markenfamilie reserviert. - Hero-Overlays sollten dezent sein – eine Vignette und eine einzelne große Überschrift; überlade das Einzelbild nicht.
- Abschnitte unterhalb des Heroes: beiger Hintergrund, große Anton-Überschrift, Fließtext in Inter bei 18–22px, CTA als scharfes pinkfarbenes Rechteck mit Anton-Text.
- Für Hebräisch: RTL beachten, Rubik 900 für Überschriften, Assistant 400/500 für Fließtext.
Dateireferenzen
| Datei | Zweck |
|---|---|
references/extract-frames.py | ffmpeg-basierter Frame-Extraktor; erstellt optional das vollständige HTML in einem Durchgang |
references/landing-template.html | Eigenständiges Landing-Page-Grundgerüst mit dem Scroll-Mechanismus |
references/design-notes.md | Typografie-, Farb- und Bewegungsvorgaben |