ランダム短歌 — UI・曲水の宴 要件整理¶
2026-07 時点の会話に基づく整理。全体の正本は
random-tanka-overview.md(§4 画面・UX、§5.2 曲水の宴)。本書は会話ベースの詳細メモとして残す。
1. 画面構成(ルーム内)¶
タブではなく 状態に応じた画面遷移 とする。
| 画面 | 内容 | 遷移 |
|---|---|---|
| カード入力 | 参加者リスト(折りたたみ)、カード入力、自動保存 | 「短歌を作る」→ 短歌作成画面 |
| 短歌を作る | 宴開始(ホスト)、合成ボタン | 「← カード入力」で戻る |
| できあがった短歌 | 短歌表示、再合成、もう一度遊ぶ、画像保存 | 「← カード入力」で戻る |
| ホーム | ルーム一覧・作成・参加 | ハンバーガーメニュー「ホームに戻る」 |
遷移ルール¶
- 合成が完了したら 自動で「できあがった短歌」画面 へ
- 「もう一度遊ぶ」で カード入力画面 へ戻る
- 短歌がないのに結果画面、合成済みなのに作成画面、など 中身のない空白画面にならない(状態検証で正しい画面へ誘導)
- カード入力画面のボタンは、短歌ありのとき 「できあがった短歌」、なしのとき 「短歌を作る」
2. 曲水の宴 — 制限時間¶
設定¶
- 制限時間の入力は ハンバーガーメニュー(ルーム設定)のみ
- 合成画面側に重複する時間入力は 置かない
- 「設定を反映」でサーバーに保存してから「宴を始める」
- 未入力・空欄は 180秒(デフォルト)。0 や空を 60秒に丸めない
- メニューで編集中はポーリングで値を上書きしない
タイマー計測(フロント主導)¶
- 各端末のフロント でカウントダウン(
localDeadlineAt) - ホストが宴開始 → その端末で
開始時刻 + 制限時間をセット - 途中参加 → 参加時点の 残り秒数 からフロントでカウント開始
宴終了時の処理(順番に実行)¶
- フロントで 0:00 検知
- 「保存して宴を終えています…」表示
- カードを保存(入力内容を API へ)
- サーバーから最新ルーム状態を取得
- UI 更新
- 「短歌を作る」画面 へ進む
自動合成はしない¶
- 制限時間が終わっても 短歌は自動では作らない
- ユーザーが「短歌を作る」画面で 手動で「合成する」
3. カード入力・保存¶
書いた分だけ使う¶
- 全部書けなくても参加(「書けなかった人は不参加」という扱いにしない)
- 保存された 空でないカードだけ 合成プールに入る
- 参加者表示は「参加 / 不参加」ではなく 「3枚」「未保存」 など
自動保存¶
- 曲水の宴・非同期モードで 入力内容を都度保存
- 入力から 1秒 後にデバウンス保存
- フォーカスが外れたとき・タブ非表示時にも保存
- 12秒ごとの未保存チェック(バックアップ)
- 保存状態をカード入力欄下に表示(未保存 / 保存中 / 自動保存済)
- 曲水/非同期のボタン文言は 「カードを保存」(「準備OK」ではない)
4. UI の整理¶
削除・非表示¶
- 結果画面の 「再合成 / もう一度遊ぶ」説明文(ヒント行)は不要
- 参加者エリア下の room-hint からも同趣旨の文を削除
- 再合成・もう一度遊ぶボタン自体 は残す
参加者リスト¶
- 折りたたみ(トグル) で表示
- 初期状態は 開いたまま
メニュー(ハンバーガー)¶
- ルームコード、招待 URL、LINE 招待
- 退室・終了・ホーム
- ホスト設定(テーマ、枚数、モード、曲水の制限時間 など)
曲水タイマー(スティッキー)¶
- ヘッダー直下に sticky 表示
- キーボード表示中 は
visualViewportで見えている領域の上部に 固定表示(画面外に消えない)
5. 実装ステータス(2026-07 時点)¶
| 要件 | 状態 |
|---|---|
| 参加者トグル | ✅ 実装済 |
| 再合成ヒント削除 | ✅ 実装済 |
| 画面分離(入力 / 作成 / 結果) | ✅ 実装済 |
| 自動合成廃止 | ✅ 実装済 |
| 書いた分だけ使う + 文言 | ✅ 実装済 |
| 都度自動保存(1秒) | ✅ 実装済 |
| 制限時間バグ修正・メニュー一元化 | ✅ 実装済 |
| 空白画面バグ修正 | ✅ 実装済 |
| フロント主導タイマー + 締切フロー | ✅ 実装済 |
| キーボード時スティッキー | ✅ 実装済 |
6. 操作フロー(曲水の宴・2人以上)¶
ホスト¶
- ルーム作成(モード: 曲水の宴)
- メニュー → 制限時間を設定 → 設定を反映
- 参加者を待つ
- 短歌を作る → 宴を始める
- カード入力 で言葉を書く(自動保存)
- 制限時間終了 → 自動で保存・短歌を作る 画面へ
- 合成する
- できあがった短歌 で確認・保存・再合成 / もう一度遊ぶ
参加者¶
- 招待 URL から参加
- カード入力 で書く(自動保存)
- 宴終了後、短歌を作る 画面で誰かが合成するのを待つ(または自分が合成)
- できあがった短歌 で閲覧
7. 今後の検討(会話外・未確定)¶
- 非同期モードの締切処理も曲水と同様にフロント主導に揃えるか
- 合成可能条件・最低人数のルール変更
- デバッグ UI の本番可否