Help us improve
Share bugs, ideas, or general feedback.
From project-starter
Audits UI code against web accessibility, performance, and responsive design guidelines. Invoke for UI review, accessibility audit, or design best practices check.
npx claudepluginhub cloudai-x/claude-workflow-v2 --plugin project-starterHow this skill is triggered — by the user, by Claude, or both
Slash command
/project-starter:web-design-guidelinesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **Trigger**: UI audit, accessibility checks, responsive design review, UX best practices evaluation
Audits UI code against 100+ web interface guidelines from Vercel covering accessibility, forms, dark mode, typography, animation, images, performance, navigation, touch, and internationalization.
Reviews web UI code against guidelines for accessibility, touch interaction, performance, layout, typography, forms, content, and UX best practices.
Reviews web UI code for compliance with fetched Web Interface Guidelines from Vercel labs. Checks accessibility, design, UX; outputs terse file:line findings.
Share bugs, ideas, or general feedback.
Self-contained guidelines for reviewing web interfaces. Apply these rules when auditing UI code.
Report findings as: file:line — [RULE_ID] description
Example: src/Button.tsx:12 — [A11Y-01] Missing aria-label on icon button
<button> for actions, <a> for navigation, <input> for data entry<div onClick> or <span onClick> for interactive elements<nav>, <main>, <aside>, <header>, <footer> for landmarksaria-label<label> or aria-labelalt text (decorative images: alt="")role, tabIndex, and key handlersoutline: none without replacement)aria-live regionsaria-busy="true"aria-describedbynext/image or responsive images with srcsetwidth and height to prevent layout shiftloading="lazy"import { Button } from 'lib' not import libReact.lazy() or dynamic importswill-change sparingly (only for known animations)transform and opacity for 60fps animations (compositor-only)@media (min-width) for larger screensrem/em for typography, not pxclamp() for fluid typography: font-size: clamp(1rem, 2.5vw, 2rem)max-width: 65ch for readabilitytype="email", type="tel", inputmode="numeric" for mobile keyboardsaria-busy="true" on loading containers<dialog> element or proper role="dialog"!important (use specificity or cascade layers)margin-bottom over margin-topposition: absolute for layout (use for overlays only)gap over margins between flex/grid childrenmin-height: 100dvh (not 100vh) for full-height layoutsprefers-color-scheme media querydangerouslySetInnerHTML without sanitizationrel="noopener noreferrer" on external links with target="_blank"logical properties (margin-inline-start over margin-left)lang attribute on <html> tagWhen auditing a file, check in this order (CRITICAL first):