loading.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <style data-app-loading="inject-css">
  2. html {
  3. /* same as antdv-next/dist/reset.css setting, avoid the title line-height changed */
  4. line-height: 1.15;
  5. }
  6. .loading {
  7. position: fixed;
  8. top: 0;
  9. left: 0;
  10. z-index: 9999;
  11. display: flex;
  12. flex-direction: column;
  13. align-items: center;
  14. justify-content: center;
  15. width: 100%;
  16. height: 100%;
  17. overflow: hidden;
  18. background-color: #f4f7f9;
  19. /* transition: all 0.8s ease-out; */
  20. }
  21. .loading.hidden {
  22. pointer-events: none;
  23. visibility: hidden;
  24. opacity: 0;
  25. transition: all 0.8s ease-out;
  26. }
  27. .dark .loading {
  28. background: #0d0d10;
  29. }
  30. .title {
  31. margin-top: 28px;
  32. font-size: 28px;
  33. font-weight: 600;
  34. color: #890145;
  35. animation: breath 2s ease-in-out infinite;
  36. }
  37. .dark .title {
  38. color: #fff;
  39. }
  40. .loader {
  41. position: relative;
  42. display: flex;
  43. align-items: center;
  44. justify-content: center;
  45. width: 160px;
  46. height: 120px;
  47. isolation: isolate;
  48. }
  49. .dark .loader::before {
  50. background: rgb(187 48 118 / 34%);
  51. }
  52. .loader-logo {
  53. position: relative;
  54. z-index: 1;
  55. width: 132px;
  56. height: auto;
  57. transform-origin: 50% 78%;
  58. animation: logo-float 1.6s ease-in-out infinite;
  59. }
  60. .logo-main {
  61. fill: #890145;
  62. animation: logo-accent-glow 2s ease-in-out infinite;
  63. }
  64. .logo-accent {
  65. fill: #bb3076;
  66. animation: logo-accent-glow 1.6s ease-in-out infinite;
  67. }
  68. .logo-velocity path {
  69. animation: logo-velocity-flicker 1.6s ease-in-out infinite;
  70. }
  71. .logo-velocity path:nth-child(1) {
  72. animation-delay: 0.06s;
  73. }
  74. .logo-velocity path:nth-child(2) {
  75. animation-delay: 0.12s;
  76. }
  77. .logo-velocity path:nth-child(3) {
  78. animation-delay: 0.18s;
  79. }
  80. .logo-velocity path:nth-child(4) {
  81. animation-delay: 0.24s;
  82. }
  83. @keyframes logo-float {
  84. 0%,
  85. 100% {
  86. transform: translateY(0) scale(1);
  87. }
  88. 50% {
  89. transform: translateY(-8px) scale(1.01);
  90. }
  91. }
  92. @keyframes logo-accent-glow {
  93. 0%,
  94. 100% {
  95. opacity: 0.74;
  96. }
  97. 50% {
  98. opacity: 1;
  99. }
  100. }
  101. @keyframes logo-velocity-flicker {
  102. 0%,
  103. 100% {
  104. opacity: 0.45;
  105. }
  106. 35% {
  107. opacity: 1;
  108. }
  109. 70% {
  110. opacity: 0.6;
  111. }
  112. }
  113. @keyframes logo-shadow {
  114. 0%,
  115. 100% {
  116. opacity: 0.38;
  117. transform: translateX(-50%) scale(0.86);
  118. }
  119. 50% {
  120. opacity: 0.6;
  121. transform: translateX(-50%) scale(1.08);
  122. }
  123. }
  124. @keyframes breath {
  125. 0%,
  126. 100% {
  127. opacity: 1;
  128. }
  129. 50% {
  130. opacity: 0.55;
  131. }
  132. }
  133. </style>
  134. <div class="loading" id="__app-loading__">
  135. <div class="loader" aria-hidden="true">
  136. <svg
  137. class="loader-logo"
  138. xmlns="http://www.w3.org/2000/svg"
  139. width="39.172"
  140. height="29.156"
  141. viewBox="0 0 39.172 29.156"
  142. >
  143. <g transform="translate(-92 -20)">
  144. <g transform="translate(94.396 28.479)">
  145. <path
  146. class="logo-main"
  147. d="M269,248.893c.486-1.269.739-4.331-3.115-4.331H256.8a4.2,4.2,0,0,0-3.489,1.71s-4.482,6.845-6.516,9.554a9.046,9.046,0,0,1-5.068,3.547,11.581,11.581,0,0,0,2.549,0,8.75,8.75,0,0,0,6.779-3.546l4.716-7.143a2.25,2.25,0,0,1,1.874-1.046h4.221c1.787,0,2.124,1.386,1.414,2.856-.272.564-.565,1.218-.93,1.933a20.46,20.46,0,0,1-17.9,10.782c-6.317.067-10.731-2.39-11.96-3.528,2.138,3.191,6.565,5.367,12.323,5.541,7.732.234,12.686-1.754,17.719-6.4.283-.261.57-.553.856-.864.054-.053.109-.1.162-.161a19.512,19.512,0,0,0,1.665-2.088,28.1,28.1,0,0,0,2.505-4.1A25.677,25.677,0,0,0,269,248.893"
  148. transform="translate(-232.493 -244.562)"
  149. />
  150. <path
  151. class="logo-main"
  152. d="M692.321,385.119c-1.479,2.219-3.514,5.229-4.707,6.818a9.046,9.046,0,0,1-5.068,3.547,11.575,11.575,0,0,0,2.549,0,8.75,8.75,0,0,0,6.779-3.546l4.5-6.819Z"
  153. transform="translate(-666.943 -380.246)"
  154. />
  155. </g>
  156. <g class="logo-velocity" transform="translate(92 20)">
  157. <path
  158. class="logo-accent"
  159. d="M440.868,250.02c-.563-2.036-1.118-4.041-1.706-6.173h5.858Z"
  160. transform="translate(-429.601 -235.393)"
  161. />
  162. <path
  163. class="logo-accent"
  164. d="M813.639,172.63h-2.682l1.54-2.085h2.682Z"
  165. transform="translate(-788.505 -164.632)"
  166. />
  167. <path
  168. class="logo-accent"
  169. d="M796.315,128.571h-1.939l1.168-1.508h1.939Z"
  170. transform="translate(-772.499 -122.658)"
  171. />
  172. <path
  173. class="logo-accent"
  174. d="M918.191,106.665H916.6l.993-1.237h1.591Z"
  175. transform="translate(-890.486 -101.773)"
  176. />
  177. <path
  178. class="logo-accent"
  179. d="M186.81,2.038c6.8-.044,10.685,2.112,12.569,3.876C197.246,2.606,192.4.267,186.447.024c-9.854-.4-18.267,4.584-22.02,12.3-1.5,3.094-1.119,6.388-.5,7.533,1.275,2.583,3.371,3.129,6.044,3.3a9.938,9.938,0,0,0,7.969-3.645c1.179-1.468,2.15-3.034,3.2-4.563C182.494,12.969,186,7.868,186,7.868l-1.847,0-.744.978h-1.452l.743-.977-1.627.008s-6.008,9.087-7.616,10.412c-2.17,1.787-5.093,1.069-4.861-2.2l0,0c.674-7.554,8.648-13.991,18.215-14.053"
  180. transform="translate(-163.38 -0.002)"
  181. />
  182. </g>
  183. </g>
  184. </svg>
  185. </div>
  186. <div class="title"><%= VITE_APP_TITLE %>-易码工坊</div>
  187. </div>