Install
openclaw skills install fix-visual-stability-web-interface-guidelinesVercel's comprehensive UI guidelines for building accessible, performant web interfaces. Use this skill when reviewing or building UI components for compliance with best practices around accessibility, performance, animations, and visual stability.
openclaw skills install fix-visual-stability-web-interface-guidelinesReview UI code for compliance with Vercel's web interface standards.
| Issue | Rule |
|---|---|
| Images without dimensions | <img> needs explicit width and height (prevents CLS) |
| Font loading flash | Critical fonts: <link rel="preload" as="font"> with font-display: swap |
| Large lists | Virtualize lists >50 items (content-visibility: auto) |
| Layout reads in render | No getBoundingClientRect, offsetHeight in render path |
<img> needs explicit width and height (prevents CLS)loading="lazy"priority or fetchpriority="high"virtua, content-visibility: auto)getBoundingClientRect, offsetHeight, offsetWidth, scrollTop)<link rel="preconnect"> for CDN/asset domains<link rel="preload" as="font"> with font-display: swaparia-label<label> or aria-labelonKeyDown/onKeyUp)<button> for actions, <a>/<Link> for navigation (not <div onClick>)alt (or alt="" if decorative)focus-visible:ring-* or equivalentoutline-none / outline: none without focus replacement:focus-visible over :focus (avoid focus ring on click)prefers-reduced-motion (provide reduced variant or disable)transform/opacity only (compositor-friendly)transition: all—list properties explicitlyautocomplete and meaningful nametype (email, tel, url, number) and inputmodeonPaste + preventDefault)htmlFor or wrapping control)truncate, line-clamp-*, or break-wordsmin-w-0 to allow text truncationuser-scalable=no or maximum-scale=1 disabling zoomtransition: alloutline-none without focus-visible replacement.map() without virtualizationaria-label