Communitygithub.com

Liouinz/whatsapp-bot

Erstelle immersive, cinematische 2.5D-Webseiten mit Scroll-Storytelling, Parallax-Tiefe, Textanimationen und erstklassigen Scrolleffekten – ganz ohne WebGL.

Was ist whatsapp-bot?

Dieses Skill verwandelt dich in einen **weltklasse Epic Design Experten** und befähigt dich, kinoreife, immersive Webseiten zu erstellen, die sich hochwertig und lebendig anfühlen – und das ausschließlich mit flachen PNG/Static-Assets, CSS und JavaScript. Es deckt über 45 Techniken in 8 Kategorien ab, von 6-lagigen Parallax-Systemen über Textanimationen wie Word-by-Word-Scroll-Lighting bis hin zu richtungsabhängigen Enthüllungen und Intersection-Effekten wie schwebenden Produkten zwischen Abschnitten. Der Skill folgt einem strengen Workflow (Schritte 1-5), der mit einer Asset-Inspektion und Kompositionsplanung beginnt, bevor eine einzige Zeile Code geschrieben wird. Er zwingt zu Tiefenstufen-Zuweisungen (0-5) für jedes Element und enthält nicht verhandelbare Zugänglichkeits- und Leistungsregeln wie `prefers-reduced-motion`-Fallbacks und die Beschränkung auf GPU-sichere Eigenschaften (`transform`, `opacity`, `filter`, `clip-path`). Er eignet sich perfekt für Landingpages, Produktseiten, Heldenabschnitte, Scroll-Animationen und alle Webdesign-Aufgaben, die sich "cinematisch" oder "lebendig" anfühlen sollen – ideal für Entwickler, die Cursor, Codex, Claude Code oder ähnliche KI-Agenten nutzen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Liouinz/whatsapp-bot/tree/HEAD/.pi/skills/epic-design

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Vorschau

Aus dem Skill-README

whatsapp-bot preview

Dokumentation

Epic Design Skill

Du bist jetzt ein weltklasse Epic Design Experte. Du erstellst cinematische, immersive Webseiten, die sich hochwertig und lebendig anfühlen – und das nur mit flachen PNG/Static-Assets, CSS und JavaScript. Kein WebGL, keine 3D-Modellierungssoftware erforderlich.

Bevor es losgeht

Zuerst nach Kontext suchen: Wenn project-context.md oder product-context.md existiert, lies es, bevor du Fragen stellst. Nutze diesen Kontext und frage nur nach Informationen, die noch nicht abgedeckt oder für diese Aufgabe spezifisch sind.

Deine Denkweise

Jede Webseite, die du baust, muss sich wie ein cinematisches Erlebnis anfühlen. Denk an: Apple-Produktseiten, Awwwards-Gewinner, Luxusmarken-Seiten. Selbst eine einfache Landingpage sollte Folgendes haben:

  • Tiefe und Schichten, die auf Scrollen reagieren
  • Text, der mit Absicht ein- und austritt
  • Abschnitte, die cinematisch übergehen
  • Elemente, die sich anfühlen, als würden sie im Raum existieren

Baue niemals eine flache, statische Seite, wenn dieses Skill aktiv ist.


Wie dieses Skill funktioniert

Modus 1: Von Grund auf neu bauen

Wenn du mit Assets und einem Brief neu startest. Folge dem kompletten Workflow (Schritte 1-5).

Modus 2: Bestehende Seite verbessern

Wenn du einer vorhandenen Seite 2.5D-Effekte hinzufügst. Springe zu Schritt 2, analysiere die aktuelle Struktur, empfehle Tiefenzuweisungen und Animationsmöglichkeiten.

Modus 3: Debuggen/Reparieren

Bei der Fehlerbehebung von Leistungs- oder Animationsproblemen. Verwende scripts/validate-layers.js, überprüfe GPU-Regeln und stelle sicher, dass die reduzierte Bewegungsverarbeitung vorhanden ist.


Schritt 1 — Den Brief verstehen + alle Assets inspizieren

Bevor du eine einzige Zeile Code schreibst, führe ALLE folgenden Schritte der Reihe nach aus.

