CommunityCodierung & Entwicklunggithub.com

jakubkrehel/better-layout

Hilft beim Gruppieren, Ausrichten, der Lesereihenfolge, progressiver Offenlegung und anderen Details, die ein gutes Layout ausmachen.

Was ist better-layout?

Der Skill 'better-layout' ist ein spezialisierter Assistent für die Verbesserung von Benutzeroberflächen-Layouts, der sich auf Positionierung, Abstände, Ausrichtung und Lesereihenfolge konzentriert, um klare visuelle Hierarchien zu schaffen, bevor ein Wort gelesen wird. Er unterstützt Entwickler auf verschiedenen Plattformen (wie Claude Code, Cursor, Codex) bei der Erstellung von Layouts, die responsiv, barrierefrei und für Rechts-nach-Links-Sprachen (RTL) geeignet sind. Der Skill stellt stressgeprüfte Prinzipien bereit: Gruppierung durch Abstände statt Linien, Unterscheidbarkeit von Steuerelementen, Ausrichtung an gemeinsamen Kanten, progressive Offenlegung von verborgenen Inhalten und die Verwendung logischer CSS-Eigenschaften anstelle physischer Richtungen. Er enthält detaillierte Anleitungen für Abstände zwischen Zielbereichen, das Einbetten von Schaltflächen, die Trennung von Inhalten und Steuerelementen sowie die Definition von Breakpoints basierend auf dem tatsächlichen Inhalt. Der Skill endet mit einer Checkliste häufiger Fehler, einem Berichtsformat mit Schweregraden (HIGH, MEDIUM, LOW) und einer Anleitung zur Überprüfung unter verschiedenen Bedingungen (verschiedene Breiten, 200 % Zoom, RTL-Spiegelung).

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jakubkrehel/skills/tree/main/skills/better-layout

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Layout

Position, Abstand und Ausrichtung vermitteln Hierarchie, bevor ein Wort gelesen wird. Dieser Skill schafft diese Struktur und stellt sie auf die Probe: Größe ändern, übersetzen, für RTL spiegeln.

Schreibe jede Korrektur im projekt eigenen Gestaltungssystem. Die Zahlen unten sind Ausgangspunkte für Oberflächen ohne etabliertes Dichtesystem. Wo eines angewendet wird, verwende es wie beschrieben und nicht als vertraut aussehenden Ersatz. Behalte bewusste Plattform-Chrome, kompakte professionelle Werkzeuge und Projekt-Tokens bei, wo sie die Stresstests noch bestehen.

Treffbereiche und Fokusverhalten gehören zu better-accessibility. Ecken, Schatten und Animationen gehören zu better-ui. Zeilenlänge und Textabstand gehören zu better-typography.

Mit Abstand gruppieren, nicht mit Linien

Abstände gruppieren zuerst, Hintergrundformen als Zweites, Trennlinien zuletzt und nur dort, wo Abstand allein die Struktur nicht tragen kann. Der Abstand zwischen Gruppen muss mindestens das 2‑fache des Abstands innerhalb einer Gruppe betragen (8px innerhalb der Gruppe zu 16px+ zwischen Gruppen), sonst wirkt die Gruppierung wie Rauschen. Ausrichtungskanten und Wichtigkeitsreihenfolge sind in grouping-and-alignment.md beschrieben.

Steuerelemente von Inhalten unterscheiden

Gib jedem interaktiven Element eine Hintergrundform, einen Rahmen oder eine konsistente Platzierungszone. Ein Steuerelement, das wie der statische Text daneben gestaltet ist, wird nicht als Steuerelement erkannt.

An gemeinsamen Kanten ausrichten

Wähle Ausrichtungskanten und bleibe bei ihnen; jede abweichende Kante wirkt wie Rauschen. Verwende einen Schritt des projekt eigenen Abstandssystems pro Unterordnungsebene, wobei 16px ein nützlicher Standard ist.

Verwende logische Eigenschaften für richtungsabhängiges Layout: padding-inline-start, margin-inline-end. Behalte physisches links und rechts für wirklich physische Geometrie vor.

Nach Wichtigkeit ordnen

Der wichtigste Inhalt befindet sich nahe dem oberen und dem vorderen Rand. Die Lesereihenfolge verläuft von oben nach unten, von vorne nach hinten. Denke in vorderer und hinterer Richtung, nicht in links und rechts.

Auf verborgenen Inhalt hinweisen

Progressive Offenlegung benötigt einen sichtbaren Hinweis. Verwende das etablierte Signal des Projekts, oder lasse das nächste Element 16–32px über die Scrollkante hinausragen, oder zeige ein Offenlegungs-Steuerelement. Inhalt, der ohne Hinweis verborgen ist, könnte genauso gut nicht existieren.

