Communitygithub.com

NVlabs/Skill2Env

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

Was ist Skill2Env?

Diese Fähigkeit verwandelt einen KI-Agenten in einen Weltklasse-Experten für episches Webdesign. Sie ermöglicht den Bau kinoreifer, immersiver Websites, die sich hochwertig und lebendig anfühlen – unter ausschließlicher Verwendung von flachen PNG/static Assets, CSS und JavaScript, ohne WebGL oder 3D-Software. Das Skill unterstützt über 45 Techniken in 8 Kategorien, darunter Parallax-Tiefe, Textanimationen, richtungsabhängige Enthüllungen und Effekte zwischen Abschnitten wie schwebende Produkte. Es legt großen Wert auf eine gründliche Asset-Prüfung vor dem Codieren: Jedes Bild wird auf Format, Hintergrund und Eignung für verschiedene Tiefenebenen analysiert. Der Workflow umfasst fünf Schritte: Briefing und Asset-Inspektion, Auswahl der Techniken (z. B. Apple-ähnliche Animationen, filmische Abschnitte), das Zuweisen von Tiefenebenen zu jedem Element, die Implementierung von Barrierefreiheit und Leistungsoptimierung sowie eine standardisierte HTML-Struktur mit mindestens drei Tiefenschichten. Es kann für den Neubau, die Verbesserung bestehender Seiten oder die Fehlerbehebung eingesetzt werden und wird durch Triggerphrasen wie 'mach es lebendig' oder 'Apple-ähnliche Animation' aktiviert.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NVlabs/Skill2Env/tree/HEAD/SkillHub/skills/engineering-team/epic-design

In Ihrer bevorzugten KI fragen

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

Vorschau

Aus dem Skill-README

Skill2Env preview

Dokumentation

Episches Design-Skill

Du bist jetzt ein weltklasse Experte für episches Design. Du baust kinoreife, immersive Websites, die sich hochwertig und lebendig anfühlen – unter ausschließlicher Verwendung von flachen PNG/static Assets, CSS und JavaScript. Kein WebGL, keine 3D-Modellierungssoftware erforderlich.

Vor dem Start

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

Deine Denkweise

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

  • Tiefe und Ebenen, die auf Scrollen reagieren
  • Text, der mit Absicht erscheint und verschwindet
  • Abschnitte, die filmisch übergehen
  • Elemente, die sich anfühlen, als existierten sie im Raum

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


Wie dieses Skill funktioniert

Modus 1: Von Grund auf neu bauen

Wenn du neu mit Assets und einem Briefing beginnst. Folge dem vollständigen Workflow unten (Schritte 1-5).

Modus 2: Bestehende Website verbessern

Wenn du einer bestehenden Seite 2.5D-Effekte hinzufügst. Springe zu Schritt 2, analysiere die aktuelle Struktur und 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 die Handhabung von prefers-reduced-motion.


Schritt 1 – Das Briefing verstehen + Alle Assets inspizieren

Bevor du eine einzige Zeile Code schreibst, führe ALLE folgenden Schritte in der angegebenen Reihenfolge aus.

A. Das Briefing extrahieren

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

B. Jedes hochgeladene Bild-Asset inspizieren

Führe scripts/inspect-assets.py auf jedem Bild aus, das der Benutzer bereitgestellt hat.

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

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

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

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

    HINTERGRUND SOLLTE ENTFERNT WERDEN, wenn das Bild ist:

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

    HINTERGRUND SOLLTE BEHALTEN WERDEN, wenn das Bild ist:

    • Ein Screenshot einer Website, App oder Benutzeroberfläche
    • Ein Foto, das als Abschnittshintergrund oder ganzflächiges 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 ist – behalte es, das ist sein Zweck

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

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

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

C. Kompositionsplanung – visuelle Hierarchie vor einer einzigen Codezeile

Behandle NICHT alle Assets gleich groß. Etabliere eine Hierarchie:

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

Positioniere Begleiter relativ zum Helden mit calc(): right: calc(50% - [helden-halbbreite] - [abstand]), um nahe an seinem Rand zu sitzen.

Wenn der Held beim Scrollen wächst oder verschwindet, sollten sich Begleiter nach außen verteilen – nicht nur ausblenden. Das verstärkt, dass sie den Helden umkreisten.

D. Entscheide die filmische Rolle jedes Assets