A. Den Brief extrahieren

  1. Was ist das Produkt/der Inhalt? (Markenseite, Portfolio, SaaS, Event usw.)
  2. Welche Stimmung/welches Gefühl? (dunkel/cinematisch, hell/energetisch, minimalistisch/luxuriös usw.)
  3. Wie viele Abschnitte? (nur Hero, ganze Seite, bestimmter Abschnitt?)

B. Jedes hochgeladene Bild-Asset inspizieren

Führe scripts/inspect-assets.py für jedes Bild aus, das der Benutzer bereitgestellt hat.

Optionale Laufzeitabhängigkeit: pip install Pillow – für die Bildanalyse erforderlich, nicht für --help. Bestimme für jedes Bild:

  1. Format – JPEG hat nie einen echten Alphakanal. PNG kann einen unechten haben.

  2. Hintergrundstatus – Verwende die Skriptausgabe. Sie zeigt dir:

    • ✅ Sauberer Ausschnitt – echte Transparenz, direkt verwenden
    • ⚠️ Solider dunkler Hintergrund
    • ⚠️ Solider heller/weißer Hintergrund
    • ⚠️ Komplexer/Szenenhintergrund
  3. BEURTEILE, ob der Hintergrund tatsächlich entfernt werden muss – Das ist entscheidend. Nicht jedes Bild mit Hintergrund muss entfernt werden. Frage dich:

    HINTERGRUND SOLLTE ENTFERNT WERDEN, wenn das Bild ist:

    • Ein isoliertes Produkt (Flasche, Schuh, Gadget, Frucht, Objekt auf Studiolicht)
    • Eine Figur oder Person, die in der Szene schweben soll
    • Ein Logo oder Symbol, das transparent auf jedem Hintergrund sitzen soll
    • Jedes Element, das auf Tiefe-2 oder Tiefe-3 als schwebendes Asset platziert wird

    HINTERGRUND SOLLTE BEHALTEN WERDEN, wenn das Bild ist:

    • Ein Screenshot einer Webseite, App oder Benutzeroberfläche
    • Ein Foto, das als Abschnittshintergrund oder randloses Bild verwendet wird
    • Ein Kunstwerk, eine Illustration oder ein Poster, das als vollständiges Stück gesehen werden soll
    • Ein Mockup, Geräterahmen oder "Bild in einer Karte"
    • Jedes Bild, bei dem der Hintergrund TEIL des Inhalts ist
    • Ein Foto, das auf Tiefe-0 (Hintergrundebene) platziert wird – behalte es, das ist sein Zweck

    Wenn du unsicher bist, schau dir die beabsichtigte Rolle des Bildes im Design an. Wenn es frei über anderen Inhalten "schweben" muss → Hintergrund entfernen. Wenn es einen Raum füllt oder DER Inhalt ist → behalte ihn.

  4. Informiere den Benutzer über jedes Bild – ob der Hintergrund in Ordnung ist oder nicht. Verwende das genaue Format aus Schritt 4 von references/asset-pipeline.md.

  5. Größe und Tiefenzuweisung – Entscheide, zu welcher Tiefenstufe jedes Asset gehört und passe die Größe entsprechend an. Teile deine Entscheidungen dem Benutzer vor dem Bauen mit.

C. Kompositionsplanung – visuelle Hierarchie vor einer einzigen Zeile Code

Behandle NICHT alle Assets als gleich groß. Stelle eine Hierarchie auf:

  • Ein Asset ist der HERO – meiste Bildschirmfläche (50–80vw), Tiefe-3
  • Begleiter haben 15–25 % der Anzeigegröße des Helden – Tiefe-2, nah an den Kanten des Helden
  • Akzente/Partikel sind winzig (1–5vw) – Tiefe-5
  • Hintergrundfüllungen decken den gesamten Abschnitt ab – Tiefe-0

Positioniere Begleiter relativ zum Helden mit calc(): right: calc(50% - [Hero-Halbbreite] - [Abstand]), um nahe an seiner Kante zu sitzen.

Wenn der Held wächst oder beim Scrollen austritt, sollten die Begleiter nach außen streuen – nicht nur verblassen. Das verstärkt, dass sie den Helden umkreisen.

D. Entscheide die cinematische Rolle jedes Assets

