Blame view

index.html 3.97 KB
陈文彬 authored
1
<!DOCTYPE html>
Vben authored
2
<html lang="en" id="htmlRoot">
陈文彬 authored
3
4
  <head>
    <meta charset="UTF-8" />
5
6
7
8
9
10
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />
    <meta
      name="viewport"
      content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
    />
vben authored
11
    <title><%= title %></title>
陈文彬 authored
12
    <link rel="icon" href="/favicon.ico" />
13
14
  </head>
  <body>
Vben authored
15
16
17
    <script>
      (() => {
        var htmlRoot = document.getElementById('htmlRoot');
Vben authored
18
19
20
21
22
        var theme = window.localStorage.getItem('__APP__DARK__MODE__');
        if (htmlRoot && theme) {
          htmlRoot.setAttribute('data-theme', theme);
          theme = htmlRoot = null;
        }
Vben authored
23
24
      })();
    </script>
25
26
    <div id="app">
      <style>
Vben authored
27
        html[data-theme='dark'] .app-loading {
28
          background-color: #2c344a;
Vben authored
29
30
31
        }

        html[data-theme='dark'] .app-loading .app-loading-title {
32
          color: rgb(255 255 255 / 85%);
Vben authored
33
34
        }
35
36
37
38
39
40
41
        .app-loading {
          display: flex;
          width: 100%;
          height: 100%;
          justify-content: center;
          align-items: center;
          flex-direction: column;
42
          background-color: #f4f7f9;
43
        }
44
45
46
47
48
49
        .app-loading .app-loading-wrap {
          position: absolute;
          top: 50%;
          left: 50%;
          display: flex;
50
          transform: translate3d(-50%, -50%, 0);
51
52
53
          justify-content: center;
          align-items: center;
          flex-direction: column;
54
55
        }
56
57
58
59
60
        .app-loading .dots {
          display: flex;
          padding: 98px;
          justify-content: center;
          align-items: center;
61
62
        }
63
64
65
66
        .app-loading .app-loading-title {
          display: flex;
          margin-top: 30px;
          font-size: 30px;
67
          color: rgb(0 0 0 / 85%);
68
69
70
          justify-content: center;
          align-items: center;
        }
71
72
73
74
75
76
77
        .app-loading .app-loading-logo {
          display: block;
          width: 90px;
          margin: 0 auto;
          margin-bottom: 20px;
        }
78
79
80
81
82
83
84
85
86
87
88
89
        .dot {
          position: relative;
          display: inline-block;
          width: 48px;
          height: 48px;
          margin-top: 30px;
          font-size: 32px;
          transform: rotate(45deg);
          box-sizing: border-box;
          animation: antRotate 1.2s infinite linear;
        }
vben authored
90
91
92
93
94
95
96
97
        .dot i {
          position: absolute;
          display: block;
          width: 20px;
          height: 20px;
          background-color: #0065cc;
          border-radius: 100%;
98
          opacity: 30%;
99
100
101
102
          transform: scale(0.75);
          animation: antSpinMove 1s infinite linear alternate;
          transform-origin: 50% 50%;
        }
vben authored
103
104
105
106
107
108
109
110
111
        .dot i:nth-child(1) {
          top: 0;
          left: 0;
        }

        .dot i:nth-child(2) {
          top: 0;
          right: 0;
112
          animation-delay: 0.4s;
113
114
115
116
117
        }

        .dot i:nth-child(3) {
          right: 0;
          bottom: 0;
118
          animation-delay: 0.8s;
119
120
121
122
123
        }

        .dot i:nth-child(4) {
          bottom: 0;
          left: 0;
124
          animation-delay: 1.2s;
125
126
127
        }
        @keyframes antRotate {
          to {
128
            transform: rotate(405deg);
129
130
          }
        }
131
        @keyframes antRotate {
132
          to {
133
            transform: rotate(405deg);
134
135
136
137
          }
        }
        @keyframes antSpinMove {
          to {
138
            opacity: 100%;
139
140
          }
        }
141
        @keyframes antSpinMove {
142
          to {
143
            opacity: 100%;
144
145
146
147
148
          }
        }
      </style>
      <div class="app-loading">
        <div class="app-loading-wrap">
vben authored
149
          <img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
150
151
152
          <div class="app-loading-dots">
            <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
          </div>
vben authored
153
          <div class="app-loading-title"><%= title %></div>
154
155
        </div>
      </div>
156
    </div>
陈文彬 authored
157
158
159
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>