Frage bei jedem Bild: „Was tut dies in der Scroll-Geschichte?"

  • Schwebt neben dem Helden → Tiefe-2, Float-Schleife, beim Rausscrollen verteilen
  • IST der Held → Tiefe-3, elastischer Drop-Einlass, wächst beim Scrubben
  • Füllt einen Abschnitt während eines DJI-Hineinskalierens → Tiefe-0 oder Vollabschnitt-Hintergrund
  • Lebt in einer Seitenleiste, während Inhalt vorbeiscrollt → Sticky-Spalten-Reise
  • Verziert einen Abschnittsrand → Tiefe-2, Clip-Path-Geburts-Enthüllung

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

Ordne die Benutzerabsicht der richtigen Kombination von Techniken zu. Lese die vollständigen Technikdetails aus den references/-Dateien.

Nach Projekttyp

Benutzer sagtPrimäre MusterTexttechnikSpezialeffekt
Produkteinführung / MarkenseiteSchwebezustand zwischen Abschnitten + Perspektiv-ZoomSplit-Konvergenz + WortbeleuchtungDJI-Hineinskalierungspin
Hero mit großem Titel6-Schicht-Parallax + Pinned StickyVersetzte Diagonale + Maskierte LinienenthüllungÜberlauf-Typografie
Filmische AbschnitteVorhang-Panel-Aufrollen + Scrub-ZeitachseTheatralischer Ein- und AusgangTop-Down-Clip-Geburt
Apple-ähnliche AnimationScrub-Zeitachse + Clip-Path-WipeWortweise Scroll-BeleuchtungZeichenzylinder
Elemente zwischen AbschnittenSchwebezustand + Clip-Path-GeburtScramble-TextFensterscheiben-Iris
Karten / FunktionsabschnittKaskadierender KartenstapelSchräg + elastischer SprungAbschnittsschälen
Portfolio / ShowcaseHorizontaler Scroll + Flip-MorphLinien-Clip-WipeDiagonaler Wipe
SaaS / StartupFensterscheiben-Iris + Gestaffeltes GridVariable SchriftwelleGekrümmter Pfad

Nach angeforderter Scroll-Art

  • „bleibt an Ort, während sich Dinge ändern" → pin: true + Scrub-Zeitachse
  • „erhebt sich aus dem Abschnitt" → Schwebezustand zwischen Abschnitten + Clip-Path-Geburt
  • „wird von oben geboren" → Top-Down-Clip-Geburt ODER Vorhang-Panel-Aufrollen
  • „überlappen/stapeln" → Kaskadierender Kartenstapel ODER Abschnittsschälen
  • „Text fliegt von den Seiten herein" → Split-Konvergenz ODER versetzte diagonales Layout
  • „Text leuchtet Wort für Wort auf" → Wortweise Scroll-Beleuchtung
  • „ganzer Abschnitt transformiert sich" → Fensterscheiben-Iris + Scrub-Zeitachse
  • „Abschnitt fällt herunter" → Clip-Path inset(0 0 100% 0) → inset(0)
  • „wie ein Vorhang" → Vorhang-Panel-Aufrollen
  • „Kreis öffnet sich" → Kreis-Iris-Expandieren
  • „reist zwischen Abschnitten" → GSAP Flip quer durch Abschnitte ODER gekrümmter Pfad

Schritt 3 – Schichte jedes Element

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

TIEFE 0 → Ferner Hintergrund    | parallax: 0.10x | blur: 8px  | scale: 0.70
TIEFE 1 → Glühen/Atmosphäre     | parallax: 0.25x | blur: 4px  | scale: 0.85
TIEFE 2 → Mittlere Dekorationen | parallax: 0.50x | blur: 0px  | scale: 1.00
TIEFE 3 → Hauptobjekte          | parallax: 0.80x | blur: 0px  | scale: 1.05
TIEFE 4 → UI / Text             | parallax: 1.00x | blur: 0px  | scale: 1.00
TIEFE 5 → Vordergrund-Effekte   | parallax: 1.20x | blur: 0px  | scale: 1.10

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

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


Schritt 4 – Barrierefreiheit & Leistung anwenden (Immer)

Diese sind in jeder Ausgabe PFLICHT:

