agentleFS
linyi-uilinyi-ui/ui-motion-skill/skills/ui-motion/SKILL.md

ui-motion

Skill42 starsChanged 5 days agoMITView on GitHub

UI/UX动效交互 —— 给 AI 编码助手用的高级交互动效技能。当用户要做网页、H5、小程序或 App 界面,或者要加弹出、展开、切换、加载、表单输入、粒子、图表、滚动、评论区、反馈等交互动效时使用。它让界面"动得高级",而不是"能动就行"。

9 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

UI/UX动效交互

你的目标:做出的交互要有细节、有手感、经得起慢放,不是"点一下就硬切"。

工作方式

  1. 先读需求,用一句大白话告诉用户你打算加哪几个动效、为什么。用户确认后再写代码。
  2. 从 references/motions.md 动效库里挑最合适的写法,严格按里面的参数实现(时长、曲线、间隔)。库里没有的,按 references/foundations.md 的底线规则自己设计。
  3. 交付前按 references/anti-cheap.md 逐条自检,不合格就改。

场景判断(怎么选动效)

用户说要做某个功能时,按下面的对照表快速判断该用哪个动效:

用户需求推荐动效不用的情况
悬浮按钮展开菜单变形菜单 Morph Menu菜单项超过 6 个 / 需要二级菜单
列表卡片点开详情卡片展开 Expand Card表格行 / 详情页和列表差别太大
网格卡片展开成整页(设置页/详情页)卡片变整页 Card Morph目标页信息结构和卡片完全不同 / 需要大量数据
点赞、收藏、关注点赞爆粒子 Like Burst严肃场合 / 按钮很小
提交表单、支付、保存提交按钮三连变 Submit Morph即时操作 / 不需要反馈
设置开关、深色模式果冻开关 Jelly Toggle三态/多选 / 需要立即显示结果
删除、注销、清空长按确认 Hold to Confirm非危险操作 / 需要二次确认 / 批量操作
列表下拉获取新内容下拉刷新 Pull to Refresh内容很少变化 / 实时推送 / 电脑网页为主
列表单行快捷删除、归档左滑删除 Swipe to Delete重要数据不可恢复 / 电脑网页为主 / 行本身能横滑
一张张二选一(喜欢/跳过)卡片左右滑 Swipe Cards需要对比多个选项 / 超过两种结果
用户自己调整列表顺序拖拽排序 Drag to Reorder列表有固定排序 / 条目上百条
App / 小程序底部主导航水滴导航 Liquid Tab BarTab 超过 5 个 / 电脑网页顶部导航
选规格、选日期、分享、筛选面板底部弹窗 Bottom Sheet内容像独立页面一样长 / 电脑大屏 / 只是一句提示
弹层里选完一项要进入完整二级页弹层长成整页 Sheet to Screen只是切换筛选条件 / 需要横屏分栏
二级页返回上一页返回视差 Back Parallax平级切换 / 返回后马上要再进同一页
首页大图标入口随滚动收成顶部标签栏网格塌缩 Grid to Tabs入口只有 3–4 个 / 页面没有滚动
列表行的图标要延续到下一页图标飞行 Icon Flight两页图标造型不同 / 跨多个层级
底部导航"更多"展开次级菜单导航长成面板 Bar to Panel面板内容很少 / 已有底部弹层打开
头图 + 大标题的详情页吸顶大标题 Collapsing Header没有头图 / 表格表单类页面
顶部分段标签 + 左右滑内容页毛毛虫标签 Segmented Tabs标签超过 5 个 / 每页内容本身要横滑
信息流、列表、详情页首次加载骨架屏扫光 Skeleton Shimmer加载 <300ms / 版面结构不固定
照片墙、商品图、头图等网络图片模糊到清晰 Blur-up Image图标、Logo / 已缓存的图
分页的长列表滑到底加载更多 Infinite Scroll需要跳页或看总数 / 底部有重要内容
AI 对话、边生成边显示的回复AI 流式回复 Streaming Reply回复很短 / 代码块、表格
外卖、商品、服务评价打分星级评分 Star Rating1–10 分精确打分 / 只有好坏两种 / 只读展示
注册、设置或修改密码密码强度条 Strength Meter登录页密码框 / 数字支付密码
邮箱、用户名、手机号等格式校验或查重实时打勾 Inline Validation密码框 / 没有对错的自由文本
登录、注册、资料等文本输入框浮动标签 Floating Label搜索框 / 很矮的行内编辑框
密码错误、验证码错误等提交后报错输错摇头 Shake on Error还在输入时的格式问题 / 网络或服务器错误
短信、邮箱验证码,两步验证验证码格子 OTP Input长度不固定或含字母的长码
打卡、支付、完成任务、升级等庆祝时刻撒花庆祝 Confetti普通保存提交 / 负面结果 / 高频操作
删除消息、撤回、清除卡片想要仪式感碎沙删除 Disintegrate批量删除 / 元素很大、低端设备
官网首页、发布页、启动页的品牌 Logo粒子 Logo Particle Logo后台和表单页 / Logo 很小 / 首屏要立刻看清
记账、运动、销售等柱状图第一次出现柱子长出来 Bar Grow柱子超过 20 根 / 实时刷新的监控图
收益、体重、股价等走势折线图,拖动看数折线画出来 Line Draw + Scrub列表里的迷你走势线 / 数据点少于 5 个
支出分类、流量来源等占比环形图圆环转出来 Donut分类超过 7 个 / 需要精确比较大小
看板切换周/月/年、切换指标、筛选后刷新切换变形 Data Morph前后数据完全不相关 / 上百根柱子
首页、列表、落地页往下滑时内容出现依次浮现 Scroll Reveal首屏内容 / 聊天、表格等要立刻看清的内容
官网首屏、活动页想要立体纵深感视差纵深 Parallax后台、表单页 / 低端手机为主的长列表
品牌故事、产品理念的一大段核心文案逐字点亮 Scroll Text Reveal正文、说明文档 / 超过 3 行的普通段落
产品发布页、功能介绍分几段讲卖点钉住换图 Sticky Scroll手机窄屏没有左右空间 / 卖点少于 3 个
官网首屏、落地页的主按钮(电脑端悬停)磁吸按钮 Magnetic Button手机和小程序 / 一排很多按钮挨在一起
电商加入购物车加购飞入 Add to Cart Fly批量加购 / 屏幕上看不到购物车图标
音乐、播客、视频的播放暂停播放暂停变形 Play ⇄ Pause Morph16px 以下小图标 / 列表里非当前播放的歌
App 右下角加号展开几个快捷操作悬浮按钮展开 FAB Fan Menu(想要按钮变成面板就用变形菜单)选项超过 5 个 / 有二级菜单
代码、邀请码、链接、优惠码的复制按钮复制变勾 Copy → Copied按钮在菜单里一点就关
App、小程序打开时的启动页启动页进首页 Splash → Home热启动 / 首页数据要等很久
点开详情、切换页面时的等待顶部进度条 Top Progress Bar加载 <300ms / 首次加载能用骨架屏
发帖、发朋友圈的多张图片上传照片上传进度 Upload Progress几分钟的大视频上传
聊天发消息、评论、点赞等大概率成功的操作消息秒发 Optimistic Send支付、下单等必须等结果的操作
打车、派单、配对等等待对方响应叫车等待 Ride Matching等待 <1 秒 / 没有地图或空间关系
评论、动态、群聊里输入 @ 提及好友@好友联想 Mention Picker只能 @ 固定几个人 / 不能插入富文本
评论下的二级回复、线程回复展开收起展开楼中楼 Thread Expand一次展开超过 20 条 / 回复要跳新页面看
评论、消息的表情回应长按表情回应 Reaction Picker(只有点赞就用点赞爆粒子)只有一种回应 / 长按已被占用
AI 绘图、修图、滤镜等要等几秒才出图AI 出图显影 AI Image Generating不到 1 秒就出图 / 拿不到真实进度
下载 App、游戏、素材包、离线地图图标扇形下载 App Icon Download没有图标可扫亮 / 同时下载很多个
视频、音频播放时网慢缓冲视频缓冲 Video Buffering首次打开还没画面 / 直播实时流
外卖、快递、订单、审批等多步骤状态外卖接力进度 Order Progress步骤超过 6 个 / 状态会回退或分叉
列表、详情页加载失败要重试加载失败重试 Error → Retry局部小组件失败 / 提交支付等写操作失败
信息流浏览时有新内容到达新内容提示条 New Posts Pill聊天窗口 / 比分行情等必须立刻看到的
搜索框输入后加载结果搜索结果加载 Search Loading要几秒以上的复杂查询 / 本地少量数据即时过滤
网络断开与恢复断网提示 Offline Banner离线完全不能用的功能 / 只是网慢
在别的页面时收到新消息、新评论顶部消息横幅 In-app Banner正在当前聊天窗口里 / 必须马上处理的报警(用全屏弹窗)
底部导航、图标上的未读数量红点数字角标 Badge Count数量没有意义只需提醒(用小红点) / 一屏里几十个角标
删除、归档、移出后给反悔机会撤销提示条 Toast with Undo删除后无法恢复的操作(用长按确认) / 支付等不能撤回的
通知中心、消息盒子里同类通知很多通知堆叠展开 Stacked Notifications只有 1–2 条 / 每条都要立刻看全的重要通知
首次打开、新功能上线,告诉用户按钮在哪聚光灯功能引导 Spotlight Coach Mark只有 1 个主按钮 / 每次打开都弹
首次安装的几页功能介绍欢迎页滑动引导 Onboarding Carousel打开就要干活的工具类 / 超过 4 页
待办、笔记、收藏等列表第一次是空的空状态引导 Empty State CTA搜索无结果、加载失败 / 列表已有内容
申请通知、定位、相机等系统权限之前权限请求前说明 Permission Pre-prompt没权限完全不能用的核心功能 / 用户已拒绝过
商品卡、文章卡等按下去要有分量感按下微倾 Press Tilt卡片很小 / 卡片本身要横向滑动
背单词、会员卡、答案卡点一下看另一面卡片翻面 Flip Card正反面内容量差很大 / 列表里大量卡片同时翻
首页推荐、优惠券横向卡片轮播吸附轮播 Snap Carousel要并排对比多张卡片 / 需要页码精确跳转
笔记、聊天列表长按卡片弹收藏/分享/删除菜单长按浮起 Long-press Lift高频操作不适合长按门槛 / 桌面网页无长按手势
图片社区、相册网格点一张图看大图点开放大 Tap to Zoom列表项不是图片本身 / 需要跳到完全不同的详情页
商品详情页图片要放大看细节双指缩放 Pinch to Zoom图片很小细节不多 / 需要固定坐标系做标注对比
相册、看图页需要手势关闭返回列表下滑关闭 Swipe Down to Dismiss下方有纵向可滚动内容 / 横屏场景
商品详情页多图、相册查看器左右切图多图左右滑 Gallery Swipe只有 1–2 张图 / 需要同时对比查看
搜索入口点图标展开输入框搜索框展开 Search Expand搜索入口本身已是通栏输入框
搜索框输入时下方联想词/热门标签热门标签联想 Suggestion Chips联想词需要明显网络延迟 / 候选超过 20 条要滚动查看
商品/内容列表点筛选按钮弹出条件面板筛选面板滑出 Filter Panel筛选条件只有 1–2 个简单选项 / 电脑端大屏常驻侧边栏
商品/搜索结果列表切换排序方式结果排序切换 Sort Switch列表项超过 50 条且排序频繁触发 / 排序和筛选同时导致数量变化
购物车、下单页改购买数量数量加减 Stepper数量范围很大(上百)要直接输入 / 只能买 1 件
商品筛选选价格区间双头价格滑块 Range Slider只需要一个上限值 / 价格跨度极大需要精确输入
订酒店、租车、请假选开始和结束日期日历选区间 Date Range只选单个日期 / 跨度经常超过 2 个月
选生日、时间、地区等多列选项滚轮选择器 Wheel Picker选项只有 2–3 个 / 电脑端用鼠标操作为主
游客点收藏/评论/关注时要求登录登录弹窗 Login Modal一打开就必须登录 / 电脑大屏
验证码登录和密码登录来回切换登录方式切换 Method Switch只有一种登录方式 / 两种表单完全不同
密码框显示/隐藏密码密码小眼睛 Password Peek数字支付密码 / 超长密码
获取短信验证码后的重发倒计时验证码倒计时 Resend Timer不需要等待的重发
注册、下单、商家入驻等多步流程顶部进度步骤圆点进度条 Step Dots Progress步骤超过 6 个 / 可以跳步不按顺序走
打卡、上传、运动记录等完成度展示环形进度+数字滚动 Circular Progress Ring需要同时展示多个分类占比(用圆环转出来) / 进度会反复升降
问卷、支付、商家入驻等分段流程进度分段进度条平滑过渡 Segmented Progress Bar步骤超过 8 段 / 可以随意跳到任意一段
完善资料、新手任务等清单打勾页面清单打勾完成度 Checklist Progress清单项目超过 10 项 / 打勾触发不可逆重要操作
FAQ、设置项、长列表点标题展开答案手风琴展开 Accordion内容很短不值得折叠 / 需要多项同时展开对比
长文、笔记、评论「...展开全文 / 收起」展开全文 Read More内容本来就很短 / 必须一次看全的正文
地图、音乐、列表页底部可拖拽面板底部抽屉拖拽 Drag Sheet只需要打开/关闭两态 / 内容像独立页面一样长(用底部弹窗)
钱包余额、收益、到账金额变化金额平滑滚动 Count-up Rolling实时高频跳动的数 / 需要立刻读准的编号
点赞、收藏、关注数 +1点赞数翻滚 Odometer Roll一次变化很大的数(用金额平滑滚动)
打卡、任务完成、游戏结算拿积分积分庆祝累加 Score Ticker严肃财务医疗数据 / 每次操作都触发
数据看板、总结页统计卡入场统计数字入场 Stat Count-in反复进出的页面每次都播 / 数字为 0
删除/危险操作要二次确认确认对话框 Confirm Dialog无风险的普通提示(用 Toast) / 高频连续确认
卡片右上角更多操作下拉操作菜单 Popover Menu操作项超过 7、8 条(用底部操作表) / 需要强确认
长按列表项/卡片出操作长按上下文菜单 Context Menu需要立即触发不希望延时 / 桌面端右键更合适
分享/多个操作选项从底部出底部操作表 Action Sheet只有一两个操作(用下拉菜单) / 桌面宽屏
音乐 App 播放页的黑胶封面、唱针黑胶封面旋转 Vinyl Spin静态封面展示 / 一屏多个同时旋转
歌词页当前唱到的那一句跟随高亮歌词逐行高亮 Lyrics Sync只有一两句歌词 / 用户要手动翻阅全部歌词
播放页按住封面往上拖切下一首上滑切歌 Track Swipe列表里点一下切歌 / 横屏、封面很小
全屏播放页往下拖收起成迷你条播放页下滑收起 Player Collapse页面内有纵向滚动内容 / 没有可返回的列表
聊天输入框收键盘后要收成浮动胶囊输入框收起变形 Composer Collapse底部已有 tab bar / 输入框在滚动区域中间
聊天打字时草稿气泡要跟着变大气泡边打边长 Live Bubble长文富文本 / 低端设备每字重排
好友正在输入,标题栏要给提示让位正在输入提示条 Typing Pill标题栏空间不足 / 要同时显示多人输入
聊天消息双击快速回应双击爱心回应 Heart Burst需要多表情选择(用长按表情回应) / 消息贴边
打卡要长按确认、有盖章感长按打卡 Hold to Check-in普通点赞收藏 / 按钮很小看不清进度
完成任务后奖励要飞进计数器能量飞入 Energy Fly整页结算 / 没有可见的计数器
连续天数达成里程碑要揭晓里程碑揭晓 Streak Reveal没有连续记录体系 / 里程碑太频繁
设置连续打卡目标、多档位选择目标选择页 Goal Commit只有一个固定目标 / 选项超过 6 个
票务 / 会员 / 订阅的档位选择票档横滑 Plan Tab档位超过 4 个 / 页面本身有横滑手势
购票、活动报名选票数滑动选票 Ticket Slider数量只有 1–5 件 / 需要精确输入大数字
出票结果、票条打印票券打印 Ticket Print只有一张票 / 出票要等网络结果
开卡、开会员成功页会员卡就绪 Card Ready卡片信息很多 / 没有品牌卡堆背景
开卡加载页切到就绪页会员卡装配 Card Setup加载不到 300ms / 需要用户填资料
卡包首页的媒体入口收进卡包 Wallet Slip只有一张静态图 / 需要用户读完整信息
AI 语音模式主页、说活时的活体反馈语音球呼吸 Voice Orb页面已有强主视觉 / 纯文本对话
AI 搜索或聊天输入框进入听写聆听描边 Listening Ring单色规范页面 / 长时间停留听写
AI 模型强度、推理档位选择竖滑档位 Level Slider档位超过 4 个 / 只是二选一
弹层里再展开一层选择器面板长高 Sheet Morph内容比屏幕高 / 只是静态展示
语言学习跟读、转写回放逐词跟读 Word Sync没有真实音频时间轴 / 只有一句
详情页下滑关闭下拉返回 Pull Back页面有横向手势冲突 / 安卓返回键优先
AI 连接工具、应用选择器工具弧 Tools Arc图标超过 8 个 / 要同时比较多项
第三方账号或工具连接完成连接成功 Connect Pulse连接秒回无等待 / 品牌禁止彩色光

