Vercel 发布一份可以直接喂给 AI 的 web 页面交互指南

223 阅读13分钟

原文: vercel.com/design/guid… ,下面是经过人工校验的译文

界面的成功源于数百个细微选择。这是一份动态且非详尽的决策清单。大多数指南与框架无关,部分针对 React/Next.js。欢迎提供反馈

交互

动画

  • 尊重 prefers-reduced-motion 提供减少动画的变体。
  • 实现偏好。 优先使用 CSS,尽可能避免主线程 JS 驱动的动画。
    • 偏好:CSS > Web Animations API > JavaScript 库,例如 motion
  • 合成器友好。 优先使用 GPU 加速属性(transform, opacity),避免触发重排/重绘的属性(width, height, top, left)。
  • 必要性检查。 仅在动画能阐明因果关系或增添刻意愉悦感时才使用,例如 北极光
  • 缓动符合主题。 根据变化内容(大小、距离、触发器)选择缓动效果。
  • 可中断。 动画可通过用户输入取消。
  • 输入驱动。 避免自动播放;响应操作进行动画。
  • 正确的变换原点。 将运动锚定到其“物理”起始位置。
  • 切勿 transition: all 明确列出仅打算动画的属性(通常是 opacity, transform)。all 可能无意中动画影响布局的属性,导致卡顿。
  • 跨浏览器 SVG 变换。 将 CSS 变换/动画应用于 <g> 包装器,并设置 transform-box: fill-box; transform-origin: center;。Safari 历史上在 SVG 上存在 transform-origin 的 bug,分组可避免原点计算错误。

布局

  • 视觉对齐。 当感知优于几何时,调整 ±1px
  • 刻意对齐。 每个元素都故意与某物对齐,无论是网格、基线、边缘还是视觉中心。无意外定位。
  • 平衡组合中的对比度。 当文本和图标并排时,调整粗细、大小、间距或颜色,以免冲突。例如,细线图标在中等粗细文本旁可能需要加粗线条。
  • 响应式覆盖。 在移动设备、笔记本电脑和超宽屏上验证。对于超宽屏,缩放至 50% 以模拟。
  • 尊重安全区域。 使用安全区域变量考虑刘海屏和内边距。
  • 无过度滚动条。 仅渲染有用的滚动条;修复溢出问题以防止不必要的滚动条。
  • 让浏览器处理尺寸。 优先使用 flex/grid/固有布局,而非在 JS 中测量。通过让 CSS 处理流、换行和对齐来避免布局抖动。

内容

表单

性能

设计

Vercel 专属

这些偏好反映了 Vercel 的品牌和产品选择。它们并非通用指南。

文案撰写

与代理集成

AGENTS.md 文件为代理提供指导。将此 AGENTS.md 与您的代理一起使用,以确保您的界面遵循这些指南。我们建议审核所有生成的界面。