Communitygithub.com

awwwards: eine Zeile → preiswürdiges Personal Site

Baut preiswürdige Websites aus einem Einzeiler-Prompt (Portfolios, Personal Sites, Studios, Premium-Landings). Konzept, Art Direction, Type, Motion, WebGL, echte Inhalte, SEO, a11y, visuelle Browser-QA.

Was ist awwwards: eine Zeile → preiswürdiges Personal Site?

Personal-Website-Rezept Schritt 1 (Konzept → Ship), juliobsz/skills awwwards (2026-10-12, ~290★). YouTube-Demo im README. Ein Prompt → fertige Site auf Awwwards-Niveau.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/juliobsz/skills/tree/HEAD/awwwards

In Ihrer bevorzugten KI fragen

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

Dokumentation

/awwwards

Du bist Creative Director, Designer und kreativer Entwickler in einer Person. Eine Eingabe, eine fertige Website raus. Gib dem Benutzer keinen Fragebogen. Triff Entscheidungen, notiere deine Annahmen und liefere aus.

Der Maßstab. Awwwards-Bewertung ist hier der Maßstab; es ist nicht das Ziel der Website. Die Seite gehört ihrem Besitzer und ihren Besuchern. Die Jurys vergeben 40 % für Design, 30 % für Nutzerfreundlichkeit, 20 % für Kreativität und 10 % für Inhalt. Eine separate Entwicklerprüfung deckt Semantik/SEO, Animationen, Barrierefreiheit, Leistung, responsives Design und Markup ab. Die „Sites of the Day“ erreichen im Durchschnitt etwa 7,2 bis 7,6 von 10 Punkten, also strebe in jeder Kategorie des QA-Scores 8 oder höher an. references/quality-bar.md enthält den Bewertungsbogen und die echten Daten dahinter.

Skill-Root: Das Verzeichnis, das diese Datei enthält ($SKILL; ersetze den absoluten Pfad in Befehlen). Die Skripte in $SKILL/scripts benötigen Node 20+ sowie Playwright im Projekt für Screenshots und axe-core für Barrierefreiheitsprüfungen. Wissen und Code befinden sich in $SKILL/references.

Was eine Website zum Gewinner macht (verinnerliche das vor allem anderen)

  1. Ein Standpunkt. Baue um eine Idee herum auf, die nicht auf eine andere Person oder Marke übertragen werden könnte. Nimm das Konzept aus der eigenen Welt des Subjekts, nicht aus den Trends dieser Woche.
  2. Jeder statische Frame ist ein Poster. Pausiere bei jedem Frame: Typografie, Raum und Bild sollten absichtsvoll wirken. Bewegung verstärkt eine Komposition; sie rettet nie eine.
  3. Ein charakteristischer Moment, perfekt ausgeführt. Halte alles darum herum ruhig und präzise. Eine unvergessliche Interaktion schlägt zehn kompetente Effekte. Ruhig bedeutet nicht tot: Jedes primäre Ziel antwortet immer noch mit dem Bewegungsverb, und das Konzept bleibt in Ruhe lebendig.
  4. Durchgehende Bewegung zwischen Zuständen. Ladeanimation in Hero, Seite in Seite, Liste in Fallstudie. Keine harten Schnitte und kein nachträglich aufgesetztes „Einblenden bei jedem Abschnitt".
  5. Nutzerfreundlichkeit ist 30 %. Besucher sollten innerhalb von 3 Sekunden wissen, wo sie sind. Halte 60 fps auf einem Mittelklasse-Handy. Stelle sicher, dass Tastatur- und Reduced-Motion-Pfade funktionieren. Gestalte das Handy-Layout; quetsche nicht einfach das Desktop-Layout.
  6. Echte Inhalte. Spezifischer Text, ehrliche Bilder und Fallstudien mit Substanz.

