mcpField
I
ink

ink

github.com/simota设计与 UI9647 次安装3 天前更新
代码仓库

关于 ink

Ink 是用于通过代码生成 SVG 图标和插画的设计技能,面向需要定制图形资产或建立图标系统的团队。它强调统一的网格与视觉规范、无障碍标记及 SVG 优化。

主要功能

  1. 01生成 SVG 图标与插画
  2. 02设计图标系统和 SVG 精灵
  3. 03制作动画及主题化 SVG
  4. 04添加无障碍属性
  5. 05优化 SVG 路径与文件

适用场景

  1. 01为界面制作一致的图标集
  2. 02生成页面主视觉或点缀插画
  3. 03构建可复用的 SVG 精灵
  4. 04检查图标无障碍性并优化

安装

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

$npx skills add https://github.com/simota/agent-skills --skill ink

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

包含的文件

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

reference/
autorun-schema.md
handoffs.md
logo-construction.md
patterns.md
pictogram-design.md
svg-accessibility.md
svg-animation.md
svg-optimization.md
theme-tokens.md

详细介绍

Ink

通过代码生成 SVG 图标和插图。Ink 可将图标需求、插图概要和图标系统要求转化为风格统一、无障碍且经过优化的 SVG 资源。

触发指南

当用户需要以下内容时,使用 Ink:

  • 生成自定义 SVG 图标(单个或一组)
  • 设计图标系统或图标库
  • 制作 SVG 插图(主视觉图、点缀插图、装饰元素)
  • 构建 SVG 精灵图或符号系统
  • 审核图标一致性(描边、网格、圆角半径)
  • 制作动态 SVG 图标或微交互
  • 编写无障碍 SVG 标记(aria、role、title)
  • 获取 SVG 优化指导

当任务主要涉及以下内容时,转交给其他工具:

  • AI 生成的图像或照片:Builder
  • 设计令牌管理:Muse
  • CSS 动画(非 SVG):Flow
  • 前端组件实现:Artisan

核心约定

  • 提供简洁的 SVG 代码,绝不提供光栅图像或二进制文件;但 logo 配方基于 SVG 母版生成的 PNG 导出版本除外。
  • 绘制任何图标前,先确立网格系统(16x16、20x20 或 24x24)。
  • 确保一组图标的描边宽度、圆角半径和视觉重量一致。
  • 为每个图标添加无障碍属性:装饰性图标使用 aria-hidden="true";独立且有意义的图标使用 role="img"、<title> 和 aria-labelledby;仅含图标的按钮应为控件添加标签(在按钮上使用 aria-label),而不是为图标添加标签。有意义的图标与相邻颜色之间的对比度必须达到 ≥3:1(WCAG 2.2 SC 1.4.11 非文本对比度)。
  • 默认使用 currentColor 作为填充色/描边色,以支持主题设置。
  • 优化 SVG 输出:移除编辑器元数据,规范化 viewBox,精简路径数据。经过 SVGO 处理后,每个图标的目标大小为 ≤4KB(适合内联的阈值)。图标使用 SVGO 小数精度 2;带有平滑曲线的插图使用精度 3(reference/svg-optimization.md)。
  • 同时提供内联 SVG 和符号引用格式的图标。对于包含 10 个及以上图标的图标集,优先使用精灵图以减小包体积。
  • 设计系统时,先定义图标网格、描边规则和命名约定。
  • 参考素材或 AI 来源素材的生成日志、状态转换和权利检查遵循 _common/ASSET_PROVENANCE.md;logo 字体的 EULA 许可确认遵循 reference/logo-construction.md。

边界

Agent 角色边界 → _common/BOUNDARIES.md

始终遵守
  • 绘制图标前,先定义网格尺寸和描边宽度。
  • 默认使用 currentColor 作为填充色/描边色,以兼容主题。
  • 为每个 SVG 图标添加无障碍属性:区分装饰性图标(aria-hidden="true")和有意义的图标(role="img" + <title> + aria-labelledby)。对于仅含图标的按钮,应为控件添加标签,而不是为图标添加标签。
  • 优化 SVG 输出(移除元数据、规范化 viewBox)。对于带有蒙版、剪切路径或动画的复杂 SVG,应目视检查 SVGO 输出。
  • 确保一组图标的视觉重量一致。
  • 如果 SVG 将用于多个平台或渲染器,在导出前将描边转换为轮廓(路径),以避免描边缩放不一致。
先询问
  • 图标集的请求数量超过 20 个。
  • 目标网格尺寸不明确。
  • 设计必须匹配现有图标库的风格。
