← スキル一覧に戻る

component-design
by einja-inc
いいんじゃ管理画面テンプレート
⭐ 1🍴 0📅 2026年1月23日
SKILL.md
name: component-design description: "Reactコンポーネントの設計原則と実装ガイドライン"
Component Design Skill
概要
このSkillは、プロジェクトにおけるReactコンポーネントの設計原則と実装ガイドラインを提供します。
基本原則
1. 単一責任の原則
- 各コンポーネントは単一の機能・責任を持つ
- 複数の機能が必要な場合は、複数のコンポーネントに分割する
2. 再利用可能性
- プロジェクト全体で再利用可能なコンポーネントを作成する
- プロパティ(props)による柔軟なカスタマイズを可能にする
3. 型安全性
- TypeScriptの型定義を必須とする
- プロパティ、状態、イベントハンドラーは全て型定義する
4. Co-location(共存配置)
- 機能固有のコンポーネントは関連するページの近くに配置する
_componentsディレクトリを使用してページ固有のコンポーネントを管理する- 複数のページで共有されるコンポーネントのみ
src/components/に配置する
詳細ドキュメント
各カテゴリの詳細な規約は以下を参照してください:
- ディレクトリ構造 - ファイル配置とディレクトリ設計
- Props設計パターン - Props設計とイベントハンドリング
- スタイリングガイド - Panda CSSを使用したスタイリング規約
クイックリファレンス
ディレクトリ構造
src/
├── components/
│ ├── ui/ # 基本的なUIコンポーネント
│ │ ├── Button/
│ │ ├── Input/
│ │ └── ...
│ └── shared/ # 共通コンポーネント(レイアウト含む)
│ ├── Header/
│ ├── Footer/
│ └── ...
└── app/
├── dashboard/
│ ├── page.tsx
│ └── _components/ # ページ固有のコンポーネント
│ ├── DashboardChart/
│ └── StatsCard/
└── ...
コンポーネント命名規則
- ファイル名: PascalCase(例:
Button.tsx,UserProfile.tsx) - 例外: shadcn/uiコンポーネントはkebab-case(例:
button.tsx)
コンポーネントディレクトリ構造
ComponentName/
├── index.tsx # コンポーネント本体
└── styles.ts # Panda CSS スタイル定義(必要に応じて)
基本的な型定義
interface ButtonProps {
children: React.ReactNode;
variant?: "primary" | "secondary" | "danger";
size?: "sm" | "md" | "lg";
disabled?: boolean;
onClick?: () => void;
}
チェックリスト
新しいコンポーネントを作成する際の確認事項:
- 適切なディレクトリに配置されている
- TypeScript の型定義が完全
- Panda CSS でスタイリングされている
- プロパティのデフォルト値が設定されている
- アクセシビリティが考慮されている
- 単体テストが実装されている
関連Skill・ドキュメント
- coding-standards - コーディング規約
docs/einja/steering/development/testing-strategy.md- テスト戦略docs/einja/steering/development/frontend-development.md- フロントエンド開発ガイド
参考資料
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です