Reviews UI code for compliance with web interface best practices. Use when auditing accessibility, reviewing UI/UX patterns, checking performance, or improving web design quality. Triggers on "check my site", "audit design", "accessibility review", "UX best practices", or UI code review tasks. Covers 100+ rules for accessibility, performance, and user experience.
file.tsx:42 - Missing alt text on image
file.tsx:67 - Button missing accessible name
file.tsx:89 - Low contrast ratio (2.1:1, needs 4.5:1)
1---2name: vercel-web-design-guidelines3description: Reviews UI code for compliance with web interface best practices. Use when auditing accessibility, reviewing UI/UX patterns, checking performance, or improving web design quality. Triggers on "check my site", "audit design", "accessibility review", "UX best practices", or UI code review tasks. Covers 100+ rules for accessibility, performance, and user experience.4license: MIT (Vercel Labs)5---67# Web Interface Guidelines89Reviews UI code for compliance with web interface best practices, auditing code for 100+ rules covering accessibility, performance, and UX.1011## When to Apply1213- Reviewing UI components for accessibility compliance14- Auditing web pages against best practices15- Checking UX patterns and user interactions16- Improving form validation and error handling17- Optimizing animations and transitions1819## Core Categories2021| Category | Focus Areas |22|----------|-------------|23| Accessibility | Semantic HTML, ARIA, keyboard navigation, screen readers |24| Performance | Loading, rendering, animations, lazy loading |25| UX Patterns | Forms, feedback, error handling, navigation |26| Visual Design | Typography, spacing, color contrast, responsiveness |27| Interactions | Hover states, focus management, touch targets |2829## Key Guidelines3031### Accessibility (A11Y)3233**Semantic HTML:**34- Use `<button>` for actions, `<a>` for navigation35- Use heading hierarchy (`h1` → `h2` → `h3`)36- Use `<nav>`, `<main>`, `<article>`, `<aside>` landmarks3738**Keyboard Navigation:**39- All interactive elements must be focusable40- Visible focus indicators (never `outline: none` without replacement)41- Logical tab order following visual flow42- Escape key closes modals/dropdowns4344**ARIA:**45- Use ARIA only when native HTML insufficient46- `aria-label` for icon-only buttons47- `aria-expanded` for expandable content48- `aria-live` for dynamic content updates4950**Color & Contrast:**51- Minimum 4.5:1 contrast ratio for text52- Don't convey information by color alone53- Support reduced-motion preferences5455### Forms & Validation5657**Labels & Instructions:**58- Every input needs a visible `<label>`59- Associate labels with `htmlFor`/`id`60- Provide clear placeholder text as hints, not labels6162**Error Handling:**63- Show errors inline near the field64- Use `aria-invalid` and `aria-describedby`65- Don't clear form on error66- Focus first error field on submit6768**Input Patterns:**69```tsx70<div className="field">71 <label htmlFor="email">Email</label>72 <input73 id="email"74 type="email"75 aria-invalid={!!error}76 aria-describedby={error ? "email-error" : undefined}77 />78 {error && <span id="email-error" role="alert">{error}</span>}79</div>80```8182### Performance8384**Loading:**85- Show skeleton loaders, not spinners86- Progressive loading for large content87- Lazy load below-fold images88- Preload critical assets8990**Animations:**91- Use CSS transforms and opacity (GPU-accelerated)92- Respect `prefers-reduced-motion`93- Keep animations under 300ms for feedback94- Use `will-change` sparingly9596```css97@media (prefers-reduced-motion: reduce) {98 *, *::before, *::after {99 animation-duration: 0.01ms !important;100 transition-duration: 0.01ms !important;101 }102}103```104105### Interactive Elements106107**Buttons & Links:**108- Minimum 44x44px touch targets109- Clear hover/focus/active states110- Disabled state visually distinct111- Loading states for async actions112113**Focus Management:**114- Trap focus in modals115- Return focus after modal closes116- Skip links for keyboard users117118### Responsive Design119120- Mobile-first approach121- Fluid typography with `clamp()`122- Touch-friendly spacing on mobile123- Test at common breakpoints (320, 768, 1024, 1440)124125## Audit Checklist126127When reviewing UI code, verify:1281291. [ ] All images have `alt` text1302. [ ] Form inputs have associated labels1313. [ ] Color contrast meets WCAG 2.1 AA1324. [ ] Interactive elements keyboard accessible1335. [ ] Focus indicators visible1346. [ ] Animations respect reduced-motion1357. [ ] Error messages are descriptive1368. [ ] Touch targets are 44px minimum1379. [ ] Headings follow hierarchy13810. [ ] ARIA used correctly (not overused)139140## Output Format141142Report findings as:143```144file.tsx:42 - Missing alt text on image145file.tsx:67 - Button missing accessible name146file.tsx:89 - Low contrast ratio (2.1:1, needs 4.5:1)147```
Run npx skillmds@latest add diegosouzapw/vercel-web-design-guidelines in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Reviews UI code for compliance with web interface best practices. Use when auditing accessibility, reviewing UI/UX patterns, checking performance, or improving web design quality. Triggers on "check my site", "audit design", "accessibility review", "UX best practices", or UI code review tasks. Covers 100+ rules for accessibility, performance, and user experience. It is listed under Web & Frontend on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free. This skill is licensed under MIT (Vercel Labs).
diegosouzapw (@diegosouzapw) published this skill. Their other Agent Skills are listed on their SkillMD profile.