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