Communitygithub.com

lixyd/portal-ui

Entwirft oder überarbeitet eine persönliche Projekt-Startseite: mehrere echte Arbeiten, ein Live-Gerät, kein Fake-Blog und keine fremden Projekte im Arbeitsraster. Verwende es, wenn der Benutzer sagt: 个人主页, 项目主页, 博客首页, portal, portfolio home, oder wenn er Navigation, Autorenschaft, Ornamente, Bewegung oder Teilen-Markierungen auf einer solchen Seite reparieren möchte. Verwende /portal-ui. Eine einzelne Angebotsseite liegt außerhalb des Rahmens.

Was ist portal-ui?

Portal UI ist eine professionelle Fähigkeit für KI-Agenten (wie Claude Code, Cursor, Codex), die sich auf die Gestaltung und Überarbeitung persönlicher Projekt-Startseiten (Portale) spezialisiert hat. Es unterscheidet sich bewusst von einfachen Landing-Pages: Ein Portal präsentiert mehrere echte Arbeiten eines Entwicklers, ein echtes Live-Gerät (z. B. ein Terminal, ein laufendes Projekt) und ein klares Autorenprofil – ohne Fake-Blogs, geborgte Projekte oder unnötige visuelle Spielereien. Die Fähigkeit legt strenge Designregeln fest, die auf den Stilrichtlinien von „Leonxlnx/taste-skill” und „elayadesign/ai-design-skills” basieren, aber für Portale eine eigene, höhere Priorität haben. Sie definiert eine klare Seitenstruktur (erster Bildschirm, eigene Arbeit, optionale Live-Liste, Anleitungen, Dokumente, Footer) und erzwingt eine reduktionistische Ästhetik: keine Textverläufe, Glasleisten, Scanlines, animierten Grids, Glüheffekte oder Emojis in Überschriften. Animationen sind auf `transform` und `opacity` beschränkt, verwenden einen benutzerdefinierten Cubic-Bezier und respektieren die `prefers-reduced-motion`-Einstellung. Zusätzlich enthält Portal UI technische Anforderungen für Barrierefreiheit (Skip-Link, sichtbare `:focus-visible`, Alt-Texte, zugänglicher Name für das Live-Gerät), korrekte Open Graph- und Twitter-Card-Metadaten sowie eine lokale Überprüfung (ein Node.js-Skript prüft die HTML- und CSS-Dateien). Die Fähigkeit ist plattformunabhängig und kann in jedem Texteditor, IDE oder KI-Agenten verwendet werden, der Markdown lesen und ausführen kann.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lixyd/portal-ui/tree/main

In Ihrer bevorzugten KI fragen

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

Dokumentation

Portal UI

Ein Portal erfüllt mehrere Absichten. Eine Landing Page gewinnt eine einzige. Wenn die Seite ein Angebot und eine Handlung hat, stoppe und verwende eine Landing-Page-Fähigkeit. Diese Datei ist die Entscheidungsebene für die eigene Arbeit einer Person.

Zwei Quellen legen die Standardwerte fest, die diese Datei nicht wiederholt. Visuelle Kleidungsverbote folgen Leonxlnx/taste-skill (MIT). Abstände, Fokus und Bewegungs-Timing folgen elayadesign/ai-design-skills landing-page-design (MIT) nur dort, wo diese Datei sie benennt. Wenn diese beiden bei einem Portal in Konflikt geraten, gewinnt diese Datei.

Idee

Schreibe einen Satz, bevor du etwas bearbeitest:

Auf dieser Seite wird [ein Artefakt, das es nur hier gibt] zu [dem einen Live-Gerät].

Das Terminal, das laufende Projekt oder die echte Schnittstelle zählt. Ein Scanline, ein Neon-Gitter oder „SYS.ONLINE” zählt nicht: Der gleiche Satz funktioniert für jeden Entwickler. Behalte ein Live-Gerät. Es muss mit einem Daumen funktionieren, einen No-Script-Fallback haben und darf niemals die Arbeit blockieren.

