Homepage (TDD slice 4): the pages, theme, and toggle

Red tests first, then the pages.
- tests/homepage_pages.bats: the pages reference the data + theme; no
  auto-refresh (Q41); no cursor alteration (Q28); the styling toggle strips
  to bare HTML (Q27); the footer shows the last master deployment datetime
  (Q43).
- index.html / admin.html: the user and admin pages. A grid of TUI panels,
  a summary line, the bare toggle, the deployed-at footer.
- app.js: reads status.json + services.json once (no auto-refresh), renders
  one panel per service for the page's category, the toggle, the footer.
- style.css: the terminal TUI theme (green-on-black, phosphor palette,
  scanlines) + a ?bare=1 mode that strips to unstyled HTML. No custom cursor.

Functionally verified with a Node DOM shim: 9 user panels, correct summary,
correct footer datetime.
This commit is contained in:
Frank
2026-08-23 12:26:31 -07:00
parent ce55d1dc3a
commit 01c42202b8
5 changed files with 220 additions and 132 deletions
+23
View File
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>frank — admin</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header class="top">
<span class="title">frank@home:~$ admin</span>
<a id="bare-toggle" class="toggle" href="?bare=1">bare</a>
</header>
<div id="summary" class="summary"></div>
<main id="grid" class="grid"></main>
<footer class="foot">
<span>last master deployment: <span id="deployed-at"></span></span>
<a href="/">home</a>
</footer>
<script src="deployed.js"></script>
<script src="app.js"></script>
</body>
</html>