mcpField
S
svg-skill

svg-skill

github.com/linyaoskyデザイン・UI684 回インストール21 週間前に更新
リポジトリ

svg-skill について

svg-skill は、ベクター画像を扱う開発・デザイン向けに SVG ソースを直接記述する方法を示すスキルです。用途別に描画、アクセシビリティ、検証、納品形式を案内し、画像生成ツールは使用しない方針です。

主な機能

  1. 01アイコン、ロゴ、イラスト、チャート、フローチャートに対応
  2. 02SVG の構造と描画ルールを提示
  3. 03アクセシビリティと品質チェックを含む
  4. 04単体 SVG、React、Vue、CSS 形式に対応
  5. 05スクリプトによる SVG の一括検証

活用シーン

  1. 01UI アイコン、ロゴ、アプリアイコンの作成
  2. 02フローチャート、構成図、チャートの作図
  3. 03SVG を React または Vue コンポーネントとして納品
  4. 04Web ページやメール向けのインライン SVG の準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/linyaosky/svg-skill --skill svg-skill

インストール後、Claude Code で/svg-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CONTRIBUTING.md
.gitignore
reference.md
scenarios.md
examples.md
LICENSE
README.md
install.sh
scripts/
validate.sh
test-output/
TEST.md
preview.html
run-tests.sh
test-output/12-integration/
BellIcon.tsx
MailIcon.vue
demo.css

詳細

svg-skill

SVG ソースを直接記述します。画像生成ツールは使用しないでください。

シナリオ一覧

ユーザーの意図に合わせて、適切な方法を選択します。詳細はscenarios.md、例はexamples.mdを参照してください。

シナリオviewBox主な手法成果物
UI アイコン(アウトライン/塗りつぶし)0 0 24 24currentColor、均一な stroke-widthファイル/React コンポーネント
マルチカラーアイコン0 0 24 24パスを分ける+固定の fillファイル
ロゴ/ブランドマークブランド固有パスのアウトライン、安全な余白SVG+必要に応じてファビコン
ファビコン/アプリアイコン0 0 32 32シンプル、高コントラストファイル
イラスト/空の状態0 0 100 100+フラットな図形SVG/インライン
フローチャート/アーキテクチャコンテンツに基づくマーカー矢印、グリッドに沿った配置UTF-8 ファイル
グラフ(棒/折れ線/円)データに基づくスケールから座標を計算title+desc
進捗リング/バー0 0 24 24 またはバーstroke-dasharray または rect の幅アニメーション可能
アバターのプレースホルダー0 0 40 40円+文字/人物のパスcurrentColor
バッジ/ラベルテキストに基づく角丸の rect+テキストブランドカラー
波形の仕切り0 0 1200 120ベジェパス、preserveAspectRatio="none"全幅
地図ピン0 0 24 24涙滴型のパス+中央の点テーマまたは固定色
スプライトシートシンボルごと<symbol>+<use href="#id">1つの sprite.svg
CSS 背景/マスクアイコンと同じ外部ファイルまたはデータ URICSS スニペット
ローディングアニメーション0 0 24 24CSS @keyframes または stroke-dashインライン SVG
ホバーインタラクション任意fill/stroke/transform に CSS :hoverインライン+style
クリップ形状コンテナに基づく<clipPath>/<mask>defs の参照
影/ぼかし任意<filter> feDropShadow/feGaussianBlurdefs の参照
パターンテクスチャ小さな単位<pattern> タイルdefs の参照
React/Vue コンポーネント0 0 24 24props のスプレッド、camelCase 属性.tsx/.vue
メールへのインライン埋め込み最小限style/アニメーション/外部参照なしコンパクトなスニペット

SVG に適さないもの:フォトリアリズム、複雑なビットマップテクスチャ、細部が過剰なイラスト → 制約を説明し、ラスター形式または簡略化したスタイルを提案します。

ワークフロー

- [ ] 1. Pick scenario and deliverable from index
- [ ] 2. Set viewBox, style, colors (currentColor vs brand)
- [ ] 3. Draw: compose shapes → paths; shared assets in <defs>
- [ ] 4. A11y: decorative aria-hidden / informative title+desc
- [ ] 5. Minimize; non-ASCII text → UTF-8 + XML declaration
- [ ] 6. Write file; run validate.sh
骨組みテンプレート

アイコンのみ(テキストなし):

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" aria-hidden="true">
</svg>

非 ASCII テキスト(CJK など):

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 120" role="img" aria-labelledby="title">
  <title id="title">Diagram title</title>
</svg>

全幅の装飾(波形など):

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 120" preserveAspectRatio="none" aria-hidden="true">
</svg>
描画ルール
  1. viewBox で論理座標を定義し、表示サイズは CSS の width/height で指定します
  2. モノクロの UI アセットでは、デフォルトで currentColor を使用します
  3. アウトラインアイコンでは、stroke-width="2" stroke-linecap="round" stroke-linejoin="round" を使用します
  4. 共有する defs — グラデーション、矢印、パターン、フィルターは <defs> に配置し、短く一意な id を付けます
  5. グラフ — 先に余白とスケールを計算し、データの概要を title/desc に記載します
  6. アニメーション — CSS を優先し、SMIL はシンプルなケースに限って使用します
  7. デフォルトはフラット — 必要な場合に限りグラデーションや影を使用します
品質チェックリスト
  • xmlns+viewBox
  • 非 ASCII テキスト → UTF-8+XML 宣言
  • プレースホルダーのパスやエディターのメタデータがない
  • ファイル内で id が一意(特にスプライト)
  • グラフに title があり、装飾用アイコンに aria-hidden が指定されている
  • ファイルを単体で開いてプレビューできる
bash scripts/validate.sh path/to/dir/
xmllint --noout file.svg   # required for non-ASCII text
成果物
形式方法
スタンドアロンの .svgassets/ などに書き出す
スプライト1つのファイルに複数の <symbol> を配置し、<use> の使用方法を記載する
Reactexport function XIcon(props: SVGProps<SVGSVGElement>)+スプレッド
Vue<template><svg ...></svg></template>
CSS 背景background: url(...) またはインラインのデータ URI
CSS マスク-webkit-mask: url(...)。図形には塗りつぶされた領域が必要です
インライン HTML生の <svg> フラグメント。依頼がない限りラッパーの div は使用しません

禁止事項

  • ビットマップを使ってベクターを偽装するために <image> を使用する(明示的に依頼された場合を除く)
  • シンプルでベクター化可能なグラフィックに画像生成を使用する
  • 空のパスや TODO のプレースホルダーを残す
  • 非 ASCII テキストで UTF-8 宣言を省略する
  • メール用途に複雑なアニメーションや外部依存関係を追加する

ツールとドキュメント

リソース説明
scenarios.mdシナリオごとの手順
reference.mdパス構文、定義、フレームワーク
examples.md完全なコードサンプル
scripts/validate.sh一括検証

コメント