|
|
@@ -0,0 +1,113 @@
|
|
|
+<style data-app-loading="inject-css">
|
|
|
+ html {
|
|
|
+ /* same as antdv-next/dist/reset.css setting, avoid the title line-height changed */
|
|
|
+ line-height: 1.15;
|
|
|
+ }
|
|
|
+
|
|
|
+ .loading {
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ z-index: 9999;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ overflow: hidden;
|
|
|
+ background-color: #f4f7f9;
|
|
|
+
|
|
|
+ /* transition: all 0.8s ease-out; */
|
|
|
+ }
|
|
|
+
|
|
|
+ .loading.hidden {
|
|
|
+ pointer-events: none;
|
|
|
+ visibility: hidden;
|
|
|
+ opacity: 0;
|
|
|
+ transition: all 0.8s ease-out;
|
|
|
+ }
|
|
|
+
|
|
|
+ .dark .loading {
|
|
|
+ background: #0d0d10;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title {
|
|
|
+ margin-top: 66px;
|
|
|
+ font-size: 28px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: rgb(0 0 0 / 85%);
|
|
|
+ }
|
|
|
+
|
|
|
+ .dark .title {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .loader {
|
|
|
+ position: relative;
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .loader::before {
|
|
|
+ position: absolute;
|
|
|
+ top: 60px;
|
|
|
+ left: 0;
|
|
|
+ width: 48px;
|
|
|
+ height: 5px;
|
|
|
+ content: '';
|
|
|
+ background: hsl(var(--primary, 210 100% 50%) / 50%);
|
|
|
+ border-radius: 50%;
|
|
|
+ animation: shadow-ani 0.5s linear infinite;
|
|
|
+ }
|
|
|
+
|
|
|
+ .loader::after {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ content: '';
|
|
|
+ background: hsl(var(--primary, 210 100% 50%));
|
|
|
+ border-radius: 4px;
|
|
|
+ animation: jump-ani 0.5s linear infinite;
|
|
|
+ }
|
|
|
+
|
|
|
+ @keyframes jump-ani {
|
|
|
+ 15% {
|
|
|
+ border-bottom-right-radius: 3px;
|
|
|
+ }
|
|
|
+
|
|
|
+ 25% {
|
|
|
+ transform: translateY(9px) rotate(22.5deg);
|
|
|
+ }
|
|
|
+
|
|
|
+ 50% {
|
|
|
+ border-bottom-right-radius: 40px;
|
|
|
+ transform: translateY(18px) scale(1, 0.9) rotate(45deg);
|
|
|
+ }
|
|
|
+
|
|
|
+ 75% {
|
|
|
+ transform: translateY(9px) rotate(67.5deg);
|
|
|
+ }
|
|
|
+
|
|
|
+ 100% {
|
|
|
+ transform: translateY(0) rotate(90deg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @keyframes shadow-ani {
|
|
|
+ 0%,
|
|
|
+ 100% {
|
|
|
+ transform: scale(1, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ 50% {
|
|
|
+ transform: scale(1.2, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|
|
|
+<div class="loading" id="__app-loading__">
|
|
|
+ <div class="loader"></div>
|
|
|
+ <div class="title">Loading...</div>
|
|
|
+</div>
|