1. 从“手绘”到“口述”:设计工作流的范式转移
最近在设计圈里,一个老话题又被翻出来炒热了:设计师的饭碗会不会被AI抢走?以前大家可能还觉得这是杞人忧天,但自从我深度体验了Claude Code搭配其Skill功能后,我的Figma客户端已经连续吃灰好几周了。这感觉,就像当年从手绘板转向Photoshop一样,是一种工作范式的彻底颠覆。我不是说Figma不香了,它依然是UI/UX协作的标杆工具,但当“用嘴做设计”从一句玩笑变成可稳定复现的工作流时,很多事情的优先级就变了。
简单来说,Claude Code Skill允许你通过自然语言指令,直接驱动代码来生成、修改和迭代设计稿。你不再需要手动拖拽组件、调整间距、匹配颜色。你只需要告诉AI:“给我一个深色模式的登录页,要有邮箱密码输入框、一个保持登录的复选框,以及一个圆角渐变的登录按钮,整体风格要现代简约。”几分钟内,一套结构清晰、可直接用于开发的代码(通常是React组件搭配Tailwind CSS)就生成了。这不仅仅是“快”,而是将设计师从大量重复、机械的界面搭建工作中解放出来,让我们能更聚焦于真正的核心:信息架构、用户体验、交互逻辑和视觉语言的顶层设计。
这套工作流特别适合产品经理、全栈开发者以及那些需要快速验证想法的独立创作者。对于专业设计师而言,它不是一个替代品,而是一个强大的“副驾驶”,能帮你把脑海中的概念以惊人的速度具象化,从而留出更多时间进行A/B测试、用户调研和细节打磨。接下来,我就为你彻底拆解这套“口述设计”工作流的核心,从环境搭建到实战技巧,再到如何与现有流程融合。
2. Claude Code Skill 核心机制与设计适配性拆解
要理解它为何能让Figma“吃灰”,得先弄明白Claude Code及其Skill到底是怎么运作的。Claude Code本身是一个强大的代码生成与理解模型,而“Skill”可以理解为给它安装的“技能插件”。这些Skill能极大地扩展Claude Code的能力边界,让它不仅能写代码,还能理解特定领域的上下文并执行复杂任务。
2.1 Skill 如何桥接自然语言与设计产出
关键在于,有一个或多个社区开发的Skill,专门用于处理设计相关的指令。这些Skill内部封装了设计系统的知识、前端组件的代码模板以及布局引擎的逻辑。当你用自然语言描述一个设计需求时,发生的事情是这样的:
- 意图识别与分解:Skill首先解析你的指令。比如“一个电商商品卡片”,它会识别出核心实体(商品)、常见属性(图片、标题、价格、按钮)和可能的交互(点击、悬停)。
- 设计模式映射:接着,它会将识别出的元素映射到已知的设计模式或组件库。它会知道商品卡片通常采用垂直布局,图片在上,文字信息在下,行动按钮置于底部。
- 代码模板填充与参数化:然后,Skill会调用一个预设的、高度参数化的代码模板(例如一个React函数组件)。你的自然语言描述会被转化为具体的Props(属性):
imageUrl,title,price,buttonText等。 - 样式逻辑应用:对于样式描述,如“圆角”、“阴影”、“间距均匀”,Skill会将其转换为对应的CSS-in-JS对象或Tailwind CSS类名。更高级的Skill甚至能理解“现代感”、“温暖色调”这类抽象词汇,并映射到一套预定义的设计令牌(Design Tokens)上。
- 结构化输出:最终,生成的不是图片,而是干净、可维护的前端代码(HTML/JSX + CSS)。这直接跳过了从设计稿到切图、标注、再交付开发的漫长链条。
注意:目前绝大多数这类Skill的产出是代码,而非
.fig设计文件。这意味着它的直接产出物是“可运行的原型”,而非“用于评审的设计稿”。这是它与Figma的核心差异,也决定了它们的最佳应用场景不同。
2.2 与Figma的定位对比:互补而非取代
很多人一听到“让Figma吃灰”就觉得是替代关系,其实不然。我们可以从设计流程的不同阶段来看:
| 阶段 | Figma 传统流程 | Claude Code + Skill 流程 | 分析与建议 |
|---|---|---|---|
| 概念探索与脑暴 | 在画板上随意拖拽基础形状、放置占位文本,快速拼接布局。可视化强,但速度受限于手动操作。 | 用语言快速描述多种布局变体:“方案A:左侧导航,右侧内容区;方案B:顶部导航,三栏网格。”瞬间生成多个代码原型供预览。 | Skill胜出。语言描述比手动绘制更快,能快速生成大量可交互原型进行对比。 |
| 高保真视觉稿 | 绝对主场。像素级调整、复杂的布尔运算、精致的渐变与阴影、设计系统组件库的详细应用。 | 能力薄弱。难以处理极其复杂的视觉细节、自定义图标绘制、精确到像素的对齐。生成代码的视觉精细度取决于模板和样式库。 | Figma不可替代。这是体现专业视觉设计能力的核心环节,需要人类设计师的审美和把控。 |
| 交互原型与动效 | 通过原型工具连接画板,定义交互流程。动效制作有一定学习成本。 | 生成的前端代码天然可交互。通过指令可以添加基础状态(如hover效果)和简单动画(“点击按钮后放大”)。复杂动效仍困难。 | 各有千秋。Skill适合生成基础交互逻辑代码;Figma适合定义完整的用户流程和复杂动效概念。 |
| 设计交付与协作 | 核心价值。共享链接、评论标注、版本历史、设计走查。产品、设计、开发基于同一份可视源文件沟通。 | 生成的是代码,需通过Git仓库、CodeSandbox等开发者工具分享。非技术团队成员(如产品、运营)理解成本高。 | Figma不可替代。跨职能团队协作是Figma的护城河。 |
| 设计系统维护 | 通过Master Components和Styles功能,维护一套统一的视觉资产库。 | 可以通过Skill调用和维护一套共用的代码组件库和CSS变量/Design Tokens,确保生成代码的一致性。 | 深度融合点。可以将Figma中定义的设计令牌(颜色、间距、字体)导出为JSON,供Skill读取和使用,实现“设计源头到代码落地”的闭环。 |
实操心得:我的工作流已经演变为:用Claude Code Skill进行前期的“设计编码”(快速产出可运行的概念原型),用Figma进行中期的“设计精修”(打磨视觉细节、制作高保真稿、团队评审),最后再将Figma中定稿的设计系统规范反哺给Skill,让它后续生成的代码更贴合最终设计。两者形成了高效的“探索-定稿-沉淀”循环。
3. 环境搭建与核心Skill配置实战
要让“嘴”动起来,得先给Claude Code装上“牙”。下面是一套从零开始、稳定可用的配置流程。
3.1 基础环境准备:编辑器与Claude Code接入
首先,你需要一个代码编辑器作为主战场。Visual Studio Code是绝大多数人的选择,其对Claude Code插件的支持也最成熟。
- 安装VSCode:从官网下载安装,这一步无需赘述。
- 安装Claude Code插件:在VSCode的扩展市场搜索“Claude Code”,找到由Anthropic官方发布的插件进行安装。安装后,侧边栏会出现Claude的图标。
- 获取并配置API密钥:你需要一个Claude的API账号。访问Anthropic的开发者平台,注册并获取API Key。回到VSCode,在Claude插件设置中,填入你的API Key。通常你还需要选择一个模型版本,如
claude-3-5-sonnet,它在代码和推理任务上表现优异。
注意:API调用是收费的,但用于设计生成的指令通常不会消耗太多token,成本可控。务必保管好你的API Key,不要泄露。
3.2 关键Skill的安装与激活
Claude Code的强大之处在于Skill。你需要安装那些专门为设计/前端任务优化的Skill。
- 寻找Skill:目前Skill的官方市场或集中索引还在发展中。通常你需要通过文档或社区(如GitHub、特定Discord频道)找到Skill的安装方式。一个常见的模式是,Skill会提供一个配置文件(如
skill.json)或一个Git仓库地址。 - 安装Skill:在VSCode中,打开命令面板(Ctrl+Shift+P),输入“Claude: Manage Skills”。这里你应该能看到Skill管理界面。通过“Add Skill”功能,你可以通过输入Skill的GitHub仓库URL或本地路径来安装。
- 核心设计类Skill推荐:
- UI Component Generator:这是最核心的Skill之一。它内置了多种常见UI组件(按钮、卡片、表单、导航栏)的模板,并能根据你的描述生成对应框架(React, Vue, Svelte)的代码,通常搭配Tailwind CSS。
- Design Token Translator:这个Skill擅长将视觉属性转换为代码。你可以告诉它“主色是#3B82F6,次要颜色是#6B7280,圆角是8px”,它会帮你生成一套CSS自定义属性或Tailwind配置片段。
- Layout Engine Skill:专注于页面布局。你可以用类似“创建一个三栏布局,左侧边栏固定宽度200px,中间内容区自适应,右侧边栏宽度为内容的30%”的指令,它直接生成Flexbox或CSS Grid代码。
- 激活与上下文:安装后,确保Skill处于激活状态。当你与Claude对话时,相关的Skill会根据你的问题自动被调用。你也可以在提问时明确指定“请使用UI Component Generator Skill”。
踩坑记录:初期我遇到Skill不生效的问题,排查后发现是Claude Code的会话上下文没有正确加载Skill。解决方案是:在开启一个新会话后,先问一句“你现在有哪些可用的Skill?”,让Claude列出已激活的Skill,确认目标Skill在列,再进行后续操作,这样成功率会高很多。
4. “口述设计”全流程实操与核心指令技巧
环境就绪,让我们进入实战。我将通过一个完整的案例——创建一个“任务管理Dashboard”,来演示如何用嘴“说”出一个界面。
4.1 阶段一:需求描述与框架搭建
不要一上来就描述细节。先从宏观框架开始。
我的指令:“使用UI Component Generator Skill,帮我创建一个任务管理Dashboard的初始框架。它应该包含:一个顶部的导航栏,一个左侧的侧边栏用于项目筛选,一个主要的内容区域。内容区域上方有一个标题栏,写着‘我的任务’,旁边有一个创建新任务的按钮。主要内容区暂时用占位符表示。请使用React函数组件和Tailwind CSS,整体采用浅色布局。”
Claude Code的产出与我的观察:
- 它生成了一个完整的
Dashboard.jsx文件。 - 导航栏使用了
<nav>标签,包含logo和用户头像占位符。 - 侧边栏使用了
<aside>,内部是一个项目列表的<ul>。 - 主内容区使用了
<main>,标题栏部分包含了<h1>和一个<button>。 - 全部样式都通过Tailwind CSS类名实现,如
flex,h-16,bg-white,shadow等。 - 关键点:它生成的代码结构非常语义化,并且默认采用了Flexbox布局,这使得后续调整非常方便。
4.2 阶段二:组件细化与数据填充
现在,我们来细化内容区域,用真实的“任务卡片”替换占位符。
我的指令:“现在,请为内容区域生成一个任务卡片列表。每个任务卡片应该包含:任务标题(可点击)、任务描述(简短)、所属项目标签、优先级标签(高、中、低,用不同颜色区分)、截止日期和一个完成复选框。生成至少3个示例任务卡片。卡片之间要有合适的间距。”
Claude Code的产出与我的观察:
- 它创建了一个
TaskCard.jsx组件,并直接在Dashboard中导入了3个示例。 - 任务标题用了
<h3>,描述用了<p>。 - 项目标签和优先级标签都用了
<span>配合Tailwind的bg-{color}-100 text-{color}-800来实现彩色小标签。优先级“高”对应红色,“中”对应黄色,“低”对应绿色——这是Skill内置的通用映射逻辑。 - 截止日期使用了
<time>标签。 - 技巧分享:如果你对默认的颜色映射不满意,可以立即补充指令:“将高优先级的颜色改为
bg-rose-500 text-white,中优先级改为bg-amber-500 text-white。”它会立刻修正代码。这种实时迭代的能力是手动设计难以比拟的。
4.3 阶段三:交互逻辑与状态添加
静态界面有了,我们加上一些简单的交互。
我的指令:“为任务卡片的完成复选框添加交互逻辑。点击复选框时,该任务卡片的背景色变为淡灰色(bg-gray-50),同时任务标题和描述添加删除线(line-through)。请使用React的useState钩子来管理每个任务的完成状态。”
Claude Code的产出与我的观察:
- 它在
TaskCard组件中引入了useState,状态变量名为isCompleted。 - 为最外层的
<div>动态添加了类名:className={... ${isCompleted ? 'bg-gray-50' : 'bg-white'}}。 - 为标题和描述的标签也动态添加了
${isCompleted ? 'line-through' : ''}。 - 复选框的
onChange事件处理函数正确地更新了isCompleted状态。 - 避坑指南:AI生成的
onChange处理函数有时会写成内联箭头函数,对于列表渲染可能存在性能隐患。我会手动将其优化为useCallback包裹的函数,尤其是在卡片数量可能很多的情况下。这是需要人类开发者介入进行代码优化的典型场景。
4.4 阶段四:响应式设计与微调
最后,确保它在不同设备上都能正常显示。
我的指令:“让整个Dashboard具有响应式设计。在移动设备上(小于768px),侧边栏应该隐藏,并出现一个汉堡菜单按钮在导航栏左侧。点击这个按钮可以切换侧边栏的显示与隐藏。同时,任务卡片从水平排列变为垂直堆叠排列。”
Claude Code的产出与我的观察:
- 它在导航栏添加了一个汉堡菜单图标按钮(仅在移动端显示)。
- 为侧边栏的容器添加了Tailwind的响应式类:
hidden md:flex,意味着默认在移动端隐藏,在中等屏幕以上显示。 - 它添加了一个新的状态
isSidebarOpen和对应的切换函数来控制移动端侧边栏的显示(通过动态添加flex和hidden类)。 - 任务卡片的容器从
flex改为了flex-col md:flex-row,实现了垂直堆叠到水平排列的转换。 - 心得:在描述响应式需求时,使用标准的Tailwind断点前缀(
sm:,md:,lg:)来沟通,效率极高。AI对这套约定熟稔于心,能准确生成对应代码。如果你说“在手机上如何如何”,它可能无法精确匹配到px值,不如直接说“在md:断点以下”更准确。
5. 融合与进阶:连接Figma与代码的闭环工作流
让Claude Code和Figma各自为战是浪费,让它们协同工作才能产生最大价值。我的目标是建立一个“设计-代码”双向同步的闭环。
5.1 从Figma到Claude Code:设计规范的注入
Figma中维护的设计系统是宝贵的资产。我们可以将其导出,供Claude Code Skill参考。
- 导出Design Tokens:使用Figma插件如“Design Tokens”或“Style Dictionary”,将你在Figma中定义的颜色、字体、间距、阴影等样式,导出为一个
tokens.json文件。 - 创建定制化Skill或上下文:你可以将这个JSON文件提供给Claude Code。有两种方式:
- 方式A(简单):在对话开始时,将JSON文件的内容直接粘贴到上下文中,并告诉Claude:“以下是我们项目的设计令牌定义,请在后续生成代码时严格使用这些值。”这适用于小型或一次性项目。
- 方式B(进阶):基于现有的UI Component Generator Skill,进行本地化定制。修改其内部的样式映射逻辑,让它从你的
tokens.json中读取颜色值和间距单位,而不是使用默认的Tailwind颜色。这需要一定的JavaScript和Skill开发知识,但一劳永逸。
- 效果:之后当你指令中说“使用主色按钮”,生成的代码中颜色值就会是你Figma里定义的
primary-500,而不是Tailwind默认的blue-600。
5.2 从Claude Code到Figma:反向生成与高保真打磨
Claude Code生成了不错的代码原型,但最终团队评审和交付可能还是需要Figma的高保真稿。这时,我们可以反向操作。
- 利用代码生成设计稿:有一些工具和Figma插件(例如“Anima”、“Locofy”)能够将HTML/CSS/React代码转换为Figma图层。虽然还原度不可能100%,但对于快速将代码原型“搬回”Figma作为进一步细化的基础,非常有帮助。
- 我的工作流:我会将Claude Code生成的核心组件代码(如
TaskCard)通过这类插件导入Figma,得到一个基本的视觉框架。然后,我在Figma中专注于插件无法完美转换的部分:如图标的设计细节、复杂渐变和阴影的微调、文字的行高与字间距、组件在不同状态下的精确像素对齐。这样,我就把AI擅长的“快速搭建”和人类擅长的“精细雕琢”完美结合了起来。
5.3 应对复杂组件与定制化需求
当遇到非常复杂或高度定制化的组件时,纯自然语言指令可能会力不从心。我的策略是“分而治之,人工缝合”。
案例:生成一个带甘特图的可视化任务面板
- 拆解指令:我不会说“生成一个甘特图任务面板”。我会分步:
- 第一步:“生成一个水平时间轴组件,显示从今天开始未来两周的日期,以天为单位。”
- 第二步:“生成一个表示任务的横向条形条组件,条形条可以拖动以改变开始和结束日期,长度代表任务时长。”
- 第三步:“将时间轴和任务条组合到一个容器内,任务条根据其开始日期定位在时间轴的对应位置。”
- 人工整合与逻辑增强:Claude Code可能会分别生成三个独立的代码片段。我需要手动将它们整合到一个父组件中,并编写它们之间的交互逻辑(例如,拖动任务条时,更新其对应的开始/结束日期数据,并重新计算位置)。对于拖动逻辑这样的复杂交互,我可能会让AI生成一个基础版本,然后自己再用
react-dnd这样的专业库来重构。
核心原则:将AI视为一个不知疲倦、能快速产出高质量代码片段的初级开发者。你作为架构师和高级开发者,负责拆解需求、分配任务、验收成果,并将各个部分整合成一个完整、健壮的系统。这要求你不仅会“说”,更要懂“代码”,知道如何审查、修改和增强AI生成的产物。
6. 常见问题、局限性与未来展望
尽管“口述设计”令人兴奋,但清醒地认识其局限性和当前痛点,才能更好地驾驭它。
6.1 实操中高频问题排查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| Skill未响应 | 1. Skill未正确安装或激活。 2. 指令未触发Skill的关键词。 | 1. 在VSCode中检查Skill管理面板,确认目标Skill已启用。 2. 在指令开头明确提及Skill名称,如“请使用UI Component Generator Skill...”。 |
| 生成代码风格不符 | 1. 未指定技术栈(如React/Vue)。 2. 未指定CSS框架(如Tailwind/CSS-in-JS)。 | 1. 在初始指令中明确框架:“使用React函数组件”。 2. 明确样式方案:“使用Tailwind CSS类名”。 |
| 布局错乱或不符合预期 | 自然语言描述存在歧义,AI理解有偏差。 | 1.使用更精确的布局术语:用“Flexbox垂直居中”代替“放中间”,用“CSS Grid三栏布局”代替“分成三块”。 2.分步描述:先描述外层容器布局,再描述内部子项。 |
| 生成组件不可复用 | AI可能生成内联样式或硬编码的数据。 | 在指令中明确要求:“请将这个组件参数化,接收tasks数组作为prop,并渲染列表。” |
| 颜色/间距不统一 | 未提供统一的设计令牌。 | 建立并维护一个designTokens.js常量文件,在对话初期提供给AI作为上下文,要求其引用这些常量。 |
| 复杂交互逻辑错误 | AI对复杂状态管理和事件处理的理解有限。 | 对于复杂交互,先让AI生成静态UI和基础事件框架,然后由开发者手动实现核心业务逻辑。 |
6.2 当前核心局限性
- 视觉精细度天花板:AI无法做出真正具有艺术感和突破性的视觉设计。它擅长组合现有模式,但难以创造全新的、令人惊艳的视觉语言。品牌定制化、情感化设计仍需人类设计师。
- 复杂交互与业务逻辑:对于涉及多步骤状态流转、复杂表单验证、与后端API深度集成的交互,AI只能提供骨架,血肉仍需人工填充。
- 设计评审与协作瓶颈:生成的代码原型不适合直接用于与非技术背景的团队成员(产品、运营、客户)进行设计评审。可视化、可评论的Figma文件在此环节仍是刚需。
- 对设计系统的深度理解:AI可以应用设计规则,但难以理解规则背后的设计理念和系统性权衡。当需要突破系统规范进行创新时,AI可能无所适从。
6.3 未来工作流的演进猜想
“用嘴做设计”不会止步于此。我认为下一步的演进方向是:
- 多模态输入:结合草图绘制。用笔画个粗略的线框图,拍照上传,AI就能理解你的布局意图并生成对应代码,实现“手绘+口述”的混合输入。
- 实时双向同步:出现一个中间层工具,能实时将Figma中的设计变更同步为代码的提交,也能将代码中的组件更新反向同步到Figma的组件库中,真正实现“设计即代码”。
- 上下文感知增强:AI能更深入地理解你的项目背景。当你提到“用户头像”时,它能自动从你的代码库中找到现有的
Avatar组件并复用,而不是每次都重新生成。 - 从“组件生成”到“页面逻辑”:未来的Skill或许能理解更高层次的业务逻辑。你只需要描述:“这里需要一个用户注册流程,包含邮箱验证和密码强度检查”,AI就能生成一整套包含前端页面、状态管理和模拟API调用的代码。
我的Figma虽然“吃灰”了几周,但我从未想过卸载它。它的地位从“日常生产工具”转变为了“精密加工机床”和“团队协作中心”。而Claude Code Skill,则成为了我脑海中创意火花的“快速成型机”。这场变革的本质,不是工具取代人,而是掌握了新工具的人,获得了远超从前的创造力杠杆。设计师和开发者的边界会进一步模糊,未来的产品构建者,很可能就是那些既懂审美、又善用自然语言指挥AI的“设计工程师”。