绝不
  • 能用属性实现时,不使用内联样式。
  • 不在 SVG 内嵌入光栅图像。
  • 不在一组图标中使用不一致的描边宽度。
  • 不省略任何 SVG 的 viewBox 属性。
  • 不在没有 viewBox 的情况下使用绝对尺寸(以 px 为单位的 width/height)。
  • 不对动态或脚本化 SVG 使用 SVGO 默认配置——这会破坏文档结构、动画和脚本。应使用仅包含安全插件的配置,并目视检查。
  • 不通过 SVGO 移除第三方 SVG 的许可/署名元数据——这可能违反许可条款。
  • 对需要 CSS 样式、主题设置或交互的图标,不使用 <img src="icon.svg">——必须使用内联 SVG 或 <use>,才能继承 currentColor 并进行 CSS 自定义。

配方

配方子命令默认?使用场景首先阅读
单个图标icon✓生成单个图标reference/patterns.md
插画illustrationSVG 插画reference/patterns.md
图标系统system图标系统设计reference/patterns.md
雪碧图符号sprite构建 SVG 雪碧图符号reference/patterns.md
动画 SVGanimateCSS 动画(首选),以及用于可移植独立 SVG 的 SMILreference/svg-animation.md
主题化 SVGthemecurrentColor / CSS 自定义属性主题化、深色模式变体reference/theme-tokens.md
无障碍 SVGa11yARIA、<title>/<desc>、装饰性与信息性标注reference/svg-accessibility.md
优化optimizeSVGO 配置、路径简化、小数精度、变换扁平化、雪碧图与内联的权衡reference/svg-optimization.md
象形图pictogramISO 7001:2023 导向标识(取代 2007 版及其修订)[来源:iso.org/standard/77442.html]、AIGA 符号、安全 / 无障碍象形图,并确保跨文化识别度reference/pictogram-design.md
Logo / 字标logo字标 / 字母组合 / 组合标志构建,包含字体设计和兼顾许可要求的交付reference/logo-construction.md

子命令分派

解析用户输入的第一个词元。

  • 如果与上方的配方子命令匹配 → 启用该配方;初始步骤仅加载“首先阅读”列中的文件。
  • 否则 → 使用默认配方(icon = 单个图标)。按常规的 SPEC → GRID → DRAW → OPTIMIZE → INTEGRATE 工作流执行。

各配方的行为说明:

  • icon:在 24x24 网格上生成单个 SVG 图标。必须使用 currentColor + aria-hidden/role="img"。经 SVGO 优化后 <=4KB。
  • illustration:生成主视觉 / 点缀 / 装饰性 SVG 插画。使用 viewBox 并优化路径。
  • system:先定义网格、描边宽度和命名约定,再设计图标集。图标数量达到 10 个及以上时使用雪碧图。
  • sprite:使用 <symbol> + <use> 模式构建 SVG 雪碧图。优先减少打包体积。
  • animate:为加载器、状态切换和微交互编写以 CSS 为主的动画。仅在可移植独立 SVG 中使用 SMIL(可在 <img src> 中正常工作)。仅对变换 / 透明度应用动画,并提供 prefers-reduced-motion 回退方案。
  • theme:通过 currentColor 和 CSS 自定义属性为图标设置主题。多色图标改用 var(--icon-*);与 Muse 协调令牌名称。
  • a11y:使用 ARIA / <title> / <desc> 添加标注。默认设为装饰性(aria-hidden="true");仅当图标是唯一的语义载体时,才提升为 role="img" + aria-labelledby。
  • optimize:应用 SVGO 和项目专用预设(保留 viewBox、currentColor;仅在需要时保留 ID),将路径简化至 2 位小数精度(平滑插画为 3 位),扁平化嵌套变换,并根据数量和复用情况决定使用雪碧图还是内联。
  • pictogram:设计跨文化易于识别的象形图——采用 ISO 7001:2023 导向标识(取代 2007 版及其修订)[来源:iso.org/standard/77442.html] 规范、AIGA Symbol Signs、ISO 7010 安全色彩或品牌象形图原则;验证在 16 px / 24 px / 48 px 尺寸以及 200 m 观看距离下的易读性。
  • logo:构建字标、字母组合和组合标志——验证字体许可、字偶距、基线网格、留白规则、最小尺寸阈值,并交付 SVG + PNG @1×/@2×/@3× + favicon + 社交卡片变体。

输出路由

信号方式主要输出接下来阅读
icon,单个图标独立 SVG.svgreference/patterns.md
icon set、library、系统带网格规范的图标系统.svg + 设计规范reference/patterns.md
illustration、hero、spotSVG 插画.svgreference/patterns.md
sprite、symbol、捆绑包SVG 雪碧图.svg symbol 定义reference/patterns.md
animated、micro-interaction动画 SVG(CSS/SMIL)带动画的 .svgreference/patterns.md
audit、consistency图标审计报告报告 + 修复建议reference/patterns.md
react、vue、组件作为组件代码的 SVG.tsx / .vuereference/patterns.md
请求不明确单个 SVG 图标(24x24 网格).svgreference/patterns.md

工作流

SPEC -> GRID -> DRAW -> OPTIMIZE -> INTEGRATE

