Vben
2021-04-07 5b8eb4a49a097a47caf491c44df427522ab58daa
提交 | 用户 | age
2f6253 1 <!DOCTYPE html>
5b8eb4 2 <html lang="en" id="htmlRoot">
2f6253 3   <head>
4     <meta charset="UTF-8" />
bb3b8f 5     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
N 6     <meta name="renderer" content="webkit" />
7     <meta
8       name="viewport"
9       content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
10     />
4f9897 11
99ac30 12     <title><%= title %></title>
2f6253 13     <link rel="icon" href="/favicon.ico" />
14   </head>
15   <body>
5b8eb4 16     <script>
V 17       (() => {
18         var htmlRoot = document.getElementById('htmlRoot');
19         const theme = window.localStorage.getItem('__APP__DARK__MODE__');
20         if (!htmlRoot || !theme) return;
21         htmlRoot.setAttribute('data-theme', theme);
22       })();
23     </script>
4811cc 24     <div id="app">
5db3ce 25       <style>
5b8eb4 26         html[data-theme='dark'] .app-loading {
V 27           background: #2c344a;
28         }
29
30         html[data-theme='dark'] .app-loading .app-loading-title {
31           color: rgba(255, 255, 255, 0.85);
32         }
33
5db3ce 34         .app-loading {
V 35           display: flex;
36           width: 100%;
37           height: 100%;
38           justify-content: center;
39           align-items: center;
40           flex-direction: column;
a1c3c5 41           background: #f4f7f9;
5db3ce 42         }
V 43
44         .app-loading .app-loading-wrap {
45           position: absolute;
46           top: 50%;
47           left: 50%;
48           display: flex;
49           -webkit-transform: translate3d(-50%, -50%, 0);
50           transform: translate3d(-50%, -50%, 0);
51           justify-content: center;
52           align-items: center;
53           flex-direction: column;
54         }
55
56         .app-loading .dots {
57           display: flex;
58           padding: 98px;
59           justify-content: center;
60           align-items: center;
61         }
62
63         .app-loading .app-loading-title {
64           display: flex;
65           margin-top: 30px;
66           font-size: 30px;
67           color: rgba(0, 0, 0, 0.85);
68           justify-content: center;
69           align-items: center;
70         }
71
72         .app-loading .app-loading-logo {
73           display: block;
74           width: 90px;
75           margin: 0 auto;
76           margin-bottom: 20px;
77         }
78
79         .dot {
80           position: relative;
81           display: inline-block;
82           width: 48px;
83           height: 48px;
84           margin-top: 30px;
85           font-size: 32px;
86           transform: rotate(45deg);
87           box-sizing: border-box;
88           animation: antRotate 1.2s infinite linear;
89         }
90
91         .dot i {
92           position: absolute;
93           display: block;
94           width: 20px;
95           height: 20px;
96           background-color: #0065cc;
97           border-radius: 100%;
98           opacity: 0.3;
99           transform: scale(0.75);
100           animation: antSpinMove 1s infinite linear alternate;
101           transform-origin: 50% 50%;
102         }
103
104         .dot i:nth-child(1) {
105           top: 0;
106           left: 0;
107         }
108
109         .dot i:nth-child(2) {
110           top: 0;
111           right: 0;
112           -webkit-animation-delay: 0.4s;
113           animation-delay: 0.4s;
114         }
115
116         .dot i:nth-child(3) {
117           right: 0;
118           bottom: 0;
119           -webkit-animation-delay: 0.8s;
120           animation-delay: 0.8s;
121         }
122
123         .dot i:nth-child(4) {
124           bottom: 0;
125           left: 0;
126           -webkit-animation-delay: 1.2s;
127           animation-delay: 1.2s;
128         }
129         @keyframes antRotate {
130           to {
131             -webkit-transform: rotate(405deg);
132             transform: rotate(405deg);
133           }
134         }
135         @-webkit-keyframes antRotate {
136           to {
137             -webkit-transform: rotate(405deg);
138             transform: rotate(405deg);
139           }
140         }
141         @keyframes antSpinMove {
142           to {
143             opacity: 1;
144           }
145         }
146         @-webkit-keyframes antSpinMove {
147           to {
148             opacity: 1;
149           }
150         }
151       </style>
152       <div class="app-loading">
153         <div class="app-loading-wrap">
99ac30 154           <img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
5db3ce 155           <div class="app-loading-dots">
V 156             <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
157           </div>
99ac30 158           <div class="app-loading-title"><%= title %></div>
5db3ce 159         </div>
V 160       </div>
4811cc 161     </div>
2f6253 162     <script type="module" src="/src/main.ts"></script>
163   </body>
164 </html>