Geruyang/agent-skills-library

shadcn コンポーネントとプロジェクトを管理 — 追加、検索、修正、デバッグ、スタイリング、UI 構成。プロジェクトコンテキスト、コンポーネントドキュメント、使用例を提供します。

agent-skills-library とは?

このスキルは、shadcn/ui を使用する開発者向けに設計された AI エージェントスキルです。主な機能は、shadcn コンポーネントの追加、検索、修正、デバッグ、スタイリング、および UI 構成であり、プロジェクトのコンテキスト情報とコンポーネントドキュメントを提供します。このスキルは、shadcn/ui、コンポーネントレジストリ、プリセット(--preset)、components.json を使用するプロジェクト、または「shadcn init」「create an app with --preset」「switch to --preset」などのコマンドをトリガーとして動作します。また、コンポーネントのスタイリングルール(Tailwind CSS の使用法、セマンティックカラー、フォーム構造など)や、CLI コマンドの実行手順(npx、pnpm、bun のパッケージランナーを使い分ける)を厳密に定義しており、ベストプラクティスに沿ったコード生成を支援します。プロジェクトのエイリアスやフレームワーク、パッケージマネージャーなどの設定を自動的に読み取り、それに基づいて適切なコードを提案・生成します。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Geruyang/agent-skills-library/tree/HEAD/skills/x-openai-shadcn-d513686

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

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

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

ドキュメント

エクスポートコピーの境界とスキルエイリアス

移行、インストール、修正、および経験の書き戻しは、現在読み込まれているターゲットホストスキルコピーに対してのみ機能します。元の Codex スキル/MCP、ダウンロードしたソースコード、および original-skills はすべてソースマテリアルであり、このコピーの実行によって書き込まれることはありません。ユーザーが Codex 製品自体の設定を別途明示的に要求した場合にのみ、その製品のフローに従って指定されたターゲットが処理されます。スクリプトがインストールディレクトリや状態ディレクトリを必要とする場合は、ターゲットパスを明示的に指定します。CODEX_HOME から暗黙的に書き込み位置を推測してはいけません。

スキル間の名前は、ソースリポジトリのエイリアスを引き継ぐ場合があります。まず スキルエイリアステーブル を確認し、同じソース、同じプラグインのエントリを優先して選択し、その id を使用して対応するエントリポイントを呼び出すか読み取ります。古い $skill や superpowers:skill という名前が新しいホストに直接登録されていると仮定してはいけません。ターゲットが確定できない場合は、まず確認し、実際の製品コマンドやシェル環境変数を置き換えないでください。

クロスホスト使用規則

このコピーは、Agent Skills をサポートするクライアントで使用するためのものです。まず、現在のホストが実際に提供するツール、権限、および接続済みサービスを確認してから、本文のワークフローを実行します。原文のホストツール識別子は能力のリファレンスです。そのツールが実際に見つかった場合にのみ呼び出すことができ、他のホストは検証済みの同等の MCP、CLI、または API を使用する必要があります。同等の機能がない手順は使用不可として報告しなければならず、呼び出しや完了状態をでっち上げてはいけません。

スキルリソースは、このスキルディレクトリを基準とします。出力は、現在のプロジェクト内のユーザー指定の場所に書き込まれます。スキル名または自然言語でトリガーされ、具体的なショートカットコマンドはホストが決定します。実際の製品、モデル API、プロトコルフィールド、および公式 URL を含む名前は、元の意味を維持します。承認、審査、プライバシー、およびツール範囲の制限は移行後も有効です。互換性のために権限を拡大してはいけません。具体的な依存関係と移行手順については、同じディレクトリにある PORTABILITY.md を参照してください。

shadcn/ui

UI、コンポーネント、およびデザインシステムを構築するためのフレームワークです。コンポーネントは、CLI を介してユーザーのプロジェクトにソースコードとして追加されます。

重要: すべての CLI コマンドは、プロジェクトのパッケージランナー npx shadcn@latest、pnpm dlx shadcn@latest、または bunx --bun shadcn@latest を使用して実行します。パッケージランナーはプロジェクトの packageManager に基づいて選択します。以下の例では npx shadcn@latest を使用していますが、プロジェクトに適したランナーに置き換えてください。

