Communitygithub.com

coastdigitalgroup/coastai-skills

Entwicklung eines systematischen Frameworks für „Skeleton Screens“, das die wahrgenommene Leistung und Layout-Stabilität (CLS) verwaltet, indem UI-„Knochen“ auf eingehende Inhalte abgebildet werden.

Was ist coastai-skills?

Das Skeleton State System bietet eine strukturierte Methodik zur Gestaltung des Ladezustands von Benutzeroberflächen. Anstelle generischer Spinner oder Fortschrittsbalken nutzt es „Knochen“ – schematische Platzhalter (Rechtecke, Kreise, Linien) – die die finale Layout-Struktur nachbilden. Dies reduziert die gefühlte Wartezeit des Nutzers und verhindert kumulative Layoutverschiebungen (CLS), da vor dem tatsächlichen Inhalt bereits die benötigten Platzreserven eingeplant werden. Das System unterstützt die Erstellung von Skeleton-Blueprints, Übergangsstrategien und integriert Barrierefreiheit (aria-busy/aria-hidden). Es eignet sich besonders für datenintensive Dashboards, Content-Feeds und Single-Page-Apps, bei denen asynchrone Daten geladen werden. <br><br>Die Anwendung ist plattformunabhängig und kann in beliebigen Frontend-Ökosystemen (React, Vue, Angular etc.) umgesetzt werden. Der Workflow umfasst das Mapping der Ziel-Geometrie, die Definition einer Knochen-Hierarchie sowie die Gestaltung des „Shimmer“-Effekts (Bewegung und Pulsieren) unter Beachtung von prefers-reduced-motion. Eine zentrale Entscheidungsregel ist die 300ms-Grenze: Nur bei Ladezeiten über 300ms soll ein Skeleton eingeblendet werden, um Flackern zu vermeiden. Das System liefert konkrete Validierungskriterien zur Sicherstellung von Zero CLS, korrekten Seitenverhältnissen und barrierefreier Implementierung.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/skeleton-state-system

In Ihrer bevorzugten KI fragen

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

Dokumentation

Skeleton-Zustandssystem

Zweck

Das Skeleton-Zustandssystem stellt eine Methodik zur Gestaltung des Ladezustands einer Benutzeroberfläche bereit. Anders als generische Spinner oder Fortschrittsbalken bilden Skelette mithilfe von „Knochen“ (schematische Platzhalter) das endgültige Layout nach. Dies reduziert die gefühlte Wartezeit des Nutzers und verhindert kumulative Layoutverschiebungen (CLS), indem vor dem Eintreffen der Inhalte bereits der benötigte Platz reserviert wird.

Anwendungsfälle

  • Datenschwere Dashboards: Mehrere Widgets laden mit unterschiedlichen Geschwindigkeiten.
  • Content-Feeds: Scrollen durch Listen von Artikeln, Produkten oder Social-Media-Beiträgen.
  • Bildlastige Raster: Reservieren von Platz für hochauflösende Bilder, um ein „Springen“ der Seite zu verhindern.
  • Such- und Filteransichten: Sofortiges Feedback, dass das System eine Anfrage verarbeitet.
  • Single-Page-Anwendungen (SPAs): Verwalten von Übergängen zwischen Routen, bei denen Daten asynchron geladen werden.

Wann NICHT verwenden

  • Sofortige Interaktionen: Wenn Inhalte in unter 300ms laden, kann ein Skeleton ablenkendes „Flackern“ verursachen.
  • Einfache, kontextarme Ladevorgänge: Für kleine Elemente wie einen einzelnen Button oder ein winziges Tag ist ein Standard-Spinner oder „Lädt…“-Text angemessener.
  • Statische Inhalte: Inhalte, die fest codiert oder gecached sind und sofort rendern.
  • Hochfrequente Echtzeitdaten: Wenn sich Daten so schnell ändern, dass das Skeleton ständig ein- und ausgeblendet würde, kann das zu visueller Ermüdung führen.

Eingaben

  1. Ziellayout: Das finale „voll geladene“ Design der Komponente oder Seite.
  2. Inhaltsvariablen: Welche Teile der UI dynamisch sind (Text, Bilder, Preise, Avatare)?
  3. Räumliche Dimensionen: Die exakten Höhen, Breiten und Seitenverhältnisse der finalen Elemente.
  4. Markenton: Die Primär- und Sekundärfarben für die Knochen-Basis und den Shimmer-Effekt.

Ausgaben

  1. Skeleton-Blueprint: Eine schematische Karte, die die Anordnung der Knochen zeigt.
  2. Knochenspezifikation: Definitionen für Form (Kreise vs. Rechtecke) und Größenfestlegung (fest vs. prozentbasiert).
  3. Übergangsstrategie: Regeln dafür, wie das Skeleton aus- und der Inhalt eingeblendet wird.
  4. Barrierefreiheitsanforderungen: Richtlinien für die Implementierung von aria-busy und aria-hidden.

Arbeitsablauf

1. Zielgeometrie abbilden

Zerlege die finale Komponente in ihre grundlegenden geometrischen Primitive:

  • Kreise: Für Avatare, Icons oder abgerundete Buttons.
  • Rechtecke (abgerundet): Für Karten, Bildcontainer und Textblöcke.
  • Linien: Für einzelne Textzeilen (Überschriften, Metadaten).

2. Knochenhierarchie definieren

