.
└─ app # アプリケーション
├── public # パブリック
└── src # ソース
├── app # App Router
│ ├── page.tsx # ルートページ
│ ├── layout.tsx # 共通レイアウト
│ ├── recoilProvider.tsx # recoil
│ ├── xxx 画面名
│ │ ├── page.tsx
│ │ └── layout.tsx
│ └── yyy
├── components # アプリケーション全体で共通して使用されるコンポーネント
│ ├── Button
│ │ ├── Button.module.css
│ │ ├── Button.test.tsx
│ │ ├── Button.tsx
│ │ └── index.ts
│ ├── Footer
│ ├── Header
│ └── ...
├── features # 特定の機能やドメイン専用のAPIアクセス方法、コンポーネントなど
│ └── xxx # 機能名
│ ├── components
│ │ ├── Button.tsx
│ │ ├── Form.tsx
│ │ └── ...
│ ├── hooks # ロジック(数字や文字を加工、日時操作)
│ ├── styles # スタイリング
│ ├── types # 型定義
│ └── utils # ユーティリティ関数(単純な関数)
├── atoms # Recoilの状態管理
│ └── xxxAtom.ts
├── selectors # Recoilの状態管理(atomの再利用)
├── hooks # 共通的に使われるロジック(数字や文字を加工、日時操作)
├── styles # スタイリング
├── types # 型定義
└── utils # アプリ全体で共通して使用するユーティリティ関数(単純な関数)