← Zurück zu Laravel-Projektvorlage
Entdecke, wie der Skill hilft
Frontend-Umsetzung
Setzt Entwürfe als nutzbare Oberflächen mit verständlichen Lade- und Fehlerzuständen, zuverlässigen Aktionen und passenden Layouts für verschiedene Bildschirme um.
frontend-ui-engineering
Agenten mit diesem Skill
Wann ist der Skill hilfreich?
Nutze ihn beim Umsetzen von Designs oder Korrigieren von Interaktionen außerhalb des Normalfalls.
Wobei hilft er dir?
- Trennt Datenladen von Darstellung und lokalem Zustand.
- Behandelt Ladezustände, leere Ergebnisse und Fehler; schlägt das Speichern fehl, nimmt es bereits angezeigte Änderungen zurück.
- Ermöglicht Bedienung per Tastatur und Smartphone mit nachvollziehbarer Fokusführung und zuverlässig bedienbaren Dialogen.
Das könntest du fragen
Implementiere eine filterbare Kundentabelle mit behebbaren Fehlern auf Mobilgeräten. Lasse Filteranfrage und spätere Inline-Änderung scheitern. Erhalte brauchbare Ergebnisse, biete Wiederholung und stelle den ursprünglichen Wert nach Speicherablehnung wieder her.
Ausführliche Dokumentation
Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.
Weniger anzeigen
Frontend UI Engineering
Build UI the way a design-aware engineer would: on the project's design system, accessible, responsive, with every state handled.
Components
- Keep a component's code, tests and stories together, in the project's layout. One job per component; split one that grows past about 200 lines.
- Composition over configuration: children and slots, not a long list of layout props.
- Separate loading data from showing it: a container decides loading, error, empty or content; the presentational part only renders.
State: the simplest that works
- Local state for one component; lift it for 2–3 siblings; context for read-heavy, rarely written values (theme, auth, locale); the URL for filters, pagination and shareable view state; the project's server-state cache for remote data; a global store only for complex app-wide client state.
- Props passed through more than 3 levels that do not use them: restructure or use context.
- Optimistic updates only with rollback on error and a refresh afterwards.
Avoid the generated look
| Default | Instead |
|---|---|
| Purple or indigo everything | The project's own palette |
| Gradients as decoration | Flat, or the system's subtle gradients |
| Maximum rounding everywhere | The system's radius hierarchy |
| Generic hero section | Content-first layout |
| Lorem ipsum | Realistic content, long and short |
| Same generous padding everywhere | The spacing scale, hierarchy through spacing |
| Stock card grid | Layout by information priority |
| Heavy layered shadows | Subtle or none unless the system has them |
- Spacing, color and type come from the scale and semantic tokens: no off-scale values such as 13px or 2.3rem, no raw hex.
Focus and dialogs
- Visible :focus-visible styles; never outline: none without a replacement. :focus-within for compound controls.
- Sticky headers, footers and overlays must not cover the focused element.
- Dialogs: the native dialog opened with showModal(), or the project's accessible dialog. It needs a label, keeps focus inside, closes on Escape and returns focus to the trigger. Moving focus once is not a focus trap.
Forms
- The right type and inputmode, autocomplete and a meaningful name; spellcheck off for emails, codes and usernames.
- Never block paste. A checkbox or radio and its label share one hit area.
- Submit stays enabled until the request starts, then shows progress. Errors appear inline at the field; focus the first one on submit.
- Placeholders show an example, not the label. Warn before leaving with unsaved changes.
Touch and layout
- touch-action: manipulation on controls; overscroll-behavior: contain in modals, drawers and sheets.
- Every drag, swipe or pinch has a tap or keyboard alternative; no text selection while dragging.
- Autofocus only on desktop, for one primary input.
- Full-bleed layouts respect env(safe-area-inset-*). Prefer flex and grid to measuring in JavaScript. Fix overflow at its source instead of hiding scrollbars. Never disable zoom.
Responsive and states
- Mobile first; check 320, 768, 1024 and 1440 px.
- Loading content gets a skeleton shaped like it (aria-busy); a spinner only for an action in progress.
- Every data view handles loading, empty (explain and offer the next action), error (message and retry), success and no-permission.
Before you finish
- No console errors; works at 320, 768, 1024 and 1440 px.
- Keyboard pass with visible focus; dialogs trap and return focus.
- Loading, empty, error, success and permission states handled.
- Design system spacing, color and type; no generated-look defaults.
- Forms: types, autocomplete, inline errors, paste allowed.
Enthaltene Dateien 2
LICENSE.txtSKILL.md
