Files
discdrop/src/main/resources/templates/layouts/base.html
T

80 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DiscDrop</title>
<link href="https://cdn.jsdelivr.net/npm/daisyui@4/dist/full.min.css" rel="stylesheet">
<script src="https://unpkg.com/htmx.org@2/dist/htmx.min.js"></script>
<style>
#search-wrapper { position: relative; width: 100%; }
#search-results { position: absolute; top: 100%; left: 0; right: 0; z-index: 50; }
main { max-width: 1100px; margin: 0 auto; padding: 1.5rem 1rem; }
.icon-sm { width: 16px; height: 16px; flex-shrink: 0; }
.icon-xs { width: 12px; height: 12px; flex-shrink: 0; }
.icon-lg { width: 48px; height: 48px; flex-shrink: 0; }
html { overflow-y: scroll; }
html:root { background: var(--fallback-b3, oklch(var(--b3)/1)); }
body { margin: 0; }
.card-shadow { box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.card-shadow:hover { box-shadow: 0 6px 20px rgba(0,0,0,0.25); }
.dropdown-shadow { box-shadow: 0 8px 24px rgba(0,0,0,0.3); }
</style>
<script>
document.addEventListener('DOMContentLoaded', function () {
var saved = localStorage.getItem('daisyui-theme');
if (saved) document.documentElement.setAttribute('data-theme', saved);
});
function setTheme(sel) {
var theme = sel.value;
document.documentElement.setAttribute('data-theme', theme);
localStorage.setItem('daisyui-theme', theme);
}
</script>
</head>
<body class="min-h-screen bg-base-100">
<div class="navbar bg-base-300 shadow-lg" style="min-height:3.5rem;display:flex;align-items:center;justify-content:center;width:100vw">
<div style="display:flex;align-items:center;width:100%;max-width:1100px;padding:0 1rem;gap:2rem">
<a href="/" class="font-bold text-lg text-base-content no-underline" style="flex-shrink:0">DiscDrop</a>
<div style="flex:1;display:flex;justify-content:center">
<div id="search-wrapper" style="width:18rem">
<form hx-get="/api/artists/search"
hx-target="#search-results"
hx-swap="innerHTML"
hx-trigger="keyup changed delay:300ms from:#search-input">
<input id="search-input" type="text" placeholder="Search artists..."
class="input input-bordered input-sm w-full" name="q" autocomplete="off">
</form>
<div id="search-results"></div>
</div>
</div>
<a href="/artists" class="font-medium text-base-content no-underline {#if activeTab == 'artists'}font-bold{/if}" style="flex-shrink:0">Artists</a>
<div style="display:flex;align-items:center;gap:0.5rem;flex-shrink:0;margin-left:1rem">
<select class="select select-bordered select-sm" style="width:7rem" onchange="setTheme(this)">
<option value="dark">Dark</option>
<option value="light">Light</option>
<option value="synthwave">Synthwave</option>
<option value="retro">Retro</option>
<option value="dracula">Dracula</option>
<option value="night">Night</option>
<option value="dim">Dim</option>
<option value="nord">Nord</option>
</select>
<button class="btn btn-ghost btn-sm" onclick="settingsModal.showModal()">⚙️</button>
</div>
</div>
</div>
<main>
{#insert page-content}{/insert}
</main>
<dialog id="settingsModal" class="modal">
<div class="modal-box max-w-md" id="settings-modal-content"
hx-get="/api/settings/form" hx-trigger="load" hx-swap="innerHTML">
<span class="loading loading-spinner"></span>
</div>
</dialog>
</body>
</html>