現在のプロジェクトコンテキスト

!`npx shadcn@latest info --json 2>/dev/null || echo '{"error": "No shadcn project found. Run shadcn init first."}'`

上記の JSON には、プロジェクトの設定とインストール済みコンポーネントが含まれています。npx shadcn@latest docs <component> を使用して、任意のコンポーネントのドキュメントとサンプル URL を取得します。

原則

  1. 既存のコンポーネントを優先して使用します。 カスタム UI を作成する前に、npx shadcn@latest search を使用してレジストリを確認します。コミュニティレジストリも確認してください。
  2. 構成する、再発明しない。 設定ページ = Tabs + Card + フォームコントロール。ダッシュボード = Sidebar + Card + Chart + Table。
  3. カスタムスタイルの前に組み込みのバリアントを使用します。 variant="outline"、size="sm" など。
  4. セマンティックカラーを使用します。 bg-primary、text-muted-foreground — bg-blue-500 のような生の値は絶対に使用しません。

重要なルール

これらのルールは 常に適用されます。各ルールは、誤ったコードと正しいコードのペアを含むファイルにリンクしています。

スタイリングと Tailwind → styling.md

  • className はレイアウトに使用し、スタイリングには使用しないでください。 コンポーネントの色やタイポグラフィを決して上書きしないでください。
  • space-x-* や space-y-* は使用しないでください。 flex と gap-* を使用します。縦方向のスタックには、flex flex-col gap-* を使用します。
  • 幅と高さが等しい場合は size-* を使用します。 w-10 h-10 ではなく size-10 を使用します。
  • truncate ショートハンドを使用します。 overflow-hidden text-ellipsis whitespace-nowrap は使用しないでください。
  • 手動の dark: カラーオーバーライドは使用しないでください。 セマンティックトークン(bg-background、text-muted-foreground)を使用します。
  • 条件付きクラスには cn() を使用します。 手動のテンプレートリテラル三項演算子を記述しないでください。
  • オーバーレイコンポーネントに手動の z-index は使用しないでください。 Dialog、Sheet、Popover などは、自身のスタッキングを処理します。

フォームと入力 → forms.md

  • フォームは FieldGroup + Field を使用します。 フォームレイアウトに生の div と space-y-* または grid gap-* を決して使用しないでください。
  • InputGroup は InputGroupInput/InputGroupTextarea を使用します。 InputGroup 内で生の Input/Textarea を決して使用しないでください。
  • 入力内のボタンは InputGroup + InputGroupAddon を使用します。
  • オプションセット(2~7 個の選択肢)は ToggleGroup を使用します。 手動のアクティブ状態を持つ Button をループしないでください。
  • 関連するチェックボックス/ラジオボタンをグループ化するには、FieldSet + FieldLegend を使用します。 見出し付きの div を使用しないでください。
  • フィールドバリデーションは data-invalid + aria-invalid を使用します。 Field には data-invalid、コントロールには aria-invalid を使用します。無効の場合は、Field に data-disabled、コントロールに disabled を使用します。

コンポーネント構造 → composition.md

  • アイテムは常にそのグループ内に配置します。 SelectItem → SelectGroup、DropdownMenuItem → DropdownMenuGroup、CommandItem → CommandGroup。
  • カスタムトリガーには asChild(radix)または render(base)を使用します。 npx shadcn@latest info の base フィールドを確認します。 → base-vs-radix.md
  • Dialog、Sheet、Drawer には常にタイトルが必要です。 アクセシビリティのために DialogTitle、SheetTitle、DrawerTitle が必要です。視覚的に非表示にする場合は、className="sr-only" を使用します。
  • 完全な Card 構成を使用します。 CardHeader/CardTitle/CardDescription/CardContent/CardFooter。すべてを CardContent に詰め込まないでください。
  • Button に isPending/isLoading はありません。 Spinner + data-icon + disabled で構成します。
  • TabsTrigger は TabsList 内に配置する必要があります。 Tabs 内で直接トリガーをレンダリングしないでください。
  • Avatar には常に AvatarFallback が必要です。 画像の読み込みに失敗した場合に備えます。

