UI polish: centering, search width, dropdown contrast, cover thumbnails, branding, sticky headers

- Constrain main content to max-w-5xl centered
- Widen search input (w-72 md:w-80 lg:w-96)
- Search dropdown: card with shadow, border, and primary-tinted hover
- Branding: SVG music note icon + gradient text + tagline
- Covers: 64px with front-250 thumbnail URL for faster loading
- Badge colors per type (primary/secondary/accent/ghost)
- Sticky table headers via table-pin-rows
- SVG icons for Add/Remove/RSS/OPML buttons
- Consistent hover transitions across tables
This commit is contained in:
2026-07-03 10:58:44 +02:00
parent 0bae5fd288
commit 16f23557f0
6 changed files with 126 additions and 71 deletions
+23 -9
View File
@@ -18,6 +18,9 @@
z-index: 50;
width: 100%;
}
body {
margin: 0;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function () {
@@ -32,19 +35,30 @@
</script>
</head>
<body class="min-h-screen bg-base-200">
<div class="navbar bg-base-100 shadow-lg px-4">
<div class="navbar bg-base-100 shadow-lg px-6">
<div class="navbar-start">
<div class="flex items-center gap-2">
<a href="/" class="text-xl font-bold">🎵 DiscDrop</a>
<div class="tabs tabs-box ml-2 hidden sm:flex">
<a href="/" class="tab {#if activeTab == 'releases'}tab-active{/if}">Releases</a>
<a href="/artists" class="tab {#if activeTab == 'artists'}tab-active{/if}">Artists</a>
<div class="flex items-center gap-3">
<a href="/" class="flex items-center gap-2 no-underline">
<svg class="w-7 h-7 text-primary" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="6" cy="18" r="3"/>
<circle cx="18" cy="16" r="3"/>
<path d="M9 18V5l12-2v13"/>
<path d="M9 9l12-2"/>
</svg>
<div>
<span class="text-xl font-extrabold bg-gradient-to-r from-primary to-accent bg-clip-text text-transparent">DiscDrop</span>
<span class="text-xs text-base-content/50 hidden sm:block leading-none -mt-0.5">Release Groups Feed</span>
</div>
</a>
<div class="tabs tabs-box ml-4 hidden sm:flex">
<a href="/" class="tab tab-sm {#if activeTab == 'releases'}tab-active{/if}">Releases</a>
<a href="/artists" class="tab tab-sm {#if activeTab == 'artists'}tab-active{/if}">Artists</a>
</div>
</div>
</div>
<div class="navbar-center">
<div id="search-wrapper" class="w-48 md:w-64">
<div id="search-wrapper" class="w-72 md:w-80 lg:w-96">
<form hx-get="/api/artists/search"
hx-target="#search-results"
hx-swap="innerHTML"
@@ -63,7 +77,7 @@
<div class="navbar-end gap-2">
<select class="select select-bordered select-sm w-full max-w-[8rem]"
onchange="setTheme(this)">
<option value="dark" selected>Dark</option>
<option value="dark">Dark</option>
<option value="light">Light</option>
<option value="synthwave">Synthwave</option>
<option value="retro">Retro</option>
@@ -78,7 +92,7 @@
</div>
</div>
<main class="container mx-auto p-4">
<main class="max-w-5xl mx-auto px-4 sm:px-6 py-6">
{#insert page-content}{/insert}
</main>