Frontend Visual QA
Use this skill before changing or declaring complete any user-visible frontend UI. The goal is to fix the layout system, not just the visible symptom.
Workflow
Identify the affected surface and parent container hierarchy.
- Name the component/file and the UI region.
- Include the immediate parent layout: flex, grid, absolute, modal, pane, or scroll container.
Diagnose the visual root cause before editing.
- Check width constraints,
min-width, max-width, flex-shrink, flex-wrap, grid tracks, overflow, positioning, z-index, line height, padding, and text length.
- State one concrete hypothesis: for example, "buttons are clipped because a right-aligned flex row is wider than the pane and the parent hides overflow."
Choose a layout strategy that prevents repeat fixes.
- Prefer container-level fixes over per-label tweaks.
- Use grid tracks for a known fixed count of controls.
- Use flex with explicit shrink/wrap rules for variable count controls.
- Use menus or disclosure only when controls cannot reasonably fit.
- Do not solve clipping by only shortening text unless text length is the actual root cause.
Preserve interaction semantics.
- Keep existing click handlers, disabled states, titles/tooltips, keyboard behavior, and modal behavior unless the task asks to change them.
- Buttons should keep icon plus text when requested by the product style.
Verify against an acceptance checklist before completion.
UI Acceptance Checklist
For every changed UI surface, verify:
- No control is horizontally clipped.
- No text overlaps another element.
- Button text fits inside its button at the target pane width.
- Required controls remain visible without hidden horizontal overflow.
- Primary and destructive actions remain visually distinct.
- Tooltips or
title attributes exist when labels are intentionally shortened.
- Empty, loading, disabled, and success/failure states still make sense.
- The fix addresses the parent layout constraint, not just one visible instance.
When Browser Verification Is Needed
Use the Browser plugin or another available browser automation tool when:
- The task is a visual regression, screenshot bug, responsive layout issue, drag/drop affordance, canvas/3D rendering, or modal/popup positioning issue.
- The target URL is obvious or a local dev server is already running.
- The user explicitly asks to inspect or screenshot the UI.
When browser verification is not run, say why and provide the CSS/layout reasoning used instead.
Reporting
In the final response, include:
- The visual root cause.
- The structural fix.
- The verification command or browser check performed.
- Any residual viewport or manual QA risk.
1---2name: frontend-visual-qa3description: Review or implement frontend UI/UX changes with visual QA. Use when Codex works on layout, responsive behavior, toolbars, buttons, modals, panels, forms, overflow/clipping, text fitting, overlap, drag/drop affordance, loading/download feedback, or any user-visible interface polish.4---56# Frontend Visual QA78Use this skill before changing or declaring complete any user-visible frontend UI. The goal is to fix the layout system, not just the visible symptom.910## Workflow11121. Identify the affected surface and parent container hierarchy.13 - Name the component/file and the UI region.14 - Include the immediate parent layout: flex, grid, absolute, modal, pane, or scroll container.15162. Diagnose the visual root cause before editing.17 - Check width constraints, `min-width`, `max-width`, `flex-shrink`, `flex-wrap`, grid tracks, `overflow`, positioning, z-index, line height, padding, and text length.18 - State one concrete hypothesis: for example, "buttons are clipped because a right-aligned flex row is wider than the pane and the parent hides overflow."19203. Choose a layout strategy that prevents repeat fixes.21 - Prefer container-level fixes over per-label tweaks.22 - Use grid tracks for a known fixed count of controls.23 - Use flex with explicit shrink/wrap rules for variable count controls.24 - Use menus or disclosure only when controls cannot reasonably fit.25 - Do not solve clipping by only shortening text unless text length is the actual root cause.26274. Preserve interaction semantics.28 - Keep existing click handlers, disabled states, titles/tooltips, keyboard behavior, and modal behavior unless the task asks to change them.29 - Buttons should keep icon plus text when requested by the product style.30315. Verify against an acceptance checklist before completion.3233## UI Acceptance Checklist3435For every changed UI surface, verify:3637- No control is horizontally clipped.38- No text overlaps another element.39- Button text fits inside its button at the target pane width.40- Required controls remain visible without hidden horizontal overflow.41- Primary and destructive actions remain visually distinct.42- Tooltips or `title` attributes exist when labels are intentionally shortened.43- Empty, loading, disabled, and success/failure states still make sense.44- The fix addresses the parent layout constraint, not just one visible instance.4546## When Browser Verification Is Needed4748Use the Browser plugin or another available browser automation tool when:4950- The task is a visual regression, screenshot bug, responsive layout issue, drag/drop affordance, canvas/3D rendering, or modal/popup positioning issue.51- The target URL is obvious or a local dev server is already running.52- The user explicitly asks to inspect or screenshot the UI.5354When browser verification is not run, say why and provide the CSS/layout reasoning used instead.5556## Reporting5758In the final response, include:5960- The visual root cause.61- The structural fix.62- The verification command or browser check performed.63- Any residual viewport or manual QA risk.