feat: make scoreboard playoff-aware with banner, bracket, and series drill-down
Turn a regular-season-looking Tuesday into a full playoff experience: - Playoff banner with round + day + series + elimination counts, gold/silver Cup theme toggled by body.playoff-mode - Series context on each playoff card: round chip, series score, stake badges (GAME 7, CLINCHER, PIVOTAL), and one-line blurb - Game 7s pin to a new Spotlight section above Live - Playoff OT renders with SUDDEN DEATH badge and pulsing gold border - Client-side OT notifications via bell button in the banner - New /series/<id> drill-down with headline, next-game, and game-by-game history - New /bracket page: 7-column desktop grid, accordion on mobile - Day N banner count auto-anchors on first playoff scoreboard hit - SQLite cache for bracket + per-series schedules, stale-on-failure up to 24h Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,42 @@
|
||||
<header>
|
||||
<span class="header-title">NHL Scoreboard</span>
|
||||
</header>
|
||||
<section id="playoff-banner" class="playoff-banner hidden" aria-hidden="true">
|
||||
<svg class="banner-trophy" viewBox="0 0 32 40" aria-hidden="true">
|
||||
<defs>
|
||||
<linearGradient id="cup-gold" x1="0" x2="1" y1="0" y2="1">
|
||||
<stop offset="0%" stop-color="#f5d76e"/>
|
||||
<stop offset="60%" stop-color="#d4af37"/>
|
||||
<stop offset="100%" stop-color="#8a6d1a"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path fill="url(#cup-gold)" d="M6 2h20v4c0 5-2 9-5 11l-1 5h-8l-1-5C8 15 6 11 6 6V2zm4 20h12v3H10v-3zm-2 4h16v3H8v-3zm1 4h14v6H9v-6z"/>
|
||||
<rect x="11" y="9" width="10" height="2" fill="#0a1628" opacity="0.35"/>
|
||||
<rect x="11" y="13" width="10" height="1.5" fill="#0a1628" opacity="0.35"/>
|
||||
</svg>
|
||||
<div class="banner-text">
|
||||
<div class="banner-title">
|
||||
STANLEY CUP PLAYOFFS
|
||||
<span class="banner-year"></span>
|
||||
</div>
|
||||
<div class="banner-meta">
|
||||
<span class="meta-round"></span>
|
||||
<span class="meta-day hidden"></span>
|
||||
<span class="meta-series"></span>
|
||||
<span class="meta-elim hidden"></span>
|
||||
<span class="meta-game7 hidden"></span>
|
||||
</div>
|
||||
</div>
|
||||
<a class="banner-bracket-link" href="/bracket">Bracket</a>
|
||||
<button class="banner-notify" type="button" title="Notify me on playoff OT" aria-label="Enable OT notifications">
|
||||
<span class="bell-label">OT alerts</span>
|
||||
</button>
|
||||
</section>
|
||||
<main>
|
||||
<section id="pinned-section" class="section pinned-section hidden">
|
||||
<h2 class="section-heading section-heading-gold">Spotlight · Game 7</h2>
|
||||
<div id="pinned-games-section" class="games-grid"></div>
|
||||
</section>
|
||||
<section id="live-section" class="section hidden">
|
||||
<h2 class="section-heading">Live</h2>
|
||||
<div id="live-games-section" class="games-grid"></div>
|
||||
|
||||
Reference in New Issue
Block a user