{#each rows as t (t.id)}
- {@const heat = (t.listeners || 0) / peak}
-
+
{t.track_no ?? "·"}
{t.title}
{#if hasCount}
-
-
- {fmtCount(t.listeners)}
-
+
+
+ {fmtCountFull(t.listeners)}
{/if}
{fmtDur(t.duration_secs)}
@@ -1009,37 +1014,44 @@
overflow: hidden;
text-overflow: ellipsis;
}
+ /* Listener weight, the app-wide design: the search page's pill — a visible
+ track, a solid accent fill scaled by the shared curve, the number
+ standing centred on top (src/lib/listenerBars.js). Length is the ONLY
+ encoding: the old heat wash here drove colour AND alpha from the count
+ (--t on the row), which made every page's bars read as a different
+ design — retired for the one pill (Kyle, 2026-08-30). Keep these rules
+ in step with .lbar in CatalogSearch.svelte — one dial, four files.
+ align-self centres the 17px pill in the taller grid row. */
.rec .tcount {
position: relative;
- display: flex;
- align-items: center;
- height: 21px;
+ height: 17px;
+ align-self: center;
border-radius: 4px;
overflow: hidden;
- font-size: 12.5px;
- font-variant-numeric: tabular-nums;
+ background: rgba(255, 255, 255, 0.07);
}
- .rec .tcount.empty .tcount-fill {
- background: none;
- }
- .rec .tcount-fill {
- display: flex;
- align-items: center;
- height: 100%;
- min-width: max-content;
- max-width: 100%;
+ .rec .tcount i {
+ position: absolute;
+ inset: 0;
border-radius: 4px;
- background: color-mix(
- in srgb,
- color-mix(in srgb, var(--accent-hover) calc(22% + var(--t) * 78%), var(--text-muted))
- calc(30% + var(--t) * 55%),
- transparent
- );
+ background: var(--accent);
+ transform-origin: left;
+ transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
+ }
+ /* A track Last.fm has no count for gets the dash and no paint at all — a
+ floor-width bar behind an em dash would read as a measured tiny value. */
+ .rec .tcount.empty i {
+ display: none;
}
.rec .tcount-val {
- padding: 0 8px;
- white-space: nowrap;
- color: color-mix(in srgb, #fff calc(45% + var(--t) * 55%), var(--text-muted));
+ position: absolute;
+ inset: 0;
+ display: grid;
+ place-items: center;
+ font-size: 10.5px;
+ font-weight: 800;
+ font-variant-numeric: tabular-nums;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65);
}
.rec .tdur {
text-align: right;