如果库里没有对应的动效,按 references/foundations.md 的通用规则设计:

  • 小元素 150–250ms,面板 300–450ms,转场 450–600ms。
  • 进场 ease-out,退场 ease-in,弹性用轻微回弹(超调不超过 8%)。
  • 只动 transform 和 opacity,避免改 width、height。
  • 一组元素依次出现,间隔 30–60ms。

动效底线(所有动效都要满足)

  • 有来源:元素从哪里来、回哪里去要讲得通。按钮变成菜单,就是按钮本身在变形,不是凭空弹出新的一层。
  • 有层次:一组元素依次出现,间隔 30–60ms,不要一起蹦出来。
  • 有曲线:禁止 linear。进场用 ease-out,退场用 ease-in,需要弹性用轻微回弹(超调不超过 8%)。
  • 有分寸:小元素 150–250ms,面板和卡片 300–450ms,整页转场 450–600ms,任何动效都不超过 700ms。
  • 可逆:打开怎么来,关闭就怎么回去,路径一致。
  • 只动 transform 和 opacity,避免改 width、height、top 这类属性导致卡顿。确实需要改尺寸时用 FLIP 技巧。
  • 尊重系统设置:prefers-reduced-motion: reduce 时,动画改成 150ms 以内的淡入淡出。
  • 有反馈:可点击的元素要有按下态(缩放到 0.96–0.98)和 hover 态,触屏上有点击反馈。
  • 手势要跟手:拖动时元素 1:1 跟着手指(需要阻力时加阻尼),松手后按"距离阈值 + 滑动速度"判断是回弹、吸附还是甩出,绝不直接跳位。周围元素要实时让位或补位。用 Pointer Events 实现,鼠标和触屏都能用。
  • 等待要有内容:结构已知时用骨架屏而不是白屏转圈,图片框提前占位,内容到了分块错开出场,加载前后布局不跳;操作后 100ms 内必须有可见反馈。
  • 页面切换要有空间关系:新内容从哪个方向来、旧内容往哪退要和操作方向一致;弹出层出现时背后页面要跟着退后(缩小、压暗),不能一动不动。指示器(胶囊、下划线)要"流"过去,不要瞬移。
  • 粒子要有来源和退场:粒子从触发它的元素里来(按钮、被删的消息、Logo 本身),有重力或阻力(先快后慢),每粒各自淡出,不整批消失;一个页面最多一处,全部画在一个 canvas 上,减少动效时不放。
  • 图表要"长出来、变过去":先出坐标再出数据,数据按阅读顺序依次出现(柱子从左到右、折线一笔画出、圆环顺时针),数字跟着图形一起滚动;数据切换时从旧形状变到新形状,不清空重画;能点的图表点了要有"被选中"的形变(弹出、加粗),不只变颜色;同一份数据只在第一次进入时播放。
  • 滚动动效要跟手、只播一次:进场类(浮现)在元素真正露出一点时才触发,同组依次出发,播过不重播;进度类(视差、逐字点亮、钉住换图)进度完全由滚动位置决定,手停画面就停、往回滑就倒回去,不要自己按时间播放;用 IntersectionObserver 和 transform,不在 scroll 事件里改布局;减少动效时直接显示最终状态。
  • 按钮要回应你:点下去不只是变个色或另外弹个提示框。反馈出现在按钮本身(变形、变勾、文字滚动换掉),或者有一个看得见的结果去向(东西飞进购物车、选项从按钮里依次弹出);按钮尺寸变化要平滑,不一下跳;鼠标悬停类效果只给电脑端,触屏只保留按下态。
  • 等待要让人觉得快:先把能给的结果立刻给出来(缩略图、发出去的消息、首页框架),原页面不要被白屏或遮罩盖掉;进度要看得见、会变化(细进度条先快后慢、照片一点点刷亮、波纹和小车在动),不要只有一个转圈加一句文字;结束时有衔接(冲线、对勾、收回、开过来),不要内容一下子硬换掉。
  • 出错和断网不拆页面:失败只发生在内容区,导航和标签栏都留着;重试按钮本身要回应(缩成小转圈),内容回来一张张浮现;断网用一条不吓人的细横幅,已加载的内容照常能看,恢复后自动补上没加载的部分;新内容到了不打断用户,用一颗可点的胶囊提示,点了再平滑插进来。
  • 提醒不打扰:通知从屏幕边缘滑进来(带轻微回弹),不弹系统 alert、不压暗整页、不挡住操作;同一处连续来的提醒原地更新(文字滚动、数字翻牌),不叠一堆;能用手势收走(往上推、左滑)且跟手;数字变化要滚过去,角标宽度平滑变化;删除类操作给几秒撤销,并让人看得见还剩多久。
  • 等待要看得见在变:被等的东西本身要有变化(图片从噪点里显影、图标被扇形扫亮、多步骤的线一段段走到下一站),而不是旁边放个百分比;卡住时保留原画面只轻轻压暗,不黑屏、不弹大白框;每到一个节点给一个小确认(打勾、弹一下),正在进行的那一步要和已完成的区分开。
  • 评论区要有来龙去脉:@ 名单从光标里弹出,选中的人变成一个整体(胶囊,一次删掉);回复一条接一条垂下来,用竖线串起来,下面的内容平滑让位;表情回应能按住滑动选,选中的表情飞到它该去的地方,计数跳一下。不要整块蹦出来,也不要让人松手再点一次。
  • 引导要指路、不拦路:新手引导直接指向真实的按钮(镂空照亮、箭头指着),不在屏幕中间放一个说明框;换步时光圈和气泡连续滑过去,不跳;欢迎页跟手且有前后层次;空状态给一个"从这开始"的入口,第一条内容从入口飞进来;系统权限先用自己的说明卡讲清楚好处,用户点了"好的"才弹系统框;所有引导都能跳过,只出现一次。
  • 表单要等人说完:用户还没输完不报错(停止输入约 400ms 或离开输入框再校验),改对了立刻变绿;反馈就近出现在输入框旁边;错误用"动作 + 颜色 + 文字"三重提示,不只靠变红,不用 alert;标签用真正的 label 不用 placeholder;状态切换时输入框不改变布局高度。
  • 卡片要有分量、不是硬切:按下去的反馈要体现在卡片本身的立体变化(倾斜、抬起、缩放),不是只换颜色或透明度;翻面、长按浮起这类"状态切换"要让人看到中间过程(90° 侧立时的抬起、蓄力后的浮起),不是直接从 A 跳到 B;横向轮播要让当前项和两侧有连续的大小/亮度差异,并吸附停在确定的位置,不能停在不确定的中间状态。
  • 搜索筛选要连续、不重排:搜索入口展开、筛选面板滑出都要有"从哪来、位置宽高连续过渡"的真实路径,不能瞬间切换或原地出现;联想词、筛选结果变化是逐条增删/逐项移动,不是整体刷新或瞬间跳位;排序、筛选导致的列表变化要让人看清"谁动去了哪"。
  • 登录页要顺、不打断:要求登录的弹窗从用户点的那个按钮里长出来、关掉回到那个按钮,背后页面退后;切换登录方式时表单高度平滑伸缩、已填的内容保留;密码显示、倒计时这类状态变化要看得见过程(逐个翻转、数字滚动),不是直接换字;登录成功后直接完成用户刚才想做的事。
  • 进度反馈要让人看见"在变"、走到头有回应:进度条、进度环的填充要画出来而不是瞬间跳变,数字跟着图形同步滚动;完成瞬间要有一次性的弹性反馈(放大变勾、轻轻弹一下、震一下)区分"进行中"和"已完成";分段/跳步场景允许画过头一点再弹回,但不能跳过中间状态直接定格。
  • 展开折叠要有高度过渡、拖拽要跟手吸档:展开/收起内容时高度要平滑撑开或收回(不是 display 直接显隐、不是一下子全蹦出来),配套的箭头同步旋转;手风琴这类互斥面板,开新的要让旧的自动平滑收起;卡片进详情用"同一张图连续放大、位置宽高连续过渡"的共享元素,返回沿原路径缩回原位,不是硬跳转新页面;底部抽屉等可拖面板要 1:1 跟手拖动,松手按"距离 + 速度"吸附到最近档位并带轻微回弹,绝不停在中间或一下弹到底。
  • 数字变化要滚着变:金额、计数、积分、统计数字变化时,从旧值连续滚到新值(先快后慢),不是 textContent 直接替换;大数字带千分位;+1 这类小计数只翻变化的那一位;完成类数字到顶给一下放大回弹;页面入场的统计数字从 0 滚入并轻微回弹定格。
  • 播放器要像真的在放:黑胶/唱片类旋转持续匀速,暂停用阻尼减速而不是瞬停,唱针有落下和抬起;歌词高亮是一块会移动变形的高亮,不是只换字色,列表要跟着把当前行送到中间;切歌、收起这类手势 1:1 跟手,背景同步放大或让位,松手按"距离阈值 + 速度"决定回弹还是甩出,不能松手后硬切内容。
  • 聊天要像在对话:输入框收起时沿同一路径连续变形,不换元素;打字时草稿气泡实时跟字变宽变高;正在输入提示从边缘滑入并给标题让位;双击回应要看得见爱心飞向头像并被头像收下,结果留在消息下方。
  • 打卡要有"完成感":打卡、任务完成、里程碑这类反馈,要让用户看见动作真的发生(按住填充、奖励飞入、卡片弹起),不是点一下直接换状态;完成态要留在页面上,别一闪而过。
  • 卡券要像真的在出票/开卡:票档切换是整页横滑、胶囊拉长、卡片延迟淡入,不是内容硬切;选票滑块数字跟手线性变化、粒子从滑块左上喷出;出票先硬切状态,再让票条压窄、从底部上色,最后才出倒计时;会员卡就用特写硬切和指数收缩;卡包入口固定媒体框、内容三段硬切,页面其他部分不动。
  • 页面转场要让人看见"从哪来、到哪去":卡片/弹层展开要位置、宽高、圆角、内边距、字号一起连续过渡,只做整卡 scale 会把文字拉变形;内容交叉的两段要重叠,中间不能出现两层都透明的空白窗口,收起时也不许闪回上一层;返回要用两层不同速度(上层滑出、底层慢跟)+ 边缘投影,同速平移没有纵深;滚动塌缩要让每个图标各自飞过去,不是整块网格统一缩小;共享元素必须是同一个元素连续飞行,不能旧页消失、新页凭空出现;底部导航长高成面板时,tab 图标位置留在原地,不能被一起推走。

输出要求

  • 默认交付一个可以直接打开运行的单文件 HTML(CSS 和 JS 都写在里面),不依赖外部库;用户指定框架时按框架写。
  • 动效参数集中写成 CSS 变量或常量(如 --dur-panel: 400ms),方便用户微调。
  • 代码里给关键动效加一行中文注释,说明它模仿的是哪种交互。
  • 代码要完整可运行,不用省略号跳过;关键逻辑加中文注释。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.