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