style: enhance layout and typography for Browse, Favorites, and Settings pages

This commit is contained in:
2025-07-03 16:01:06 +00:00
committed by GitHub
parent 7b622cb1ec
commit 54a268f485
3 changed files with 38 additions and 21 deletions

View File

@@ -91,13 +91,18 @@ export default function BrowsePage() {
} }
return ( return (
<div className="h-full px-4 py-6 lg:px-8"> <div className="container mx-auto p-6 pb-24 max-w-none">
<> <div className="space-y-6">
<Tabs defaultValue="music" className="h-full flex flex-col space-y-6"> <div className="text-left">
<TabsContent value="music" className="border-none p-0 outline-hidden flex flex-col grow"> <h1 className="text-3xl font-semibold tracking-tight">Browse</h1>
<p className="text-muted-foreground">Explore your complete music library</p>
</div>
<div className="flex items-center justify-between"> <Tabs defaultValue="music" className="h-full flex flex-col space-y-6">
<div className="space-y-1"> <TabsContent value="music" className="border-none p-0 outline-hidden flex flex-col grow">
<div className="flex items-center justify-between">
<div className="space-y-1">
<p className="text-2xl font-semibold tracking-tight"> <p className="text-2xl font-semibold tracking-tight">
Artists Artists
</p> </p>
@@ -178,7 +183,7 @@ export default function BrowsePage() {
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
</> </div>
</div> </div>
); );
} }

View File

@@ -118,16 +118,24 @@ const FavoritesPage = () => {
if (!isConnected) { if (!isConnected) {
return ( return (
<div className="container mx-auto p-6"> <div className="container mx-auto p-6 pb-24 max-w-none">
<div className="text-center"> <div className="space-y-6">
<p className="text-muted-foreground">Please connect to your Navidrome server to view favorites.</p> <div className="text-left">
<h1 className="text-3xl font-semibold tracking-tight">Favorites</h1>
<p className="text-muted-foreground">Please connect to your Navidrome server to view favorites.</p>
</div>
</div> </div>
</div> </div>
); );
} }
return ( return (
<div className="container mx-auto p-6 pb-24"> <div className="container mx-auto p-6 pb-24 max-w-none">
<div className="space-y-6">
<div className="text-left">
<h1 className="text-3xl font-semibold tracking-tight">Favorites</h1>
<p className="text-muted-foreground">Your starred albums, songs, and artists</p>
</div>
<div className="space-y-6"> <div className="space-y-6">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<div> <div>
@@ -257,6 +265,7 @@ const FavoritesPage = () => {
)} )}
</TabsContent> </TabsContent>
</Tabs> </Tabs>
</div>
</div> </div>
</div> </div>
); );

View File

@@ -303,9 +303,9 @@ const SettingsPage = () => {
}; };
return ( return (
<div className="container mx-auto p-6 pb-24 max-w-2xl"> <div className="container mx-auto p-6 pb-24 max-w-none">
{!isClient ? ( {!isClient ? (
<div className="space-y-6"> <div className="space-y-6 max-w-2xl mx-auto">
<div> <div>
<h1 className="text-3xl font-semibold tracking-tight">Settings</h1> <h1 className="text-3xl font-semibold tracking-tight">Settings</h1>
<p className="text-muted-foreground">Loading...</p> <p className="text-muted-foreground">Loading...</p>
@@ -313,13 +313,15 @@ const SettingsPage = () => {
</div> </div>
) : ( ) : (
<div className="space-y-6"> <div className="space-y-6">
<div> <div className="text-left">
<h1 className="text-3xl font-semibold tracking-tight">Settings</h1> <h1 className="text-3xl font-semibold tracking-tight">Settings</h1>
<p className="text-muted-foreground">Customize your music experience</p> <p className="text-muted-foreground">Customize your music experience</p>
</div> </div>
<div className="columns-1 md:columns-2 xl:columns-3 gap-6 space-y-0">
{!hasEnvConfig && ( {!hasEnvConfig && (
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-2"> <CardTitle className="flex items-center gap-2">
<FaServer className="w-5 h-5" /> <FaServer className="w-5 h-5" />
@@ -408,7 +410,7 @@ const SettingsPage = () => {
)} )}
{hasEnvConfig && ( {hasEnvConfig && (
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-2"> <CardTitle className="flex items-center gap-2">
<FaServer className="w-5 h-5" /> <FaServer className="w-5 h-5" />
@@ -435,7 +437,7 @@ const SettingsPage = () => {
</Card> </Card>
)} )}
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-2"> <CardTitle className="flex items-center gap-2">
<FaLastfm className="w-5 h-5" /> <FaLastfm className="w-5 h-5" />
@@ -513,7 +515,7 @@ const SettingsPage = () => {
</CardContent> </CardContent>
</Card> */} </Card> */}
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-2"> <CardTitle className="flex items-center gap-2">
<Settings className="w-5 h-5" /> <Settings className="w-5 h-5" />
@@ -548,7 +550,7 @@ const SettingsPage = () => {
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-2"> <CardTitle className="flex items-center gap-2">
<FaLastfm className="w-5 h-5" /> <FaLastfm className="w-5 h-5" />
@@ -643,7 +645,7 @@ const SettingsPage = () => {
</CardContent> </CardContent>
</Card> </Card>
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle>Appearance</CardTitle> <CardTitle>Appearance</CardTitle>
<CardDescription> <CardDescription>
@@ -692,7 +694,7 @@ const SettingsPage = () => {
</Card> </Card>
{/* Theme Preview */} {/* Theme Preview */}
<Card> <Card className="break-inside-avoid mb-6">
<CardHeader> <CardHeader>
<CardTitle>Preview</CardTitle> <CardTitle>Preview</CardTitle>
<CardDescription> <CardDescription>
@@ -721,6 +723,7 @@ const SettingsPage = () => {
</CardContent> </CardContent>
</Card> </Card>
</div> </div>
</div>
)} )}
</div> </div>
); );