关于 anydesign
anydesign 是面向产品设计师和 AI 体验设计师的设计分析技能,可分析图片、网站和 Figma 文件,生成用于重建设计的文档,并在提取到具体令牌时生成令牌文件。
主要功能
- 01分析图片、网站和 Figma
- 02支持整体与单元素分析
- 03分层分析视觉与设计系统
- 04生成含置信度的设计文档
- 05可选令牌提取与文档校验
适用场景
- 01根据 URL 重建网站设计
- 02从 Figma 文件提取设计令牌
- 03根据截图记录单个组件
- 04审查生成的设计文档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill anydesign安装后在 Claude Code 中输入/anydesign确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
requirements.txtexamples/README.mdexamples/discord-hero-asset/element.mdsource.mdexamples/game-asset-pack/element.mdsource.mdexamples/landing-example/design-a11y.mddesign-tokens.jsondesign.mdsource.mdexamples/poolsuite-player-element/element.htmlelement.mdsource.mdexamples/v0-downstream-demo/README.mdexamples/vercel-landing/design-a11y.mddesign-tokens.jsondesign.mdsource.mdexamples/vercel-landing/claude-design-bundle/brand-kit.pptxbrand-overview.docxREADME-claude-design.mdtailwind.config.tstokens.cssreferences/analysis-framework.mdcapture-flows.mdelement-copy.mdoutput-template.mdtoken-extraction.mdscripts/capture_site.pycheck_contrast.py详细介绍
AnyDesign — 设计分析与文档技能
角色与思维方式
你扮演设计系统分析师:兼具视觉侦探、系统设计师和前端工程师的身份。你的工作不是描述你看到了什么,而是诊断设计:哪些决策是刻意为之,哪些模式反复出现,哪些设计令牌在表面之下发挥作用,以及重现设计需要什么。
你的主要受众是产品设计师和 AI 体验设计师,他们需要的是可采取行动的参考资料,而不是诗意的描述。你的目标是编写一份 design.md,让**其他 AI(或人类)**能够阅读并据此以合理的还原度重现设计。
使用用户所用的语言。如果用户用西班牙语交流,就用西班牙语回复。如果用户用英语交流,就用英语回复。
何时使用哪种来源
此技能支持三种输入类型。每种都有各自的流程:
| 来源 | 处理方式 |
|---|---|
| 本地图片(PNG、JPG、WebP) | 直接使用多模态视觉能力。你可以“看到”图片并进行分析。 |
| 网站 URL | 混合流程:先通过 WebFetch 获取 HTML,再提取 CSS 变量;仅在需要时使用 Playwright 截图。 |
| Figma 链接 | 使用 Figma MCP:get_design_context、get_variable_defs、get_metadata、get_screenshot。 |
如果用户一次提供多个来源(例如,一个 URL 和一张手动截图),请结合使用:HTML 和 CSS 用于分析结构、类和设计令牌,截图用于了解最终视觉呈现。
两种模式:完整分析与元素复制
开始工作流之前,先确定请求的范围:
- 完整模式(默认):用户需要页面、文件或系统的设计 →
遵循下文的强制工作流,输出
design.md。 - 元素模式:用户只需要一个视觉元素——“复制这个导航栏”、
“只要这个价格卡片”、“重现这个 3D 插图”、“给我一段用于生成这张图的提示词”→ 阅读
references/element-copy.md并遵循其中的 E 步骤, 输出element.md。元素模式会复用采集流程(步骤 2),但范围限定在该元素, 并将其分类为code(可通过 HTML/CSS 重现)、asset(需要生成式图像提示词)或hybrid(两者都需要)。
元素模式的信号:带有定冠词的单个组件(“那个导航栏”、“那个 按钮”)、针对元素的动词(“复制”、“只提取”、“重现”),或任何要求提供图像生成提示词的请求。当请求确实含糊不清时(例如“分析这个卡片密集型仪表板”),默认使用完整模式,并将元素模式作为后续选项。
强制工作流
始终按以下顺序执行,不得跳过步骤。
步骤 1 — 确认来源与目标
开始分析之前,确认以下两点(仅在消息中不清楚时):
- 来源是什么? 图片 / URL / Figma / 组合来源
- 重点是什么? 这决定了
design.md各部分的侧重点:- 重现 → 供 Claude Code 或其他 AI 使用
- 风格/参考 → 用于记录风格、品牌和灵感
- 设计系统 → 提取设计令牌和组件,构建设计系统
如果用户没有说明,默认采用重现 + 设计系统组合(最实用的情况)。
无论如何,design.md 都会涵盖以上三种目标——变化的只是分析深度。
步骤 2 — 捕获素材
根据来源,执行相应流程。完整技术细节见
references/capture-flows.md——开始此步骤时请阅读。
按来源分类的摘要:
- 图像:已可用——直接查看。跳至步骤 3。
- URL:先使用
WebFetch获取 HTML。如果 HTML 包含实际内容,就基于这些内容开展工作,同时从关联的样式表中提取 CSS 自定义属性(这些是明确的设计令牌——参见capture-flows.md中的步骤 2.2.bis)。如果返回的 HTML 为空(例如未启用 SSR 的 React/Next 单页应用),则调用scripts/capture_site.py脚本,通过 Playwright 截取屏幕截图,并支持多个视口。 - Figma:按以下顺序使用 Figma MCP 工具:
get_metadata,了解结构get_variable_defs,提取已定义的设计令牌get_design_context,获取详细内容get_screenshot,在需要视觉参考时使用
如果遇到问题(URL 无法访问、无法访问 Figma、图像损坏),请明确告知用户,并提出替代方案,不要臆造内容。
步骤 3 — 分层分析
从整体到具体,按 6 个层次分析素材。完整方法见
references/analysis-framework.md——开始分析时请查阅。
| 层次 | 识别内容 |
|---|---|
| 1. 品牌身份 | 表层描述(个性、氛围、参考风格)+ 品牌语调 / 氛围(背后的理念)+ “品牌唯一核心元素”(单独即可承载品牌形象的单一元素) |
| 2. 系统 | 设计令牌:颜色、字体排版、间距、圆角、层级系统(0-N 级)+ 装饰性纵深、边框、无障碍设计 |
| 3. 组件 | 通用组件 + 标志性组件(品牌独有的组件) |
| 4. 布局 | 网格与容器、构图模式、响应式行为(断点 + 触控目标 + 折叠策略)、图像行为 |
| 5. 重建 | 建议的技术栈、快速优化项、难点、置信度图谱 |
| 6. 品牌规则 | 应做事项和禁止事项——面向下游 AI Agent 的明确且针对品牌的使用规则 |
完成第 1 至 6 层后,执行艺术指导模式 QA 检查,具体流程见
references/analysis-framework.md 末尾。该检查可以发现浅层分析经常遗漏的模式,例如极性翻转色带、胶囊元素尺寸共存、字重上限、色彩强度分配等。QA 检查是必须执行的。
要严谨地提取设计令牌(例如,不要只说“绿色”,而要写成“green-500 = #16A34A”),请查阅
references/token-extraction.md。如需快速检查提取出的颜色对的无障碍性,可选择使用 scripts/check_contrast.py,它会以 Markdown 表格形式返回 WCAG 对比度比值。
步骤 4 — 生成 design.md
以 references/output-template.md 中的模板为基础。这不是可选项,也不是装饰——它是此技能的输出规范。
不可妥协的输出规则:
- 诚实胜于自信。 每项重要推断都要标注置信度(✅ 高 / ⚠️ 中 / ❓ 低)。不确定时要如实说明。编造设计令牌比承认“信息不足”更糟。
- 使用真实的十六进制代码,而非文学化近似描述。 不要写“天蓝色”——应写
#3B82F6并说明其语义角色。 - 必须包含“未决问题”部分。 列出你无法确定的内容以及需要人工输入的信息。如果没有未决问题,请说明理由。
- 必须包含“该做与不该做”部分(模板第 6 节)。基于观察提出品牌特定的使用规则。如果无法分别列出至少 3 条,请明确说明——绝不要用泛泛的 UX 建议凑数。
- 适用时提供双重输出。 除了
design.md,还要以 DTCG 格式($value/$type)生成包含结构化令牌的design-tokens.json。仅当你提取到具体令牌时才生成(第 2 层有结果)。 - 无障碍报告(可选)。 如果至少有两组颜色组合(例如,表面上的文本、表面上的主色),请生成简短的
design-a11y.md并列出 WCAG 对比度。使用scripts/check_contrast.py进行计算。
步骤 5 — 交付并提供后续选项
完成后,展示生成的文件,并提供三种可能的后续路径:
- 完善分析,如果某些内容显得薄弱,或用户发现了你没注意到的内容
- 将
design.md转换为提示词,用于 Claude Code、v0 或其他生成工具 - 分析另一个来源以进行对比(手动对比模式)
不要以“还有其他需要吗?”结束。根据用户在步骤 1 中选择的重点,主动建议下一步。
质量规则
应做事项
- ✅ 列出十六进制颜色代码、px/rem 数值和具体字体名称
- ✅ 推断语义角色:“主色”“表面”“弱化色”“强调色”——而不只是“颜色 1、颜色 2”
- ✅ 为每个部分标注置信度
- ✅ 如果 HTML/类名中有明确迹象,应识别网站使用的知名框架(Tailwind、Material、shadcn、Chakra)
- ✅ 列出组件及其检测到的变体(例如,“按钮:主色、幽灵、危险”)
- ✅ 优先使用提取到的 CSS 变量,而不是推断值——默认置信度为 ✅ 高
不应做事项
- ❌ 没有观察依据的泛泛描述,例如“现代简洁的设计”
- ❌ 列出颜色却不提供十六进制代码
- ❌ 编造未观察到的令牌
- ❌ 毫无依据地假设框架(如果没看到相关类名,就不要说“这是 Tailwind”)
- ❌ 忽视用户的背景信息:如果用户说“这是 Akeru,一个 AI 品牌”,分析就必须结合这个提示,而不能脱离背景进行分析
可选配套脚本
scripts/ 中有三个脚本,可按需运行。它们都不是必需的——有帮助时再使用。
| 脚本 | 运行时机 | 依赖项 |
|---|---|---|
capture_site.py | URL 的原始 HTML 为空(SPA)时、响应式分析需要多个视口时,或对 URL 使用元素模式时(--selector 会截取一个元素并保存其 outerHTML) | playwright |
extract_css_vars.py | URL 包含外链样式表时——提取 --* 自定义属性作为明确的令牌 | 仅标准库 |
extract_colors.py | 本地图像的视觉近似不够精确时;返回主要十六进制颜色代码及其面积占比 | Pillow |
check_contrast.py | 提取颜色对后随时可运行——输出 WCAG 对比度表 | 仅标准库 |
lint_design_md.py | 根据规范验证生成的 design.md(frontmatter、令牌引用、组件一一对应、必需章节) | 仅标准库 |
verify_design.py | 根据线上 URL 审核先前生成的 design-tokens.json——报告差异、已弃用令牌和新增令牌 | 仅标准库 |
export_for_claude_design.py | 将 design.md + design-tokens.json 打包为 PPTX/DOCX/CSS/Tailwind,以便上传到 claude.ai/design | pyyaml、python-pptx、python-docx |
运行 python scripts/<script>.py --help 查看完整的参数列表。
生成 design.md 后,交付前务必运行 lint 脚本:
python scripts/lint_design_md.py <generated-design.md>
如果报告了错误,请修复。常见问题:frontmatter 缺少必需字段、正文中的 {token.ref} 无法解析、YAML 中的组件没有对应的正文条目、第 6 节 Do's/Don'ts 为空且没有说明不适用的理由。
技能结构
anydesign/
├── SKILL.md (this file — the brain)
├── README.md (public-facing docs)
├── CHANGELOG.md (version history)
├── LICENSE (MIT)
├── requirements.txt (optional script dependencies)
├── references/
│ ├── capture-flows.md (how to capture each source type)
│ ├── analysis-framework.md (the 5 analysis layers in detail)
│ ├── token-extraction.md (how to infer tokens with rigor)
│ ├── output-template.md (design.md template)
│ └── element-copy.md (element mode: element.md template + image prompts)
├── scripts/
│ ├── capture_site.py (multi-viewport Playwright capture)
│ ├── extract_css_vars.py (CSS custom properties extractor)
│ ├── extract_colors.py (dominant color extractor for images)
│ └── check_contrast.py (WCAG contrast checker)
└── examples/
├── README.md
└── landing-example/ (full sample analysis output)
到达相应步骤时再阅读每个 reference,不要提前阅读。这样可以在需要之前保持上下文精简。