mirror of
https://github.com/ALLFATHER-BV/wadamesh.git
synced 2026-11-11 13:27:36 +00:00
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>
48 lines
2.2 KiB
HTML
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>
|