1. 项目概述为Figma文件注入“语义灵魂”如果你是一名前端开发者或者经常需要与设计师协作你一定遇到过这样的场景设计师丢过来一个Figma文件你满怀期待地打开准备从中提取设计规范、组件结构或者干脆让AI帮你生成代码。结果映入眼帘的是满屏的“Frame 23”、“Rectangle 4”、“Group 18”。这些名字对你来说毫无意义对AI来说更是天书。你不得不花大量时间手动梳理这个“Rectangle 4”到底是按钮背景还是卡片阴影那个“Group 18”里包着的是一整个导航栏还是某个表单的一部分这种混乱不仅降低了协作效率也让AI驱动的代码生成工具如Cursor、Claude Code的潜力大打折扣因为它们无法从一堆无意义的命名中理解设计意图和页面结构。这正是saralobo/skill-figma-semantic-organization这个AI技能要解决的核心痛点。它不是一个设计工具不生成视觉稿也不做UX策略。它的使命非常纯粹且强大像一个经验丰富的架构师一样为混乱的Figma文件层结构进行“语义化重构”。简单来说它能把“Frame 23”重命名为“Hero Section Container”把“Group 18”整理成“Navigation Bar”并为其内部元素应用清晰、一致的自动布局规则。整个过程完全非破坏性你的视觉设计一像素都不会改变但文件的“可读性”和“可解释性”将发生质的飞跃。这个技能特别适合三类人希望设计文件更规范、便于交付和迭代的设计师需要从设计稿中高效提取结构、生成代码或编写文档的开发者以及任何希望利用AI如通过Cursor的MCP协议、Claude Desktop等来理解和处理Figma文件内容以实现自动化工作流的效率追求者。接下来我将深入拆解这个技能的设计思路、核心规则以及如何将其无缝集成到你的日常工具链中。2. 核心价值与问题根源剖析2.1 混乱命名的三重“原罪”为什么Figma文件中普遍存在“Frame 23”这类命名这通常是快速原型设计、频繁迭代或团队规范缺失下的自然结果。但这种混乱会带来三个层面的严重问题第一语义黑洞协作成本激增。对于开发者而言一个名为“Primary Button”的组件和一个名为“Blue Rectangle 7”的图形所传达的信息量天差地别。前者直接指明了组件的功能和复用性后者则需要开发者去猜测、询问、甚至反向工程。在团队协作中每一次交接、每一次评审都需要额外的心智负担来翻译这些“密码”无形中拖慢了整个项目的节奏。第二结构模糊意图难以捕捉。Figma的图层列表Layers Panel本质上是页面的DOM树。一个扁平或随机嵌套的层级结构就像一篇没有章节标题和段落划分的文章。你无法一眼看出哪里是页头Header、哪里是内容主体Main Content、哪里是页脚Footer。更糟糕的是布局意图如垂直列表、水平导航、网格卡片被隐藏在无数个独立的位置坐标中而非通过“自动布局”属性显式声明。第三AI理解障碍自动化流程断裂。当前沿的AI编码助手如Cursor with MCP, Claude Code尝试接入Figma时它们“看到”的就是这堆无结构的图层名和坐标。AI很难从一个名为“Group 5”的容器中推断出它是一个“用户评论卡片列表”自然也无法为你生成对应的React组件代码或准确的CSS布局。这使得“设计转代码”Design-to-Code的自动化梦想在第一步就卡住了。2.2 语义化组织的核心价值主张该技能的价值主张非常清晰通过赋予图层语义化的名称和清晰的结构将Figma文件从“视觉草图”提升为“结构化设计文档”。这带来了几个立竿见影的好处映射前端代码结构语义化后的命名如ProductCardSearchInputModalOverlay与前端组件库的命名习惯高度一致。这极大地简化了从设计到实现的映射过程无论是手动开发还是AI辅助生成。提升人机可读性无论是新加入的团队成员还是几个月后回顾项目的你自己都能通过图层名称快速理解页面构成。对于AI工具清晰的语义和结构提供了可靠的上下文使其能做出更准确的推断和操作。建立一致性规范技能内置的命名规则后文详述确保同一类型的元素在整个文件甚至整个项目中获得统一的命名。例如所有的主要操作按钮都可能被命名为“Primary Button”或“CTA Button”而不是五花八门的“Button 1”、“Blue Rect”、“Click Me”。注意这个技能严格遵循“非破坏性”原则。它不会重新排列你已经精心调整过的像素级视觉对齐也不会强行改变已有合理分组的结构。它的所有操作重命名、调整分组、优化自动布局都以“保持现有视觉外观不变”为前提只改变那些不影响视觉表现的元数据。3. 技能工作原理与五步流程拆解这个技能并非一个魔法黑盒其内部遵循一个严谨、可预测的五步工作流。理解这个流程能帮助你在使用中更好地预测结果并在出现意外时进行调试。3.1 第一步全景分析技能首先会对选定的画板或页面进行整体分析。这一步的目标是进行“宏观内容识别”。它不关心具体的样式而是试图回答“这个页面主要由哪几个大的内容区块组成”分析过程会扫描所有顶层帧和组根据常见的布局模式、元素密度、重复出现的视觉模式如卡片列表、导航栏图标组以及一些启发式规则例如位于顶部且包含Logo和若干链接的横向容器很可能是“导航栏”来识别潜在的宏观区域。常见的识别目标包括导航相关Navigation Bar,Sidebar,Breadcrumbs内容区块Hero Section,Features Grid,Testimonials Carousel,Contact Form结构容器Page Container,Modal Dialog,Card常驻元素Header,Footer,Floating Action Button3.2 第二步区块检测与映射在宏观分析的基础上技能会进行更精细的“区块检测”。这一步将第一步识别出的大区域进行细分并尝试为每个区域赋予一个具体的语义标签。例如在“Hero Section”中它可能会进一步识别出“Hero Container”一个用于居中对齐内容的包装框、“Hero Title”主标题文本、“Hero Subtitle”副标题文本和“Hero CTA Button”行动号召按钮。这个过程依赖于一个预定义的、可扩展的“语义标签库”。这个标签库包含了从常见设计模式中抽象出来的角色名称。技能会计算图层间的空间关系、视觉相似度如相同文本样式、相同填充色的元素可能属于同一功能组以及相对位置来将图层映射到最合适的标签上。3.3 第三步语义化重命名这是最核心的一步。技能将根据第二步的映射结果为每一个图层或组赋予一个新的、基于其“角色”的名称。命名规则是严格“角色导向”而非“外观导向”的。角色导向命名示例一个蓝色圆角矩形里面写着“提交” -Primary Button或Submit Button一个灰色矩形框左侧有图标右侧有提示文字 -Search Input Field一组水平排列的图标和文字 -Tab Bar或Bottom Navigation外观导向命名应避免Blue Rounded ButtonGray Rectangle with IconHorizontal Group 5这种命名方式直接揭示了元素的功能使其在任何上下文中都易于理解。技能的系统提示词中包含了详细的命名规则例如如何为不同层级的容器Section, Container, Component命名以及如何避免使用无意义的形容词。3.4 第四步层级化分组在重命名之后技能会审视当前的图层结构并按照清晰的逻辑层级进行分组优化。目标是构建一个深度合理、易于遍历的树状结构。一个典型的结构化分组可能是Landing Page (Frame) ├── Header (Section Group) │ ├── Logo (Image) │ └── Navigation Menu (Container Group) │ ├── Home (Text Link) │ ├── About (Text Link) │ └── Contact (Text Link) ├── Hero Section (Section Group) │ └── Hero Container (Auto Layout Frame) │ ├── Hero Title (Text) │ ├── Hero Subtitle (Text) │ └── CTA Button (Component) └── Footer (Section Group) └── Copyright Notice (Text)技能会判断哪些元素在逻辑上属于同一个父容器并创建或调整分组。它特别注重避免创建不必要的嵌套深度同时确保兄弟元素在逻辑上是平级的。例如三个功能卡片应该是同一个父容器下的三个兄弟Card实例而不是被塞进多层无意义的组中。3.5 第五步自动布局应用与优化最后一步是针对分组结构应用或优化自动布局。这是将“静态结构”转化为“动态布局意图”的关键。判断方向技能会分析组内元素的排列方式。如果是水平排列则应用水平自动布局如果是垂直排列则应用垂直自动布局。设置尺寸模式Hug Contents适用于按钮内的文字、图标容器等大小由内容决定。Fill Container适用于需要占满剩余空间的元素如侧边栏的主内容区。Fixed Size适用于有严格尺寸要求的元素如头像、固定图标。统一间距技能会计算元素间的平均间距并将其设置为自动布局的“间隙”确保视觉上的均匀分布被固化下来。添加内边距如果容器边缘与内部元素有清晰、一致的留白技能会将其设置为自动布局的内边距。重要实操心得自动布局的优化是“建议性”而非“强制性”的。如果某个容器已经有一个复杂但工作良好的手动布局技能可能会选择保留它仅在文档中给出优化建议。这是“非破坏性”原则的体现。你应该在技能运行后检查自动布局的应用情况对于复杂的自定义布局如绝对定位的装饰元素可能需要手动微调。4. 核心规则详解命名与自动布局要高效使用这个技能或者想将其规则内化为自己的设计习惯必须深入理解其两大核心规则体系语义命名规则和自动布局规则。4.1 语义命名规则深度解析命名规则的目标是建立一套像编程语言一样清晰、无歧义的词汇表。这套规则在docs/semantic-naming-rules.md中有完整定义以下是其精髓和我的实践解读1. 分层命名法命名不是扁平的它反映了UI的层次结构。页面/画板级描述整体内容如Landing Page - Home,Settings Modal,Dashboard Overview。区块级使用[功能] Section格式如Hero Section,Pricing Section,Testimonials Section。Section一词明确标识了这是一个大的内容区域。容器级使用[功能] Container或[功能] Wrapper如Card Container,Form Input Wrapper,Modal Content Container。它表示一个用于布局和分组子元素的逻辑框。组件/元素级直接使用其角色名如Primary Button,User Avatar,Product Title,Checkbox。如果是列表项可以使用[Item Type] Item如Feature Item,Comment Item。2. 角色优先状态后缀名称的核心是角色。交互状态或变体作为后缀出现。正确示例Button / Primary(在组件层面)或Primary Button (Hover)(在实例层面描述状态)。错误示例Blue Button,Hovered Blue Button。颜色和状态是易变的角色是稳定的。3. 避免的命名陷阱序号严禁Button 1,Card 2。外观描述避免Big Red Title,Small Gray Box。泛型词汇慎用Group,Frame,Rectangle除非它们真的只是没有任何语义的几何图形容器。通常它们都可以被更具体的名称替代。我的个人实践技巧在团队中推行这套命名法时我通常会先和设计师一起建立一个小型的“命名词典”将常用的组件和区块类型提前定义好。例如我们约定所有商品展示卡片都叫Product Card所有模态框标题栏都叫Modal Header。这样技能运行的结果会更加一致也减少了后续沟通成本。4.2 自动布局规则与最佳实践自动布局规则详见docs/auto-layout-rules.md与saralobo/rules-figma仓库中的响应式规则一脉相承其核心思想是用自动布局属性来显式声明你的布局意图。1. 方向与间隙方向明确选择水平或垂直。对于导航菜单、标签栏用水平布局对于文章列表、设置项列表用垂直布局。间隙间隙值应设置为视觉上相等的间距。技能会尝试计算并设置这个值。关键点对于需要不同间距的特殊情况如卡片间大间距卡片内元素小间距应使用嵌套的自动布局来实现而不是在一个布局中混用。2. 尺寸模式的选择逻辑这是自动布局中最需要理解的部分。技能会根据元素在容器中的行为来分配模式Hug Contents适用于文本、图标、按钮等自身有“内容”且大小不应被拉伸的元素。这是最常用的模式。Fill Container适用于需要填充剩余空间的元素比如主内容区域、表格的某一列。特别注意在一个自动布局容器中通常只有一个子元素设置为Fill或者多个Fill元素按比例分配空间通过设置Flex属性但这是更高级的用法技能可能不会自动设置。Fixed Size适用于有严格尺寸规范的元素如设计系统中的头像固定为40x40px、标准图标24x24px。3. 内边距的标准化技能会识别容器边框与内部首个元素之间的空白如果这个空白在四周大致相等它会将其设置为内边距。这能将视觉上的“留白”转化为可维护的布局参数。4. 何时不应用自动布局规则中也明确指出了不应强行应用自动布局的情况这体现了技能的智能绝对定位元素用于实现悬浮、拖拽、特殊动画效果的绝对定位图层。复杂重叠布局涉及大量图层重叠、剪切蒙版或复杂布尔运算的艺术性设计部分。已有完美手动布局一个通过精心调整坐标来实现的复杂网格或对齐强行改为自动布局可能导致不可控的错位。踩坑提醒自动布局虽然强大但嵌套过深例如超过5层会显著增加文件的复杂度和渲染计算量。技能在优化后会尽量保持结构扁平。如果你手动设计也应有意识地避免创建“自动布局套娃”。5. 集成与实操在Cursor、Claude等AI工具中运行这个技能的本质是一套精心编写的文档和提示词用于“教导”AI如何执行语义化组织任务。因此它的使用高度依赖于你所使用的AI工具及其上下文加载能力。5.1 在Cursor IDE中的集成推荐Cursor因其深度集成的MCPModel Context Protocol和对项目上下文强大的处理能力成为运行此技能的首选环境。方法一作为项目上下文简单直接将整个skill-figma-semantic-organization仓库克隆到你的本地项目目录中或者直接将其文件放入你的项目里。在Cursor中打开你的项目。当你需要组织某个Figma文件的截图或粘贴的设计稿时在聊天框中引用技能中的提示词。你可以直接打开prompts/use-on-selected-frame.md文件将其内容复制粘贴到Cursor的聊天框然后附上你的Figma截图或描述。方法二配置为自定义技能更专业、可复用这是更优雅的方式可以将技能固化到你的Cursor工作流中。在Cursor的配置目录通常是~/.cursor/rules下为这个技能创建一个文件夹例如figma-semantic-organizer。将技能仓库中skill/和docs/目录下的核心文件特别是system-prompt.md,semantic-naming-rules.md,auto-layout-rules.md复制到这个文件夹。在Cursor的设置中或通过MCP配置将这个文件夹路径添加到上下文中。这样当你启动Cursor并打开相关项目时它就自动具备了“理解”如何组织Figma文件的能力。使用时只需在聊天框输入类似“请根据语义化组织规则优化我下面粘贴的这个画板结构”的指令并附上设计稿即可。我的工作流示例我通常会在处理一个前端任务时让设计师将相关的Figma画板链接发给我。我使用Figma的“Copy as PNG”功能复制画板然后直接粘贴到Cursor聊天框。接着我输入一个简短的命令“figma-semantic-organizer 请分析并重构这个画板的图层结构输出语义化的命名和分组建议。” Cursor会调用已加载的技能上下文生成一份详细的结构化报告甚至可以直接生成对应的React组件框架代码。5.2 在Claude Desktop或ChatGPT中的使用对于Claude Desktop或Web版的ChatGPT由于它们通常依赖粘贴的上下文你需要采用“手动提供上下文”的方式。准备核心知识库打开技能仓库中的skill/system-prompt.md文件。这份文件定义了技能的“身份”和核心行为准则。同时准备好docs/semantic-naming-rules.md和docs/auto-layout-rules.md的关键部分。构造对话在新的对话中首先将system-prompt.md的内容作为第一条消息发送给AI这相当于为AI设定了角色。例如“请你扮演一个Figma文件语义化组织专家遵循以下规则...粘贴system-prompt内容”。提供具体任务然后将prompts/use-on-selected-frame.md中的任务提示词和你的Figma设计描述或截图一起发送。你可以这样说“现在请执行你的任务。这里有一个画板[描述或粘贴截图]。请按照你的规则为其输出重构后的图层树和命名建议。”这种方法虽然每次都需要手动设置上下文但对于偶尔使用或处理单个复杂画板来说仍然非常高效。5.3 实操指令与预期输出无论使用哪种工具清晰的指令是成功的关键。技能仓库提供了两个标准的提示词模板prompts/use-on-selected-frame.md:用于处理单个选定的画板或一个复杂组件。指令会要求AI分析视觉内容识别区块然后逐层输出重构后的结构树并解释命名和分组的理由。prompts/use-on-full-page.md:用于处理一个包含多个画板的完整页面。指令会要求AI先进行页面级分析识别主要区块流然后对每个关键画板进行深度重构。你得到的输出将不是可执行的代码而是一份详细的“重构方案”文本报告。这份报告就像一份建筑图纸告诉你每个图层应该改叫什么名字它们应该如何分组以及建议的自动布局参数是什么。你需要或由开发者需要在Figma中手动执行这些重命名和结构调整操作。6. 常见问题、排查技巧与进阶思考在实际使用中你可能会遇到一些疑问或效果不理想的情况。以下是我在多次使用和测试中总结出的常见问题与解决思路。6.1 技能处理效果不理想自查清单如果AI生成的命名和结构与你的预期相差甚远请按以下步骤排查输入清晰度问题问题你提供的Figma截图是否模糊、不完整或包含了大量无关画板解决确保截图聚焦于需要处理的单一画板背景干净分辨率足够高。最好使用Figma的“复制为PNG”功能并确保画板边界清晰。问题你的文字描述是否过于简略例如只说了“优化这个设计”。解决在指令中补充关键信息。例如“这是一个电商网站的商品详情页画板顶部有导航中间是商品图片和信息底部是推荐商品列表。”上下文缺失问题问题在Claude/ChatGPT中你是否完整粘贴了system-prompt.md和核心规则文档解决确保AI的“角色设定”和“知识库”已正确加载。有时需要提醒AI“请严格遵守你角色设定中的规则”。设计本身歧义性问题问题设计稿本身是否非常非常规、抽象或艺术化导致常见的语义标签无法匹配解决对于高度定制化的设计技能可能只能识别出最基础的结构。你可以尝试在指令中提供一些“线索”例如“那个紫色的大圆形区域是网站的‘主题功能入口’请将其命名为‘Feature Hub’而不是‘Circle 1’。”规则冲突问题问题你的设计文件中已有的某些命名或分组是否与技能的规则冲突导致AI困惑解决对于非常重要的现有结构可以在指令中明确说明“保留名为‘LegacyWidget’的组件及其内部结构不变”。6.2 技能输出的“重构方案”如何使用技能输出的是文本报告你需要将其转化为Figma中的实际操作。这里有一个高效的工作流并行操作将Figma界面和AI输出的报告并排显示。逐项核对从报告的最顶层如Landing Page开始在Figma图层列表中找到对应的画板或帧。重命名双击图层名称将其修改为报告中的新名称。技巧可以使用Figma的“批量重命名”插件来加速先根据报告创建一个重命名映射表。调整分组根据报告中的层级关系在Figma中拖拽图层以调整父子关系。如果报告建议创建新的组或帧请新建并命名。应用自动布局对于报告建议应用自动布局的容器选中后在右侧面板点击“Auto Layout”按钮并按照报告建议设置方向、间隙和填充模式。注意先应用布局再检查视觉是否变化必要时微调。6.3 如何扩展和定制这个技能这个技能是开源的这意味着你可以根据自己团队的设计系统或特殊需求对其进行定制。扩展语义标签库技能的核心是识别模式并映射到标签。你可以修改或扩充docs/semantic-naming-rules.md文件加入你们团队特有的组件或区块名称。例如如果你的产品有一个独特的“数据仪表盘部件”你可以添加一条规则如果是一组包含迷你图表和关键指标数字的卡片可命名为“Metric Widget Card”。调整自动布局偏好在docs/auto-layout-rules.md中你可以定义你们团队的默认间隙如8px基准、内边距规范或者针对特定组件如按钮设置固定的尺寸模式。创建领域特定提示词你可以基于prompts/下的模板创建针对移动端APP、后台管理系统、数据可视化大屏等不同领域优化的提示词其中包含更贴近该领域常见组件的识别逻辑和命名建议。6.4 与其他工作流的结合这个技能的价值在串联的工作流中会倍增与设计系统结合在技能完成语义化命名后你可以运行另一个检查脚本或AI技能将命名与设计系统中的官方组件进行匹配并标记出未使用规范组件的地方。与文档生成结合结构清晰、命名规范的Figma文件可以很容易地被其他工具如Storybook Doc Gen、Figma to Notion插件解析自动生成产品设计文档。与AI编码深度结合在Cursor中一个语义化良好的Figma结构可以直接作为上下文提供给AI用于生成高度准确、结构清晰的组件代码、单元测试甚至E2E测试用例。这是从“设计即文档”到“设计即代码”的关键桥梁。我个人最深的体会是引入这个技能的过程本质上是在推动一场微型的“设计开发协作革命”。它迫使设计师和开发者在设计稿的“可读性”上达成共识使用同一种“语言”。初期可能会有一点学习成本和适应期但一旦跑通它节省的沟通成本和避免的误解价值远超投入。它让Figma文件不再是冻结的图片而是变成了活的、可被机器理解的开发蓝图。