mcpField
I
icon-design

icon-design

github.com/oakossデザイン・UI20172 回インストール11 週間前に更新
リポジトリ

icon-design について

Lucide、Heroicons、Phosphor からアイコンを選ぶためのデザインスキルです。意味との対応表や利用指針を備え、一貫性とアクセシビリティに配慮した実装を支援します。

主な機能

  1. 01概念に合うアイコンの選定
  2. 023 つのアイコンライブラリの比較
  3. 03既成 UI テンプレートの利用
  4. 04tree-shaking を妨げる書き方の回避
  5. 05アクセシビリティとスタイル規則の適用

活用シーン

  1. 01画面ラベルに合うアイコンの選択
  2. 02画面内のアイコン規約の統一
  3. 03インポート方法による tree-shaking への影響確認
  4. 04絵文字や旧式アイコンの置き換え

インストール

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

$npx skills add https://github.com/oakoss/agent-skills --skill icon-design

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

同梱ファイル

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

references/
accessibility.md
icon-templates.md
library-comparison.md
migration-guide.md
semantic-mapping.md

詳細

アイコンデザイン

用途に合ったアイコンを選びましょう。3 つの最新ライブラリのアイコンにコンセプトを対応付け、すぐに使えるテンプレートを用意し、ツリーシェイキングの失敗やスタイルの不統一といったよくあるミスを防ぎます。

クイックリファレンス

コンセプトLucideHeroiconsPhosphor
受賞/品質TrophytrophyTrophy
価格/価値TagtagTag
場所MapPinmap-pinMapPin
専門知識GraduationCapacademic-capGraduationCap
サポートMessageCirclechat-bubble-left-rightChatCircle
セキュリティShieldshield-checkShield
速度ZapboltLightning
電話PhonephonePhone
メールMailenvelopeEnvelope
ユーザー/プロフィールUseruserUser
チームUsersuser-groupUsers
設定Settingscog-6-toothGear
ホームHomehomeHouse
検索Searchmagnifying-glassMagnifyingGlass
チェック/成功CheckcheckCheck
閉じる/キャンセルXx-markX
メニューMenubars-3List
カレンダーCalendarcalendarCalendar
時計/時間ClockclockClock
ハート/お気に入りHeartheartHeart

ライブラリの選択

ライブラリ最適な用途パッケージ
Lucide一般用途、React プロジェクトlucide-react
HeroiconsTailwind プロジェクト、ミニマルなスタイル@heroicons/react
Phosphor太さのバリエーションが必要な場合@phosphor-icons/react

デフォルトの推奨は Lucide です(1,600 以上のアイコン、優れた React 連携、lucide-react/dynamic による動的読み込み)。

選択手順

  1. コンセプトを特定する -- ラベル/タイトルは何を伝えていますか?
  2. 意味上の対応を確認する -- references/semantic-mapping.md を参照してください
  3. ライブラリを選ぶ -- Lucide(デフォルト)、Heroicons(Tailwind)、Phosphor(太さ)
  4. テンプレートを適用する -- references/icon-templates.md を参照してください
  5. 一貫性を確認する -- 各セクション内でスタイルとサイズを統一してください

アイコンのスタイルルール

ルール詳細
スタイルを混在させない1 つのセクションではアウトラインかソリッドのどちらかに統一します
絵文字を使わない適切なアイコンコンポーネントを使います(ツリーシェイキング可能)
currentColor を使うアイコンは stroke="currentColor" を介してテキストの色を継承します
セマンティックカラーtext-blue-500 ではなく text-primary を使います
サイズを統一するインラインは w-4 h-4、カードは w-8 h-8、ヒーローは w-10 h-10
ツリーシェイキングに対応明示的な名前付きインポートとアイコンマップを使い、import * は使いません
アクセシビリティ装飾用アイコンには aria-hidden="true" を、ボタンには aria-label を追加します

よくある間違い

間違い正しいパターン
import * as Icons ですべてのアイコンをインポートし、ツリーシェイキングを妨げる名前付きインポートを明示的に使用し、静的なアイコンマップを作成する
同じセクション内でアウトラインとソリッドのアイコンスタイルを混在させるセクションごとにスタイルを1つ選び、一貫して適用する
適切なアイコンコンポーネントの代わりに絵文字を使用するLucide、Heroicons、Phosphor のツリーシェイキング可能なアイコンコンポーネントを必ず使用する
アイコンに text-blue-500 のような色をハードコードするtext-primary のようなセマンティックカラーを使用し、アイコンにテーマの変更を反映させる
セマンティックな意味ではなく見た目の良さでアイコンを選ぶまずセマンティックマッピングのリファレンスで概念を対応付けてから、アイコンを選ぶ
アイコンのみのボタンに aria-label がないアイコンのみを含むボタンに aria-label="Description" を追加する
サイズプレフィックスなしで古い Heroicons のインポートパスを使用するサイズプレフィックスを付けて @heroicons/react/24/outline を使用する

委任

  • 既存のアイコン使用状況を監査し、一貫性とツリーシェイキングの問題を確認する:Explore エージェントを使用してインポートを調査し、スタイルの混在やワイルドカードインポートを特定します
  • Font Awesome または Material から最新のライブラリへアイコンを移行する:移行ガイドのリファレンスとともに Task エージェントを使用します
  • デザインシステムのアイコンシステムのアーキテクチャを計画する:Plan エージェントを使用して、ライブラリを選び、サイズの規則を定め、セマンティックマッピングを確立します

リファレンス

  • semantic-mapping.md -- カテゴリ別の概念とアイコンの対応表(品質、価格、場所、業種別、ナビゲーション、ステータス)
  • icon-templates.md -- Tailwind を使った React/HTML のパターン(機能カード、ボタン、入力欄、ナビゲーション、ステータスバッジ)
  • library-comparison.md -- Lucide、Heroicons、Phosphor の比較(機能、バンドルサイズ、インポートパターン)
  • migration-guide.md -- Font Awesome、Material Icons、Feather、絵文字から最新の代替手段への移行
  • accessibility.md -- 装飾用アイコンと意味のあるアイコン、aria 属性、スクリーンリーダーのパターン

コメント