カスタムマークアップではなくコンポーネントを使用する → composition.md

  • カスタムマークアップの前に既存のコンポーネントを使用します。 スタイル付きの div を作成する前に、コンポーネントが存在するか確認します。
  • コールアウトには Alert を使用します。 カスタムのスタイル付き div を作成しないでください。
  • 空の状態には Empty を使用します。 カスタムの空の状態マークアップを作成しないでください。
  • トーストは sonner 経由で行います。 sonner の toast() を使用します。
  • <hr> や <div className="border-t"> の代わりに Separator を使用します。
  • ローディングプレースホルダーには Skeleton を使用します。 カスタムの animate-pulse div は使用しないでください。
  • カスタムスタイルの span の代わりに Badge を使用します。

アイコン → icons.md

  • Button 内のアイコンは data-icon を使用します。 アイコンに data-icon="inline-start" または data-icon="inline-end" を設定します。
  • コンポーネント内のアイコンにサイズクラスを設定しないでください。 コンポーネントは CSS を介してアイコンのサイズを処理します。size-4 や w-4 h-4 は使用しないでください。
  • アイコンは文字列キーではなく、オブジェクトとして渡します。 icon={CheckIcon} のように、文字列ルックアップは使用しません。

CLI

  • プリセットコードを手動でデコードしたりフェッチしたりしないでください。 それらを直接 npx shadcn@latest init --preset <code> に渡します。

主要なパターン

これらは、正しい shadcn/ui コードを区別する最も一般的なパターンです。エッジケースについては、上記のリンクされたルールファイルを参照してください。

// フォームレイアウト: FieldGroup + Field、div + Label ではない。
<FieldGroup>
  <Field>
    <FieldLabel htmlFor="email">Email</FieldLabel>
    <Input id="email" />
  </Field>
</FieldGroup>

// バリデーション: Field に data-invalid、コントロールに aria-invalid。
<Field data-invalid>
  <FieldLabel>Email</FieldLabel>
  <Input aria-invalid />
  <FieldDescription>Invalid email.</FieldDescription>
</Field>

// ボタン内のアイコン: data-icon、サイズクラスなし。
<Button>
  <SearchIcon data-icon="inline-start" />
  Search
</Button>

// スペーシング: gap-*、space-y-* ではない。
<div className="flex flex-col gap-4">  // 正しい
<div className="space-y-4">           // 間違い

// 等しい寸法: size-*、w-* h-* ではない。
<Avatar className="size-10">   // 正しい
<Avatar className="w-10 h-10"> // 間違い

// ステータスカラー: Badge バリアントまたはセマンティックトークン、生の色ではない。
<Badge variant="secondary">+20.1%</Badge>    // 正しい
<span className="text-emerald-600">+20.1%</span> // 間違い

コンポーネントの選択

ニーズ使用するもの
ボタン/アクションButton(適切なバリアント)
フォーム入力Input、Select、Combobox、Switch、Checkbox、RadioGroup、Textarea、InputOTP、Slider
2~5 個のオプションを切り替えるToggleGroup + ToggleGroupItem
データ表示Table、Card、Badge、Avatar
ナビゲーションSidebar、NavigationMenu、Breadcrumb、Tabs、Pagination
オーバーレイDialog(モーダル)、Sheet(サイドパネル)、Drawer(ボトムシート)、AlertDialog(確認)
フィードバックsonner(トースト)、Alert、Progress、Skeleton、Spinner
コマンドパレットDialog 内の Command
チャートChart(Recharts をラップ)
レイアウトCard、Separator、Resizable、ScrollArea、Accordion、Collapsible
空の状態Empty
メニューDropdownMenu、ContextMenu、Menubar
ツールチップ/情報Tooltip、HoverCard、Popover

主要フィールド

