コンテンツにスキップ

ランダム短歌 — UI・曲水の宴 要件整理

2026-07 時点の会話に基づく整理。全体の正本は random-tanka-overview.md(§4 画面・UX、§5.2 曲水の宴)。本書は会話ベースの詳細メモとして残す。


1. 画面構成(ルーム内)

タブではなく 状態に応じた画面遷移 とする。

画面 内容 遷移
カード入力 参加者リスト(折りたたみ)、カード入力、自動保存 「短歌を作る」→ 短歌作成画面
短歌を作る 宴開始(ホスト)、合成ボタン 「← カード入力」で戻る
できあがった短歌 短歌表示、再合成、もう一度遊ぶ、画像保存 「← カード入力」で戻る
ホーム ルーム一覧・作成・参加 ハンバーガーメニュー「ホームに戻る」

遷移ルール

  • 合成が完了したら 自動で「できあがった短歌」画面
  • 「もう一度遊ぶ」で カード入力画面 へ戻る
  • 短歌がないのに結果画面、合成済みなのに作成画面、など 中身のない空白画面にならない(状態検証で正しい画面へ誘導)
  • カード入力画面のボタンは、短歌ありのとき 「できあがった短歌」、なしのとき 「短歌を作る」

2. 曲水の宴 — 制限時間

設定

  • 制限時間の入力は ハンバーガーメニュー(ルーム設定)のみ
  • 合成画面側に重複する時間入力は 置かない
  • 「設定を反映」でサーバーに保存してから「宴を始める」
  • 未入力・空欄は 180秒(デフォルト)。0 や空を 60秒に丸めない
  • メニューで編集中はポーリングで値を上書きしない

タイマー計測(フロント主導)

  • 各端末のフロント でカウントダウン(localDeadlineAt
  • ホストが宴開始 → その端末で 開始時刻 + 制限時間 をセット
  • 途中参加 → 参加時点の 残り秒数 からフロントでカウント開始

宴終了時の処理(順番に実行)

  1. フロントで 0:00 検知
  2. 「保存して宴を終えています…」表示
  3. カードを保存(入力内容を API へ)
  4. サーバーから最新ルーム状態を取得
  5. UI 更新
  6. 「短歌を作る」画面 へ進む

自動合成はしない

  • 制限時間が終わっても 短歌は自動では作らない
  • ユーザーが「短歌を作る」画面で 手動で「合成する」

3. カード入力・保存

書いた分だけ使う

  • 全部書けなくても参加(「書けなかった人は不参加」という扱いにしない)
  • 保存された 空でないカードだけ 合成プールに入る
  • 参加者表示は「参加 / 不参加」ではなく 「3枚」「未保存」 など

自動保存

  • 曲水の宴・非同期モードで 入力内容を都度保存
  • 入力から 1秒 後にデバウンス保存
  • フォーカスが外れたとき・タブ非表示時にも保存
  • 12秒ごとの未保存チェック(バックアップ)
  • 保存状態をカード入力欄下に表示(未保存 / 保存中 / 自動保存済)
  • 曲水/非同期のボタン文言は 「カードを保存」(「準備OK」ではない)

4. UI の整理

削除・非表示

  • 結果画面の 「再合成 / もう一度遊ぶ」説明文(ヒント行)は不要
  • 参加者エリア下の room-hint からも同趣旨の文を削除
  • 再合成・もう一度遊ぶボタン自体 は残す

参加者リスト

  • 折りたたみ(トグル) で表示
  • 初期状態は 開いたまま

メニュー(ハンバーガー)

  • ルームコード、招待 URL、LINE 招待
  • 退室・終了・ホーム
  • ホスト設定(テーマ、枚数、モード、曲水の制限時間 など)

曲水タイマー(スティッキー)

  • ヘッダー直下に sticky 表示
  • キーボード表示中visualViewport で見えている領域の上部に 固定表示(画面外に消えない)

5. 実装ステータス(2026-07 時点)

要件 状態
参加者トグル ✅ 実装済
再合成ヒント削除 ✅ 実装済
画面分離(入力 / 作成 / 結果) ✅ 実装済
自動合成廃止 ✅ 実装済
書いた分だけ使う + 文言 ✅ 実装済
都度自動保存(1秒) ✅ 実装済
制限時間バグ修正・メニュー一元化 ✅ 実装済
空白画面バグ修正 ✅ 実装済
フロント主導タイマー + 締切フロー ✅ 実装済
キーボード時スティッキー ✅ 実装済

6. 操作フロー(曲水の宴・2人以上)

ホスト

  1. ルーム作成(モード: 曲水の宴)
  2. メニュー → 制限時間を設定 → 設定を反映
  3. 参加者を待つ
  4. 短歌を作る宴を始める
  5. カード入力 で言葉を書く(自動保存)
  6. 制限時間終了 → 自動で保存・短歌を作る 画面へ
  7. 合成する
  8. できあがった短歌 で確認・保存・再合成 / もう一度遊ぶ

参加者

  1. 招待 URL から参加
  2. カード入力 で書く(自動保存)
  3. 宴終了後、短歌を作る 画面で誰かが合成するのを待つ(または自分が合成)
  4. できあがった短歌 で閲覧

7. 今後の検討(会話外・未確定)

  • 非同期モードの締切処理も曲水と同様にフロント主導に揃えるか
  • 合成可能条件・最低人数のルール変更
  • デバッグ UI の本番可否

関連ドキュメント