feat(web): player bar, playable track lists and Collection (M3)
- player bar with cover, like and dislike, previous / play / next, shuffle, repeat, seek bar and volume; PlayerProvider lives with the signed-in shell and restores the last track and position paused - clicking a row (or Enter) plays the list from that track with its context (album, search, history, collection); the current track is highlighted and rows have a like button; a reaction refreshes lists - Collection: history grouped by day with clearing, likes with "play all" and dislikes, all with paging; sidebar section - events and playback state are flushed when the page is hidden; player timers survive StrictMode remounts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ec3c2810c8
commit
976ffb574b
15 files changed
+803
-49
No files matched your search
@@ -119,12 +119,70 @@
|
||||
}
|
||||
|
||||
.num {
|
||||
position: relative;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
color: var(--text3);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.playHint {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: none;
|
||||
place-items: center;
|
||||
border-radius: 8px;
|
||||
background: rgba(5, 7, 13, 0.55);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.track:not(.unavailable) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.track:hover .playHint,
|
||||
.track:focus-visible .playHint {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.current {
|
||||
background: var(--accent-soft);
|
||||
}
|
||||
|
||||
.current .trackTitle {
|
||||
color: var(--accent2);
|
||||
}
|
||||
|
||||
.end {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.like {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
color: var(--text3);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.track:hover .like,
|
||||
.track:focus-within .like,
|
||||
.liked {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.liked {
|
||||
color: var(--accent2);
|
||||
}
|
||||
|
||||
.rowMeta {
|
||||
color: var(--text3);
|
||||
}
|
||||
|
||||
.trackMain {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
Reference in new issue
Block a user