Markiere ein echtes Schnittstellenfragment mit data-ui. Monospace bleibt innerhalb dieses Fragments, innerhalb von pre/code und bei tabellarischen Abbildungen.

Seitenreihenfolge

  1. Erster Bildschirm: Wer das ist, was sie machen, das Live-Gerät. Ein h1, zwei Zeilen oder weniger bei jeder Breite. Ein Satz darunter, der sagt, was zu tun ist.
  2. Eigene Arbeit, mit dem echten Bild oder Clip. Die Software von jemand anderem ist ein Leitfaden. Nenne den Autor in der Leitfaden-Zeile. Setze sie nicht in das Arbeitsraster.
  3. Optionale Live-Liste (ein Feed, eine Rangliste), wenn sie tatsächlich abgerufen wird.
  4. Leitfäden: Wie man das Werkzeug benutzt, in einem Satz. Sternanzahlen sind zweitrangig und können sich selbst aktualisieren.
  5. Dokumente, die bereits existieren. Betiteln die Website nicht mit einem Abschnitt, der keine Dokumente hat. Ein versprochener Blog erhält eine echte Liste, oder das Wort verschwindet aus dem Titel.
  6. Fußzeile: Name, Kontakt und jedes bezahlte oder Support-Angebot. Das Support-Angebot ist kein gleichwertiger Bestandteil der Arbeit.

Jeder Eintrag in der Navigation hat eine Überschrift und ein echtes Ziel. Das Telefon-Layout behält diese Navigation. Wenn die Leiste unterhalb eines Breakpoints verschwindet, füge ein Steuerelement hinzu, das ein vollhohes flaches Panel öffnet. Links erscheinen in Lesereihenfolge, 60 ms Abstand, insgesamt unter 400 ms. Der Panel-Hintergrund ist der Seitenhintergrund, kein Weichzeichner.

Visuelle Einschnitte

Entferne diese, bevor du etwas hinzufügst: Textverläufe, Glasleisten, Scanlines, animierte Gitter, konische Ränder, Glüheffekte, Emojis in Überschriften, Indexnummern (01 //), Pill-Badges über der Schlagzeile und mehr als einen Umgebungseffekt hinter der Arbeit.

Behalte den vorhandenen Hintergrund, die Tinte und eine Akzentfarbe, wenn die Seite sie bereits hat. Führe kein zweites Display-Gesicht ein. Die Schriftstärke bleibt bei 700 oder darunter.

Bewegung verwendet cubic-bezier(0.22, 1, 0.36, 1). Animiere nur transform und opacity. Zeige jeden Abschnitt einmal mit IntersectionObserver an. Ein Scroll-Listener, der existieren muss, wird durch requestAnimationFrame gesteuert. prefers-reduced-motion hält jedes Wort auf dem Bildschirm und entfernt die Bewegung.

Gemeinsames CSS: Platziere portal-spezifische Einschnitte im Stylesheet der Startseite. Ändere die gemeinsame Datei nur für einen Fehler, den jede Seite hat, z. B. einen fehlenden Fokusring.

Ausliefern

  • Skip-Link, sichtbares :focus-visible, aktuelles Navigationselement markiert.
  • Kein href="#".
  • og:image ist ein breites Bild der Arbeit. Twitter-Karte ist summary_large_image.
  • Alt-Text auf den Arbeitsbildern. Das Live-Gerät hat einen zugänglichen Namen.

Prüfen

Führe node scripts/check.mjs <index.html> <css files> aus dieser Fähigkeit aus. Öffne dann die Seite bei 1440, 768 und 390. Öffne auf dem Telefon das Menü und folge jedem Link. Bei reduzierter Bewegung zeigt der erste Bildschirm immer noch den Namen der Person und die Arbeit an.

Behebe einen FAIL aus dem Skript. Gestalte Schwester-Seiten nicht neu, damit sie zu einem Startseiten-Einschnitt passen.

Verwandte Skills