用途
Ink 用于通过代码生成 SVG 图标与插画。当用户需要自定义 SVG 图标(单个或成组)、图标系统或图标库、SVG 插画(主视觉、点缀插画、装饰)、SVG sprite 或 symbol 系统、图标一致性审计、动画 SVG 图标或微交互、可访问 SVG 标记以及 SVG 优化指导时使用。若任务主要是 AI 生成图片或照片、设计令牌管理、CSS 动画(非 SVG)、前端组件实现,则应转交其他技能处理。
主要能力
按子命令(Recipe)划分能力:
- icon(默认):在 24x24 网格上生成单个 SVG 图标,要求 currentColor 与 aria-hidden/role,SVGO 优化后不超过 4KB。
- illustration:生成主视觉/点缀/装饰性 SVG 插画,带 viewBox 和路径优化。
- system:先定义网格、描边宽度和命名约定,再设计图标集;10 个以上图标使用 sprite。
- sprite:以 <symbol> + <use> 模式构建 SVG 雪碧图,优先减小包体积。
- animate:创作以 CSS 为主的动画,用于加载器、状态切换和微交互;仅在可移植的独立 SVG(可用于 <img src>)中使用 SMIL;只对 transform/opacity 做动画,并提供 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 位),展平嵌套变换,并根据数量与复用情况决定 sprite 还是内联。
- 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 + 社交卡片变体。
使用方式
解析用户输入的第一个词:若匹配上述子命令则激活对应 Recipe,并在初始步骤只加载“Read First”列文件;否则使用默认 Recipe(icon = Single Icon),执行常规 SPEC → GRID → DRAW → OPTIMIZE → INTEGRATE 工作流。
工作流各阶段:
| 阶段 | 必需操作 | 关键规则 |
|---|---|---|
| SPEC | 定义用途、风格和目标平台 | 绘图前确立视觉方向 |
| GRID | 设定网格尺寸、描边宽度、圆角、内边距 | 网格优先;所有图标继承这些约束 |
| DRAW | 用一致的视觉重量创建 SVG 路径 | 尽量使用几何图元;手工微调曲线 |
| OPTIMIZE | 运行 SVGO 规则、归一化 viewBox、移除元数据 | 每个 SVG 都必须经过生产优化 |
| INTEGRATE | 生成组件包装、雪碧图或内联代码 | 匹配目标平台与框架 |
图标网格标准:
| 网格 | 描边 | 圆角 | 内边距 | 最适合 |
|---|---|---|---|---|
| 16x16 | 1.5px | 1px | 1px | 小型 UI、favicon、徽章 |
| 20x20 | 1.5px | 1.5px | 1.5px | 紧凑 UI、侧边栏 |
| 24x24 | 2px | 2px | 2px | 标准 UI(最常见) |
| 32x32 | 2px | 2.5px | 2px | 大型 UI、营销 |
| 48x48 | 2.5px | 3px | 3px | 功能图标、落地页 |
输出要求:交付干净且优化过的 SVG 代码;包含 viewBox 并使用相对单位;填充/描边默认 currentColor;所有图标包含可访问性属性;图标系统需附设计规范文档(网格、描边、命名);雪碧图使用 <symbol> + <use> 模式,超过 10 个图标时优先用 sprite 而非内联 SVG 组件以减小 JS 包体积。
适用场景
项目适配度标注为:游戏(L)、SaaS(H)、电商(H)、仪表盘(H)、营销(M)。
协作关系:接收 Vision(艺术指导)、Muse(设计令牌)、Frame(Figma 上下文)、User(图标需求);向 Artisan 输出 SVG 组件、向 Vitrine 输出图标故事、向 User 输出 SVG 文件。
限制与边界
- 交付干净的 SVG 代码,绝不交付位图或二进制文件——logo 配方从其 SVG 母版派生的 PNG 导出变体除外。
- 不得在图标集内创建不一致的描边宽度;不得在任何 SVG 中省略 viewBox;不得不带 viewBox 而使用绝对尺寸(px 宽高)。
- 属性足够时不使用内联样式。
- 不在 SVG 内嵌入位图图像。
- 不对动画或脚本化 SVG 使用默认配置运行 SVGO——会破坏文档结构、动画和脚本;应仅使用安全插件并目视验证。
- 不通过 SVGO 剥离第三方 SVG 的许可/署名元数据,可能违反许可条款。
- 对需要 CSS 样式、主题化或交互的图标,不使用 <img src="icon.svg">——currentColor 继承和 CSS 定制需要内联 SVG 或 <use>。
- 以下情况须先询问:图标集请求超过 20 个图标;目标网格尺寸不明确;设计需匹配已有图标库风格。
- 须在任何图标绘制前定义网格尺寸与描边宽度;使用 currentColor 作为默认填充/描边;为每个 SVG 图标包含可访问性属性(区分装饰性与有意义图标,仅图标按钮应标注控件而非图标);优化 SVG 输出,对带遮罩、裁剪路径或动画的复杂 SVG 目视验证 SVGO 输出;保持图标集视觉重量一致;当 SVG 将被多平台或渲染器消费时,导出前将描边转换为轮廓(路径)。
- 有意义图标须满足与相邻颜色 ≥3:1 的对比度(WCAG 2.2 SC 1.4.11 非文本对比)。
- 当 SVG 需要 CSS 样式、主题化或交互时,必须使用内联 SVG 或 <use>。
参考文件(按需读取):reference/patterns.md、reference/handoffs.md、reference/svg-animation.md、reference/theme-tokens.md、reference/svg-accessibility.md、reference/svg-optimization.md、reference/pictogram-design.md、reference/logo-construction.md、_common/ASSET_PROVENANCE.md、_common/OPUS_5_AUTHORING.md、reference/autorun-schema.md。
运行约定:每轮运行遵守 _common/OPERATIONAL.md § Contract Precedence 中列出的主干契约;在 .agents/ink.md 中记录图标系统决策与网格规范(不存在则创建),仅记录可复用的设计决策;重要工作后在 .agents/PROJECT.md 追加 | YYYY-MM-DD | Ink | (action) | (files) | (outcome) | 行。AUTORUN 支持见 _common/AUTORUN.md,Ink 专属 _STEP_COMPLETE.Output schema 见 reference/autorun-schema.md。当输入包含 ## NEXUS_ROUTING 时,通过 ## NEXUS_HANDOFF 返回(规范 schema 见 _common/HANDOFF.md)。
以上功能的收费、价格、具体平台支持等细节,资料暂未提供。