<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="initial-scale=0.5, maximum-scale=1">
    <link rel="shortcut icon" href="favicon.ico">
    <title>polkadot{.js}</title>
    <style>
      a { color: #ff8c00 !important; text-decoration: none }
      body { color: #4e4e4e; font-family: "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; height: 100vh; overflow: hidden; padding: 0 }
      canvas#dots { left: 0; position: fixed; top: 0; z-index: 0 }
      h3 { font-weight: 400; margin: 1rem 0; opacity: 0.95; text-transform: lowercase }
      p { margin: 1rem 0 }

      .box { background: rgba(255, 255, 255, 0.85); border-radius: 0.25rem; flex: 1 1; margin: 0.5rem; min-width: 15rem; max-width: 21rem; padding: 0 1.5rem; text-align: center; white-space: nowrap; width: 21rem; z-index: 2 }
      .container { align-items: center; display: flex; flex-direction: column; justify-content: center; height: 100%; }
      .desc { font-size:  0.95rem; opacity: 0.85; white-space: normal }
      .dot { border-radius: 50%; position: absolute; z-index: 0 }
      .header { align-items: center; background: rgba(255, 255, 255, 0.85); display: flex; left: 0; justify-content: space-between; padding: 0.5rem 1rem; position: fixed; right: 0; top: 0; z-index: 1 }
      .header div.logo { display: flex; align-items: center }
      .header img { height: 1.5rem; margin-right: 0.5rem; width: 1.5rem }
      .row { align-items: center; display: flex; justify-content: center }
    </style>
  </head>
  <body>
    <canvas id="dots"></canvas>
    <div class="container">
      <div class="row">
        <div class="box">
          <h3>Apps Wallet (hosted)</h3>
          <p class="desc">A wallet built on the polkadot-js stack. This version is updated alongside any changes to the code and always has the latest features.</p>
          <p><a href="https://polkadot.js.org/apps/">polkadot.js.org/apps</a></p>
        </div>
        <div class="box">
          <h3>Apps Wallet (IPFS)</h3>
          <p class="desc">An IPFS version of the polkadot-js wallet. This version is updated weekly but fits closer with the Web3 vision of decentralization.</p>
          <p><a href="https://dotapps.io/">dotapps.io</a></p>
        </div>
      </div>
      <div class="row">
        <div class="box">
          <h3>Extension</h3>
          <p class="desc">A browser-based vault for management of your account keys. It is meant to be used alongside wallets such as the apps UI.</p>
          <p><a href="https://polkadot.js.org/extension/">polkadot.js.org/extension</a></p>
        </div>
        <div class="box">
          <h3>Phishing</h3>
          <p class="desc">Community driven lists of urls and addresses of dishonest operators. Used ecosystem wide in wallets and extensions.</p>
          <p><a href="https://polkadot.js.org/phishing/">polkadot.js.org/phishing</a></p>
        </div>
      </div>
      <div class="row">
        <div class="box">
          <h3>Documentation</h3>
          <p class="desc">Developer documentation for all (most?) of the libraries under the polkadot-js umbrella. If you want to build, this is where to start.</p>
          <p><a href="https://polkadot.js.org/docs/">polkadot.js.org/docs</a></p>
        </div>
        <div class="box">
          <h3>code</h3>
          <p class="desc">The code for everything we do. API, utilities, crypto, tools, user-facing interfaces and documentation.</p>
          <p><a href="https://github.com/polkadot-js/">github.com/polkadot-js</a></p>
        </div>
      </div>
    </div>
    <div class="header">
      <div class="logo">
        <img src="logo.svg" />
        <div>polkadot{.js}</div>
      </div>
      <a href="https://github.com/polkadot-js/polkadot-js.github.io/edit/master/index.html">edit page on github</a>
    </div>
    <script>
      if (window.self !== window.top) {
        window.top.location.href = window.location.href;
      }

      const canvas = document.getElementById('dots');
      const style = document.createElement('style');

      canvas.height = window.innerHeight * 4;
      canvas.width = window.innerWidth * 4;
      document.head.appendChild(style);

      const context = canvas.getContext('2d');
      let hue = Math.floor(Math.random() * 359);
      let counter = 0;

      function draw () {
        hue = (hue + 1) % 360;
        document.body.style.background = `hsl(${hue}, 45%, 85%)`;
        style.innerHTML = `a { color: hsl(${hue}, 45%, 45%) !important }`;

        if (++counter % 4 === 0) {
          const centerX = window.innerWidth * Math.random();
          const centerY = window.innerHeight * Math.random();
          const radius = (Math.floor(32000 * Math.random()) / 1000) + 8;

          context.beginPath();
          context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
          context.fillStyle = `hsl(${hue}, 45%, 75%)`;
          context.fill();
        }

        setTimeout(() => window.requestAnimationFrame(draw), 25);
      };

      draw();
    </script>
  </body>
</html>