Frontend Coding Guidelines
このプロジェクトにおけるフロントエンド実装のルールです。 AIはコードを生成する際、必ずこのドキュメントに従ってください。
1. Component Implementation (基本構造)
コンポーネント定義
- •Function Declaration:
React.FCは使用せず、通常の関数コンポーネントとして定義してください。 - •Type Definition: Propsの型定義は
interfaceではなくtypeを推奨し、コンポーネントの直上に記述してください。 - •Props Destructuring: Propsは引数部分で分割代入(Destructuring)して受け取ってください。
エクスポート設定
- •Named Export: リファクタリングの容易性と一貫性のため、
export defaultは使用せず、必ずexport const(Named Export) を使用してください。
実装例:
tsx
type UserCardProps = {
name: string;
age: number;
};
// 正しい書き方
export const UserCard = ({ name, age }: UserCardProps) => {
return (
<div className="border p-4">
<p>{name} ({age})</p>
</div>
);
};
2. Next.js App Router Rules
'use client' の明記
- •Client Components: 以下の機能を使用するファイルは、必ずファイルの**最上部(1行目)**に
'use client';を記述してください。- •React Hooks (
useState,useEffect,useCallbackなど) - •Data Fetching Hooks (
useSWRなど) - •イベントリスナー (
onClick,onChangeなど) - •ブラウザ専用API (
window,documentなど)
- •React Hooks (
- •Server Components: 上記の機能を使用しないコンポーネントは、デフォルトの Server Component のままとし、
'use client'は記述しないでください。
3. Styling (Pure Tailwind CSS)
- •No UI Libraries:
shadcn/ui,MUI,Chakra UIなどのコンポーネントライブラリは使用しません。 - •Pure Tailwind: 標準のHTMLタグ(
div,button,input等)に対し、直接 Tailwind CSS のユーティリティクラスを適用してスタイリングを行ってください。 - •Components Location:
- •汎用パーツ(Button等)は
src/components/commonに配置してください。 - •機能パーツ(Form等)は
src/components/domainに配置してください。
- •汎用パーツ(Button等)は