posimai-root/docs/template-features-analysis.md

140 lines
5.2 KiB
Markdown
Raw Normal View History

# テンプレート機能分析 — 追加候補の優先度評価
作成: 2026-03-10
作成者: Claude Code世界的ベテランエンジニア兼 UI/UX デザイナー視点)
---
## 判断基準
| 軸 | 説明 |
|----|------|
| **汎用性** | 全アプリで使う可能性が高いか |
| **複雑度** | テンプレートに入れたとき AI が正しく使えるか |
| **UX インパクト** | ユーザー体験への貢献度 |
| **実装コスト** | 追加にかかる工数 |
---
## 即追加すべきPhase 1 — 今すぐ)
### 1. サイドバーフッター(ユーザー表示エリア)
- **理由**: ほぼ全アプリで「誰が使っているか」の表示が必要になる
- **実装**: シンプルなアバター + 名前 + 設定歯車アイコン
- **複雑度**: 低静的でよい、API 連携は各アプリが実装)
### 2. 設定パネル(右スライドアウト)
- **理由**: API キー、表示設定、テーマ切替など必ず必要になる
- **実装**: `<aside class="settings-panel">` + toggle ボタン
- **複雑度**: 低〜中HTML/CSS のみで実現可能)
### 3. accordion ナビセクション
- **理由**: ナビアイテムが増えたとき折りたたみは必須 UX
- **実装**: `<details>/<summary>` で実装するか、`data-accordion` パターン
- **複雑度**: 低
### 4. ページ数バッジnav-count
- **理由**: Brain で実績あり、一覧系アプリ全般で有用
- **実装**: `<span class="nav-count">0</span>` を nav-item に追加するだけ
- **複雑度**: 極低
---
## 中優先Phase 2 — 次のイテレーション)
### 5. Stale-While-Revalidate API クライアント(`js/api/client.js`
- **理由**: API を持つアプリには必須パターン。Brain で実証済み
- **実装**: `loadFromStorage()` → render → `fetch()` → 差分更新 → render
- **複雑度**: 中(ただし単体ファイルとして分離すれば AI が使いやすい)
- **注意**: API なしアプリには不要 → オプション扱いにする
### 6. コマンドパレットCmd+K
- **理由**: パワーユーザー向け。全アプリ必須ではないが差別化になる
- **実装**: フローティング `<dialog>` + `keydown` イベント
- **複雑度**: 中
- **推奨**: デフォルト OFF、コメントアウト済みで含める
### 7. Pull to Refreshモバイル
- **理由**: PWA + モバイルでは標準的な UX
- **実装**: `touchstart/touchmove/touchend` + CSS アニメーション
- **複雑度**: 中
- **推奨**: `js/utils/pull-to-refresh.js` として分離
---
## 後回しでよいPhase 3 — 需要が出てから)
### 8. Magic Link 認証(`?init_key=xxx`
- **理由**: Synology API と組み合わせた Brain 専用の設計
- **推奨**: Brain/Feed 系のアプリのみで使う。テンプレートには不向き
### 9. BroadcastChannelタブ間同期
- **理由**: 複数タブを同時に使うアプリのみ必要
- **推奨**: 必要なアプリで個別実装
### 10. PWA Share Target
- **理由**: URL 共有受信が必要なアプリのみ
- **推奨**: `manifest.json` のコメントアウト済みサンプルとして含める
### 11. クリップボード URL 検知スナックバー
- **理由**: Brain の URL 保存フローに特化した機能
- **推奨**: Brain 系のみ
---
## 不要(テンプレートに入れるべきでない)
### Drag & Drop URL 保存
- 保存先APIが確定してから実装すべき。テンプレートでは過剰
---
## 推奨: テンプレート次バージョンの構成
```
_template/
index.html ← Phase 1 追加済み
├ header52px glassmorphism、PC/モバイル自動切替)
├ sidebaraccordion nav + count バッジ + フッター)
├ settings-panel右スライドアウト
└ main contentcard / list-item / empty-state
js/
├ app.js ← エントリポイント(最小限)
└ api/
└── client.js ← Stale-While-Revalidateオプション・コメントアウト
manifest.json
sw.js
package.json
README.md
```
---
## アクセントカラー問題への推奨
**推奨**: CSS 変数で抽象化し、アプリごとに 1 行だけ変更可能にする
```css
/* ── アクセントカラー(各アプリでここだけ変える) ── */
--accent: #6EE7B7; /* Posimai Tealデフォルト */
/* --accent: #818CF8; */ /* Indigo旧 Brain/Feed 系) */
/* --accent: #A78BFA; */ /* Purple選択肢 */
```
- テンプレートのデフォルトは `#6EE7B7`Tealに統一
- 既存の Brain/Feed は当面現状維持(全更新は大工数)
- 新規アプリはすべて Teal を使う
- **Gemini に「どちらが Posimai ブランドに合うか」を確認するのが理想**
---
## まとめ: 今すぐやること
| 順番 | 作業 | 工数 |
|------|------|------|
| 1 | サイドバーフッター追加(テンプレート) | 30分 |
| 2 | 設定パネル追加(テンプレート) | 1時間 |
| 3 | accordion ナビ + count バッジ追加(テンプレート) | 30分 |
| 4 | Gemini にレビュー依頼 | 非同期 |
| 5 | アクセントカラー決定後、テンプレート更新 | 15分 |