注入されたプロジェクトコンテキストには、以下の主要フィールドが含まれています。

  • aliases → インポートには実際のエイリアスプレフィックス(例:@/、~/)を使用し、ハードコードしないでください。
  • isRSC → true の場合、useState、useEffect、イベントハンドラー、またはブラウザ API を使用するコンポーネントは、ファイルの先頭に "use client" が必要です。ディレクティブについてアドバイスする際は、常にこのフィールドを参照してください。
  • tailwindVersion → "v4" は @theme inline ブロックを使用し、"v3" は tailwind.config.js を使用します。
  • tailwindCssFile → カスタム CSS 変数が定義されているグローバル CSS ファイル。常にこのファイルを編集し、新しいファイルを作成しないでください。
  • style → コンポーネントの視覚的処理(例:nova、vega)。
  • base → プリミティブライブラリ(radix または base)。コンポーネント API と利用可能な props に影響します。
  • iconLibrary → アイコンのインポートを決定します。lucide の場合は lucide-react、tabler の場合は @tabler/icons-react を使用します。lucide-react を想定しないでください。
  • resolvedPaths → コンポーネント、ユーティリティ、フックなどの正確なファイルシステムの保存先。
  • framework → ルーティングとファイルの規則(例:Next.js App Router と Vite SPA)。
  • packageManager → shadcn 以外の依存関係のインストールにこれを使用します(例:pnpm add date-fns vs npm install date-fns)。

完全なフィールドリファレンスについては、cli.md — info コマンド を参照してください。

コンポーネントドキュメント、サンプル、および使用法

npx shadcn@latest docs <component> を実行して、コンポーネントのドキュメント、サンプル、および API リファレンスの URL を取得します。これらの URL をフェッチして実際のコンテンツを取得します。

npx shadcn@latest docs button dialog select

コンポーネントを作成、修正、デバッグ、または使用する場合は、常に最初に npx shadcn@latest docs を実行し、URL をフェッチしてください。 これにより、推測ではなく、正しい API と使用パターンで作業していることが保証されます。

ワークフロー

  1. プロジェクトコンテキストを取得する — すでに上記で注入されています。更新が必要な場合は、npx shadcn@latest info を再度実行します。
  2. 最初にインストール済みコンポーネントを確認する — add を実行する前に、常にプロジェクトコンテキストの components リストを確認するか、resolvedPaths.ui ディレクトリをリストします。追加されていないコンポーネントをインポートしたり、既にインストールされているコンポーネントを再追加したりしないでください。
  3. コンポーネントを見つける — npx shadcn@latest search。
  4. ドキュメントとサンプルを取得する — npx shadcn@latest docs <component> を実行して URL を取得し、フェッチします。npx shadcn@latest view を使用して、インストールしていないレジストリアイテムを参照します。インストール済みコンポーネントへの変更をプレビューするには、npx shadcn@latest add --diff を使用します。
  5. インストールまたは更新する — npx shadcn@latest add。既存のコンポーネントを更新する場合は、最初に --dry-run と --diff を使用して変更をプレビューします(以下の コンポーネントの更新 を参照)。
  6. サードパーティコンポーネントのインポートを修正する — コミュニティレジストリ(例:@bundui、@magicui)からコンポーネントを追加した後、追加された非 UI ファイルに @/components/ui/... のようなハードコードされたインポートパスがないか確認します。これらはプロジェクトの実際のエイリアスと一致しない可能性があります。npx shadcn@latest info を使用して正しい ui エイリアス(例:@workspace/ui/components)を取得し、それに応じてインポートを書き換えます。CLI は独自の UI ファイルのインポートを書き換えますが、サードパーティレジストリコンポーネントはプロジェクトと一致しないデフォルトパスを使用する場合があります。
  7. 追加されたコンポーネントをレビューする — 任意のレジストリからコンポーネントまたはブロックを追加した後、常に追加されたファイルを読み、それらが正しいことを確認してください。不足しているサブコンポーネント(例:SelectGroup なしの SelectItem)、不足しているインポート、正しくない構成、または 重要なルール への違反がないか確認します。また、アイコンのインポートをプロジェクトコンテキストの iconLibrary に置き換えます(例:レジストリアイテムが lucide-react を使用しているが、プロジェクトが hugeicons を使用している場合、インポートとアイコン名を適宜交換します)。すべての問題を修正してから次に進みます。
  8. レジストリは明示的でなければなりません — ユーザーがブロックまたはコンポーネントの追加を依頼した場合、レジストリを推測しないでください。レジストリが指定されていない場合(例:ユーザーが @shadcn、@tailark などを指定せずに「ログインブロックを追加」と言った場合)、どのレジストリを使用するか尋ねてください。ユーザーに代わってレジストリをデフォルトにしないでください。
  9. プリセットの切り替え — 最初にユーザーに尋ねます:再インストール、マージ、またはスキップ?
    • 再インストール: npx shadcn@latest init --preset <code> --force --reinstall。すべてのコンポーネントを上書きします。
    • マージ: npx shadcn@latest init --preset <code> --force --no-reinstall を実行し、次に npx shadcn@latest info を実行してインストール済みコンポーネントをリストし、インストール済みコンポーネントごとに --dry-run と --diff を使用して個別にスマートマージします。
    • スキップ: npx shadcn@latest init --preset <code> --force --no-reinstall。設定と CSS のみを更新し、コンポーネントはそのままにします。
    • 重要: プリセットコマンドは常にユーザーのプロジェクトディレクトリ内で実行します。CLI は components.json から現在のベース(base vs radix)を自動的に保持します。スクラッチ/テンポラリディレクトリを使用する必要がある場合(例:--dry-run 比較用)は、--base <current-base> を明示的に渡してください。プリセットコードはベースをエンコードしません。

