From a92f2c0121c51fb409c67e7ee729c47ddfec4884 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 1 Jun 2026 19:57:05 -0400 Subject: [PATCH] feat(web): radial gradient + playlist title overlay + tile-size hierarchy Second wave of Home visual polish (UI tasks 80/82/84): - Shell main background gets a 1200x600 radial gradient at the top using color-mix on fs-iron so the page reads with subtle depth instead of as a flat slab. - PlaylistCard moves the title onto the cover with a bottom-to-top gradient overlay. The server-generated 2x2 collage becomes mood texture; the Fraunces playlist name becomes the dominant element. Track count and refresh label stay below the art. Mirror albums shadow-sm/shadow-lg/ring-accent hover treatment on the art-wrap. - Tile-size hierarchy: Playlists w-52, Recently added w-44, Rediscover w-40. Visual weight tapers as you scroll down the page so the freshest content reads as most important. --- web/src/lib/components/PlaylistCard.svelte | 24 ++++++++++++++++++++-- web/src/lib/components/Shell.svelte | 11 +++++++++- web/src/routes/+page.svelte | 8 ++++++-- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/web/src/lib/components/PlaylistCard.svelte b/web/src/lib/components/PlaylistCard.svelte index 88c01056..40948f51 100644 --- a/web/src/lib/components/PlaylistCard.svelte +++ b/web/src/lib/components/PlaylistCard.svelte @@ -149,7 +149,11 @@ href={`/playlists/${playlist.id}`} class="group flex w-full flex-col items-start gap-2 rounded-md p-2 text-left hover:bg-surface-hover" > -
+
{#if playlist.cover_url} No tracks yet
{/if} + +
+ +
+
{playlist.name}
+
-
{playlist.name}
{playlist.track_count} {playlist.track_count === 1 ? 'track' : 'tracks'} {#if !isOwn} diff --git a/web/src/lib/components/Shell.svelte b/web/src/lib/components/Shell.svelte index c3de4804..747da9c6 100644 --- a/web/src/lib/components/Shell.svelte +++ b/web/src/lib/components/Shell.svelte @@ -135,7 +135,16 @@
-
+ +
{@render children?.()}
diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index a6e0d6a7..9654760f 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -142,7 +142,9 @@ ariaLabel="Playlists" > {#snippet item(rowItem: PlaylistRowItem)} -
+ +
{#if rowItem.kind === 'real'} {:else} @@ -195,7 +197,9 @@ ariaLabel="Rediscover albums" > {#snippet item(album: import('$lib/api/types').AlbumRef)} -
+ +
{/snippet} {/if}