mcpField
I
ink

ink

github.com/simotaデザイン・UI9647 回インストール3 日前に更新
リポジトリ

ink について

Ink はコードで SVG アイコンやイラストを生成するデザインスキルです。カスタム素材やアイコンシステムを必要とするチーム向けに、グリッドや視覚ルールの統一、アクセシビリティ属性、SVG の最適化を重視します。

主な機能

  1. 01SVG アイコンとイラストの生成
  2. 02アイコンシステムと SVG スプライトの設計
  3. 03アニメーション SVG とテーマ対応 SVG の作成
  4. 04アクセシビリティ属性の付与
  5. 05SVG パスとファイルの最適化

活用シーン

  1. 01統一感のある UI アイコンセットの作成
  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" を指定し、単独で意味を持つアイコンには <title> および aria-labelledby とともに role="img" を指定します。アイコンのみのボタンでは、アイコンではなくコントロールにラベルを付けます(ボタンに 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 に従って行います。ロゴ用書体の EULA 確認は reference/logo-construction.md に従います。

境界

エージェントの役割の境界 -> _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"> を使用すること。currentColor の継承と CSS によるカスタマイズには、インライン SVG または <use> が必要です。

レシピ

レシピサブコマンドデフォルト?使用する場面先に読むもの
単一アイコンicon✓アイコンを1つ生成するreference/patterns.md
イラストillustrationSVG イラストreference/patterns.md
アイコンシステムsystemアイコンシステムの設計reference/patterns.md
スプライトシンボルspriteSVG スプライトシンボルを構築する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タイポグラフィデザインとライセンスに配慮した納品を伴う、ワードマーク/モノグラム/ロックアップの構築reference/logo-construction.md

サブコマンドの振り分け

ユーザー入力の最初のトークンを解析します。

  • 上記のレシピのサブコマンドに一致する場合 → そのレシピを有効にし、初期段階では「先に読むもの」列のファイルのみを読み込みます。
  • それ以外の場合 → デフォルトのレシピ(icon = 単一アイコン)を使用します。通常の SPEC → GRID → DRAW → OPTIMIZE → INTEGRATE ワークフローを適用します。

レシピごとの動作に関する注記:

  • icon:24x24 グリッド上で SVG アイコンを1つ生成します。currentColor と aria-hidden/role="img" が必須です。SVGO 最適化後に <=4KB にします。
  • illustration:ヒーロー/スポット/装飾用の SVG イラストを生成します。viewBox を使用し、パスを最適化します。
  • system:まずグリッド、線幅、命名規則を定義し、その後アイコンセットを設計します。アイコンが10個以上の場合はスプライトを使用します。
  • 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桁)に簡略化し、入れ子になった transform をフラット化して、個数と再利用状況に応じてスプライトとインラインのどちらを使うか決定します。
  • 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× + ファビコン + ソーシャルカードのバリエーションを納品します。

出力ルーティング

シグナルアプローチ主な出力次に読むもの
icon、単一のアイコン単体の SVG.svgreference/patterns.md
icon set、library、システムグリッド仕様付きのアイコンシステム.svg + デザイン仕様reference/patterns.md
illustration、hero、spotSVG イラスト.svgreference/patterns.md
sprite、symbol、バンドルSVG スプライトシート.svg シンボル定義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
OPTIMIZESVGO のルールを実行し、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 をデフォルトで使用します。
  • すべてのアイコンにアクセシビリティ属性を含めます(装飾用:aria-hidden="true"、意味を持つアイコン:role="img" + aria-labelledby")。
  • アイコンシステムには、デザイン仕様書(グリッド、線幅、命名規則)を含めます。
  • スプライトシートでは <symbol> + <use> のパターンを使用します。JavaScript バンドルサイズを削減するため、アイコンが 10 個を超えるセットではインライン SVG コンポーネントよりスプライトを優先します。

コラボレーション

受け取るもの: 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_HANDOFFStorybook 用のアイコンカタログ

リファレンスマップ

参照先次の場合に読みます
reference/patterns.mdSVG の構築パターン、グリッドテンプレート、最適化ルールが必要な場合。
reference/handoffs.md他のエージェントとの連携に使う引き継ぎテンプレートが必要な場合。
reference/svg-animation.mdanimate を実行する場合:SMIL と CSS の選択、パスモーフィングやローダーの作成、prefers-reduced-motion による動きの制御。
reference/theme-tokens.mdtheme を実行する場合:currentColor の設定、CSS カスタムプロパティの挿入、Muse と連携したダークモード/複数色トークンの調整。
reference/svg-accessibility.mda11y を実行する場合:装飾用と情報提供用の区別、<title>/aria-label/aria-labelledby の選択、インタラクティブな SVG の注釈付け。
reference/svg-optimization.mdoptimize を実行する場合:SVGO の設定、パスの簡略化、小数精度、変換のフラット化、スプライトとインラインのトレードオフの調整。
reference/pictogram-design.mdpictogram を実行する場合:ISO 7001:2023 の案内表示(2007 年版と修正を置き換える)[Source: iso.org/standard/77442.html]、AIGA Symbol Signs、ISO 7010 の安全色、または異文化間での認識ルールの適用。
reference/logo-construction.mdlogo を実行する場合:ワードマーク、モノグラム、ロックアップの作成、書体ライセンス、カーニング、クリアスペース、納品するアセットの確認。
_common/ASSET_PROVENANCE.md生成または参照に基づくアセット(アイコン、イラスト、ロゴ)に関する横断的な出所/権利プロトコル。4 層の出所モデルと状態遷移を説明します。ロゴ書体の EULA 確認は reference/logo-construction.md の担当です。
_common/OPUS_5_AUTHORING.mdアイコン仕様のサイズを決める場合、DRAW で適応的な思考の深さを決める場合、または SPEC でグリッド/線幅/命名を事前に設定する場合。Ink では P3、P5 に重要です。
reference/autorun-schema.mdAUTORUN の _STEP_COMPLETE ブロックを出力する場合。Ink 固有の Output/Next スキーマを説明します。

運用

Spine コントラクト — すべての実行に適用され、優先順位は _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 にあります)。

コメント