Nicht jedes Element benötigt einen Knochen. Fokussiere dich auf die strukturellen „Anker“:

  • Primärer Knochen: Das größte visuelle Element (z. B. ein Produktbild).
  • Sekundäre Knochen: Überschriften und primäre Metadaten.
  • Tertiäre Knochen: Kleine Metadetails oder Aktionsbuttons (können oft weggelassen werden, wenn sie zu klein sind).

3. Räumliche Anpassung herstellen (Die CLS-Regel)

Stelle sicher, dass die Maße des Skeletts exakt dem Behälter des endgültigen Inhalts entsprechen:

  • Seitenverhältnis: Verwende feste Seitenverhältnisse (z. B. 16:9 für Videos) für den Knochen, damit er seine Größe nicht ändert, wenn das Asset geladen wird.
  • Textgrößen: Verwende Knochen, die der Zeilenhöhe und der ungefähren Breite des dargestellten Textes entsprechen.

4. Rhythmus und Shimmer-Animation gestalten

Skelette sollten sich „lebendig“ anfühlen, aber nicht ablenken:

  • Basis-Farbe: Verwende eine kontrastarme, neutrale Farbe (z. B. Hellgrau).
  • Shimmer (Der Puls): Wende eine subtile Gradienten-Animation an, die von links nach rechts verläuft.
  • Synchronisation: Wenn mehrere Skelette auf dem Bildschirm sichtbar sind, sollten ihre Animationen synchronisiert sein, um visuelles Chaos zu vermeiden.
  • Reduzierte Bewegung: Umschließe die Shimmer-Keyframe-Animation mit einer @media (prefers-reduced-motion: reduce)-Abfrage, die die Bewegung deaktiviert und auf einen statischen oder sanft pulsend opaken Knochen zurückfällt.

5. Den „Hand-off“-Übergang definieren

Plane den Ausstieg des Skeletts:

  • Timing: Verwende eine kurze Einblendung (z. B. 200ms) für den echten Inhalt, um einen abrupten „Snap“-Übergang zu vermeiden.
  • Staffelung: Entscheide bei Listen, ob Elemente alle auf einmal oder einzeln beim Laden erscheinen sollen.

Entscheidungsregeln

  • Die 300ms-Regel: Zeige ein Skelett nur an, wenn der Ladevorgang voraussichtlich länger als 300ms dauert.
  • Knochgenauigkeit: Ein Knochen sollte den Behälter darstellen, nicht die spezifischen Daten. Ein Textknochen sollte beispielsweise ein einfacher Balken sein, keine gezackte Linie, die bestimmte Buchstaben nachahmt.
  • Zeilenanzahl: Verwende für mehrzeiligen Text 2 oder 3 Knochen mit unterschiedlichen Breiten (z. B. die letzte Zeile mit 60 % Breite), um den natürlichen Absatzfluss zu simulieren.
  • Spinner vs. Skeleton:
    • Verwende ein Skeleton für seiten- oder abschnittsweise Übergänge.
    • Verwende einen Spinner für kleine, lokalisierte Aktionen (wie einen „Speichern…“-Button-Zustand).

Einschränkungen

  • Barrierefreiheit: Skelette müssen mit aria-hidden="true" markiert werden, damit Screenreader nicht versuchen, die leeren Balken „vorzulesen“. Der übergeordnete Container sollte aria-busy="true" verwenden, während geladen wird, und idealerweise eine visuell verborgene aria-live="polite"-Region enthalten, die den Ladezustand und nach dem Ersetzen des Skeletts den Abschlusszustand ankündigt – verwende aria-live nicht auf den Skelett-Knochen selbst. Beachte prefers-reduced-motion für den Shimmer-Effekt.
  • Kontrast: Die Skeleton-Farben müssen sich vom Hintergrund abheben, aber nicht so kontrastreich sein, dass sie wie aktiver Inhalt aussehen.
  • Responsivität: Skeleton-Knochen müssen mit derselben Grid/Flex-Logik skalieren wie der endgültige Inhalt.

Häufige Fehlermuster

  • Der „CLS-Sprung“: Ein 200 px hohes Skeleton wird durch 300 px hohen Inhalt ersetzt, was die Seite „springen“ lässt.
  • Shimmer-Überlastung: Zu schnelle oder kontrastreiche Animationen, die Übelkeit oder Ablenkung verursachen.
  • Inhalt-Knochen-Konflikt: Verwenden eines runden Knochens für ein quadratisches Bild oder umgekehrt.
  • Überkomplexität: Versuch, jedes winzige Icon als Knochen nachzubilden, was zu einem überladenen „Geister“-Layout führt.
  • Das „statische Skeleton“: Ein Skeleton ohne Animation, das leicht mit einer defekten oder leeren Seite verwechselt werden kann.

Validierungskriterien

  • Skelett-Maße stimmen exakt mit dem finalen „geladenen“ Zustand überein (Kein CLS).
  • Seitenverhältnisse für Bilder/Videos werden durch feste Container reserviert.
  • Shimmer-Animation ist subtil und bewegt sich von links nach rechts.
  • Textlastige Bereiche verwenden Knochen, die natürliche Zeilenlängen simulieren.
  • aria-hidden="true" wird auf die Skeleton-Elemente angewendet, und der Ladecontainer verwendet aria-busy="true".
  • Shimmer-Animation respektiert prefers-reduced-motion: reduce.
  • Der Übergang vom Skeleton zum Inhalt erfolgt als sanfte Einblendung (ca. 200ms).
  • Das Skeleton erscheint nicht bei Ladevorgängen, die schneller als 300ms sind.

Individual skills in this repo

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

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design a systematic framework for date and time selection, managing calendar grids, range pickers, and scheduling interfaces to ensure precision and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

Verwandte Skills