Split web root into desktop and mobile

This commit is contained in:
2026-02-02 23:59:30 +01:00
parent 4c15f0685c
commit c685c27eac
22 changed files with 1444 additions and 9 deletions

View File

@@ -0,0 +1,12 @@
<div class="footer-row">
<div>
<div class="panel-title">FOOTER</div>
<div class="muted">menue-foot.php</div>
</div>
<div class="footer-actions">
<a class="chip" href="#">Imprint</a>
<a class="chip" href="#">Privacy</a>
<a class="chip" href="#">Status</a>
</div>
</div>

View File

@@ -0,0 +1,10 @@
<?php
// Erwartet: $errorMessage
?>
<div class="alert alert-pro">
<span class="alert-led" aria-hidden="true"></span>
<div class="alert-body">
<div class="alert-title">SYSTEM WARNING</div>
<div class="alert-text"><?= htmlspecialchars($errorMessage) ?></div>
</div>
</div>

View File

@@ -0,0 +1,36 @@
<?php
// erwartet: $section, $sub, $planet
function menu_link($key, $label, $icon, $planet, $section){
$href = "index.php?s=" . urlencode($key) . "&planet=" . urlencode($planet);
$active = ($section === $key) ? 'is-active' : '';
echo '<li><a class="'.$active.'" href="'.htmlspecialchars($href).'"><span class="mi">'.$icon.'</span><span>'.$label.'</span></a></li>';
}
?>
<nav aria-label="Hauptmenü">
<div class="panel-title">HAUPTMENÜ</div>
<div class="muted">Nur Hauptbegriffe</div>
<ul class="navlist navlist-main">
<?php
menu_link('overview', 'Übersicht', '🧭', $planet, $section);
menu_link('build', 'Baumenü', '🏗️', $planet, $section);
menu_link('research', 'Forschung', '🧪', $planet, $section);
menu_link('shipyard', 'Werft', '🛠️', $planet, $section);
menu_link('fleet', 'Flotte', '🚀', $planet, $section);
menu_link('galaxy', 'Galaxie', '🌌', $planet, $section);
menu_link('reports', 'Berichte', '📑', $planet, $section);
menu_link('messages', 'Nachrichten', '✉️', $planet, $section);
menu_link('stargate', 'Sternentor', '🌀', $planet, $section);
menu_link('pod', 'Pod Launcher', '🎯', $planet, $section);
menu_link('trade', 'Handel', '💱', $planet, $section);
menu_link('blackmarket', 'Schwarzmarkt', '🕶️', $planet, $section);
menu_link('bank', 'Bank', '🏦', $planet, $section);
menu_link('terraformer', 'Terraformer', '🪐', $planet, $section);
menu_link('settings', 'Einstellungen', '⚙️', $planet, $section);
?>
</ul>
<div class="divider"></div>
<a class="btn w-full" href="index.php?s=<?= urlencode($section) ?>&p=<?= urlencode($sub ?? '') ?>&planet=<?= urlencode($planet) ?>&toast=ok">Demo: Success</a>
<a class="btn w-full" style="margin-top:10px" href="index.php?s=<?= urlencode($section) ?>&p=<?= urlencode($sub ?? '') ?>&planet=<?= urlencode($planet) ?>&toast=err">Demo: Warning</a>
</nav>

View File

@@ -0,0 +1,35 @@
<?php
// Planetenliste (unteres Menü links)
$planets = [
['id'=>'earth', 'name'=>'Earth Prime', 'hint'=>'L1'],
['id'=>'mars', 'name'=>'Mars Outpost', 'hint'=>'L2'],
['id'=>'io', 'name'=>'Io Refinery', 'hint'=>'L3'],
['id'=>'vega', 'name'=>'Vega Station', 'hint'=>'L4'],
];
?>
<nav aria-label="Planetenliste">
<div class="panel-title">KOLONIEN</div>
<div class="muted">Schnellwechsel (Planeten)</div>
<ul class="planetlist">
<?php foreach($planets as $p): ?>
<?php
$active = ($p['id'] === $planet);
$href = "index.php?s=" . urlencode($section) . "&p=" . urlencode($sub ?? '') . "&planet=" . urlencode($p['id']);
?>
<li>
<a class="<?= $active ? 'is-active' : '' ?>" href="<?= htmlspecialchars($href) ?>">
<span class="pl-dot <?= $active ? 'on' : '' ?>"></span>
<span class="pl-name"><?= htmlspecialchars($p['name']) ?></span>
<span class="navhint"><?= htmlspecialchars($p['hint']) ?></span>
</a>
</li>
<?php endforeach; ?>
</ul>
<div class="divider"></div>
<div class="muted" style="display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap;">
<span>Aktiv: <strong><?= htmlspecialchars($planet) ?></strong></span>
<span class="tiny">Tip: Shortcuts later</span>
</div>
</nav>

View File

