Community画像github.com

twltr/svg-design

SVGロゴ、アイコン、ブランドアセット、Webサイトやユーザーインターフェース向けのビジュアルグラフィックをデザイン・洗練します。ビジュアルアイデンティティ、アイコンシステム、装飾的またはアニメーションWebアート、ベクターの精緻化に使用します。説明図は「編集SVG図」に、フルページレイアウトは「フロントエンドデザイン」に属します。

svg-design とは?

このスキルは、ブランドやインターフェースの文脈に合わせたSVGグラフィックのデザインと実装を専門とします。ロゴ、アイコンセット、ブランドアセット、装飾的・表現的なWebグラフィックを対象とし、ピクセル単位の精密さよりも、意図された役割と視覚的な方向性を重視します。Puppeteerなどのツールが利用可能な場合は、より適切な作成者や独立したレビューを依頼でき、小さな編集であれば直接修正も可能です。このスキルは、「編集SVG図」や「フロントエンドデザイン」と明確に区別され、タスクに応じて豊富なリファレンスドキュメントが用意されています。SVGマークアップはクリーンで最小限であるべきで、各要素と属性はその存在意義を持つ必要があります。また、ダークモード対応のバリアント作成や、ロゴデザインにおける複数のメタファー・カテゴリの探索、プレビュー手段の確認など、実践的なワークフローをガイドします。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/twltr/skill-profile/tree/HEAD/skills/design/svg-design

Installed? Explore more 画像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

SVGデザイン

リーフスキル(デザインドメイン内)。ドメインまたは名前からアクセスできます。

グラフィックの役割をブランドまたはインターフェースにおいて定義することから始めます。その設定に合わせて、構図、シルエット、プロポーション、タイポグラフィ、色を選択し、既存のビジュアルディレクションがある場合はそれを維持します。その後、デザインをクリーンで最小限のSVGマークアップとして表現します。すべての要素と属性は、その存在価値を示す必要があります。

このスキルは、ロゴ、アイコンセット、ブランドアセット、および装飾的または表現的なWebグラフィックを担当します。目的に応じて使い分けてください。ランディングページのロゴや装飾的なヒーローアートはここに属し、製品の仕組みを説明する図は editorial-svg-diagrams に属します。ページ構成とインターフェースレイアウトは frontend-design に属します。

小さなロゴの意思決定

説明のための概要: Webサイトのヘッダーとコンパクトなアプリアイコンの両方で認識可能な山のマークを作成します。外側のシルエットと1つの特徴的なリッジの切り抜きから始め、縮小すると消える細かい雪の線は省略します。色や詳細を追加する前に、マークを実際のサイズと各目的の表面で確認します。それらの用途で異なる詳細レベルが必要な場合は、読み取れないマークを縮小するのではなく、明示的に小さいサイズのバリアントを作成します。

本格的な構図や視覚的なレビューを行う前に、モデルの視覚的能力と、レンダリングされた使用サイズおよび表面へのアクセスを評価します。Puppeteerが利用可能な場合は、現在のフェーズ/モデルルーティングを使用して、より適切な作成者または独立したレビュー担当者に依頼し、概要、確立された方向性、目標サイズを渡します。アクティブな委任所有者を再利用します。小さな適切な編集は直接そのまま行うことができます。デザイナー自身のチェックは独立した承認にはなりません。機能不足やレンダリングされたアクセスがない場合、そのチェックは未解決のままになります。有効なSVGだけでは優れたデザインを確立できません。

トピックルーティング

タスク参照先
アークフラグの組み合わせ、一般的なパス形状references/path-patterns.md
ロゴデザイン、タイポグラフィ、ネガティブスペースreferences/logo-techniques.md
アイコンデザイン、グリッドシステム、ピクセルアライメントreferences/icon-design.md
グラデーション、マスク、クリップ、フィルター、トランスフォーム(デザイン上の決定)references/advanced-techniques.md
アニメーション(CSSキーフレーム、スタッガー、GPU、イージング、SVG固有)references/animation.md
最適化、スプライト、SVGO設定references/optimization.md
アクセシビリティ、ブラウザの落とし穴references/accessibility-and-pitfalls.md
編集ワークフロー、ブーリアン演算、SVGの結合references/editing-workflow.md

SVGスケルトン

ストロークUIアイコンの場合は、次の構造から始めます。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <!-- コンテンツ -->
</svg>

