Claude Cursor Skill

web-design-guidelines

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

LLM Mart · 0 points · 7 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download fcakyon-claude-codex-settings-plugins_react-skills_skills_web-design-guidelines-4632eb3.zip · 4 KB
Part of fcakyon/claude-codex-settings — 83 skills

Install

skills CLI npx skills add https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/react-skills/skills/web-design-guidelines
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install fcakyon-claude-codex-settings@llmmart
Git git clone https://github.com/fcakyon/claude-codex-settings.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole fcakyon/claude-codex-settings collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Web Interface Guidelines

Review files for compliance with Web Interface Guidelines.

How It Works

  1. Fetch the latest guidelines from the source URL below
  2. Read the specified files (or prompt user for files/pattern)
  3. Check against all rules in the fetched guidelines
  4. Output findings in the terse file:line format

Guidelines Source

Fetch fresh guidelines before each review:

references/web-interface-guidelines.md

Use WebFetch to retrieve the latest rules. The fetched content contains all the rules and output format instructions.

Usage

When a user provides a file or pattern argument:

  1. Fetch guidelines from the source URL above
  2. Read the specified files
  3. Apply all rules from the fetched guidelines
  4. Output findings using the format specified in the guidelines

If no files specified, ask the user which files to review.

Files (claude-codex-settings)
  • references
    • web-interface-guidelines.md 7.6 KB
      ---
      description: Review UI code for Vercel Web Interface Guidelines compliance
      argument-hint: <file-or-pattern>
      ---
      
      # Web Interface Guidelines
      
      Review these files for compliance: $ARGUMENTS
      
      Read files, check against rules below. Output concise but comprehensive—sacrifice grammar for brevity. High signal-to-noise.
      
      ## Rules
      
      ### Accessibility
      
      - Icon-only buttons need `aria-label`
      - Form controls need `<label>` or `aria-label`
      - Interactive elements need keyboard handlers (`onKeyDown`/`onKeyUp`)
      - `<button>` for actions, `<a>`/`<Link>` for navigation (not `<div onClick>`)
      - Images need `alt` (or `alt=""` if decorative)
      - Decorative icons need `aria-hidden="true"`
      - Async updates (toasts, validation) need `aria-live="polite"`
      - Use semantic HTML (`<button>`, `<a>`, `<label>`, `<table>`) before ARIA
      - Headings hierarchical `<h1>`–`<h6>`; include skip link for main content
      - `scroll-margin-top` on heading anchors
      - Meaningful media needs captions, transcripts, or descriptions as applicable
      - Media controls need keyboard support; decorative media needs assistive-tech hiding
      
      ### Focus States
      
      - Interactive elements need visible focus: `focus-visible:ring-*` or equivalent
      - Never `outline-none` / `outline: none` without focus replacement
      - Use `:focus-visible` over `:focus` (avoid focus ring on click)
      - Group focus with `:focus-within` for compound controls
      - Sticky headers/footers/overlays must not cover the focused element
      
      ### Forms
      
      - Inputs need `autocomplete` and meaningful `name`
      - Use correct `type` (`email`, `tel`, `url`, `number`) and `inputmode`
      - Never block paste (`onPaste` + `preventDefault`)
      - Labels clickable (`htmlFor` or wrapping control)
      - Disable spellcheck on emails, codes, usernames (`spellCheck={false}`)
      - Checkboxes/radios: label + control share single hit target (no dead zones)
      - Submit button stays enabled until request starts; spinner during request
      - Errors inline next to fields; focus first error on submit
      - Placeholders end with `…` and show example pattern
      - `autocomplete="off"` on non-auth fields to avoid password manager triggers
      - Warn before navigation with unsaved changes (`beforeunload` or router guard)
      
      ### Animation
      
      - Honor `prefers-reduced-motion` (provide reduced variant or disable)
      - Animate `transform`/`opacity` only (compositor-friendly)
      - Never `transition: all`—list properties explicitly
      - Set correct `transform-origin`
      - SVG: transforms on `<g>` wrapper with `transform-box: fill-box; transform-origin: center`
      - Animations interruptible—respond to user input mid-animation
      - Autoplay motion >5 seconds alongside other content needs pause, stop, or hide controls
      - Muted decorative loops must stop under `prefers-reduced-motion`
      
      ### Typography
      
      - `…` not `...`
      - Curly quotes `“` `”` not straight `"`
      - Non-breaking spaces: `10&nbsp;MB`, `⌘&nbsp;K`, brand names
      - Loading states end with `…`: `"Loading…"`, `"Saving…"`
      - `font-variant-numeric: tabular-nums` for number columns/comparisons
      - Use `text-wrap: balance` or `text-pretty` on headings (prevents widows)
      
      ### Content Handling
      
      - Text containers handle long content: `truncate`, `line-clamp-*`, or `break-words`
      - Flex children need `min-w-0` to allow text truncation
      - Handle empty states—don't render broken UI for empty strings/arrays
      - User-generated content: anticipate short, average, and very long inputs
      
      ### Images
      
      - `<img>` needs explicit `width` and `height` (prevents CLS)
      - Below-fold images: `loading="lazy"`
      - Above-fold critical images: `priority` or `fetchpriority="high"`
      
      ### Performance
      
      - Large lists (>50 items): virtualize (`virtua`, `content-visibility: auto`)
      - No layout reads in render (`getBoundingClientRect`, `offsetHeight`, `offsetWidth`, `scrollTop`)
      - Batch DOM reads/writes; avoid interleaving
      - Prefer uncontrolled inputs; controlled inputs must be cheap per keystroke
      - Add `<link rel="preconnect">` for CDN/asset domains
      - Critical fonts: `<link rel="preload" as="font">` with `font-display: swap`
      - Prefer `<video autoplay muted loop playsinline>` over animated GIF; provide a still alternative
      - Short non-essential loops: Safari H.264 MP4 `<picture>` source, `prefers-reduced-motion` media condition, and still fallback
      
      ### Navigation & State
      
      - URL reflects state—filters, tabs, pagination, expanded panels in query params
      - Links use `<a>`/`<Link>` (Cmd/Ctrl+click, middle-click support)
      - Deep-link all stateful UI (if uses `useState`, consider URL sync via nuqs or similar)
      - Destructive actions need confirmation modal or undo window—never immediate
      
      ### Touch & Interaction
      
      - `touch-action: manipulation` (prevents double-tap zoom delay)
      - `-webkit-tap-highlight-color` set intentionally
      - `overscroll-behavior: contain` in modals/drawers/sheets
      - During drag: disable text selection, `inert` on dragged elements
      - Drag/swipe/pinch/path gestures need tap/click and keyboard alternatives unless essential
      - `autoFocus` sparingly—desktop only, single primary input; avoid on mobile
      
      ### Safe Areas & Layout
      
      - Full-bleed layouts need `env(safe-area-inset-*)` for notches
      - Avoid unwanted scrollbars: `overflow-x-hidden` on containers, fix content overflow
      - Flex/grid over JS measurement for layout
      
      ### Dark Mode & Theming
      
      - `color-scheme: dark` on `<html>` for dark themes (fixes scrollbar, inputs)
      - `<meta name="theme-color">` matches page background
      - Native `<select>`: explicit `background-color` and `color` (Windows dark mode)
      
      ### Locale & i18n
      
      - Dates/times: use `Intl.DateTimeFormat` not hardcoded formats
      - Numbers/currency: use `Intl.NumberFormat` not hardcoded formats
      - Detect language via `Accept-Language` / `navigator.languages`, not IP
      - Brand names, code tokens, identifiers: wrap with `translate="no"` to prevent garbled auto-translation
      
      ### Hydration Safety
      
      - Inputs with `value` need `onChange` (or use `defaultValue` for uncontrolled)
      - Date/time rendering: guard against hydration mismatch (server vs client)
      - `suppressHydrationWarning` only where truly needed
      
      ### Hover & Interactive States
      
      - Buttons/links need `hover:` state (visual feedback)
      - Interactive states increase contrast: hover/active/focus more prominent than rest
      
      ### Content & Copy
      
      - Active voice: "Install the CLI" not "The CLI will be installed"
      - Title Case for headings/buttons (Chicago style)
      - Numerals for counts: "8 deployments" not "eight"
      - Specific button labels: "Save API Key" not "Continue"
      - Error messages include fix/next step, not just problem
      - Second person; avoid first person
      - `&` over "and" where space-constrained
      
      ### Anti-patterns (flag these)
      
      - `user-scalable=no` or `maximum-scale=1` disabling zoom
      - `onPaste` with `preventDefault`
      - `transition: all`
      - `outline-none` without focus-visible replacement
      - Inline `onClick` navigation without `<a>`
      - `<div>` or `<span>` with click handlers (should be `<button>`)
      - Images without dimensions
      - Large arrays `.map()` without virtualization
      - Form inputs without labels
      - Icon buttons without `aria-label`
      - Hardcoded date/number formats (use `Intl.*`)
      - `autoFocus` without clear justification
      - Animated GIF when compressed video is suitable
      - Gesture-only action without tap/click and keyboard alternative
      
      ## Output Format
      
      Group by file. Use `file:line` format (VS Code clickable). Terse findings.
      
      ```text
      ## src/Button.tsx
      
      src/Button.tsx:42 - icon button missing aria-label
      src/Button.tsx:18 - input lacks label
      src/Button.tsx:55 - animation missing prefers-reduced-motion
      src/Button.tsx:67 - transition: all → list properties
      
      ## src/Modal.tsx
      
      src/Modal.tsx:12 - missing overscroll-behavior: contain
      src/Modal.tsx:34 - "..." → "…"
      
      ## src/Card.tsx
      
      ✓ pass
      ```
      
      State issue + location. Skip explanation unless fix non-obvious. No preamble.
      
  • SKILL.md 1.2 KB
    ---
    name: web-design-guidelines
    description: Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
    metadata:
      author: vercel
      version: "1.0.0"
      argument-hint: <file-or-pattern>
    license: MIT
    ---
    
    # Web Interface Guidelines
    
    Review files for compliance with Web Interface Guidelines.
    
    ## How It Works
    
    1. Fetch the latest guidelines from the source URL below
    2. Read the specified files (or prompt user for files/pattern)
    3. Check against all rules in the fetched guidelines
    4. Output findings in the terse `file:line` format
    
    ## Guidelines Source
    
    Fetch fresh guidelines before each review:
    
    ```
    references/web-interface-guidelines.md
    ```
    
    Use WebFetch to retrieve the latest rules. The fetched content contains all the rules and output format instructions.
    
    ## Usage
    
    When a user provides a file or pattern argument:
    1. Fetch guidelines from the source URL above
    2. Read the specified files
    3. Apply all rules from the fetched guidelines
    4. Output findings using the format specified in the guidelines
    
    If no files specified, ask the user which files to review.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related