Handoff: o-sumo (http://osada.us/) UX改善仕様・実装計画
本ドキュメントは、/grilling セッションを経て策定された o-sumo(http://osada.us/)のUX刷新計画の受け渡し(Handoff)資料です。受信エージェント(Antigravity / 他エージェント)がゼロコンテキストから直ちに理解し、実装に着手できるように必要な背景、意思決定、制約事項、受け入れ基準を網羅しています。
本場所中の大相撲ファンに向けた**「即応的・日常的な観戦ツール」としてのUX抜本的強化**。 情報構造を「スマートハブ型」に再編し、取組画面のファーストビュー短縮、15日間の木札風日別ナビ、星取表のリーダーボードソート、マイ力士の場所中トラッカー化を二段階(Phase 1 / Phase 2)で実装する。
- プロダクト:
o-sumo(非公式ファンサイト /https://osada.us//C:/dai/GitHub/o-sumo) - 技術スタック: React 18, Vite, TypeScript, Cloudflare Pages (SPA + 静的JSON API), PWA
- デザインシステム: "The Digital Washi" / "The Sacred Interval (Ma)"(詳細は
DESIGN.md) - 現状の課題:
- トップページでブログ告知等がファーストビューを圧迫し、本日の取組導線が重複している。
- 取組画面(
TorikumiDayPage)でヘッダー・パンくず・サマリー・休場等のメタ情報が縦積みになり、肝心の勝敗を見るまでにスマホで大幅なスクロールが必要。 - 15日間の日別遷移が「前日/翌日」しかなく、過去日程や特定の日への回遊が不便。
- 星取表が番付順カードのみで、中日以降の「誰がトップで何敗か(優勝争い)」の把握に42名分のスクロールが必要。
- 「マイ力士」画面が名鑑の静的お気に入り一覧に留まり、場所中に推しの「今日の勝敗」「今場所の成績」が直接確認できない。
- 体験の主軸:
- 本場所中の即応観戦ツール(実用・速報性最優先)。
- トップページ(
/)の情報設計:- スマートハブ型。
BlogUpdatesSection等の副次的告知をヒーロー上部から下方へ移動。- ファーストビュー最上部に「場所名・○日目」ステータスを置き、直下に4大クイック導線を集約:
本日の取組(速報 / 進行中アンカー直行)星取表(成績一覧)明日の割(取組予定)マイ力士(推しトラッカー)
- 直下に重複していた
live-torikumi-sectionを整理・統合。
- 取組画面(
TorikumiDayPage)の操作性・視認性:- ファーストビュー圧縮: パンくず、サマリーカード、休場一覧、ソートボタンをコンパクトなツールバー/アコーディオンに整理し、即座に取組本体(勝敗)が見えるようにする。
- 木札風横スクロール日別バー(1〜15日): ヘッダー直下に「初 2 3 4 5 6 7 中 9 10 11 12 13 14 楽」を配置し、1タップで15日間を自由に行き来可能にする。
- 星取表(
BanzukeTable)の優勝争い可視化:- ワンタップで**「勝敗順(リーダーボード:全勝・1敗・2敗...)/番付順」**を切り替えられるソートトグルを追加。勝ち越し(8勝)・負け越しラインも視覚化。
- マイ力士(お気に入り)の包括的強化:
- マイ力士画面(
/my-rikishi/)のダッシュボード化: 本場所中は登録力士の「今場所の星取(○勝○敗)」「本日の取組結果(勝敗・決まり手)」「明日の対戦相手」を一覧表示。 - 取組・星取表との連動: 取組表や星取表で「★マイ力士のみ」のワンタップ絞り込みトグル、および視覚的ハイライトを提供。
- マイ力士画面(
- デザインシステム(Digital Washi)の完全遵守:
- 0px border-radius(角丸禁止)、No-Line Rule(1px solid境界線禁止、背景トーン差で区切る)、**Ink & Gold(墨と金)**を厳守。
- 新規UI(日別バー、トグル、バッジ)は相撲の伝統的な「木札(木版)・印判」をモチーフにした端正な矩形スタイルで統一する。
- トップページのスマートハブ化 (
app/page.tsx)BlogUpdatesSectionの配置見直し(ヒーロー下部へ移動)- ファーストビューに4大導線(本日・星取・明日・マイ力士)を集約
- 重複している
live-torikumi-sectionの整理
- 取組画面の圧縮 & 日別ナビゲーション (
app/components/TorikumiDayPage.tsx,app/torikumi/page.css)- 上部メタ情報(パンくず・サマリーカード・休場・ソート)のレイアウト圧縮
- 木札風横スクロール日別ピルバー(1〜15日)の実装とアクティブ日インジケータ
- スクロール位置とアンカー移動の安定性確認
- 星取表のリーダーボードソート (
app/components/BanzukeTable.tsx,app/banzuke/page.tsx)- 「番付順」と「勝敗順(リーダーボード)」の切り替えロジックとUI追加
- 勝ち越し・負け越しセクション表示
- マイ力士ダッシュボード化 (
app/rikishi/MyRikishiPage.tsx,app/components/TorikumiDayPage.tsx)/my-rikishi/における当場所データ(取組・結果・星取)の動的表示- 取組画面・星取表での「★マイ力士のみ」フィルタ/強調連携
app/page.tsx— トップページ(スマートハブ、ヒーローアクション、ブログ・見どころセクション)app/components/TorikumiDayPage.tsx— 取組結果・予定画面(日別表示、サマリー、ソート)app/torikumi/page.css— 取組画面のスタイルapp/components/BanzukeTable.tsx— 番付・星取表コンポーネントapp/banzuke/page.tsx— 番付・星取表ページapp/styles/banzuke.css— 番付・星取表のスタイルapp/rikishi/MyRikishiPage.tsx— マイ力士(お気に入り力士)画面app/lib/my-rikishi.ts— マイ力士のLocalStorege / Event管理app/lib/torikumi-data.ts,app/lib/torikumi-routes.ts— 取組データおよびルート生成DESIGN.md,DESIGN-Ronin.md— 遵守すべきデザインシステム仕様
- Design System:
- 角丸(
border-radius > 0px)を使用しないこと(0px鋭角のみ)。 - 区切り線(
border: 1px solid ...)でセクションを区切らないこと(surfaceトーン差と余白で表現)。 - フォントスタック(日本語: Shippori Mincho, 英数字: Source Serif 4)を崩さないこと。
- 角丸(
- ルーティングとSEO:
- 既存のURL構造(
/{monthKey}-torikumi/,/{monthKey}-yotei/,/{monthKey}-banzuke/, 日別URL)および正規化(trailing slash)を破壊しないこと。
- 既存のURL構造(
- テストの維持:
- 既存のユニット・統合テスト(全68ファイル / 468テスト)がすべてパスする状態を維持すること(
npm test)。
- 既存のユニット・統合テスト(全68ファイル / 468テスト)がすべてパスする状態を維持すること(
- 多言語(日英)対応:
- すべての新設テキストは
src/locales/ja/common.jsonおよびsrc/locales/en/common.jsonにキーを追加して国際化対応すること。
- すべての新設テキストは
- Top Page: ファーストビュー内に「場所名・○日目」と「本日・星取・明日・マイ力士」の4大導線が即座に視認・タップできること。
- Top Page: ブログ告知がヒーロー上部でファーストビューを阻害せず、直下の重複リンクが整理されていること。
- Torikumi Page: 取組画面のヘッダー下部が圧縮され、スクロールなし(または最小スクロール)で初戦/注目取組が見えること。
- Torikumi Page: 1〜15日の木札風横スクロールバーから、任意の日程へ1タップで遷移できること。
- Banzuke/Hoshitori: 星取表で「番付順」と「勝敗順(リーダーボード)」を切り替えられ、優勝争いの力士が即座にわかること。
- My Rikishi:
/my-rikishi/で登録力士の「今場所の星」「本日の結果」が一覧でき、取組画面でもマイ力士の取組が容易に見つかること。 - Design Quality: 新設UIが「Digital Washi」の0px角・No-Line・Ink & Goldの美学に完全に調和していること。
- Verification:
npm testおよびnpm run buildがエラーなくパスすること。