デザインキャンバスに合わせて viewBox を調整します。width/height 属性を省略すると、SVGがコンテナに合わせてスケーリングされます(固定サイズが必要な場合のみ追加します)。

ロゴやWebアートワークの場合は、アイコンのデフォルトを継承するのではなく、構図に合わせてキャンバス、塗りつぶし、ストロークを選択します。

キャンバスサイズの慣例

サイズ使用例備考
0 0 16 16マイクロアイコン、ファビコンHeroicons micro、GitHub Octicons
0 0 20 20小さいUIアイコン、フォーム要素Heroicons mini
0 0 24 24標準アイコン(最も一般的)Lucide、Heroicons outline、Material
0 0 32 32中程度のアイコン、ナビゲーションPhosphorは内部で256x256を使用
0 0 48 48大きい表示アイコンアプリアイコン、イラスト
カスタムロゴ、イラスト自然なアスペクト比に合わせる

標準的なUIアイコンの場合は、周囲のアイコンシステムが別のグリッドを使用していない限り、デフォルトで24x24にします。ロゴやWebグラフィックは、構図に合ったキャンバスを使用します。

シェイプとパスの使い分け

シェイププリミティブを使用する場合<path> を使用する場合
シェイプが基本的な幾何学形状である場合シェイプに曲線や複雑な輪郭がある場合
可読性が重要な場合(円は <circle> のように見えるべき)要素数を最小化する必要がある場合
個々のプロパティ(r、cx、cy)をアニメーション化する必要がある場合複数のシェイプを1つの要素に結合する場合
シェイプがプログラムによって変更される場合デザインツールからのエクスポート(パスは普遍的)

スタイリングのデフォルト

子要素での繰り返しを避けるために、ルートの <svg> 要素に設定します。

属性アイコンデフォルトロゴデフォルト理由
fillnone変動アイコンは通常ストローク、ロゴは塗りつぶし
strokecurrentColornone または currentColor親要素からテキストカラーを継承
stroke-width2(24x24の場合)変動アイコン全体で一貫した太さ
stroke-linecaproundround または butt丸みを帯びた端は小さいサイズできれいに見える
stroke-linejoinroundround または miter結合部の鋭いスパイクを防止

currentColor はあなたの友達です。 SVGが親要素の色を継承できるようになり、追加のCSSなしでアイコンをテーマ対応にします。

ビューボックスに対するストローク幅

stroke-width はピクセルではなくビューボックス単位です。常にキャンバスサイズに相対的に設定します。

viewBox典型的なストローク幅視覚的な結果
16x161.5キャンバスの約9.4%
24x242キャンバスの約8.3%
32x322-2.5キャンバスの約6.3-7.8%
48x483キャンバスの約6.3%
256x25616キャンバスの約6.3%

シェイプをパスに変換するタイミング

変換する場合:

  • 複数のシェイプを単一の複合パスに結合する場合(ブーリアン演算)
  • より大きなパス構成の一部としてシェイプが必要な場合
  • <path> のみをサポートする環境に配布する場合
  • DOM要素を最小化するための最適化

シェイプのままにする場合:

  • コードの可読性が重要な場合(<circle> は自己文書化)
  • 特定のプロパティをアニメーション化する必要がある場合(円の r をアニメーション化する方が、パスデータをアニメーション化するよりもクリーン)
  • SVGがプログラムによって変更される場合

角丸矩形からパスへのテンプレート

ここでのアークパラメータはエラーが発生しやすいです。これを参考として使用してください。

<!-- <rect x="2" y="2" width="20" height="20" rx="3" /> は次のようになります: -->
<path d="M 5 2 h 14 a 3 3 0 0 1 3 3 v 14 a 3 3 0 0 1 -3 3 h -14 a 3 3 0 0 1 -3 -3 v -14 a 3 3 0 0 1 3 -3 Z" />

fill-rule: evenodd と nonzero

穴のある複合シェイプがある場合は evenodd を使用します。巻き方向を気にする必要がないため、よりシンプルです。

<!-- evenoddを使用したドーナツ(方向は関係ない) -->
<path fill-rule="evenodd" d="
  M 12 2 A 10 10 0 1 1 12 22 A 10 10 0 1 1 12 2 Z
  M 12 7 A 5 5 0 1 1 12 17 A 5 5 0 1 1 12 7 Z
" fill="black" />

nonzero(デフォルト)の場合、穴を作成するには内側の円を反対方向に巻く必要があります。

