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:
@@ -1,27 +1,37 @@
|
||||
<div class="bg-base-100 shadow-xl border border-base-300 rounded-box mt-1 max-h-64 overflow-y-auto">
|
||||
<div class="card bg-base-100 shadow-xl border border-base-300 mt-1 max-h-72 overflow-y-auto">
|
||||
{#if artists.isEmpty()}
|
||||
<div class="p-3 text-sm text-base-content/60">No artists found</div>
|
||||
<div class="p-4 text-sm text-base-content/50 text-center">No artists found</div>
|
||||
{#else}
|
||||
{#for artist in artists}
|
||||
<div class="flex items-center justify-between p-3 hover:bg-base-200 border-b border-base-200 last:border-b-0">
|
||||
<div class="flex-1 min-w-0">
|
||||
<span class="font-medium">{artist.name}</span>
|
||||
<div class="flex items-center justify-between p-3 hover:bg-primary/10 transition-colors border-b border-base-200 last:border-b-0">
|
||||
<div class="flex-1 min-w-0 mr-2">
|
||||
<div class="flex items-center gap-2">
|
||||
<span class="font-semibold text-sm">{artist.name}</span>
|
||||
{#if artist.type}
|
||||
<span class="badge badge-ghost badge-xs">{artist.type}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{#if artist.disambiguation}
|
||||
<span class="text-sm text-base-content/60">— {artist.disambiguation}</span>
|
||||
<div class="text-xs text-base-content/50 truncate">{artist.disambiguation}</div>
|
||||
{/if}
|
||||
{#if artist.area}
|
||||
<div class="text-xs text-base-content/40">{artist.area}</div>
|
||||
{/if}
|
||||
<br>
|
||||
<span class="text-xs text-base-content/40">{artist.area}</span>
|
||||
</div>
|
||||
<div class="ml-2 flex-shrink-0">
|
||||
<div class="flex-shrink-0">
|
||||
{#if artist.alreadyTracked}
|
||||
<span class="badge badge-success badge-sm">✓ Added</span>
|
||||
<span class="badge badge-success badge-sm gap-1">
|
||||
<svg class="w-3 h-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"/></svg>
|
||||
Added
|
||||
</span>
|
||||
{#else}
|
||||
<button class="btn btn-primary btn-xs"
|
||||
hx-post="/api/artists/{artist.mbid}/track"
|
||||
hx-target="#search-results"
|
||||
hx-swap="innerHTML"
|
||||
onclick="document.getElementById('search-input').value=''">
|
||||
+ Add
|
||||
<svg class="w-3 h-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
||||
Add
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user