actual layout improvements

This commit is contained in:
2026-02-10 03:29:17 -08:00
parent 197b9267c4
commit f47f6e6cd8
4 changed files with 26 additions and 35 deletions

View File

@@ -1,14 +1,14 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head>
<head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head% %sveltekit.head%
</head> </head>
<body
data-sveltekit-preload-data="hover" <body data-sveltekit-preload-data="hover" class="flex min-h-screen flex-col items-center gap-8">
class="flex min-h-screen flex-col items-center gap-8 p-4 max-sm:px-2"
>
<div style="display: contents">%sveltekit.body%</div> <div style="display: contents">%sveltekit.body%</div>
</body> </body>
</html> </html>

View File

@@ -11,9 +11,7 @@
let open = $state(false); let open = $state(false);
</script> </script>
<div <div class="z-50 border-t bg-background/95 backdrop-blur shadow-2xl">
class="fixed bottom-0 left-0 right-0 z-50 border-t bg-background/95 backdrop-blur shadow-2xl safe-area-pb"
>
<div class="px-4 py-2 flex items-center justify-between gap-4 h-16"> <div class="px-4 py-2 flex items-center justify-between gap-4 h-16">
<!-- Mini Player Info --> <!-- Mini Player Info -->
<button <button
@@ -32,9 +30,7 @@
<div class="text-sm font-medium truncate leading-tight"> <div class="text-sm font-medium truncate leading-tight">
{player.currentTrack?.title || "Unknown Title"} {player.currentTrack?.title || "Unknown Title"}
</div> </div>
<div <div class="text-xs text-muted-foreground truncate leading-tight">
class="text-xs text-muted-foreground truncate leading-tight"
>
{player.currentTrack?.artist || "Unknown Artist"} {player.currentTrack?.artist || "Unknown Artist"}
</div> </div>
</div> </div>
@@ -63,9 +59,7 @@
<div class="mx-auto w-full max-w-sm flex-1 flex flex-col p-4 gap-6"> <div class="mx-auto w-full max-w-sm flex-1 flex flex-col p-4 gap-6">
<!-- Header --> <!-- Header -->
<div class="flex justify-center pt-2"> <div class="flex justify-center pt-2">
<div <div class="h-1.5 w-12 rounded-full bg-muted-foreground/20"></div>
class="h-1.5 w-12 rounded-full bg-muted-foreground/20"
></div>
</div> </div>
<!-- Expanded Art --> <!-- Expanded Art -->
@@ -81,14 +75,11 @@
<h2 class="text-xl font-bold leading-tight line-clamp-2"> <h2 class="text-xl font-bold leading-tight line-clamp-2">
{player.currentTrack?.title} {player.currentTrack?.title}
</h2> </h2>
<p <p class="text-muted-foreground font-medium text-lg line-clamp-1">
class="text-muted-foreground font-medium text-lg line-clamp-1"
>
{player.currentTrack?.artist} {player.currentTrack?.artist}
</p> </p>
<p class="text-xs text-muted-foreground/80 mt-1"> <p class="text-xs text-muted-foreground/80 mt-1">
{player.currentTrack?.album || {player.currentTrack?.album || player.currentTrack?.animeName}
player.currentTrack?.animeName}
</p> </p>
</div> </div>

View File

@@ -89,7 +89,7 @@
></audio> ></audio>
<div class="contents"> <div class="contents">
<div class="lg:hidden"> <div class="lg:hidden w-full sticky bottom-0">
<PlayerMobile /> <PlayerMobile />
</div> </div>
<div class="hidden lg:block h-full"> <div class="hidden lg:block h-full">

View File

@@ -38,20 +38,20 @@
</div> </div>
</header> </header>
<main class="flex flex-col items-center]"> <main class="flex flex-col p-4 max-sm:px-2">
{@render children()} {@render children()}
</main> </main>
<!-- Desktop sidebar column (in normal flow) --> <!-- Desktop sidebar column (in normal flow) -->
<!-- PlayerRoot uses contents to inject its children into this grid --> <!-- PlayerRoot uses contents to inject its children into this grid -->
<ClientOnly showFallback={false}> </div>
<ClientOnly showFallback={false}>
{#snippet children()} {#snippet children()}
<div class="contents"> <div class="contents">
<PlayerRoot /> <PlayerRoot />
</div> </div>
{/snippet} {/snippet}
</ClientOnly> </ClientOnly>
</div>
<!-- Mobile player UI is rendered via a portal from the single GlobalPlayer instance <!-- Mobile player UI is rendered via a portal from the single GlobalPlayer instance
mounted in the desktop sidebar column above. --> mounted in the desktop sidebar column above. -->