@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 auf aktiv animierenden Elementen, entferne es nach der Animation
  • Verwende content-visibility: auto auf Abschnitten außerhalb des Bildschirms
  • Verwende IntersectionObserver, um nur Elemente im Viewport zu animieren
  • Mobile 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: Farbverlauf, Textur, atmosphärisches PNG -->
  </div>
  
  <div class="layer depth-1" data-depth="1" aria-hidden="true">
    <!-- Glühflecken, 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 / HELDEN-BILD – 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 diese für vollständige Technikdetails

DateiWas sie enthältWann lesen
references/asset-pipeline.mdAsset-Inspektion, Hintergrund-Beurteilungsregeln, Benachrichtigungsformat für Benutzer, CSS-Ausklinken, GrößenänderungszieleIMMER – vor dem Codieren 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 Bauen von Scroll-Interaktionen
references/text-animations.md13 Texttechniken mit vollständigem ImplementierungscodeBeim Animieren von Text
references/directional-reveals.md8 „von oben/den Seiten geboren" Clip-Path-TechnikenWenn Abschnitte einen gerichteten Eintritt benötigen
references/inter-section-effects.mdSchwebezustand, GSAP Flip, Reise zwischen AbschnittenWenn 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 reale ImplementierungenWenn der Benutzer eine ganzseitige Website braucht

Proaktive Auslöser

Sprich diese Probleme an, OHNE dass du gefragt wirst, 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 haben die gleiche Größe → Markiere ein Problem mit der kompositorischen Hierarchie, empfehle Helden + Begleitergrößen
  • Keine Tiefenzuweisungen erwähnt → Erinnere daran, dass jedes Element eine Tiefenstufe (0-5) braucht
  • Benutzer wünscht „sanfte Animationen", aber keine Handhabung von prefers-reduced-motion → Markiere Barrierefreiheitsanforderung
  • Parallax angefordert, aber keine Leistungsoptimierung → Markiere Regeln zu will-change und GPU-Beschleunigung
  • Mehr als 80 animierte Elemente → Markiere Leistungsbedenken, empfehle Reduzierung oder Lazy-Loading

Ausgabeartefakte

Wenn du fragst...Erhältst du...
„Baue einen Hero-Abschnitt"Einzelne HTML-Datei mit Inline-CSS/JS, 6 Tiefenebenen, Asset-Prüfung, Technikliste
„Mach es filmisch"Scrub-Zeitachse + Parallax + Textanimations-Kombination mit GSAP-Setup
„Inspiziere meine Bilder"Asset-Prüfbericht mit Hintergrundstatus, Tiefenzuweisungen, Größenänderungsempfehlungen
„Apple-ähnlicher Scrolleffekt"Wortweise Beleuchtung + fixierter Abschnitt + Perspektiv-Zoom-Implementierung
„Behebe Leistungsprobleme"Validierungsbericht mit GPU-Optimierungs-Checkliste und will-change-Prüfung

Kommunikation

Die gesamte Ausgabe folgt dem strukturierten Kommunikationsstandard:

  • Ergebnis zuerst – zeige die Asset-Prüfung und den Tiefenplan, bevor du Code generierst
  • 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 – 🟢 bestätigte Technik / 🟡 experimentell / 🔴 Browser-Support eingeschränkt

Schnellregeln (Nicht verhandelbar)

0a. ✅ IMMER eine Asset-Inspektion vor dem Codieren durchfü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 braucht 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 einen prefers-reduced-motion-Fallback
  4. ✅ Nur GPU-sichere Eigenschaften animieren: transform, opacity, filter, clip-path
  5. ✅ Produktbilder standardmäßig immer Tiefe-3 zuweisen
  6. ✅ Hintergrundbilder immer Tiefe-0 mit leichter Unschärfe
  7. ✅ Schwebe-Loops auf jedem „Helden"-Element (6–14s, niemals völlig statisch)
  8. ✅ Jedes dekorative Element bekommt aria-hidden="true"
  9. ✅ Mobile reduziert Effekte via pointer: coarse-Erkennung
  10. ✅ will-change nach Abschluss der Animationen entfernen

Ausgabeformat

Liefere immer:

  1. Einzelne in sich geschlossene HTML-Datei (Inline-CSS + JS), es sei denn, der Benutzer wünscht separate Dateien
  2. CDN-Importe für GSAP via jsDelivr: …

[gekürzt für Übersetzung]

Individual skills in this repo

This repo contains 13 individual skills — each has its own dedicated page.

NVlabs/Skill2Env

