mcpField
A
anydesign

anydesign

github.com/infrasity-labs设计与 UI15077 次安装18 周前更新
代码仓库

关于 anydesign

anydesign 是面向产品设计师和 AI 体验设计师的设计分析技能,可分析图片、网站和 Figma 文件,生成用于重建设计的文档,并在提取到具体令牌时生成令牌文件。

主要功能

  1. 01分析图片、网站和 Figma
  2. 02支持整体与单元素分析
  3. 03分层分析视觉与设计系统
  4. 04生成含置信度的设计文档
  5. 05可选令牌提取与文档校验

适用场景

  1. 01根据 URL 重建网站设计
  2. 02从 Figma 文件提取设计令牌
  3. 03根据截图记录单个组件
  4. 04审查生成的设计文档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill anydesign

安装后在 Claude Code 中输入/anydesign确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

requirements.txt
examples/
README.md
examples/discord-hero-asset/
element.md
source.md
examples/game-asset-pack/
element.md
source.md
examples/landing-example/
design-a11y.md
design-tokens.json
design.md
source.md
examples/poolsuite-player-element/
element.html
element.md
source.md
examples/v0-downstream-demo/
README.md
examples/vercel-landing/
design-a11y.md
design-tokens.json
design.md
source.md
examples/vercel-landing/claude-design-bundle/
brand-kit.pptx
brand-overview.docx
README-claude-design.md
tailwind.config.ts
tokens.css
references/
analysis-framework.md
capture-flows.md
element-copy.md
output-template.md
token-extraction.md
scripts/
capture_site.py
check_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 — 确认来源与目标

开始分析之前,确认以下两点(仅在消息中不清楚时):

  1. 来源是什么? 图片 / URL / Figma / 组合来源
  2. 重点是什么? 这决定了 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 工具:
    1. get_metadata,了解结构
    2. get_variable_defs,提取已定义的设计令牌
    3. get_design_context,获取详细内容
    4. 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 中的模板为基础。这不是可选项,也不是装饰——它是此技能的输出规范。

不可妥协的输出规则:

  1. 诚实胜于自信。 每项重要推断都要标注置信度(✅ 高 / ⚠️ 中 / ❓ 低)。不确定时要如实说明。编造设计令牌比承认“信息不足”更糟。
  2. 使用真实的十六进制代码,而非文学化近似描述。 不要写“天蓝色”——应写 #3B82F6 并说明其语义角色。
  3. 必须包含“未决问题”部分。 列出你无法确定的内容以及需要人工输入的信息。如果没有未决问题,请说明理由。
  4. 必须包含“该做与不该做”部分(模板第 6 节)。基于观察提出品牌特定的使用规则。如果无法分别列出至少 3 条,请明确说明——绝不要用泛泛的 UX 建议凑数。
  5. 适用时提供双重输出。 除了 design.md,还要以 DTCG 格式($value/$type)生成包含结构化令牌的 design-tokens.json。仅当你提取到具体令牌时才生成(第 2 层有结果)。
  6. 无障碍报告(可选)。 如果至少有两组颜色组合(例如,表面上的文本、表面上的主色),请生成简短的 design-a11y.md 并列出 WCAG 对比度。使用 scripts/check_contrast.py 进行计算。

步骤 5 — 交付并提供后续选项

完成后,展示生成的文件,并提供三种可能的后续路径:

  1. 完善分析,如果某些内容显得薄弱,或用户发现了你没注意到的内容
  2. 将 design.md 转换为提示词,用于 Claude Code、v0 或其他生成工具
  3. 分析另一个来源以进行对比(手动对比模式)

不要以“还有其他需要吗?”结束。根据用户在步骤 1 中选择的重点,主动建议下一步。


质量规则

应做事项
  • ✅ 列出十六进制颜色代码、px/rem 数值和具体字体名称
  • ✅ 推断语义角色:“主色”“表面”“弱化色”“强调色”——而不只是“颜色 1、颜色 2”
  • ✅ 为每个部分标注置信度
  • ✅ 如果 HTML/类名中有明确迹象,应识别网站使用的知名框架(Tailwind、Material、shadcn、Chakra)
  • ✅ 列出组件及其检测到的变体(例如,“按钮:主色、幽灵、危险”)
  • ✅ 优先使用提取到的 CSS 变量,而不是推断值——默认置信度为 ✅ 高
不应做事项
  • ❌ 没有观察依据的泛泛描述,例如“现代简洁的设计”
  • ❌ 列出颜色却不提供十六进制代码
  • ❌ 编造未观察到的令牌
  • ❌ 毫无依据地假设框架(如果没看到相关类名,就不要说“这是 Tailwind”)
  • ❌ 忽视用户的背景信息:如果用户说“这是 Akeru,一个 AI 品牌”,分析就必须结合这个提示,而不能脱离背景进行分析

可选配套脚本

​​scripts/ 中有三个脚本,可按需运行。它们都不是必需的——有帮助时再使用。

脚本运行时机依赖项
capture_site.pyURL 的原始 HTML 为空(SPA)时、响应式分析需要多个视口时,或对 URL 使用元素模式时(--selector 会截取一个元素并保存其 outerHTML)playwright
extract_css_vars.pyURL 包含外链样式表时——提取 --* 自定义属性作为明确的令牌仅标准库
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/designpyyaml、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,不要提前阅读。这样可以在需要之前保持上下文精简。

评论

支持 Markdown