index.html raw
1 <!DOCTYPE html>
2 <html lang="en" class="dark">
3 <head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width,initial-scale=1,interactive-widget=resizes-content">
6 <title>smesh</title>
7 <link rel="icon" type="image/x-icon" href="/favicon.ico">
8 <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=3">
9 <link rel="apple-touch-icon" href="/smesh-192.png">
10 <link rel="manifest" href="/manifest.json">
11 <meta name="theme-color" content="#f59e0b">
12 <style>html{background:#000;color:#e0e0e0}#boot-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh}#boot-spinner svg{width:120px;height:120px}#boot-spinner span{margin-top:16px;color:#666;font-size:14px;font-family:'Fira Code',monospace}</style>
13 <link rel="stylesheet" href="/style.css">
14 </head>
15 <body>
16 <div id="app-root"><div id="boot-spinner"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 180 180"><circle cx="90" cy="90" r="70" fill="none" stroke="#7b3fe4" stroke-width="6" stroke-linecap="round" stroke-dasharray="220 220" stroke-dashoffset="0"><animateTransform attributeName="transform" type="rotate" from="0 90 90" to="360 90 90" dur="1s" repeatCount="indefinite"/></circle><circle cx="90" cy="90" r="50" fill="none" stroke="#7b3fe4" stroke-width="4" stroke-linecap="round" stroke-dasharray="157 157" stroke-dashoffset="0" opacity="0.4"><animateTransform attributeName="transform" type="rotate" from="360 90 90" to="0 90 90" dur="1.5s" repeatCount="indefinite"/></circle></svg><span>loading...</span></div></div>
17 <script src="/sw-register.js"></script>
18 <script type="module">
19 var _bs=document.getElementById('boot-spinner');
20 var _bt=setTimeout(function(){if(_bs){var s=_bs.querySelector('span');if(s)s.textContent='slow load - tap to reload';_bs.onclick=function(){location.reload()}}},15000);
21 try{await import('/wasm-host.mjs?v=0.6.36')}catch(e){clearTimeout(_bt);if(_bs){var s=_bs.querySelector('span');if(s)s.textContent='error: '+e.message;_bs.onclick=function(){location.reload()}}}
22 </script>
23 </body>
24 </html>
25