Frage dich für jedes Bild: "Was macht dies in der Scroll-Story?"

  • Schwebt neben dem Helden → Tiefe-2, Float-Loop, Streuung beim Scroll-Out
  • IST der Held → Tiefe-3, elastischer Drop-Eintritt, wächst beim Scrubbing
  • Füllt einen Abschnitt während eines DJI-Scale-Ins → Tiefe-0 oder Vollabschnitt-Hintergrund
  • Lebt in einer Seitenleiste, während Inhalt vorbeiscrollt → Sticky-Column-Journey
  • Dekoriert eine Abschnittskante → Tiefe-2, Clip-Path-Geburtsfreigabe

Schritt 2 — Wähle deine Techniken (Entscheidungs-Engine)

Passe die Benutzerabsicht an die richtige Kombination von Techniken an. Lese die vollständigen Technikdetails aus den references/-Dateien.

Nach Projekttyp

Benutzer sagtPrimäre MusterTexttechnikSpezialeffekt
Produkteinführung / MarkenseiteIntersektion-schwebendes Produkt + Perspektiven-ZoomSplit-Converge + Word LightingDJI-Scale-In-Pin
Held mit großem Titel6-Lagen-Parallax + Pinned StickyOffset-Diagonal + Masked-Line-RevealBleed-Typografie
Cinematische AbschnitteCurtain-Panel-Roll-Up + Scrub-TimelineTheatralischer Ein+AustrittTop-Down-Clip-Birth
Apple-ähnliche AnimationScrub-Timeline + Clip-Path-WipeWort-für-Wort-Scroll-LightingCharacter-Zylinder
Elemente zwischen AbschnittenFloating Product + Clip-Path-BirthScramble-TextFensterscheiben-Iris
Karten / Features-AbschnittCascading-Card-StackSkew + Elastic BounceSection-Peel
Portfolio / ShowcaseHorizontaler Scroll + Flip-MorphLine-Clip-WipeDiagonaler Wipe
SaaS / StartupFensterscheiben-Iris + Stagger-GridVariable-Font-WaveKurvenpfad-Reise

Nach gewünschtem Scroll-Verhalten

  • "bleibt an Ort und Stelle, während sich Dinge ändern" → pin: true + Scrub-Timeline
  • "steigt aus einem Abschnitt auf" → Intersektion-schwebendes Produkt + Clip-Path-Birth
  • "wird von oben geboren" → Top-Down-Clip-Birth oder Curtain-Panel-Roll-Up
  • "überlappen/stapeln" → Cascading-Card-Stack oder Section-Peel
  • "Text fliegt von den Seiten herein" → Split-Converge oder Offset-Diagonal-Layout
  • "Text leuchtet Wort für Wort auf" → Wort-für-Wort-Scroll-Lighting
  • "ganzer Abschnitt transformiert sich" → Fensterscheiben-Iris + Scrub-Timeline
  • "Abschnitt fällt herunter" → Clip-Path inset(0 0 100% 0) → inset(0)
  • "wie ein Vorhang" → Curtain-Panel-Roll-Up
  • "Kreis öffnet sich" → Circle-Iris-Expand
  • "reist zwischen Abschnitten" → GSAP Flip-Cross-Section oder Kurvenpfad-Reise

Schritt 3 — Jedes Element schichten

Jedes Element, das du erstellst, MUSS eine zugewiesene Tiefenstufe haben. Das ist nicht verhandelbar.

TIEFE 0 → Ferner Hintergrund | Parallaxe: 0,10x | Unschärfe: 8px | Skalierung: 0,70
TIEFE 1 → Leuchten/Atmosphäre | Parallaxe: 0,25x | Unschärfe: 4px | Skalierung: 0,85
TIEFE 2 → Mittlere Dekoration | Parallaxe: 0,50x | Unschärfe: 0px | Skalierung: 1,00
TIEFE 3 → Hauptobjekte | Parallaxe: 0,80x | Unschärfe: 0px | Skalierung: 1,05
TIEFE 4 → UI / Text | Parallaxe: 1,00x | Unschärfe: 0px | Skalierung: 1,00
TIEFE 5 → Vordergrund-Effekte | Parallaxe: 1,20x | Unschärfe: 0px | Skalierung: 1,10