@@ -0,0 +1,29 @@
<div class="resource-row">
<div>
<div class="panel-title">RESOURCES</div>
<div class="muted">sticky bar</div>
</div>
<div class="stats">
<div class="stat">
<div class="stat-k">Metall</div>
<div class="stat-v"><span class="dot dot-cyan"></span> 12.340</div>
<div class="stat-bar"><span style="width:72%"></span></div>
</div>
<div class="stat">
<div class="stat-k">Kristall</div>
<div class="stat-v"><span class="dot dot-pink"></span> 6.120</div>
<div class="stat-bar"><span style="width:44%"></span></div>
</div>
<div class="stat">
<div class="stat-k">Deuterium</div>
<div class="stat-v"><span class="dot dot-green"></span> 3.880</div>
<div class="stat-bar"><span style="width:18%"></span></div>
</div>
<div class="stat">
<div class="stat-k">Energie</div>
<div class="stat-v"><span class="dot dot-warn"></span> +120</div>
<div class="stat-bar"><span style="width:60%"></span></div>
</div>
</div>
</div>

View File

@@ -0,0 +1,100 @@
<?php
// erwartet: $section, $sub, $planet
?>
<h1 class="hud-title"><?= htmlspecialchars($section) ?> / <?= htmlspecialchars($sub) ?></h1>
<p class="muted">Demo-Seite: Hier renderst du später die echten Inhalte pro Bereich.</p>
<?php if ($section === 'overview'): ?>
<div class="grid-2" style="margin-top:14px;">
<section class="card inner panel">
<h2 class="h2">Event Timeline</h2>
<div class="timeline">
<div class="tl-item"><span class="tl-dot tl-cyan"></span> Bau fertig in <strong>00:12:31</strong></div>
<div class="tl-item"><span class="tl-dot tl-pink"></span> Forschung fertig in <strong>01:02:10</strong></div>
<div class="tl-item"><span class="tl-dot tl-green"></span> Flotte ankommend in <strong>00:07:55</strong></div>
</div>
</section>
<section class="card inner panel">
<h2 class="h2">Queues</h2>
<div class="queue">
<div class="q-card">
<div class="q-head"><span class="tag info">BUILD</span><span>Metallmine Stufe 12</span></div>
<div class="q-bar"><span style="width:38%"></span></div>
<div class="q-meta"><span>ETA 00:12:31</span><button class="btn btn-mini" type="button" onclick="toast('info','Queue','Abbrechen (Demo)')">Abbrechen</button></div>
</div>
<div class="q-card">
<div class="q-head"><span class="tag info">RESEARCH</span><span>Antriebstechnik Stufe 5</span></div>
<div class="q-bar"><span style="width:66%"></span></div>
<div class="q-meta"><span>ETA 01:02:10</span><button class="btn btn-mini" type="button" onclick="toast('info','Queue','Priorisieren (Demo)')">Priorisieren</button></div>
</div>
</div>
</section>
</div>
<?php elseif ($section === 'settings' && $sub === 'performance'): ?>
<div class="card inner panel" style="margin-top:14px;">
<h2 class="h2">Performance Profile</h2>
<p class="muted">Speicherung ohne Cookies: sessionStorage (temporär) oder localStorage (merken).</p>
<div class="settings-row">
<div class="settings-block">
<div class="label">Profil</div>
<div class="seg">
<button type="button" class="seg-btn" data-perf="auto">Auto</button>
<button type="button" class="seg-btn" data-perf="low">Low</button>
<button type="button" class="seg-btn" data-perf="medium">Medium</button>
<button type="button" class="seg-btn" data-perf="high">High</button>
</div>
</div>
<div class="settings-block">
<label class="check">
<input id="rememberPerf" type="checkbox">
<span>Merken auf diesem Gerät (localStorage)</span>
</label>
<div class="muted tiny">Wenn aus: nur sessionStorage.</div>
</div>
</div>
<div class="actions">
<button class="btn btn-primary" type="button" onclick="applyPerfFromUI()">Übernehmen</button>
<button class="btn" type="button" onclick="toast('info','Info','Tipp: Low deaktiviert Starfield')">Info</button>
</div>
</div>
<?php elseif ($section === 'settings' && $sub === 'alerts'): ?>
<div class="card inner panel" style="margin-top:14px;">
<h2 class="h2">Alert Pulse</h2>
<p class="muted">Wähle: 3× Puls (Burst) oder dauerhaft (Loop).</p>
<div class="settings-row">
<div class="seg">
<button type="button" class="seg-btn" data-alertpulse="burst">Burst (3×)</button>
<button type="button" class="seg-btn" data-alertpulse="loop">Loop</button>
</div>
<div class="settings-block">
<label class="check">
<input id="rememberPulse" type="checkbox">
<span>Merken auf diesem Gerät (localStorage)</span>
</label>
<div class="muted tiny">Wenn aus: nur sessionStorage.</div>
</div>
</div>
<div class="actions">
<button class="btn btn-primary" type="button" onclick="applyPulseFromUI()">Übernehmen</button>
<a class="btn" href="index.php?s=<?= urlencode($section) ?>&p=<?= urlencode($sub) ?>&planet=<?= urlencode($planet) ?>&toast=err">Demo Warning</a>
</div>
</div>
<?php else: ?>
<div class="card inner panel" style="margin-top:14px;">
<h2 class="h2">Platzhalter</h2>
<p>Hier kommt später die Seite für <strong><?= htmlspecialchars($section) ?></strong> / <strong><?= htmlspecialchars($sub) ?></strong>.</p>
<div class="actions">
<button class="btn btn-primary" type="button" onclick="toast('success','UI','Alles bereit ✅')">Toast testen</button>
</div>
</div>
<?php endif; ?>