返回精选
AI 精选动态 智能评分 60

Skills for Design Engineers

来源: twitter关注列表
作者: meng shao (@shao__meng)
发布于: 2026-07-02
收录于: 2026-07-02
AI 推荐理由
这份规则可直接作为 AI 编码助手的系统提示,提升生成 UI 的审美一致性,值得从业者参考原文中的具体数值和原则。
核心解读
设计工程师 @emilkowalski 发布 GitHub 仓库 "Skills for Design Engineers",包含三个 Skill 文件:主设计工程哲学、动画代码审查标准(含十条不可妥协标准)、动效术语词汇表。该仓库为 Codex、Claude Code、Cursor 等 AI 编码助手提供具体 UI/动画原则,例如动画时长控制 100-300ms、只动画 transform 和 opacity、尊重 prefers-reduced-motion 等量化规则。
全文
Skills for Design Engineers 作者 @emilkowalski 是知名设计工程师,曾在 Vercel、Linear 工作,也是 Sonner、Vaul 等流行组件的创建者。他把多年积累的一套 UI/动画原则,沉淀成设计工程师们的设计品味 Skills,让 Codex、Claude Code、Cursor 等 Coding Agents 在写 UI 和动画时,具备接近资深设计工程师的审美判断! https://t.co/LP5XimGnm5 仓库结构:三个相互补充的 Skills 1. 先建立决策框架(emil-design-eng) 主 Skill:设计工程哲学 + 动画决策框架 + 组件构建原则 2. 再审查代码(review-animations) · SKILL.md 以严格标准审查动画/动效代码,输出“Before/After/Why”表格 · STANDARDS.md 评审的数值/曲线参考表(easing、duration、spring 等) 3. 最后帮助用户精准描述动效(animation-vocabulary) 词汇表:把“那个弹一下的效果”翻译成“Pop in”等专业术语 核心主张:动画不是“让它动起来”,而是“让它感觉对” 1. 动画需要理由 每条动画都必须回答一个问题:“它为什么要动?” 合理理由: · 空间一致性(toast 从同一方向进出) · 状态指示(按钮变形表示加载完成) · 解释关系(引导用户理解状态变化) · 防止突兀(元素突然出现/消失) · 反馈(按下按钮时 scale(0.97)) 不合理理由: · “看起来很酷” + 高频出现 → 应该删除 2. 按使用频率决定动画强度 · 每天 100+ 次(快捷键、命令面板):禁止动画 · 每天几十次(hover、列表导航):删除或大幅简化 · 偶尔(弹窗、抽屉、toast):标准动画 · 罕见/首次( onboarding、反馈):可以适当“惊喜” 最实用的技术原则 Easing:不要信默认,要用强曲线 · UI 元素进入/退出 → ease-out · 已在屏幕上的元素移动 → ease-in-out · hover / 颜色 → ease · 恒速运动 → linear · 绝对禁止 UI 动画使用 ease-in(开头慢,用户会感觉到延迟) Duration:UI 动画控制在 300ms 内 · 按钮按下反馈:100–160ms · Tooltip / 小弹层:125–200ms · 下拉框/选择器:150–250ms · 模态框/抽屉:200–500ms Physical correctness · 永远不要从 scale(0) 开始:现实中不会凭空出现。用 scale(0.95) + opacity: 0。 · Popover 从触发点缩放:transform-origin 要指向触发按钮,而不是元素中心(modals 例外)。 · 按钮按下必须有反馈:transform: scale(0.97) 是默认。 性能规则 · 只动画 transform 和 opacity(GPU 层)。 · 不要用 width/height/margin/top/left 做动画。 · Framer Motion 的 x/y/scale 简写不是硬件加速的,要用完整 transform 字符串。 · 不要用父元素的 CSS 变量驱动子元素 transform(会引发样式重算风暴)。 · 预定动画用 CSS;动态/可打断的用 JS 或 Spring。 打断与对称 · CSS transition 可打断、可重定向;@ keyframes 会从头开始。 · 长按/删除等场景:按下慢(2s linear),释放快(200ms ease-out),非对称时间。 无障碍 · 尊重 prefers-reduced-motion:不是“全部关掉”,而是保留 opacity/颜色,移除位移动画。 · hover 动画必须加 @ media (hover: hover) and (pointer: fine),避免触屏设备误触发。 评审 Skill:如何检查代码 review-animations 设定了十条“不可妥协”的标准,并把输出格式严格化为: · transition: all 300ms > transition: transform 200ms ease-out -- 精确指定属性,避免 all 触发非 GPU 动画 · transform: scale(0) > transform: scale(0.95); opacity: 0 -- 不应凭空出现 animation-vocabulary:把模糊感受翻译成专业词 这个 Skill 本质上是一个动效术语反向查询表。用户说“iOS 拉到底部会弹回去那种感觉”,它能回答“Rubber-banding”;用户说“元素从按钮里长出来”,它能回答“Origin-aware animation”。 它涵盖: · 进出/序列/变换/状态过渡 · 滚动/交互反馈 · Easing / Spring / 循环/环境动画 · 打磨效果(Blur、Clip-path、Skeleton、Number ticker) · 性能术语与动画原则 这对设计师和工程师的沟通、以及给 AI 下精确指令,都很有价值。 ![photo](https://pbs.twimg.com/media/HMLxxjObIAEs4rp.jpg)
#技术#开源#AI