goon/app/templates/base.html
goon-foss ad0284585b Initial commit
Goon — self-hosted aggregator for adult-content scene metadata.

Indexes scenes from TPDB, StashDB, and 30+ public adult tube sites.
Cross-source deduplication via perceptual hash + Levenshtein distance.
FastAPI backend + APScheduler worker + React Native (Expo) mobile client.

FOSS, ad-free, donation-funded. See README for details.
2026-05-20 10:10:22 +02:00

66 lines
2.7 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{% block title %}goon{% endblock %}</title>
<script src="https://unpkg.com/htmx.org@2.0.3" defer></script>
<style>
:root {
--bg: #0e1116;
--fg: #e6edf3;
--muted: #8b949e;
--accent: #58a6ff;
--good: #2ea043;
--bad: #da3633;
--warn: #d29922;
--card: #161b22;
--border: #30363d;
}
* { box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
background: var(--bg); color: var(--fg); margin: 0; }
header { padding: 12px 24px; border-bottom: 1px solid var(--border); display: flex; gap: 16px; align-items: center; }
header h1 { font-size: 18px; margin: 0; }
header nav a { color: var(--muted); text-decoration: none; margin-right: 16px; }
header nav a:hover { color: var(--fg); }
main { max-width: 1200px; margin: 0 auto; padding: 24px; }
.card { background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 16px; margin-bottom: 12px; }
.row { display: flex; gap: 16px; }
.col { flex: 1; min-width: 0; }
.muted { color: var(--muted); font-size: 13px; }
.score { font-weight: 600; }
.score.high { color: var(--good); }
.score.mid { color: var(--warn); }
.score.low { color: var(--bad); }
button { background: var(--card); color: var(--fg); border: 1px solid var(--border); border-radius: 6px;
padding: 8px 14px; cursor: pointer; font-size: 14px; }
button:hover { background: #21262d; }
button.primary { background: var(--good); border-color: var(--good); }
button.danger { background: var(--bad); border-color: var(--bad); }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.pill { display: inline-block; padding: 2px 8px; border-radius: 12px; background: var(--card);
border: 1px solid var(--border); font-size: 12px; margin-right: 4px; }
.stack > * + * { margin-top: 6px; }
h2 { margin-top: 0; font-size: 16px; }
pre { background: #0d1117; padding: 8px; border-radius: 4px; overflow-x: auto; font-size: 12px; }
.toolbar { display: flex; gap: 8px; margin-bottom: 16px; align-items: center; flex-wrap: wrap; }
</style>
</head>
<body>
<header>
<h1>goon</h1>
<nav>
<a href="/ui/">Pending</a>
<a href="/ui/?status=auto_merged">Auto-merged</a>
<a href="/ui/?status=merged">Merged</a>
<a href="/ui/?status=rejected">Rejected</a>
<a href="/docs">API</a>
</nav>
</header>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>