42 lines
2.3 KiB
PHP
42 lines
2.3 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
function h($s)
|
|
{
|
|
return htmlspecialchars((string)$s, ENT_QUOTES);
|
|
}
|
|
|
|
function admin_layout($title, $bodyHtml)
|
|
{
|
|
echo "<!doctype html>\n";
|
|
echo "<html lang=\"de\">\n<head>\n";
|
|
echo "<meta charset=\"utf-8\">\n";
|
|
echo "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
|
|
echo '<title>' . h($title) . "</title>\n";
|
|
echo "<style>
|
|
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:#0b1020;color:#e5e7eb;margin:0}
|
|
.wrap{max-width:1100px;margin:32px auto;padding:0 16px}
|
|
a{color:#60a5fa;text-decoration:none}
|
|
a:hover{text-decoration:underline}
|
|
.top{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:18px}
|
|
.card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:16px;backdrop-filter: blur(12px)}
|
|
.grid{display:grid;grid-template-columns:320px 1fr;gap:16px}
|
|
@media (max-width: 900px){.grid{grid-template-columns:1fr}}
|
|
table{width:100%;border-collapse:collapse}
|
|
th,td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.10);vertical-align:top}
|
|
th{color:#cbd5e1;text-align:left;font-weight:600}
|
|
code,pre,textarea,input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}
|
|
textarea,input{width:100%;box-sizing:border-box;background:rgba(0,0,0,.35);color:#e5e7eb;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px}
|
|
.btn{display:inline-block;background:#2563eb;color:white;border:0;border-radius:10px;padding:10px 12px;cursor:pointer}
|
|
.btn.secondary{background:rgba(255,255,255,.10)}
|
|
.muted{color:#94a3b8}
|
|
.err{color:#fecaca;background:rgba(220,38,38,.12);border:1px solid rgba(220,38,38,.25);padding:10px 12px;border-radius:10px}
|
|
.ok{color:#bbf7d0;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25);padding:10px 12px;border-radius:10px}
|
|
.pill{font-size:12px;background:rgba(255,255,255,.10);padding:4px 8px;border-radius:999px}
|
|
</style>\n";
|
|
echo "</head>\n<body>\n";
|
|
echo "<div class=\"wrap\">\n";
|
|
echo $bodyHtml;
|
|
echo "</div>\n</body>\n</html>";
|
|
}
|