Atemraum zwischen Zielen

Ohne etabliertes Dichtesystem beginne mit 12px zwischen benachbarten umrahmten oder gefüllten Steuerelementen und 24px um randlose Text- und Symbol-Steuerelemente. Kompakte Layouts können weniger verwenden, solange die Treffbereiche von better-accessibility sich nicht überlappen und die Steuerelemente unterscheidbar bleiben. Layout-Ränder und Breakpoint-Rezepte sind in spacing-and-adaptivity.md beschrieben.

Schaltflächen von den Rändern einrücken

Halte in Inhaltslayouts vollbreite Schaltflächen innerhalb der Layout-Ränder mit einem sichtbaren Radius, beginnend bei etwa 16px inline auf Mobilgeräten. Rand-an-Rand-Aktionen funktionieren, wenn sie der etablierten Plattform-Chrome folgen, sichere Bereiche berücksichtigen und von der System-UI unterscheidbar bleiben.

Inhalt läuft aus, Steuerelemente schwimmen

Hintergründe und Medien erstrecken sich bis zu den Viewport-Kanten. Steuerelemente und Text bleiben innerhalb der Layout-Ränder und sicheren Bereiche (env(safe-area-inset-*)). Sticky-Chrome schwebt über der Inhaltsebene, anstatt sie zu blockieren.

Struktur halten, bis sie bricht

Breakpoints kommen vom Inhalt, nicht von Gerätevorgaben. Behalte das erweiterte Layout so lange bei, wie es wirklich passt, und wechsle spät um. Bevorzuge Container Queries für komponentenbasierte Anpassung und teste zuerst die kleinsten und größten Größen.

Auf Wachstum und Beschneiden vorbereiten

Übersetzte Zeichenketten wachsen, und kurze wachsen proportional mehr, daher ist ein einsilbiges Schaltflächenlabel das riskanteste Element auf dem Bildschirm. Setze keine feste Breite oder Höhe auf einen Textcontainer und lasse Zeilen umbrechen. Teste mit Pseudo-Lokalisierung und einem repräsentativen Gebietsschema, anstatt einen Prozentsatz zu veranschlagen.

Parke niemals eine kritische Aktion dort, wo Größenänderung oder Scrollen sie abschneidet. Halte sie im normalen Fluss oder in stabilem Chrome, das zum Produkt passt.

Bevor du fertig bist

FehlerKorrektur
margin-left / padding-right in einem lokalisierbaren Layoutmargin-inline-start / padding-inline-end
Inhaltslayout-Schaltfläche berührt Viewport-KanteInnerhalb der Projekt-Ränder einrücken; bewusste Plattform-Chrome beibehalten
Breakpoints bei 768/1024, weil sie die Standardwerte sindUmbrechen, wo der Inhalt tatsächlich nicht mehr passt
Textcontainer mit fester Breite, nur auf eine Sprache ausgelegtmax-width und Umbruch; Pseudo-Lokalisierung testen
Primäraktion am abschneidegefährdeten unteren Rand eines BereichsSticky-Positionierung oder stabiles Chrome mit safe-area-Padding

Berichterstattung

Schweregrad. HIGH blockiert Inhalt oder eine Aktion bei einem unterstützten Viewport. MEDIUM schadet der Hierarchie, Lesereihenfolge oder Anpassbarkeit. LOW ist isolierte Ausrichtungs- oder Abstands-Politur.

Überprüfung. Ohne Browser: logische Eigenschaften anstelle physischer, Container- und Media Queries gegen die Liste der unterstützten Viewports und DOM-Reihenfolge gegen die beabsichtigte Lesereihenfolge. Mit einem: jede unterstützte Breite, 200 % Zoom und RTL-Spiegelung. Melde jede Prüfung, die du nicht durchführen konntest, als Not verified.

Format. Gruppiere die Ergebnisse unter dem Prinzip, das jedes verletzt, geordnet nach Schweregrad, eine Zeile pro Ursache, die jede Stelle auflistet, an der sie auftritt:

SeverityLocationBeforeAfterWhy

Location ist path/to/file:line. Why benennt das Prinzip und die Auswirkung auf den Benutzer.

Beende mit Block, wenn HIGH verbleibt, sonst mit Approve, und lasse den Rest in der Tabelle als zu erledigende Arbeit stehen. Approve niemals für Bereiche, die du nicht inspiziert hast. Wenn es nichts zu melden gibt, gib an: „No actionable layout findings“ und melde die Überprüfung.

Individual skills in this repo

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

Verwandte Skills