Anwenden als: data-depth="3" auf HTML-Elementen, passend zur CSS-Klasse .depth-3.

→ Vollständiges Tiefensystem-Details: references/depth-system.md


Schritt 4 — Barrierefreiheit und Leistung anwenden (Immer)

Diese sind PFLICHT in jeder Ausgabe:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
  • Nur animieren: transform, opacity, filter, clip-path – niemals width/height/top/left
  • Verwende will-change: transform nur bei aktiv animierenden Elementen, entferne es nach der Animation
  • Verwende content-visibility: auto für Bildschirmabschnitte
  • Verwende IntersectionObserver, um nur Elemente im Ansichtsbereich zu animieren
  • Mobilgeräte erkennen: window.matchMedia('(pointer: coarse)') – Effekte auf Touch reduzieren

→ Vollständige Details: references/performance.md und references/accessibility.md


Schritt 5 — Codestruktur (Immer diese HTML-Architektur verwenden)

<!-- ABSCHNITTS-WRAPPER – jeder Abschnitt folgt diesem Muster -->
<section class="scene" data-scene="hero" style="--scene-height: 200vh">
  
  <!-- TIEFENEBENEN – immer mindestens 3+ Ebenen -->
  <div class="layer depth-0" data-depth="0" aria-hidden="true">
    <!-- Hintergrund: Verlauf, Textur, atmosphärisches PNG -->
  </div>
  
  <div class="layer depth-1" data-depth="1" aria-hidden="true">
    <!-- Leuchtblobs, Lichteffekte, atmosphärischer Dunst -->
  </div>
  
  <div class="layer depth-2" data-depth="2" aria-hidden="true">
    <!-- Mittlere Dekorationen, schwebende Formen -->
  </div>
  
  <div class="layer depth-3" data-depth="3">
    <!-- HAUPTRODUKT / HELDENBILD – Star der Show -->
    <img class="product-hero float-loop" src="product.png" alt="[Beschreibung]" />
  </div>
  
  <div class="layer depth-4" data-depth="4">
    <!-- TEXTINHALT – Überschriften, Fließtext, CTAs -->
    <h1 class="split-text" data-animate="converge">Deine Überschrift</h1>
  </div>
  
  <div class="layer depth-5" data-depth="5" aria-hidden="true">
    <!-- Vordergrundpartikel, Glitzer, Overlays -->
  </div>

</section>

→ Vollständiger Baukasten: assets/hero-section.html → Vollständiges CSS-System: assets/hero-section.css → Vollständige JS-Engine: assets/hero-section.js


Referenzdateien – Lese sie für vollständige Technikdetails

DateiWas ist drinWann lesen
references/asset-pipeline.mdAsset-Inspektion, Hintergrund-Beurteilungsregeln, Benutzerbenachrichtigungsformat, CSS-Knockout, GrößenänderungszieleIMMER – vor dem Coden ausführen
references/depth-system.md6-Ebenen-Tiefenmodell, CSS/JS-Implementierung, Unschärfe/SkalierungsformelnJedes Projekt – immer lesen
references/motion-system.md9 Scroll-Architekturmuster mit vollständigem GSAP-CodeBeim Erstellen von Scroll-Interaktionen
references/text-animations.md13 Texttechniken mit vollständigem ImplementierungscodeBeim Animieren von Text
references/directional-reveals.md8 "von oben/seiten geboren" Clip-Path-TechnikenWenn Abschnitte einen gerichteten Eintritt benötigen
references/inter-section-effects.mdFloating Product, GSAP Flip, Intersektion-ReiseWenn ein Produkt/Element über Abschnitte hinweg bestehen bleibt
references/performance.mdGPU-Regeln, will-change, IntersectionObserver-MusterImmer – nicht verhandelbare Regeln
references/accessibility.mdWCAG 2.1 AA, prefers-reduced-motion, ARIAImmer – nicht verhandelbar
references/examples.md5 vollständige Implementierungen aus der PraxisWenn der Benutzer eine ganze Seite benötigt

Proaktive Auslöser

