fix(linebed): scale artwork to match track-meta column height

The bottom-info song card on LineBed pairs a four-row column (title +
album + artist + quality badge) with a square artwork thumb. With the
quality badge added the column grew to ~100px while the thumb stayed
at its old 72px fixed size, breaking the visual weight balance — the
column dominated the card and the thumb read as an afterthought.

Wraps the thumb in a flex container that stretches to the column
height, then sizes the thumb to 98% of that height with aspect-ratio
1 so it stays square. The 2% breathing room reads as a deliberate
gutter rather than a flush match, and the thumb sits vertically
centered against the column instead of pinned to either edge.

The fixed 72/56 dimensions and the mobile media-query override drop
out as a side effect — the thumb now scales with the actual content
height, so the breakpoint clamp isn't needed.

cc
This commit is contained in:
vicrodh committed 2026-05-13 18:59:00 -06:00
1 parent cb21653ac2
commit 783f7e41ba
1 file changed
+22 -11
@@ -435,8 +435,10 @@
<QualityBadgeStatic {quality} {bitDepth} {samplingRate} {format} />
</div>
{#if artwork}
<div class="artwork-thumb">
<img src={artwork} alt={trackTitle} />
<div class="artwork-wrap">
<div class="artwork-thumb">
<img src={artwork} alt={trackTitle} />
</div>
</div>
{/if}
</div>
@@ -470,7 +472,11 @@
bottom: 24px;
z-index: 10;
display: flex;
align-items: center;
/* Stretch so the artwork thumb matches the height of the track-meta
column (title + album + artist + quality badge). The artwork's
intrinsic dimensions are no longer fixed — it scales to fill the
column height with a 1px top/bottom margin (~98% of the column). */
align-items: stretch;
gap: 12px;
}
@@ -511,13 +517,23 @@
text-overflow: ellipsis;
}
/* Stretches to match the height of the track-meta column (3 text
lines + quality badge), giving the inner .artwork-thumb a parent
against which to size as a percentage. flex-shrink: 0 prevents
the wrapper from collapsing if the row runs out of horizontal
room. */
.artwork-wrap {
display: flex;
align-items: center;
flex-shrink: 0;
}
.artwork-thumb {
width: 72px;
height: 72px;
height: 98%;
aspect-ratio: 1;
border-radius: 6px;
overflow: hidden;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
flex-shrink: 0;
}
.artwork-thumb img {
@@ -542,10 +558,5 @@
right: 16px;
bottom: 16px;
}
.artwork-thumb {
width: 56px;
height: 56px;
}
}
</style>