Skemaet alle sider på ask-service.dk skal bygges efter. Kopiér HTML’en herunder i stedet for at finde på ny styling.
/site.css og skriver ikke egne farver,
afstande eller skriftstørrelser. Skal en side have noget helt særligt, lægges det i en lille
<style>-blok på siden — men brug altid variablerne, fx var(--accent).
Sådan starter enhver ny side. Topbar øverst, indhold i .page, footer nederst.
<!doctype html>
<html lang="da">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Sidens navn – ask-service.dk</title>
<link rel="stylesheet" href="/site.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
</head>
<body>
<div class="topbar"> ... </div>
<div class="page">
<div class="page-header">
<h1>Overskrift</h1>
<p class="lead">Kort forklaring.</p>
</div>
... indhold ...
</div>
<footer class="site-footer">ask-service.dk</footer>
</body>
</html>
class="has-bg" på <body>
og indlæg <div class="bg-overlay"></div> som første element. Indholdssider med tabeller
skal ikke have billede — det gør dem svære at læse.
Brug altid variabelnavnet, aldrig hex-koden direkte.
Brødtekst i normal størrelse. Her er et link, noget kode og lidt monospace.
Dæmpet hjælpetekst med class="muted small".
<h1>Sidens titel</h1>
<h2>Sektion</h2>
<p class="muted small">Dæmpet hjælpetekst</p>
<code>kode</code> <span class="mono">monospace</span>Samme topbar på alle sider — det er den der binder dem sammen. Ikon + titel til venstre, badges til højre. Forside-badgen skal altid være yderst til højre.
<div class="topbar">
<div class="topbar-left">
<div class="topbar-icon">▶️</div>
<div>
<div class="topbar-title">Semaphore</div>
<div class="topbar-sub">Ansible UI – ask-service.dk</div>
</div>
</div>
<div class="topbar-right">
<span class="badge badge-lan">🔒 LAN only</span>
<a href="/" class="badge badge-home">← Forside</a>
</div>
</div>Små mærkater til status og navigation. Kan være <span> eller <a>.
<a href="/" class="badge badge-home">← Forside</a>
<a href="#" class="badge badge-link">Andet link</a>
<span class="badge badge-lan">🔒 LAN only</span>
<span class="badge badge-readonly">🔓 Læs kun fra WAN</span>
<span class="badge badge-ok">● Kører</span>
<span class="badge badge-warn">● Advarsel</span>
<span class="badge badge-err">● Nede</span>
<span class="badge badge-info">📝 Info</span>
<span class="badge badge-neutral">Slukket</span>Til tabeller og lister hvor en badge fylder for meget.
<span class="dot dot-ok"></span>Kører
<span class="dot dot-warn"></span>Advarsel
<span class="dot dot-err"></span>Nede
<span class="dot dot-off"></span>SlukketBruges til forsidens gitter af genveje. På sider med baggrundsbillede bliver de automatisk til glas.
<div class="card-grid">
<a href="/filer" class="card">
<div class="card-icon">📁</div>
<div class="card-title">Filer</div>
<div class="card-desc">Kort forklaring.</div>
<div class="card-arrow">Åbn →</div>
</a>
</div>Til at gruppere indhold i sektioner. Den farvede venstrekant angiver hvad sektionen handler om.
Blå kant — almindeligt indhold.
Grøn kant — alt kører som det skal.
Gul kant — noget kræver opmærksomhed.
Rød kant — noget er nede eller virker ikke.
<div class="panel">...</div>
<div class="panel panel-ok">...</div>
<div class="panel panel-warn">...</div>
<div class="panel panel-err">...</div>
<div class="panel panel-info">...</div>Pak altid tabellen i .table-wrap — så kan den scrolles vandret på mobil i stedet for at sprænge siden.
| Node | IP | PVE | Status |
|---|---|---|---|
| pve1 | 192.168.1.2 | 9.2.9 | Kører |
| pve2 | 192.168.1.5 | 9.2.9 | Kører |
| pve-ibm | 192.168.1.223 | – | Slukket |
<div class="table-wrap">
<table class="table">
<thead>
<tr><th>Node</th><th>IP</th><th>Status</th></tr>
</thead>
<tbody>
<tr>
<td><strong>pve1</strong></td>
<td class="mono">192.168.1.2</td>
<td class="nowrap"><span class="dot dot-ok"></span>Kører</td>
</tr>
</tbody>
</table>
</div>Til korte tal øverst på en side — antal VMs, diskforbrug, oppetid.
<div class="stat-grid">
<div class="stat">
<div class="stat-label">Noder</div>
<div class="stat-value">3</div>
</div>
<div class="stat">
<div class="stat-label">Disk pve1</div>
<div class="stat-value ok">61%</div>
</div>
</div>
<!-- .stat-value kan have .ok / .warn / .err -->Til at fremhæve noget vigtigt i løbende tekst.
<div class="note note-info"><strong>Info:</strong> ...</div>
<div class="note note-ok"><strong>OK:</strong> ...</div>
<div class="note note-warn"><strong>Bemærk:</strong> ...</div>
<div class="note note-err"><strong>Fejl:</strong> ...</div><a href="#" class="btn">Primær knap</a>
<a href="#" class="btn btn-ghost">Sekundær knap</a>Et centreret kort midt på skærmen — til „kun LAN“, „skrivebeskyttet“, 404 og
lignende. Siden har ingen topbar; kortet står alene. Brugt af /lan-only.html og
/readonly.html.
Denne tjeneste er kun tilgængelig fra det lokale netværk.
<body>
<div class="msg-wrap">
<div class="msg-card">
<div class="msg-icon">🔒</div>
<span class="badge badge-lan">⚠️ Begrænset adgang</span>
<h1>Kun intern adgang</h1>
<p>Kort forklaring til brugeren.</p>
<div class="msg-box">
<strong>Detaljer</strong><br>
Fx hvor tjenesten så kan nås.
</div>
<div class="msg-links">
<a href="https://ask-service.dk" class="badge badge-home">← Tilbage til forsiden</a>
</div>
</div>
</div>
</body>/site.css — og kun den<div class="page">.table-wrapvar(--accent) osv.<footer class="site-footer">