123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <style data-app-loading="inject-css">
- html {
- /* same as ant-design-vue/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.6s 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) / 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));
- 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"><%= VITE_GLOB_APP_TITLE %></div>
- </div>
|