コンポーネントの更新

ユーザーがローカルの変更を保持しながらコンポーネントを上流から更新するように要求した場合は、--dry-run と --diff を使用してインテリジェントにマージします。生のファイルをフェッチしないでください。

Individual skills in this repo

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

Geruyang/agent-skills-library

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

Geruyang/agent-skills-library

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

Geruyang/agent-skills-library

Use for new frontend applications, dashboards, games, creative websites, hero sections, and visually driven UI from scratch, or when the user explicitly asks for a redesign/restyle/modernization. Builds from clean, airy, high-taste, readable image-generated concept design with section-specific references, faithful implementation, and browser testing.

Geruyang/agent-skills-library

Use when testing, debugging, or making targeted improvements to rendered frontend apps through the Build Web Apps or web dev plugin: local dev servers, UI regressions, interaction bugs, console errors, responsive layout, and visual QA. Check whether the Browser plugin is available and use it first when it is; otherwise use regular Playwright with the recorded reason.

Geruyang/agent-skills-library

Design UI surfaces for browser games. Use when the user asks for HUDs, menus, overlays, responsive layouts, or visual direction that must protect the playfield.

Geruyang/agent-skills-library

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

Geruyang/agent-skills-library

Guide for building, configuring, and deploying microfrontends on Vercel. Use this skill when the user mentions microfrontends, multi-zones, splitting an app across teams, independent deployments, cross-app routing, incremental migration, composing multiple frontends under one domain, microfrontends.json, @vercel/microfrontends, the microfrontends local proxy, or path-based routing between Vercel projects. Also use when the user asks about shared layouts across projects, navigation between microfrontends, fallback environments, asset prefixes, or feature flag controlled routing.

Geruyang/agent-skills-library

Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.

Geruyang/agent-skills-library

Use when sizing Public Equity Investing positions, finding equity hedges, or building an integrated position-and-hedge risk plan from a listed-equity thesis. Do not use for thesis construction, standalone event underwriting, trade execution, personal investment advice, or credit-instrument risk.

Geruyang/agent-skills-library

Integrate data visualizations into React and Next.js applications. Use when the user needs chart components, UML-like or architecture diagram components, React integration patterns, Next.js client or server boundaries, hydration-safe rendering, lazy loading, framework-aware performance, scroll-driven visual stories, or export guidance.

Geruyang/agent-skills-library

shadcn/ui expert guidance — CLI, component installation, composition patterns, custom registries, theming, Tailwind CSS integration, and high-quality interface design. Use when initializing shadcn, adding components, composing product UI, building custom registries, configuring themes, or troubleshooting component issues.

Geruyang/agent-skills-library

v0 by Vercel expert guidance. Use when discussing AI code generation, generating UI components from prompts, v0 CLI usage, v0 SDK/API integration, or integrating v0 into development workflows with GitHub and Vercel deployment.

関連スキル