feat: scrobbling, genre grid redesign with detail view + play button
- Scrobble to Navidrome on auto-advance (Android) and track end (web) so type=recent and type=frequent are accurate for the hero card - Genre section: pill chips → grid cards with colored left bars - Top 15 genres shown by default (sorted by song count), expand toggle - Genre card: click → genre detail page with full song list - Genre card: hover play button → shuffle-play without navigating - Genre detail page reuses album-detail layout (back btn, stats, song list) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
d3a1bf6a82
commit
f79817410b
5 files changed
+115
-19
No files matched your search
+19
-2
@@ -134,8 +134,8 @@
|
||||
<div class="page active" id="page-home">
|
||||
<div id="home-greeting" class="home-greeting"></div>
|
||||
<div id="home-hero" class="home-hero"></div>
|
||||
<div class="section-header" style="margin-top:20px"><span class="section-title">Genres</span></div>
|
||||
<div id="home-genres" class="genre-chips"></div>
|
||||
<div class="section-header" style="margin-top:20px"><span class="section-title">Genres</span><span class="section-more" id="home-genres-more" onclick="toggleAllGenres()" style="display:none">Alle anzeigen</span></div>
|
||||
<div id="home-genres" class="genre-grid"></div>
|
||||
<div class="section-header" style="margin-top:20px"><span class="section-title">Zuletzt gespielt</span></div>
|
||||
<div class="scroll-row" id="home-recent"></div>
|
||||
<div class="section-header"><span class="section-title">Zufällig</span><span class="section-more" onclick="navigate('random')">Mehr</span></div>
|
||||
@@ -220,6 +220,23 @@
|
||||
<div class="song-list" id="album-songs"></div>
|
||||
</div>
|
||||
|
||||
<!-- GENRE DETAIL -->
|
||||
<div class="page" id="page-genre-detail">
|
||||
<button class="back-btn" id="genre-back-btn"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="15 18 9 12 15 6"/></svg>Zurück</button>
|
||||
<div class="album-header">
|
||||
<div class="album-cover" id="genre-cover-wrap" style="display:flex;align-items:center;justify-content:center;font-size:40px">🎵</div>
|
||||
<div class="album-meta">
|
||||
<div class="album-type">Genre</div>
|
||||
<div class="album-name" id="genre-detail-name">—</div>
|
||||
<div class="album-stats" id="genre-detail-stats"></div>
|
||||
<div class="album-actions">
|
||||
<button class="btn-play-all" id="btn-play-genre"><svg width="13" height="13" viewBox="0 0 24 24" fill="currentColor"><polygon points="5 3 19 12 5 21 5 3"/></svg>Shuffle</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="song-list" id="genre-songs"></div>
|
||||
</div>
|
||||
|
||||
<!-- STARRED -->
|
||||
<div class="page" id="page-starred">
|
||||
<div class="page-header"><div class="page-title">Favoriten ⭐</div></div>
|
||||
|
||||
Reference in new issue
Block a user