feat(web): scroll-row arrows + stable desktop media tile
Home rows get hover left/right arrows that only show for the scrollable direction (enhanceScrollRow + initScrollRows, called from startApp); visibility recomputed on scroll/resize/content-load. Fix the OS media tile flicker when skipping on desktop PWA: mutate the existing MediaMetadata in place instead of assigning a new one each track (the replacement made Windows tear down and rebuild the tile). Action handlers are now set once. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
7498e45b16
commit
d65fbcd11e
5 files changed
+98
-9
No files matched your search
+18
@@ -168,6 +168,24 @@ nav{flex:1;overflow-y:auto;padding:4px 10px}
|
||||
.scroll-row::-webkit-scrollbar{display:none}
|
||||
.scroll-row .card{flex-shrink:0;width:145px}
|
||||
|
||||
/* Hover arrows for horizontal rows (desktop) — only the scrollable direction shows */
|
||||
.scroll-row-wrap{position:relative}
|
||||
.scroll-arrow{
|
||||
position:absolute;top:72px;transform:translateY(-50%);
|
||||
width:38px;height:38px;border-radius:50%;
|
||||
display:flex;align-items:center;justify-content:center;
|
||||
background:rgba(15,15,24,.82);color:#fff;border:1px solid rgba(255,255,255,.14);
|
||||
cursor:pointer;z-index:6;opacity:0;pointer-events:none;
|
||||
transition:opacity .16s ease,background .16s ease;
|
||||
-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
|
||||
box-shadow:0 4px 14px rgba(0,0,0,.35);
|
||||
}
|
||||
.scroll-arrow svg{width:18px;height:18px}
|
||||
.scroll-arrow.sa-left{left:-6px}
|
||||
.scroll-arrow.sa-right{right:-6px}
|
||||
.scroll-arrow:hover{background:rgba(30,30,46,.95)}
|
||||
.scroll-row-wrap:hover .scroll-arrow.can-scroll{opacity:1;pointer-events:auto}
|
||||
|
||||
/* ── CARDS ── */
|
||||
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}
|
||||
.card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.4);border-color:var(--border2)}
|
||||
|
||||
Reference in new issue
Block a user