コンテンツにスキップ
Documents for MorningStatusApp
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

複数の音楽グループ対応 画面設計書

最終更新: 2026-11-09 関連 Issue: morning-status-blume#246(設計書の作成)/ MorningStatusApp#1817(期バッジ・ユニット一覧のグリッドの実装)

1. 概要

複数の音楽グループを扱うための画面設計。モーニング娘。の画面から、他の音楽グループのメンバー・楽曲・ユニットへリンクで辿れるようにする。データの前提は 複数の音楽グループ対応 データ設計書 に従う。

  • 最低線: モーニング娘。の画面に、他の音楽グループの情報へのリンクを置き、リンク先の画面を用意する
  • 最終形: 全音楽グループを切り替えて参照できる(切り替えの置き場所は §9 の方針のみ)

前提

  • 他の音楽グループのメンバーは、generation・profile.joinDate・profile.gradDate が登録されている(シードは別途用意する)
  • 音楽グループはメンバーの本拠地で、ユニットは音楽グループの内または音楽グループをまたいで結成される集団である。リリース・収録曲に紐づくのは広義のユニット(ユニットまたは音楽グループ)である

2. 画面一覧

画面 URL 区分
音楽グループのトップ /groups/{groupId} 新規(§7)
ユニット一覧 /units 変更(§5)。広義のユニットの一覧にする
ユニット詳細 /units/{id} 変更(§6-4)。所属メンバーに他の音楽グループのメンバーを含める
リリース詳細 /releases/{id} 変更(§8)。「開いた相手」に音楽グループを加える
曲詳細・プレイリスト詳細 /songs/{id}・/playlists/{id} 変更(§6-2)。アーティストのリンク先を広義のユニットで決める
ラジオ放送回・公演・イベントの詳細 /radio/episodes/{id} 等 変更(§6-1)。出演メンバーに他の音楽グループのメンバーを含める

3. URL階層

実体(メンバー・リリース)は ID で引ける平らな URL とし、音楽グループ単位の画面だけを /groups/{groupId} の配下に置く。

対象 URL
メンバー詳細 /members/{memberId}
リリース・曲の詳細 /releases/{id}・/songs/{id}
ユニット詳細 /units/{id}
音楽グループのトップ /groups/{groupId}
音楽グループ単位の画面(最終形) /groups/{groupId}/...
  • モーニング娘。の既存の画面(TOP の /・メンバー一覧の /members 等)は、ルート直下のままにする。音楽グループの画面(/groups/{groupId})は、モーニング娘。にも用意する
  • /units/morning-musume は、/groups/morning-musume へ遷移させる
  • groups/ を先頭に付けるのは、既存のトップレベルのルートと、音楽グループの ID(動的セグメント)が衝突しないようにするためである。app/ 直下には groups のルートがなく、衝突はない

4. 共通の表示

音楽グループ名付きの期バッジ

複数の音楽グループのメンバーが混ざる画面では、メンバーの期バッジを「音楽グループ名+N期」の1つのバッジにする。

例
アンジュルム12期・つばきファクトリー4期・ロージークロニクル1期・モーニング娘。18期
  • 対象は、ユニット詳細の所属メンバー、共演メンバー(§6-1)、プレイリスト詳細のメンバーである
  • モーニング娘。のメンバーだけの画面(/members・TOP 等)は、N期 とする
  • 色は、メンバーカラー、なければ期の色(世代共通カラー)、それもなければ #94a3b8 の順で決める。メンバー名ピル(タイムラインのイベントカード)と同じ規則である。音楽グループが違っても、同じ N期は同じ期の色になり、音楽グループはバッジの文字で区別する
  • バッジは共通部品にし、音楽グループ名を渡さない場合は N期 を表示する。他の画面(§6-1・§6-3・§6-4)が同じ部品を使う

5. ユニット一覧(/units)

ユニット一覧を、広義のユニット(音楽グループとユニット)の一覧にする。

  • カードの並び: 音楽グループ(groups.json の並び順)、続いてユニット(現在の並び)
  • カードには、種別バッジ(音楽グループ・ユニット)を付ける
  • 音楽グループとユニットのカードは、1つのグリッドに並べる。音楽グループの件数が奇数でも、行に空きができず、続くユニットのカードが詰めて並ぶ。グリッドはモバイルファーストとし、モバイル幅は1列、768px 以上で複数列にする
  • クリックしたときの遷移先:
カード 遷移先
音楽グループ(モーニング娘。を含む) /groups/{groupId}(モーニング娘。は /groups/morning-musume)
ユニット /units/{id}
  • 画面は、データの件数に関係なく描画する。音楽グループのカードは、groups.json にモーニング娘。だけが載る状態でも表示する
  • 他の音楽グループへ遷移する入口は、このカードのほか、楽曲のアーティストのリンク(§6-2)と、共演メンバーのバッジ(§6-1)である

