Skip to content
Back to skills

Vercel Web Design Guidelines

ASecurity

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.

  • 57 stars
  • 0 votes
  • 1 copy
  • 14 views
  • Added May 31, 2026
designgoperformance

Security analysis

A100/100

Scanned May 31, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill vercel-web-design-guidelines --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vercel Web Design Guidelines?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vercel Web Design Guidelines
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-vercel-web-design-guidelines/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-vercel-web-design-guidelines)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vercel-web-design-guidelines
description: 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.
license: MIT (Vercel Labs)
---

# 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 `<button>` for actions, `<a>` for navigation
- Use heading hierarchy (`h1` → `h2` → `h3`)
- Use `<nav>`, `<main>`, `<article>`, `<aside>` landmarks

**Keyboard Navigation:**
- All interactive elements must be focusable
- Visible focus indicators (never `outline: none` without replacement)
- Logical tab order following visual flow
- Escape key closes modals/dropdowns

**ARIA:**
- Use ARIA only when native HTML insufficient
- `aria-label` for icon-only buttons
- `aria-expanded` for expandable content
- `aria-live` for dynamic content updates

**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 `htmlFor`/`id`
- Provide clear placeholder text as hints, not labels

**Error Handling:**
- Show errors inline near the field
- Use `aria-invalid` and `aria-describedby`
- Don't clear form on error
- Focus first error field on submit

**Input Patterns:**
```tsx
<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 `will-change` sparingly

```css
@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:

1. [ ] All images have `alt` text
2. [ ] Form inputs have associated labels
3. [ ] Color contrast meets WCAG 2.1 AA
4. [ ] Interactive elements keyboard accessible
5. [ ] Focus indicators visible
6. [ ] Animations respect reduced-motion
7. [ ] Error messages are descriptive
8. [ ] Touch targets are 44px minimum
9. [ ] Headings follow hierarchy
10. [ ] 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)
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.