Awesome-omni-skill vercel-web-design-guidelines
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.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/vercel-web-design-guidelines" ~/.claude/skills/diegosouzapw-awesome-omni-skill-vercel-web-design-guidelines && rm -rf "$T"
manifest:
skills/development/vercel-web-design-guidelines/SKILL.mdsource content
Web Interface Guidelines
Reviews UI code for compliance with web interface best practices, auditing code for 100+ rules covering accessibility, performance, and UX.
When to Apply
- Reviewing UI components for accessibility compliance
- Auditing web pages against best practices
- Checking UX patterns and user interactions
- Improving form validation and error handling
- Optimizing animations and transitions
Core Categories
| Category | Focus Areas |
|---|---|
| Accessibility | Semantic HTML, ARIA, keyboard navigation, screen readers |
| Performance | Loading, rendering, animations, lazy loading |
| UX Patterns | Forms, feedback, error handling, navigation |
| Visual Design | Typography, spacing, color contrast, responsiveness |
| Interactions | Hover states, focus management, touch targets |
Key Guidelines
Accessibility (A11Y)
Semantic HTML:
- Use
for actions,<button>
for navigation<a> - Use heading hierarchy (
→h1
→h2
)h3 - Use
,<nav>
,<main>
,<article>
landmarks<aside>
Keyboard Navigation:
- All interactive elements must be focusable
- Visible focus indicators (never
without replacement)outline: none - Logical tab order following visual flow
- Escape key closes modals/dropdowns
ARIA:
- Use ARIA only when native HTML insufficient
for icon-only buttonsaria-label
for expandable contentaria-expanded
for dynamic content updatesaria-live
Color & Contrast:
- Minimum 4.5:1 contrast ratio for text
- Don't convey information by color alone
- Support reduced-motion preferences
Forms & Validation
Labels & Instructions:
- Every input needs a visible
<label> - Associate labels with
/htmlForid - Provide clear placeholder text as hints, not labels
Error Handling:
- Show errors inline near the field
- Use
andaria-invalidaria-describedby - Don't clear form on error
- Focus first error field on submit
Input Patterns:
<div className="field"> <label htmlFor="email">Email</label> <input id="email" type="email" aria-invalid={!!error} aria-describedby={error ? "email-error" : undefined} /> {error && <span id="email-error" role="alert">{error}</span>} </div>
Performance
Loading:
- Show skeleton loaders, not spinners
- Progressive loading for large content
- Lazy load below-fold images
- Preload critical assets
Animations:
- Use CSS transforms and opacity (GPU-accelerated)
- Respect
prefers-reduced-motion - Keep animations under 300ms for feedback
- Use
sparinglywill-change
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
Interactive Elements
Buttons & Links:
- Minimum 44x44px touch targets
- Clear hover/focus/active states
- Disabled state visually distinct
- Loading states for async actions
Focus Management:
- Trap focus in modals
- Return focus after modal closes
- Skip links for keyboard users
Responsive Design
- Mobile-first approach
- Fluid typography with
clamp() - Touch-friendly spacing on mobile
- Test at common breakpoints (320, 768, 1024, 1440)
Audit Checklist
When reviewing UI code, verify:
- All images have
textalt - Form inputs have associated labels
- Color contrast meets WCAG 2.1 AA
- Interactive elements keyboard accessible
- Focus indicators visible
- Animations respect reduced-motion
- Error messages are descriptive
- Touch targets are 44px minimum
- Headings follow hierarchy
- ARIA used correctly (not overused)
Output Format
Report findings as:
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)