6. 4パターンの見せ方

6-1. 共演メンバー

ラジオ放送回・公演・イベントの出演メンバーに、他の音楽グループのメンバーを含める。

  • 表示: メンバー名と、音楽グループ名付きの期バッジ(§4)のチップ。/members/{id} へリンクする
  • 並び順: 音楽グループの並び順(groups.json)で並べ、各音楽グループの中は世代昇順・加入日昇順とする

6-2. 楽曲のアーティスト

ラジオのオンエア曲・プレイリストの曲・曲詳細のアーティストは、Track.unitId が指す広義のユニットでリンク先を決める。

Track.unitId の対応先 リンク先
音楽グループ(モーニング娘。を含む) /groups/{groupId}(モーニング娘。は /groups/morning-musume)
ユニット /units/{id}(各期ユニットは上位ユニットの /units/{parentId}。parentId が音楽グループのユニットは /groups/{parentId})

6-3. プレイリスト

メンバー名の右に併記する所属ユニットは、ユニットとする。メンバーの音楽グループは、音楽グループ名付きの期バッジ(§4)で示す。

6-4. 音楽グループをまたぐユニット

  • ユニット詳細の所属メンバーに、他の音楽グループのメンバーを含める。メンバーは、名前と音楽グループ名付きの期バッジ(§4)で表示する
  • メンバー詳細の「所属ユニット」は、他の音楽グループのメンバーでも同じ形で表示する

7. 音楽グループのトップ(/groups/{groupId})

音楽グループのトップ画面(モーニング娘。を含む)。最低線では、次のセクションを上から順に置く。

セクション 内容
概要 音楽グループ名・活動期間(activeFrom〜activeTo)
メンバー その音楽グループのメンバー一覧。モーニング娘。のメンバー一覧(/members)と同じ見せ方。モーニング娘。の画面には /members へのリンクも置く
ユニット その音楽グループのメンバーを含むユニット。/units/{id} へリンクする
関連リリース モーニング娘。以外は MusicGroup.releaseIds のリリース。モーニング娘。は「モーニング娘。のリリース」の判定で決めたリリースで、/releases へのリンクも置く。リリース詳細へは、モーニング娘。以外は ?group={groupId} を付けて遷移する
  • 戻るリンクは /units へ遷移し、文言は「ユニット一覧に戻る」とする
  • 各セクションは、データが0件でも見出しを描画し、中身に「ありません」のプレースホルダーを置く
  • メンバー一覧を別の画面(/groups/{groupId}/members)に分けるのは、最終形の段階とする

8. リリース詳細(/releases/{id})

「開いた相手」に、音楽グループ(kind: group)を加える。

項目 内容
クエリ ?group={MusicGroup.id}
前後ナビの候補 MusicGroup.releaseIds に含まれるリリースのうち、同じフォーマットのリリース(リリース日降順・同日はタイトル昇順)
「前の画面に戻る」のフォールバック /groups/{groupId}。モーニング娘。は /releases
  • parentId が音楽グループを指すユニット(モーニング娘。の西暦年を含む名称のユニット等)の戻り先は、parentId が音楽グループなら /groups/{parentId}、ユニットなら /units/{parentId} とする

9. 音楽グループの切り替えの置き場所(方針)

切り替えの実装は対象外とし、置き場所の方針だけを定める。

  • 画面共通のナビゲーションに、音楽グループへの入口を置く
  • 入口の遷移先は、ユニット一覧(§5)と同じ遷移先の規則に従う。どの音楽グループも /groups/{groupId} である
  • TOP(/)は、モーニング娘。の画面とする

10. 対象外

項目 内容
音楽グループの切り替えの実装 §9 の方針のみ
他の音楽グループの SNS の表示・新着 SNS 収集を始める段階で検討する
音楽グループ単位の画面(最終形) /groups/{groupId}/members・タイムライン等
他の音楽グループのシード 別途用意する

11. 関連設計書

設計書 本書との関係
複数の音楽グループ対応 データ設計書 音楽グループ・メンバーファイル・記録の選び方・広義のユニットの定義
ユニット機能 画面設計書 ユニット一覧・ユニット詳細の既存の設計
画面設計書 メンバー詳細・リリース詳細・曲詳細の既存の設計
リリース データ設計書 「開いた相手」と前後ナビの規則

改訂履歴

版 更新日 変更内容
1.1 2026-11-09 【実装時に追記(MorningStatusApp#1817)】音楽グループ名付きの期バッジの色の規則と共通部品を追記(§4)。ユニット一覧のグリッドを1つにまとめる規則を追記(§5)
1.0 2026-11-07 【実装時に追記(MorningStatusApp#1809)】初版作成(MorningStatusApp#1803, morning-status-blume#246)

このページは役に立ちましたか?