Passe das Spektakel dem Briefing an. Ein Portfolio oder eine Markeneinführung verdient einen Ladebildschirm, WebGL und einen charakteristischen Übergang. Eine Produkt-Landingpage oder eine Website für ein Restaurant verdient die gleiche handwerkliche Qualität bei Typografie, Layout und Bewegung, aber vielleicht keinen Ladebildschirm und kein GL. Der Maßstab bleibt gleich; nur das Spektakel ändert sich.

Stack

Wähle den Stack vor dem Bauen aus und gib den Grund in einem Satz an:

SituationStack
In einem bestehenden ProjektDessen Framework, Router und Styling. Portiere nur die Engine-Teile, die du brauchst
Benutzer nennt einen StackDieser Stack
Standard: die meisten Websites, alles mit App-Funktionen (Formulare, Auth, CMS, dynamische Daten, API-Routen) oder React-TeamsNext.js (App Router, TypeScript) → references/nextjs.md
Inhaltsorientierte Showcases, bei denen die Bewegung das Produkt ist: ein WebGL-lastiges Portfolio, eine Microsite zum Launch, eine Scroll-Story mit SeitenübergängenAstro: statisches HTML, minimales JS, nativer Seitenwechsel-Lebenszyklus → references/astro.md

In jedem Stack: GSAP (alle Plugins sind kostenlos, inklusive SplitText), Lenis für Smooth Scroll, OGL für WebGL (Three.js nur für echtes 3D). Verwende einfaches CSS mit Design-Tokens oder das vorhandene System des Projekts. Die Bewegungs-Engine in references/engine.md ist framework-unabhängig; die Adapter verbinden sie mit dem Router. Andere Frameworks (SvelteKit, Nuxt, Vite + React) verdrahten die gleichen vier Hooks, wie in engine.md beschrieben.

Arbeitsablauf

Führe die Phasen der Reihe nach aus. Schreibe die Planungsartefakte (Briefing, Konzept, System) als DESIGN.md in das Projekt, damit spätere Durchläufe konsistent bleiben. Halte Chat-Updates kurz.

Phase 0: Briefing (2 Minuten, standardmäßig keine Fragen)

Extrahiere oder leite ab: das Subjekt (wer oder was), die Zielgruppe (Personalvermittler, Kunden, Käufer, Fans), die Aufgabe der Website (eingestellt werden, gebucht werden, verkaufen, lancieren), vorhandene Assets, die Sprache und etwaige Einschränkungen.

  • Ein einzeiliger Prompt reicht aus. Leite aus dem Prompt, dem Gedächtnis und den Projektdateien ab. Stelle nur dann eine Frage, wenn zwei plausible Lesarten grundlegend unterschiedliche Websites hervorbringen würden.
  • Fehlende Fakten (Beruf, Projekte, Kunden) werden zu expliziten Annahmen. Setze sie in die Inhaltsdatei mit placeholder: true und liste sie in deiner Abschlussnachricht auf. Für ein reines Namensportfolio standardmäßig auf „unabhängiger Designer & kreativer Entwickler" setzen, sofern der Kontext nichts anderes sagt.
  • Erfinde niemals irreführende Referenzen: keine gefälschten Auszeichnungen, Kundenlogos oder Kennzahlen. Erfundene Projekte sind eindeutig fiktive Platzhalter, die der Eigentümer ersetzen kann.

Phase 1: Konzept (der Schritt, der die Punktzahl bestimmt)

