refactor: simplify series page — drop redundant versus/headline, blank out placeholder scores, make round badge the bracket link
CI / Lint (push) Successful in 10s
CI / Test (push) Successful in 16s
CI / Build & Push (push) Successful in 32s

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-19 19:18:41 -04:00
parent dc3bfd13b3
commit 303db46cc3
3 changed files with 14 additions and 77 deletions
-18
View File
@@ -73,7 +73,6 @@ def build_series_view(series_id, payload):
"leader": leader_team, "leader": leader_team,
"trailer": trailer_team, "trailer": trailer_team,
"state": state, "state": state,
"headline": _headline(state, leader_team, trailer_team, top_wins, bot_wins),
"games": normalized_games, "games": normalized_games,
"played_games": played, "played_games": played,
"next_game": next_game, "next_game": next_game,
@@ -157,23 +156,6 @@ def _game_view(game):
} }
def _headline(state, leader, trailer, top_wins, bot_wins):
if state["is_game7"]:
return "Win-or-go-home \u2014 Game 7 tonight."
if state["is_clincher"] and leader:
return f"{leader['full']} can close it out in Game {state['game_number']}."
if state["is_pivotal"]:
return f"Series tied 2\u20112 \u2014 pivotal Game {state['game_number']}."
if state["is_opener"]:
return "Series opener."
if leader and trailer:
return (
f"{leader['full']} leads {state['hi']}\u2011{state['lo']} "
f"\u2014 Game {state['game_number']} next."
)
return f"Series even {top_wins}\u2011{bot_wins}."
def _format_start(start_utc): def _format_start(start_utc):
if not start_utc: if not start_utc:
return "", "" return "", ""
+11 -49
View File
@@ -603,6 +603,17 @@ main {
border: 1px solid rgba(212, 175, 55, 0.28); border: 1px solid rgba(212, 175, 55, 0.28);
} }
.badge-round-link {
text-decoration: none;
transition: border-color 0.12s ease, color 0.12s ease, background 0.12s ease;
}
.badge-round-link:hover {
border-color: var(--cup-gold-1);
color: var(--cup-gold-2);
background: rgba(212, 175, 55, 0.16);
}
.badge-conf { .badge-conf {
background: rgba(79, 195, 247, 0.12); background: rgba(79, 195, 247, 0.12);
color: var(--ice-accent); color: var(--ice-accent);
@@ -795,36 +806,6 @@ main {
margin-top: 0.25rem; margin-top: 0.25rem;
} }
.series-versus {
display: flex;
flex-direction: column;
gap: 0.2rem;
align-items: center;
}
.series-versus-label {
font-size: 0.7rem;
letter-spacing: 0.15em;
color: var(--cup-silver-dim);
}
.series-versus-score {
font-size: 1.4rem;
font-weight: 600;
color: var(--cup-gold-2);
}
.series-versus-best {
font-size: 0.75rem;
color: var(--cup-silver-dim);
}
.series-headline {
font-size: 1rem;
color: var(--cup-silver-1);
max-width: 46ch;
}
.series-next-card { .series-next-card {
background: var(--card); background: var(--card);
border: 1px solid var(--cup-gold-dim); border: 1px solid var(--cup-gold-dim);
@@ -1172,22 +1153,3 @@ main {
.bracket-accordion { display: flex; } .bracket-accordion { display: flex; }
} }
/* Banner bracket link (both pages) */
.banner-bracket-link {
background: transparent;
border: 1px solid var(--cup-gold-dim);
color: var(--cup-gold-1);
padding: 0.35rem 0.7rem;
border-radius: 999px;
font-size: 0.78rem;
letter-spacing: 0.05em;
text-decoration: none;
transition: border-color 0.12s ease, color 0.12s ease;
white-space: nowrap;
}
.banner-bracket-link:hover {
border-color: var(--cup-gold-1);
color: var(--cup-gold-2);
}
+3 -10
View File
@@ -11,12 +11,11 @@
<body class="playoff-mode series-mode"> <body class="playoff-mode series-mode">
<header class="series-header"> <header class="series-header">
<a class="header-title header-link" href="/">&larr; NHL Scoreboard</a> <a class="header-title header-link" href="/">&larr; NHL Scoreboard</a>
<a class="banner-bracket-link" href="/bracket">Bracket</a>
</header> </header>
<main class="series-main"> <main class="series-main">
<section class="series-hero"> <section class="series-hero">
<div class="series-hero-eyebrow"> <div class="series-hero-eyebrow">
<span class="badge badge-round">{{ series.round_label|upper }}</span> <a class="badge badge-round badge-round-link" href="/bracket" aria-label="View the playoff bracket">{{ series.round_label|upper }}</a>
{% if series.state.is_game7 %}<span class="badge badge-game7">GAME 7</span> {% if series.state.is_game7 %}<span class="badge badge-game7">GAME 7</span>
{% elif series.state.is_clincher %}<span class="badge badge-clincher">CLINCHER</span> {% elif series.state.is_clincher %}<span class="badge badge-clincher">CLINCHER</span>
{% elif series.state.is_pivotal %}<span class="badge badge-pivotal">PIVOTAL</span>{% endif %} {% elif series.state.is_pivotal %}<span class="badge badge-pivotal">PIVOTAL</span>{% endif %}
@@ -31,11 +30,6 @@
</div> </div>
<div class="series-team-wins">{{ series.top_wins }}</div> <div class="series-team-wins">{{ series.top_wins }}</div>
</div> </div>
<div class="series-versus">
<span class="series-versus-label">SERIES</span>
<span class="series-versus-score">{{ series.top_wins }} &ndash; {{ series.bottom_wins }}</span>
<span class="series-versus-best">Best of {{ series.length }}</span>
</div>
<div class="series-team {% if series.leader and series.leader.abbrev == series.bottom.abbrev %}series-team-leader{% endif %}"> <div class="series-team {% if series.leader and series.leader.abbrev == series.bottom.abbrev %}series-team-leader{% endif %}">
{% if series.bottom.logo %}<img class="series-team-logo" src="{{ series.bottom.logo }}" alt="{{ series.bottom.abbrev }}">{% endif %} {% if series.bottom.logo %}<img class="series-team-logo" src="{{ series.bottom.logo }}" alt="{{ series.bottom.abbrev }}">{% endif %}
<div class="series-team-name">{{ series.bottom.full }}</div> <div class="series-team-name">{{ series.bottom.full }}</div>
@@ -46,7 +40,6 @@
<div class="series-team-wins">{{ series.bottom_wins }}</div> <div class="series-team-wins">{{ series.bottom_wins }}</div>
</div> </div>
</div> </div>
<p class="series-headline">{{ series.headline }}</p>
</section> </section>
{% if series.next_game %} {% if series.next_game %}
@@ -78,13 +71,13 @@
<div class="series-game-team"> <div class="series-game-team">
<span class="series-game-abbrev">{{ game.away.abbrev }}</span> <span class="series-game-abbrev">{{ game.away.abbrev }}</span>
<span class="series-game-score {% if game.winner_abbrev == game.away.abbrev %}series-game-winner{% endif %}"> <span class="series-game-score {% if game.winner_abbrev == game.away.abbrev %}series-game-winner{% endif %}">
{% if game.away.score is not none %}{{ game.away.score }}{% else %}&mdash;{% endif %} {% if game.away.score is not none %}{{ game.away.score }}{% endif %}
</span> </span>
</div> </div>
<div class="series-game-team"> <div class="series-game-team">
<span class="series-game-abbrev">{{ game.home.abbrev }}</span> <span class="series-game-abbrev">{{ game.home.abbrev }}</span>
<span class="series-game-score {% if game.winner_abbrev == game.home.abbrev %}series-game-winner{% endif %}"> <span class="series-game-score {% if game.winner_abbrev == game.home.abbrev %}series-game-winner{% endif %}">
{% if game.home.score is not none %}{{ game.home.score }}{% else %}&mdash;{% endif %} {% if game.home.score is not none %}{{ game.home.score }}{% endif %}
</span> </span>
</div> </div>
</div> </div>