Files
wadamesh/web/shell/index.html
T
Kaj SchittecatandClaude Opus 5.5 b372b91a54 web: Emscripten build of the real UI in a page (web/build.sh web, serve)
pthreads for the UI's background tasks, LVGL + the UI loop on the browser main
thread (emscripten_set_main_loop), IDBFS at /data loaded before main() and
persisted after writes settle and on hide/pagehide; Reboot persists and
reloads. Page shell in the site's Night palette: Demo badge, Connect
placeholder, Reset demo data, Fullscreen; canvas scaled with aspect kept,
crisp at whole device pixels; pointer = finger, keyboard = CardKB codes.
serve.py and nginx-snippet.conf send COOP/COEP; without isolation the page
says so. Release -O2 (wasm brotli 1.14 MB), web-debug variant with -g.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 12:56:00 +02:00

48 lines
2.2 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>wadamesh in your browser</title>
<meta name="description" content="The real wadamesh touch UI, running in your browser on a demo mesh.">
<meta name="theme-color" content="#000400">
<link rel="icon" href="wadamesh-mark.svg" type="image/svg+xml">
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&display=swap" crossorigin="anonymous">
<link rel="stylesheet" href="app.css?v=__WADA_BUILD__">
</head>
<body>
<header class="bar">
<a class="brand" href="https://wadamesh.com/" title="wadamesh.com">
<img src="wadamesh-mark.svg" alt="" width="30" height="20"><span>wadamesh</span>
</a>
<span class="badge" title="A scripted neighbourhood: nothing you send leaves this browser">Demo</span>
<span class="spacer"></span>
<button id="btn-connect" class="btn primary" type="button">Connect</button>
<button id="btn-reset" class="btn" type="button" title="Reset demo data">Reset<span class="wide"> demo data</span></button>
<button id="btn-full" class="btn icon" type="button" aria-label="Fullscreen" title="Fullscreen">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5"/></svg>
</button>
</header>
<main id="stage">
<div id="frame">
<canvas id="screen" width="800" height="480" tabindex="0" aria-label="wadamesh device screen"></canvas>
<div id="overlay" role="status">
<img src="wadamesh-mark.svg" alt="" width="120" height="80">
<p id="status">Loading wadamesh</p>
<p id="detail" class="detail"></p>
</div>
</div>
</main>
<p class="rotate-hint">Turn your phone sideways for a bigger screen.</p>
<p class="hint">Mouse or finger = touch. Your keyboard types into the focused field, Enter sends, Esc goes back.
Everything stays in this browser.</p>
<div id="toast" role="status" aria-live="polite" hidden></div>
<script src="app.js?v=__WADA_BUILD__"></script>
</body>
</html>