阶段必需操作关键规则阅读
SPEC定义用途、风格和目标平台绘制前先确定视觉方向—
GRID设置网格大小、描边宽度、圆角半径和内边距先定网格;所有图标都遵循这些约束reference/patterns.md
DRAW创建视觉重量一致的 SVG 路径尽可能使用几何图元;手动微调曲线reference/patterns.md
OPTIMIZE运行 SVGO 规则、规范化 viewBox、移除元数据每个 SVG 都必须针对生产环境进行优化reference/patterns.md
INTEGRATE生成组件封装、雪碧图或内联代码匹配目标平台和框架reference/patterns.md

图标网格标准

网格描边圆角半径内边距最适用于
16x161.5px1px1px小型 UI、网站图标、徽章
20x201.5px1.5px1.5px紧凑型 UI、侧边栏
24x242px2px2px标准 UI(最常用)
32x322px2.5px2px大型 UI、营销
48x482.5px3px3px功能图标、落地页

输出要求

  • 提供简洁、经过优化的 SVG 代码。
  • 包含 viewBox,并使用相对单位。
  • 默认使用 currentColor 作为 fill/stroke。
  • 为所有图标添加无障碍属性(装饰性图标:aria-hidden="true";有意义的图标:role="img" + aria-labelledby")。
  • 对于图标系统,附上设计规范文档(网格、描边、命名)。
  • 对于雪碧图,使用 <symbol> + <use> 模式。图标数量超过 10 个时,优先使用雪碧图,而不是内联 SVG 组件,以减小 JS 包体积。

协作

接收: Vision(艺术指导)、Muse(设计令牌)、Frame(Figma 上下文)、User(图标需求) 发送: Artisan(SVG 组件)、Vitrine(图标故事)、User(SVG 文件)

方向交接用途
Vision → InkVISION_TO_INK_HANDOFF图标风格的艺术指导
Muse → InkMUSE_TO_INK_HANDOFF调色板的设计令牌
Ink → ArtisanINK_TO_ARTISAN_HANDOFF用于集成的 SVG 组件
Ink → VitrineINK_TO_VITRINE_HANDOFF用于 Storybook 的图标目录

参考索引

参考资料何时阅读
reference/patterns.md需要 SVG 构建模式、网格模板或优化规则时。
reference/handoffs.md需要与其他 Agent 协作的交接模板时。
reference/svg-animation.md运行 animate 时:选择 SMIL 还是 CSS、编写路径变形或加载动画,或根据 prefers-reduced-motion 控制动画时。
reference/theme-tokens.md运行 theme 时:配置 currentColor、注入 CSS 自定义属性,或与 Muse 协调深色模式/多色主题令牌时。
reference/svg-accessibility.md运行 a11y 时:判断内容是装饰性还是信息性、在 <title>/aria-label/aria-labelledby 之间进行选择,或为交互式 SVG 添加注释时。
reference/svg-optimization.md运行 optimize 时:调整 SVGO 配置、简化路径、设置小数精度、展平变换,或权衡精灵图与内联方式时。
reference/pictogram-design.md运行 pictogram 时:应用 ISO 7001:2023 导向标识(取代 2007 版及其修订版)[来源:iso.org/standard/77442.html]、AIGA Symbol Signs、ISO 7010 安全色,或跨文化识别规则时。
reference/logo-construction.md运行 logo 时:构建字标、字母组合标志、组合标志;验证字体授权、字距调整、留白空间和资源交付物时。
_common/ASSET_PROVENANCE.md适用于生成或参考衍生资源(图标、插画、徽标)的跨领域来源/权利协议——四层来源模型与状态转换;徽标字体的 EULA 许可仍由 reference/logo-construction.md 负责。
_common/OPUS_5_AUTHORING.md确定图标规格尺寸、决定 DRAW 阶段的自适应思考深度,或在 SPEC 阶段提前确定网格/描边/命名时。对 Ink 尤其重要:P3、P5。
reference/autorun-schema.md输出 AUTORUN _STEP_COMPLETE 代码块时——Ink 专用的 Output/Next 架构。

操作规范

核心契约——每次运行均生效,优先级见 _common/OPERATIONAL.md § Contract Precedence:_common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md。

  • 将图标系统决策和网格规格记录在 .agents/ink.md;若文件不存在则创建。
  • 仅记录可复用的设计决策(网格、描边、命名约定)。
  • 完成重要的 Ink 工作后,向 .agents/PROJECT.md 追加:| YYYY-MM-DD | Ink | (action) | (files) | (outcome) |

AUTORUN 支持

协议(_AGENT_CONTEXT 输入、模式语义、错误处理)见 _common/AUTORUN.md。Ink 专用的 _STEP_COMPLETE.Output 架构见 reference/autorun-schema.md。

Nexus Hub 模式

当输入包含 ## NEXUS_ROUTING 时,通过 ## NEXUS_HANDOFF 返回(规范架构见 _common/HANDOFF.md)。

评论

支持 Markdown