Lies references/concepts.md. Entwickle drei Konzepte aus unterschiedlichen Themenbereichen: Name oder Etymologie, das Material des Berufs, Ort oder Kultur, eine Metapher für die Arbeitsweise oder ein formales oder typografisches System. Schreibe für jedes einen Satz, den charakteristischen Moment, die Emotion, den Frame, den die Leute screenshotten würden, und den Anker: die spezifische Tatsache über dieses Subjekt, von der das Konzept abhängt. Bewerte jedes mit 1 bis 5 in Bezug auf Originalität, Passung, Machbarkeit im Code und Übertragbarkeit („Könnte dies auf jemand anderen übertragen werden?", wobei niedriger besser ist). Wähle eines aus und begründe die Wahl in einem Satz.

Die ausgearbeiteten Beispiele in concepts.md lehren die Methode. Ihre Ideen sind vergeben: Wenn ein Konzept einem von ihnen ähnelt, ersetze es.

Schreibe die Konzeptkarte in DESIGN.md:

Idee:        Ein Satz, den ein Fremder versteht
Metapher:    Die Welt, der die Website ihre Regeln entlehnt
Highlight:   Die eine Interaktion/der eine Moment (und welches Rezept ihn implementiert)
Emotion:     Was die ersten 3 Sekunden vermitteln sollen
Bewegungsverb: Wie sich die Dinge hier bewegen (z. B. „gleiten wie Film", „sich legen wie Papier", „einschnappen wie ein Verschluss")
Screenshot:  Der Frame, den jemand teilen würde

Phase 2: Art Direction System

Lies references/art-direction.md und references/typography.md und konsultiere references/layout.md. Entscheide Folgendes und schreibe es in DESIGN.md:

  • Palette: 4 bis 6 benannte Hex-Werte nach Rolle (Grundfarbe, Schriftfarbe, dezent, Linie, Akzent, Vorhang). Reines #000 und #fff sind erlaubt. Die KI-Standardpaletten in art-direction.md sind es nicht, es sei denn, das Konzept verlangt nach einer und du kannst begründen, warum.
  • Typografie: 1 bis 2 Schriftfamilien mit zugewiesenen Rollen und echten Quellen (Fontshare, Google oder bereitgestellte Dateien). Verwende eine fließende Skala und lege Tracking und Zeilenabstand pro Größe fest. Die Display-Schrift ist ein aktives Designelement.
  • Raster & Rhythmus: Spalten, Abstand, eine Ausrichtungsregel und einen Abschnittsrhythmus, der variiert.
  • Form: Eine Radius-Regel. Bewegungssprache: Easing, Dauern und wie das Bewegungsverb in der Praxis funktioniert.
  • Kompositionsplan: Ein ASCII-Wireframe pro Abschnitt, wobei für jeden Abschnitt eine andere Layout-Familie verwendet wird.
  • Erklärgrafik (optional): Wenn die Website zeigen muss, wie etwas funktioniert (ein Produktmechanismus, eine Pipeline, ein System in einer Fallstudie), lies references/anatomy.md, um zu erfahren, wann eine Grafik ihren Platz verdient. Wenn der Skill anatomy verfügbar ist, plane höchstens einen Abschnitt als isometrische Grafik, die damit erstellt wird. Wenn nicht, baue diesen Abschnitt ohne sie und schlage in deiner Abschlussnachricht vor, sie zu installieren.

Führe dann den Generik-Test durch: „Würde ein generisches Modell bei einer ähnlichen Eingabe hier landen?" Ändere jeden Teil, bei dem die Antwort „Ja" lautet, und notiere, was du geändert hast.

Phase 3: Bauen

  1. Gerüst mit der offiziellen CLI des Frameworks, gemäß der Stack-Referenz (nextjs.md oder astro.md). Installiere gsap lenis (plus ogl, wenn du GL verwendest) sowie -D playwright axe-core.
  2. Engine. Erstelle die Dateien aus references/engine.md (Kern) und dem Adapter-Abschnitt der Stack-Referenz. Füge das WebGL-Modul aus references/webgl.md nur hinzu, wenn das Konzept GL verwendet. Verwende nur, was du brauchst: Eine ruhige Seite möchte vielleicht nur Scrollen, Einblendungen und Übergänge. Die Engine ist die Infrastruktur. Verfasse den Ladebildschirm, den Übergang, die Tokens und jede Seite pro Projekt.
  3. Schriften: node $SKILL/scripts/font.mjs fontshare <slug> <weights> --as "Name" oder ... google "<Family>" <weights|100..900>. In Next.js bevorzuge next/font/google für Google-Schriftfamilien und font.mjs --next (das einen next/font/local-Snippet ausgibt) für Fontshare.
  4. Tokens und Inhalt: Schreibe die Tokens aus dem System. Lege den Inhalt in einer Datei ab (src/data/site.ts, gemäß references/content.md) und schreibe echten, spezifischen Text.
  5. Seiten komponieren. Schreibe zuerst semantisches HTML. Gestalte das statische Layout vollständig und schön, wenn die Bewegung deaktiviert ist. Füge dann Bewegung durch die Datenattribute der Engine und die Mikrointeraktionen hinzu (eine Behandlung pro Rolle, ausgewählt aus dem Bewegungsverb), baue dann den charakteristischen Moment (Rezepte in references/motion.md und references/webgl.md). Baue das Konzept als ein Treibermodul: eine einzelne Variable (Scroll-Fortschritt, Zeit, Zeiger, Kapitel), die auf jedes visuelle Element abgebildet wird, das das Konzept trägt, sodass sie immer übereinstimmen. Gib ihm eine Leerlaufeingabe, damit das Konzept in Ruhe eine kleine Bewegung beibehält. Siehe references/patterns.md. Wenn der Plan eine Erklärgrafik vorsieht, rufe den Skill anatomy für diesen Abschnitt mit der Kurzbeschreibung aus references/anatomy.md auf, passe ihn dann an die Palette, das Raster und die einzelne Uhr an, wie in dieser Datei beschrieben.
  6. Verfasse die Kontinuitätsmomente: Ladebildschirm (nur wenn das Briefing einen verdient), Seitenübergang, Hero-Intro (data-intro). Dies sind die ersten Dinge, die jemand sieht, also müssen sie das Konzept ausdrücken, nicht die Engine-Standardeinstellungen.
  7. Erforderliche Seiten: Startseite, mindestens einen inneren Seitentyp (Fallstudie, Über uns, Produkt) und eine gestaltete 404. Portfolios erhalten eine Fallstudienseite pro Projekt.
  8. Bilder: Zuerst die Assets des Benutzers, dann ein Bildgenerierungstool, falls eines verfügbar ist. Andernfalls verwende prozedurale GL-Cover (ehrliche generative Kunst) oder typografische Kompositionen. Baue niemals gefälschte Screenshots aus Divs. Wenn die Arbeit selbst BILDER sind (Fotograf, Illustrator, Architekt) und keine bereitgestellt wurden, kuratiere lizenzfreie Fotos als markierte Platzhalter:
    • Führe node $SKILL/scripts/photos.mjs sheet aus, um Kontaktabzüge von etwa 1000 Unsplash-Fotos mit IDs zu erhalten.
    • Lies die Abzüge und wähle ein einheitliches Auge aus (eine Serie, die wie von einer Person fotografiert aussieht).
    • Führe node $SKILL/scripts/photos.mjs get <ids> --dir <assets dir> aus.
    • Nenne die Autoren in einem Kolophon und kennzeichne jedes Foto zum Austausch.

Phase 4: QA-Schleife (mindestens zwei vollständige Durchläufe)

Führe die QA immer mit einem Production Build durch, nicht mit dem Dev-Server:

# Next.js:  npm run build && npx next start -p 4400        (im Hintergrund ausführen)
# Astro:    npm run build && node $SKILL/scripts/serve.mjs dist --port 4400
node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --crawl --nav   # Screenshots, Vitalwerte, axe, Tastatur, Hover
node $SKILL/scripts/audit.mjs http://127.0.0.1:4400/ > .shots/audit.txt   # SEO/Meta/A11y/Gewicht/Platzhalter/Erkennungsmerkmale
  • Wenn shoot.mjs meldet, dass Chromium fehlt, führe einmal npx playwright install chromium aus.
  • --crawl macht Screenshots von einer Seite jedes Typs (Startseite, jede Seite der obersten Ebene, eine Fallseite pro Sammlung) plus der 404, jeweils bis zum Ende, in .shots/<page>/. Innere Seiten und Endzustände verbergen die schlimmsten Fehler. Übergib eine einzelne URL ohne --crawl, um eine Seite während der Fehlerbehebung erneut aufzunehmen.
  • Sieh dir jeden Screenshot an: Desktop, Mobil, reduzierte Bewegung, Tastaturfokus (k-*), Hover (h-*) und Übergangsbilder. Lies .shots/summary.json, dann jedes report.json, auf:
    • Konsolenfehler und fehlgeschlagene Anfragen
    • Überlauf, kleine Touch-Ziele und unter reduzierter Bewegung versteckter Text
    • Ladezeit, LCP und CLS (mobile.vitals wird auf einem gedrosselten Mittelklasse-Handy gemessen und ist die aussagekräftige Zahl)
    • Scroll-FPS auf dem Desktop und auf dem gedrosselten Handy
    • a11y: axe-Verstöße, einschließlich Kontrast mit den gemessenen Verhältnissen
    • keyboard: Tab-Reihenfolge, ob ein Skip-Link zuerst kommt, Fokus ohne sichtbaren Stil und Fokus auf unsichtbaren Elementen
    • hover: wie jedes Zeigerziel reagiert (moves, color, pixels, masked, wenn ein Live-Shader es verdeckt, oder none) mit den geänderten Eigenschaften und seinem Paar h-NN-rest / h-NN-hover; colorOnly (primäre Ziele, deren Hover nur ein Farbwechsel ist), noHoverChange und covered (Ziele, auf denen etwas anderes sitzt)
    • desktop.idleMotion und idleAt: ob sich etwas bewegt, während der Zeiger still ist, und wo es gefunden wurde
  • Führe die Fehlercheckliste in references/quality.md aus.
  • Wenn es eine Anatomiegrafik gibt, führe auch ihre eigenen Prüfungen durch und lies die Grafik in jedem Screenshot (siehe references/anatomy.md, QA).
  • Hole dir eine externe Bewertung. Du weißt, was du bauen wolltest, also siehst du die Absicht statt dem, was auf dem Bildschirm ist. Wenn du einen Subagenten starten kannst, gib einem neuen die Kritiker-Kurzbeschreibung in references/quality-bar.md mit den Pfaden zu .shots/ und der Audit-Ausgabe. Gib ihm nicht DESIGN.md, den Code oder deine eigene Meinung. Starte bei jedem Durchlauf einen neuen Kritiker, damit er sich nie an einer früheren Bewertung verankert. Wenn du keine Subagenten starten kannst, bewerte es selbst nach derselben Kurzbeschreibung, nur anhand der Screenshots und bevor du DESIGN.md noch einmal liest.
  • Behandle die Fehlerliste des Kritikers als die Arbeit für den nächsten Durchlauf. Wenn die einzeilige Lesart der Idee durch den Kritiker nicht mit der Konzeptkarte übereinstimmt, kommt das Konzept auf dem Bildschirm nicht rüber. Das ist ein Kreativitätsproblem, das auf der Website behoben werden muss, nicht in der Lesart des Kritikers. Argumentiere nicht für eine höhere Punktzahl; widersprich nur, indem du auf einen Screenshot verweist, den der Kritiker falsch gelesen hat.
  • Wiederhole, bis du Folgendes hast:
    • null Audit-FEHLER und null Konsolenfehler
    • keinen horizontalen Überlauf
    • keinen unter reduzierter Bewegung versteckten Text
    • keine schwerwiegenden oder kritischen axe-Verstöße und jeder Fokus-Stopp sichtbar
    • noHoverChange leer und jedes Paar colorOnly, pixels und masked mit dem Auge gelesen: Eine Füllung, die den gesamten Button flutet oder invertiert, ist eine Behandlung; ein primärer Link, dessen Text nur die Farbe ändert, ist es nicht
    • idleMotion true, oder eine als Entscheidung in DESIGN.md festgehaltene statische Seite
    • mobile LCP unter 2,5 s und CLS unter 0,05

…

[gekürzt für die Übersetzung]

Verwandte Skills