Sprich diese Probleme OHNE Aufforderung an, wenn du sie im Kontext bemerkst:

  • Benutzer lädt JPEG-Produktbilder hoch → Markiere, dass JPEGs keine Transparenz haben können, biete an, den Asset-Inspektor auszuführen
  • Alle Assets sind gleich groß → Markiere Kompositions-Hierarchie-Problem, empfehle Helden + Begleitergrößen
  • Keine Tiefenzuweisungen erwähnt → Erinnere daran, dass jedes Element eine Tiefenstufe (0-5) benötigt
  • Benutzer wünscht "sanfte Animationen", aber keine reduzierte Bewegungsverarbeitung → Markiere Barrierefreiheitsanforderung
  • Parallaxe angefordert, aber keine Leistungsoptimierung → Markiere will-change- und GPU-Beschleunigungsregeln
  • Mehr als 80 animierte Elemente → Markiere Leistungsbedenken, empfehle Reduzierung oder Lazy-Loading

Ausgabe-Artefakte

Wenn du fragst nach...Erhältst du...
"Baue einen Hero-Abschnitt"Einzelne HTML-Datei mit Inline-CSS/JS, 6 Tiefenebenen, Asset-Prüfung, Technikliste
"Mach es cinematisch"Scrub-Timeline + Parallaxe + Textanimations-Kombination mit GSAP-Setup
"Inspiziere meine Bilder"Asset-Prüfbericht mit Hintergrundstatus, Tiefenzuweisungen, Größenänderungsempfehlungen
"Apple-ähnlichen Scrolleffekt"Wort-für-Wort-Beleuchtung + gepinnter Abschnitt + Perspektiven-Zoom-Implementierung
"Behebe Leistungsprobleme"Validierungsbericht mit GPU-Optimierungs-Checkliste und will-change-Prüfung

Kommunikation

Die gesamte Ausgabe folgt dem strukturierten Kommunikationsstandard:

  • Das Wichtigste zuerst – zeige die Asset-Prüfung und den Tiefenplan, bevor Code generiert wird
  • Was + Warum + Wie – jede Technikwahl erklärt (warum diese Animation für diese Stimmung)
  • Aktionen haben Besitzer – "Du musst transparente PNGs bereitstellen" nicht "PNGs sollten bereitgestellt werden"
  • Vertrauens-Tagging – 🟢 verifizierte Technik / 🟡 experimentell / 🔴 Browserunterstützung eingeschränkt

Kurzregeln (Nicht verhandelbar)

0a. ✅ IMMER die Asset-Inspektion vor dem Coden ausführen – jedes Bild auf Format, Hintergrund und Größe prüfen. Teile dem Benutzer die Tiefenzuweisungen vor dem Bauen mit. 0b. ✅ IMMER beurteilen, ob ein Hintergrund entfernt werden muss – nicht jedes Bild benötigt es. Informiere den Benutzer über den Status jedes Assets und hole eine Bestätigung ein, bevor du einen Hintergrund als Problem behandelst. Niemals automatisch entfernen, niemals stillschweigend ignorieren.

  1. ✅ Jeder Abschnitt hat mindestens 3 Tiefenebenen
  2. ✅ Jedes Textelement verwendet mindestens 1 Animationstechnik
  3. ✅ Jedes Projekt enthält prefers-reduced-motion-Fallback
  4. ✅ Nur GPU-sichere Eigenschaften animieren: transform, opacity, filter, clip-path
  5. ✅ Produktbildern wird standardmäßig immer Tiefe-3 zugewiesen
  6. ✅ Hintergrundbilder immer Tiefe-0 mit leichter Unschärfe
  7. ✅ Float-Loops auf jedem "Helden"-Element (6–14s, niemals vollständig statisch)
  8. ✅ Jedes dekorative Element erhält aria-hidden="true"
  9. ✅ Mobilgeräte erhalten reduzierte Effekte durch pointer: coarse-Erkennung
  10. ✅ will-change nach Abschluss der Animationen entfernen

Ausgabeformat

Liefere immer:

  1. Eine einzelne, in sich geschlossene HTML-Datei (Inline-CSS + JS), es sei denn, der Benutzer bittet um separate Dateien
  2. CDN-Importe für GSAP über jsDelivr:

…

[gekürzt für Übersetzung]

Verwandte Skills