<!doctype html>
<html lang="zh-cmn-Hans" id="htmlRoot" class>
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/logo.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%= title %></title>
  </head>
  <body>
    <div id="app">
      <script>
        const designSetting = JSON.parse(
          window.localStorage.getItem('DESIGN-SETTING'),
        )

        ;(() => {
          let htmlRoot = document.getElementById('htmlRoot')
          let darkMode = designSetting.darkMode
          if (htmlRoot && darkMode) {
            htmlRoot.setAttribute('data-theme', darkMode)
            darkMode = htmlRoot = null
          } else {
            htmlRoot.setAttribute('data-theme', 'light')
          }

          // 设置主题色变量
          document.documentElement.style.setProperty(
            '--app-theme-color',
            designSetting.appTheme,
          )
        })()
      </script>
      <style>
        body {
          margin: 0;
        }
        html[data-theme='dark'] .first-loading-wrap {
          background-color: #101014;
        }
        .first-loading-wrap {
          display: flex;
          width: 100%;
          height: 100vh;
          justify-content: center;
          align-items: center;
          flex-direction: column;
        }
        .first-loading-wrap > h1 {
          font-size: 28px;
        }
        .first-loading-wrap .loading-wrap {
          padding: 98px;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        .dot {
          animation: antRotate 1.2s infinite linear;
          transform: rotate(45deg);
          position: relative;
          display: inline-block;
          font-size: 12px;
          width: 30px;
          height: 30px;
          box-sizing: border-box;
        }
        .dot i {
          width: 14px;
          height: 14px;
          position: absolute;
          display: block;
          background: var(--app-theme-color);
          border-radius: 100%;
          transform: scale(0.75);
          transform-origin: 50% 50%;
          opacity: 0.3;
          animation: antSpinMove 1s infinite linear alternate;
        }
        .dot i:nth-child(1) {
          top: 0;
          left: 0;
        }
        .dot i:nth-child(2) {
          top: 0;
          right: 0;
          -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
        }
        .dot i:nth-child(3) {
          right: 0;
          bottom: 0;
          -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
        }
        .dot i:nth-child(4) {
          bottom: 0;
          left: 0;
          -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
        }
        @keyframes antRotate {
          to {
            -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
          }
        }
        @-webkit-keyframes antRotate {
          to {
            -webkit-transform: rotate(405deg);
            transform: rotate(405deg);
          }
        }
        @keyframes antSpinMove {
          to {
            opacity: 1;
          }
        }
        @-webkit-keyframes antSpinMove {
          to {
            opacity: 1;
          }
        }
      </style>
      <div class="first-loading-wrap">
        <div class="loading-wrap">
          <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
        </div>
      </div>
    </div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>