> web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", "check my site against best practices", or "web interface guidelines".
curl "https://skillshub.wtf/CloudAI-X/claude-workflow-v2/web-design-guidelines?format=md"Web Interface Guidelines
When to Load
- Trigger: UI audit, accessibility checks, responsive design review, UX best practices evaluation
- Skip: Backend-only work with no UI components
Self-contained guidelines for reviewing web interfaces. Apply these rules when auditing UI code.
Output Format
Report findings as: file:line — [RULE_ID] description
Example: src/Button.tsx:12 — [A11Y-01] Missing aria-label on icon button
1. Accessibility (A11Y)
A11Y-01: Semantic HTML
- Use
<button>for actions,<a>for navigation,<input>for data entry - Never use
<div onClick>or<span onClick>for interactive elements - Use
<nav>,<main>,<aside>,<header>,<footer>for landmarks
A11Y-02: ARIA Labels
- All interactive elements need accessible names
- Icon-only buttons MUST have
aria-label - Form inputs MUST have associated
<label>oraria-label - Images need
alttext (decorative images:alt="")
A11Y-03: Keyboard Navigation
- All interactive elements must be reachable via Tab
- Custom components need proper
role,tabIndex, and key handlers - Focus must be visible (never
outline: nonewithout replacement) - Modal/dialog must trap focus and return focus on close
A11Y-04: Color & Contrast
- Text contrast ratio: 4.5:1 minimum (3:1 for large text)
- Never use color alone to convey meaning (add icons, text, patterns)
- Ensure UI is usable at 200% zoom
A11Y-05: Screen Readers
- Dynamic content changes need
aria-liveregions - Loading states need
aria-busy="true" - Error messages linked to inputs via
aria-describedby
2. Performance (PERF)
PERF-01: Image Optimization
- Use
next/imageor responsive images withsrcset - Specify
widthandheightto prevent layout shift - Lazy load below-fold images:
loading="lazy" - Use WebP/AVIF with fallback
PERF-02: Bundle Size
- No full library imports:
import { Button } from 'lib'notimport lib - Tree-shake CSS: use CSS modules or Tailwind purge
- Lazy load routes and heavy components:
React.lazy()or dynamic imports
PERF-03: Rendering
- Avoid layout thrashing: don't read then write DOM in loops
- Use
will-changesparingly (only for known animations) - Prefer CSS animations over JS animations
- Use
transformandopacityfor 60fps animations (compositor-only)
PERF-04: Core Web Vitals
- LCP < 2.5s: Optimize largest image/text, preload critical resources
- FID/INP < 200ms: No long tasks on main thread, defer non-critical JS
- CLS < 0.1: Set dimensions on images/embeds, no injected content above fold
3. Responsive Design (RD)
RD-01: Mobile First
- Base styles for mobile, then
@media (min-width)for larger screens - Touch targets minimum 44x44px
- No horizontal scroll on any viewport
RD-02: Fluid Layout
- Use
rem/emfor typography, notpx - Use
clamp()for fluid typography:font-size: clamp(1rem, 2.5vw, 2rem) - Flex/Grid over fixed widths
- Max content width:
max-width: 65chfor readability
RD-03: Breakpoints
- Don't target devices, target content breakpoints
- Common: 640px (sm), 768px (md), 1024px (lg), 1280px (xl)
- Test at 320px, 375px, 768px, 1024px, 1440px, 1920px
4. Component Patterns (CP)
CP-01: Forms
- Show validation errors inline, next to the field
- Use
type="email",type="tel",inputmode="numeric"for mobile keyboards - Disable submit button during submission (prevent double-submit)
- Preserve form state on error (don't clear fields)
CP-02: Loading States
- Show skeleton screens over spinners for content areas
- Indicate progress for long operations (progress bar > spinner)
- Disable interactive elements during loading
- Set
aria-busy="true"on loading containers
CP-03: Error States
- Always show actionable error messages ("Try again" button, not just "Error")
- Don't show technical errors to users (log internally, show friendly message)
- Error boundaries for React component trees
- Retry logic for network failures
CP-04: Empty States
- Never show blank pages — provide helpful empty states
- Include call-to-action: "No items yet. Create your first item."
- Use illustrations sparingly (they add bundle weight)
CP-05: Modals & Dialogs
- Use
<dialog>element or properrole="dialog" - Trap focus within modal
- Close on Escape key and backdrop click
- Return focus to trigger element on close
- Prevent body scroll while open
5. CSS Practices (CSS)
CSS-01: Specificity
- Prefer class selectors over ID or element selectors
- Avoid
!important(use specificity or cascade layers) - Use CSS custom properties for theming
- One direction for spacing: prefer
margin-bottomovermargin-top
CSS-02: Layout
- Use Flexbox for 1D layout, Grid for 2D layout
- Avoid
position: absolutefor layout (use for overlays only) - Use
gapover margins between flex/grid children - Use
min-height: 100dvh(not100vh) for full-height layouts
CSS-03: Dark Mode
- Use
prefers-color-schememedia query - Define all colors as CSS custom properties
- Test both modes — check contrast in both
- Don't just invert colors — design intentionally for dark mode
6. Security (SEC)
SEC-01: Content Security
- Never use
dangerouslySetInnerHTMLwithout sanitization - Sanitize user-generated content before rendering
- Use
rel="noopener noreferrer"on external links withtarget="_blank"
SEC-02: Forms & Input
- CSRF protection on all forms
- Rate limit form submissions
- Validate on both client AND server
7. Internationalization (I18N)
I18N-01: Text
- Don't hardcode strings — use i18n library or constants
- Support RTL layouts: use
logical properties(margin-inline-startovermargin-left) - Don't truncate text — designs must accommodate 40% text expansion
- Use
langattribute on<html>tag
Review Checklist
When auditing a file, check in this order (CRITICAL first):
- CRITICAL: A11Y-01, A11Y-02, SEC-01 — Semantic HTML, ARIA, XSS prevention
- HIGH: PERF-04, A11Y-03, CP-01 — Core Web Vitals, keyboard, forms
- MEDIUM: RD-01, CSS-02, CP-02, CP-03 — Responsive, layout, loading/errors
- LOW: CSS-03, I18N-01, CP-04 — Dark mode, i18n, empty states
> related_skills --same-repo
> vercel-react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
> security-patterns
Implements authentication, authorization, encryption, secrets management, and security hardening patterns. Use when designing auth flows, managing secrets, configuring CORS, implementing rate limiting, or when asked about JWT, OAuth, password hashing, API keys, RBAC, or security best practices.
> parallel-execution
Patterns for parallel subagent execution using Task tool with run_in_background. Use when coordinating multiple independent tasks, spawning dynamic subagents, or implementing features that can be parallelized.
> optimizing-performance
Analyzes and optimizes application performance across frontend, backend, and database layers. Use when diagnosing slowness, improving load times, optimizing queries, reducing bundle size, or when asked about performance issues.