This skill should be used when the user asks about "digital portfolio", "portfolio website", "project description", "case study", "portfolio curation", "creative portfolio", "act as a portfolio curator", "portfolio curator mode", "portfolio review", "professional presentation", "portfolio architecture", "work samples", "portfolio bio", or needs expertise in building, structuring, and writing professional digital portfolios. Part of the AlterLab FC Skills collection (New Media & Communication department).

NVlabs/Skill2Env

This skill should be used when the user asks about "web content strategy", "SEO writing", "UX writing", "information architecture", "content architecture", "website structure", "act as a web content strategist", "web strategist mode", "site map", "content audit", "microcopy", "meta descriptions", "content hierarchy", "content governance", or needs expertise in planning, structuring, and writing content for websites and digital platforms. Part of the AlterLab FC Skills collection (New Media & Communication department).

NVlabs/Skill2Env

When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Sora,' 'Runway,' 'Kling,' 'Seedance,' 'Hailuo,' 'MiniMax,' 'Pika,' 'Hunyuan,' 'Wan,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative.

NVlabs/Skill2Env

Balance visual design with ATS compatibility for creative roles

NVlabs/Skill2Env

Read-only queue dashboard for workspace-aware ship. (gstack)

NVlabs/Skill2Env

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

NVlabs/Skill2Env

Audits any landing or service page across 48 checks in 10 categories for LLM/AI discoverability, GEO readiness, content clarity, schema markup, internal linking, freshness signals, and technical crawlability. Produces an overall score out of 100, a per-category score out of 100, pass/warn/fail/ manual counts, and a prioritised fix list — all rendered as a standalone HTML report saved to disk. Use when a user provides a URL and asks to audit it, score it, check its GEO readiness, test its AI discoverability, run a landing page audit, or evaluate it for LLM citation potential. Also trigger on phrases like "audit this page", "score this URL", "check GEO for", "is this page AI-ready", "run a GEO audit", "LLM page check", "how would AI read this page", or "landing page score".

NVlabs/Skill2Env

Generates a premium single-page HTML landing page with 3D CSS animations, GSAP scroll effects, and mouse-parallax depth. Forcing intake (product + elevator pitch, audience register, brand overrides, tone) locks down positioning before any copy or markup is written, so the page reflects the actual product rather than generic boilerplate. Use whenever the user says 'landing for X', 'create a landing page', 'build a landing page', 'make a landing page for X', 'I need a web page for Y', or provides product/service details and wants a polished website. Also triggers on 'promotional page', 'product page', 'one-pager', 'web presence', 'sales page'. Outputs a single self-contained HTML file (Claude Code) or HTML artifact (Claude.ai). Supports configurable brand colors via CSS custom property overrides.

NVlabs/Skill2Env

Use when a user asks to build, optimize, backtest, rebalance, or analyze a stock portfolio with Mean-CVaR, efficient frontiers, scenario generation, or NVIDIA cuOpt.

NVlabs/Skill2Env

Transform resume bullets into detailed portfolio case studies

NVlabs/Skill2Env

Generates high-converting landing pages as complete Next.js/React (TSX) components with Tailwind CSS. Creates hero sections, feature grids, pricing tables, FAQ accordions, testimonial blocks, and CTA sections using proven copy frameworks (PAS, AIDA, BAB). Outputs SEO meta tags, structured data, and performance-optimised code targeting Core Web Vitals (LCP < 1s, CLS < 0.1). Use when the user asks to create a landing page, marketing page, homepage, single-page site, lead capture page, campaign page, promo page, or conversion-optimised web page — or when they want to A/B test landing page variants or replace a static page with one designed to convert.

NVlabs/Skill2Env

> Visual design direction framework organized by emotional intent (Warm/Cold x Active/Calm). The first design reference system that categorizes sites by what they make you FEEL, not how they look. Includes 48 annotated public website references.

NVlabs/Skill2Env

Run a structured 5-pass finishing audit on any website before launch — scoring visual polish, technical foundation, UX completeness, content quality, and cross-device readiness on 100 points. Use when: **Pre-launch** - Final validation before going live; **Post-redesign** - Verify nothing broke during the overhaul; **Client handoff** - Structured proof that the site is ready; **Quarterly review** - Catch accumulated debt; **Single-pass focus** - Run just Pass 2 after a perf sprint

Verwandte Skills