ロゴデザインプロセス

ロゴ(アイコンではない)を作成する場合は、次のプロセスに従います。

  1. 概要の重大なギャップのみを解決します。 提供されたブランドの方向性、名前、対象者、使用例、参考資料を再利用します。欠落している選択肢がデザインを大きく変える場合は、現在のホストがサポートするインタラクションを使用して短い質問をします。二次的な選択には、賢明な元に戻せるデフォルトを使用します。特定の質問ツールを想定したり、ムードボードインタビューを要求したりしないでください。

  2. 1つのメタファーの複数のレイアウトではなく、複数のメタファーを探求します。 概念的な多様性は、レイアウトのバリエーションよりも重要です。[references/logo-techniques.md](references/logo-techniques.md) の完全な発想プロセスに従ってください。これには、ドメイン固有のブレインストーミング、カテゴリの多様性要件、クリシェ回避が含まれています。

  3. 構造的な多様性を保証します。 すべてのロゴセットは、同じスタイル内の複数のメタファーだけでなく、複数のカテゴリのアプローチにまたがる必要があります。5つ以上のオプションを提示する場合は、各列から少なくとも1つを含めます:タイポグラフィック/ワードマークアプローチ、象徴的なアイコン、抽象的な幾何学マーク、および文字形とメタファーのハイブリッド。[references/logo-techniques.md](references/logo-techniques.md) のカテゴリ多様性テーブルを参照してください。

  4. 利用可能なホストを通じてプレビューします。 プログレッシブ比較が役立つ場合は、このスキルの assets/preview.html と [references/editing-workflow.md](references/editing-workflow.md) の構造を使用します。現在のホストでサポートされているビューアを通じてプレビューを表示または検査します。ブラウザ、シェルコマンド、またはフォアグラウンドウィンドウが利用可能であると想定しないでください。レンダリングできるビューアがない場合は、その制限を明記し、SVGファイルとレンダリングされたプレビューをサポートされている場所で提供します。観察されていないプレビューが視覚的に確認されたと主張しないでください。

  5. カラーロゴの場合は、必ず -dark.svg バリアントを作成します。 白に映える濃いネイビーのエッジ(#1E3A5F)は、暗い背景では見えなくなります。ダークバリアントには、明るいエッジ(#4B8BBE)、明るいリング(#3B6B8A)、オフホワイトのセンター(#E2E8F0)が必要です。

  6. 描画する前に垂直方向の予算を計画します。 32x32のキャンバスに3つの積み重ねられた要素がある場合、約30の使用可能なユニットがあります。最初に垂直方向の分布をスケッチします(例:ボックス=12、ギャップ=2、レイヤー=5、ギャップ=2、レイヤー=5)。これにより、viewBoxの端でクリッピングされるのを防ぎます。

アンチパターン

してはいけないこと代わりにすること
width="24" height="24" を viewBox なしでハードコードする常に viewBox を使用。width/heightは必要な場合のみ追加
<g> グループに fill="none" を設定する個々の要素またはルートの <svg> に fill を設定
SVG内で px 単位を使用するSVG座標は単位なし。viewBoxにマッピングされる
エディタメタデータを含める(<sodipodi:*>、<inkscape:*>)すべてのエディタのクズを取り除く
配布されたSVGでロゴワードマークに <text> を使用する移植性のためにテキストをパスに変換
トランスフォームを3レベルネストするトランスフォームをパス座標にフラット化
xlink:href を使用するhref を使用(xlinkは非推奨)
スタンドアロンSVGファイルで xmlns を忘れる常に xmlns="http://www.w3.org/2000/svg" を含める
アイコンで小数点以下2~3桁を超える精度を使用するアイコンでは小数点以下2桁、複雑なアートでは最大3桁に丸める

相互参照

  • 周囲のWebサイトやインターフェースデザインはこのスキルの仕事ではありません。グラフィックの役割とサイズ制約とともに、グラフィックを依頼した人に戻し、その間は確立されたタイポグラフィ、色、視覚的階層、またはプロジェクトの既存のデザインシステムに従います。
  • 概念、関係、プロセス、またはシステムを説明する図については、editorial-svg-diagrams が利用可能な場合はそれを使用します。それ以外の場合は、このスキルの出力をブランドおよびインターフェースグラフィックに集中させ、要求された結果がそれに依存する場合は、利用できない図の機能を説明します。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル