SuperAPI AI 工具集

figma-implement-motion

设计与创作

查看项目

更新于 10-15 21:41

技能介绍

用途:把 Figma 设计中的动画与过渡翻译成可运行代码,输出格式可为 motion.dev、CSS @keyframes 或框架专用动画库。仅当交付物是用户仓库中的动效代码时使用;若要在 Figma 内部创建或编辑动画,应改用 figma-use。

主要能力:Figma 通过两个工具暴露动效。get_motion_context 是权威动效工具,返回完整的动画节点清单、预生成的代码片段(CSS @keyframes 与 motion.dev)、片段不可用时的回退关键帧绑定,以及递归时间线协调提示 timelineCohorts,是动画数据与哪些节点会动的唯一事实来源。get_design_context 提供设计结构:布局、尺寸、资源、样式、Code Connect 提示、截图上下文,有时还包含动画元素上的动效放置标记(data-node-id,拆分节点上还有 data-motion-keys、data-motion-wrapper-for、data-motion-transform-template);它可能把动画节点渲染为普通元素或 motion 元素,但不内联动画值。两者通过 node id 关联。

使用方式:先确认静态设计上下文可用,调用 get_design_context(fileKey=":fileKey", nodeId="<node-id>");再获取权威动效数据,调用 get_motion_context(fileKey=":fileKey", nodeId="<node-id>", recursive=true)(递归上限 500 节点)。随后合并两者:从 get_motion_context.nodes 出发,按精确 nodeId / data-node-id 匹配回设计上下文,仅在无精确匹配时才尝试 fallbackNodeId,最后才退回节点名称/类型与截图位置。精确 id 匹配优先于 fallbackNodeId,这对根实例动画很关键。最后在代码中应用动效并验证。

限制与注意:需已连接并可访问 Figma MCP 服务器,并从用户提供的 Figma URL 解析 fileKey 与 nodeId。当前覆盖 get_motion_context 输出的动画(片段加回退关键帧轨道,含预设动效解析后的形式);更广泛的交互式变体流程可能仍需产品特定的状态处理。存在片段时不要用回退轨道数据重新生成,以免丢失自定义贝塞尔缓动、弹簧近似与过冲值。transformOrigin 按元素应用,包括嵌套缩放节点。需遵循用户既有动效栈(Framer Motion、React Spring、anime.js、GSAP 等),并遵守 prefers-reduced-motion。若动画节点在输出中无对应元素,应留下 TODO 注释并在总结中说明,不要静默丢弃。其他具体细节与边界情况见技能引用的参考文件。