Match center redesign: center-spine timeline + hero scoreboard + tabbed layout

Implements steps 1-3 of the Claude Design handoff:
- MatchTimeline: vertical center spine (home left, away right, minute
  pills on the rail), goal cards with parsed scorer/assist/running
  score, sub and booking chips, synthetic kick-off/half-time/full-time
  dividers; single left rail under the sm breakpoint
- matchEvents: pure ESPN commentary parser (scorer, assist, penalty,
  own goal, sub in/out, embedded score) with tests on real feed shapes
- Hero scoreboard: panel gradient + accent glow, smallcaps meta, mono
  score, stat chips (xG / POTM / attendance / referee; possession and
  shots while live); weather line stays for upcoming matches
- Sticky Summary/Timeline/Stats/Lineups sub-nav; all existing cards
  re-bucketed with no feature loss (in-play win prob, swing chart,
  xG race, shot map, momentum, odds movement, form, H2H, lineups)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 11:19:16 +02:00
parent b823bef2d0
commit b9b79df51e
9 changed files with 888 additions and 201 deletions
+21
View File
@@ -113,6 +113,27 @@ export const en = {
attendanceLine: "{stadium} · {n} spectators · referee {ref}",
potm: "Player of the match",
xgAttribution: "xG and ratings are FotMob estimates.",
tabs: {
summary: "Summary",
timeline: "Timeline",
stats: "Stats",
lineups: "Lineups",
},
keyMoments: "Key moments",
viewTimeline: "View full timeline",
kickOff: "Kick-off",
halfTime: "Half-time",
goal: "Goal",
ownGoal: "Own goal",
penalty: "Penalty",
assist: "Assist · {name}",
noGoalsYet: "No goals yet.",
chips: {
att: "Att",
ref: "Ref",
poss: "Poss",
shots: "Shots",
},
},
compare: {
title: "Compare",