Fix CSS variables: use daisyUI classes (bg-base-*, text-base-content/*) which wrap OKLCH values in proper oklch() function

This commit is contained in:
2026-07-03 13:03:59 +02:00
parent 5eb4cd340c
commit 24c5849f05
4 changed files with 43 additions and 48 deletions
@@ -1,17 +1,17 @@
<div id="artist-list" hx-swap-oob="true">
{#if artists.isEmpty()}
<div style="background:#242830;border:1px solid #111316;border-radius:0.5rem;padding:2.5rem;text-align:center">
<svg class="icon-lg" style="margin:0 auto 0.75rem;color:var(--bc);opacity:0.15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<div class="bg-base-100" style="border:1px solid var(--fallback-b3,oklch(var(--b3)/1));border-radius:0.5rem;padding:2.5rem;text-align:center">
<svg class="icon-lg text-base-content/20" style="margin:0 auto 0.75rem" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/>
</svg>
<p style="font-size:1.125rem;font-weight:500;color:var(--bc);opacity:0.6">No artists tracked yet</p>
<p style="font-size:0.875rem;color:var(--bc);opacity:0.4;margin-top:0.25rem">Search for artists using the search bar above</p>
<p class="text-lg font-medium text-base-content/60">No artists tracked yet</p>
<p class="text-sm text-base-content/40 mt-2">Search for artists using the search bar above</p>
</div>
{#else}
<div class="overflow-x-auto rounded-box border border-base-300">
<table class="table table-pin-rows">
<thead>
<tr style="background:#1a1d23">
<tr style="background:var(--fallback-b2,oklch(var(--b2)/1))">
<th>Artist</th>
<th>Since</th>
<th>Release Types</th>
@@ -20,14 +20,14 @@
</thead>
<tbody>
{#for artist in artists}
<tr style="transition:background 0.15s" onmouseover="this.style.background='#242830'" onmouseout="this.style.background=''">
<tr style="transition:background 0.15s" onmouseover="this.style.background='var(--fallback-b2,oklch(var(--b2)/1))'" onmouseout="this.style.background=''">
<td>
<div style="font-weight:500">{artist.name}</div>
{#if artist.disambiguation}
<div style="font-size:0.75rem;color:var(--bc);opacity:0.5">{artist.disambiguation}</div>
<div class="text-xs text-base-content/50">{artist.disambiguation}</div>
{/if}
</td>
<td style="font-size:0.875rem;color:var(--bc);opacity:0.5">{artist.createdAt}</td>
<td class="text-sm text-base-content/50">{artist.createdAt}</td>
<td>
<div style="display:flex;flex-wrap:wrap;gap:0.375rem">
<label class="label cursor-pointer gap-1 p-1">
@@ -60,7 +60,7 @@
hx-patch="/api/artists/{artist.mbid}/monitor?type=broadcast"
hx-target="#artist-list"
hx-swap="innerHTML">
<span class="label-text text-xs" style="color:var(--bc);opacity:0.6">Broadcast</span>
<span class="label-text text-xs text-base-content/60">Broadcast</span>
</label>
<label class="label cursor-pointer gap-1 p-1">
<input type="checkbox" class="checkbox checkbox-xs"
@@ -68,7 +68,7 @@
hx-patch="/api/artists/{artist.mbid}/monitor?type=other"
hx-target="#artist-list"
hx-swap="innerHTML">
<span class="label-text text-xs" style="color:var(--bc);opacity:0.6">Other</span>
<span class="label-text text-xs text-base-content/60">Other</span>
</label>
</div>
</td>
@@ -1,25 +1,23 @@
{#if entries.isEmpty()}
<div style="background:#242830;border:1px solid #111316;border-radius:0.5rem;padding:3rem;text-align:center">
<p style="font-size:1.125rem;color:var(--bc);opacity:0.6">No releases found</p>
<p style="font-size:0.875rem;color:var(--bc);opacity:0.4;margin-top:0.5rem">Add artists to your collection to see their releases here</p>
<div class="card bg-base-100 shadow-xl p-12 text-center">
<p class="text-lg text-base-content/60">No releases found</p>
<p class="text-sm text-base-content/40 mt-2">Add artists to your collection to see their releases here</p>
</div>
{#else}
<div style="display:flex;flex-direction:column;gap:1.5rem">
<div class="flex flex-col gap-6">
{#for entry in entries}
<a href="https://musicbrainz.org/release-group/{entry.mbid}" target="_blank" rel="noopener noreferrer"
style="display:flex;text-decoration:none;background:#242830;border:1px solid #111316;border-radius:0.5rem;overflow:hidden;transition:background 0.15s"
onmouseover="this.style.background='#0d0f12'"
onmouseout="this.style.background='#242830'">
<div style="width:250px;height:250px;flex-shrink:0;overflow:hidden;background:#0d0f12">
class="card card-side bg-base-100 border border-base-300 hover:bg-base-200 transition-colors shadow-sm overflow-hidden">
<figure class="w-64">
<img src="https://coverartarchive.org/release-group/{entry.mbid}/front-250"
alt="{entry.title}" style="width:100%;height:100%;object-fit:cover;display:block"
alt="{entry.title}" class="object-cover w-full h-full"
loading="lazy"
onerror="this.parentElement.innerHTML='<div style=\'display:flex;align-items:center;justify-content:center;height:100%;color:var(--bc);opacity:0.15\'>No Cover</div>'">
</div>
<div style="padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0">
<div style="font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--bc);opacity:0.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">{entry.artistName}</div>
<div style="font-size:1.1rem;font-weight:700;color:var(--bc);line-height:1.35;margin-top:0.15rem">{entry.title}</div>
<div style="display:flex;align-items:center;gap:0.5rem;margin-top:0.5rem;flex-wrap:wrap">
onerror="this.parentElement.innerHTML='<div class=\'flex items-center justify-center h-full text-base-content/20\'>No Cover</div>'">
</figure>
<div class="card-body">
<h3 class="card-title text-sm text-base-content/60 uppercase tracking-wider">{entry.artistName}</h3>
<h2 class="text-lg font-semibold">{entry.title}</h2>
<div class="flex items-center gap-2 mt-2">
{#if entry.primaryType == 'Album'}
<span class="badge badge-primary badge-sm">Album</span>
{#else if entry.primaryType == 'Single'}
@@ -30,7 +28,7 @@
<span class="badge badge-ghost badge-sm">{entry.primaryType}</span>
{/if}
{#if entry.firstReleaseDate}
<span style="font-size:0.8rem;color:var(--bc);opacity:0.45">{entry.firstReleaseDate}</span>
<span class="text-sm text-base-content/40">{entry.firstReleaseDate}</span>
{/if}
</div>
</div>
@@ -1,29 +1,28 @@
<div style="background:#0d0f12;border:1px solid #111316;border-radius:0.5rem;box-shadow:0 8px 24px rgba(0,0,0,0.3);margin-top:0.25rem;max-height:24rem;overflow-y:auto">
<div class="card bg-base-300 shadow-xl border border-base-300 mt-1 max-h-72 overflow-y-auto">
{#if artists.isEmpty()}
<div style="padding:1rem;text-align:center;font-size:0.875rem;color:var(--bc);opacity:0.5">No artists found</div>
<div class="p-4 text-sm text-center text-base-content/50">No artists found</div>
{#else}
{#for artist in artists}
<div style="display:flex;align-items:center;justify-content:space-between;padding:0.75rem 1rem;border-bottom:1px solid #111316;transition:background 0.1s"
onmouseover="this.style.background='#0d0f12'" onmouseout="this.style.background=''">
<div style="flex:1;min-width:0;margin-right:0.5rem">
<div style="display:flex;align-items:center;gap:0.5rem">
<span style="font-weight:600;font-size:0.9rem">{artist.name}</span>
<div class="flex items-center justify-between p-3 hover:bg-base-200 border-b border-base-300 last:border-b-0 transition-colors">
<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}
<div style="font-size:0.8rem;color:var(--bc);opacity:0.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:0.1rem">{artist.disambiguation}</div>
<div class="text-xs text-base-content/50 truncate">{artist.disambiguation}</div>
{/if}
{#if artist.area}
<div style="font-size:0.75rem;color:var(--bc);opacity:0.4;margin-top:0.1rem">{artist.area}</div>
<div class="text-xs text-base-content/40">{artist.area}</div>
{/if}
</div>
<div style="flex-shrink:0">
<div class="flex-shrink-0">
{#if artist.alreadyTracked}
<span class="badge badge-success badge-sm">✓ Added</span>
{#else}
<button class="btn btn-primary btn-sm" style="min-height:0;height:2rem;padding:0 0.75rem"
<button class="btn btn-primary btn-sm"
hx-post="/api/artists/{artist.mbid}/track"
hx-target="#search-results"
hx-swap="innerHTML"
+9 -11
View File
@@ -26,21 +26,17 @@
}
</script>
</head>
<body style="min-height:100vh;background:#1a1d23">
<div style="display:flex;align-items:center;gap:1rem;padding:0.5rem 1rem;background:#0d0f12;box-shadow:0 1px 3px rgba(0,0,0,0.3)">
<div style="display:flex;align-items:center;gap:0.25rem;flex-shrink:0">
<body class="min-h-screen bg-base-200">
<div class="navbar bg-base-300 shadow-lg px-4">
<div class="flex-1">
<div class="tabs tabs-box">
<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 style="flex:1;text-align:center">
<a href="/" style="text-decoration:none;font-size:1.25rem;font-weight:800;color:var(--bc)">DiscDrop</a>
</div>
<div style="display:flex;align-items:center;gap:0.5rem;flex:1;justify-content:flex-end;max-width:50%">
<div id="search-wrapper" style="max-width:420px">
<div class="flex-none gap-2 flex items-center">
<div id="search-wrapper" class="w-72">
<form hx-get="/api/artists/search"
hx-target="#search-results"
hx-swap="innerHTML"
@@ -50,7 +46,8 @@
</form>
<div id="search-results"></div>
</div>
<select class="select select-bordered select-sm" style="width:7rem;flex-shrink:0" onchange="setTheme(this)">
<select class="select select-bordered select-sm w-28" onchange="setTheme(this)">
<option value="dark">Dark</option>
<option value="light">Light</option>
<option value="synthwave">Synthwave</option>
@@ -60,7 +57,8 @@
<option value="dim">Dim</option>
<option value="nord">Nord</option>
</select>
<button class="btn btn-ghost btn-sm px-2" style="flex-shrink:0" onclick="settingsModal.showModal()">⚙️</button>
<button class="btn btn-ghost btn-sm" onclick="settingsModal.showModal()">⚙️</button>
</div>
</div>