index.css 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. * {
  2. margin: 0;
  3. }
  4. .first-loading-wrp {
  5. display: flex;
  6. flex-direction: column;
  7. justify-content: center;
  8. align-items: center;
  9. height: 100vh;
  10. background:
  11. radial-gradient(ellipse at 30% 20%, rgba(96, 165, 250, 0.06), transparent 50%),
  12. radial-gradient(ellipse at 70% 80%, rgba(167, 139, 250, 0.06), transparent 50%),
  13. #06090f;
  14. }
  15. .first-loading-wrp .loading-wrp {
  16. padding: 48px;
  17. display: flex;
  18. justify-content: center;
  19. align-items: center;
  20. position: relative;
  21. }
  22. .loading-wrp::before {
  23. content: '';
  24. position: absolute;
  25. width: 80px;
  26. height: 80px;
  27. border-radius: 50%;
  28. border: 1px solid rgba(96, 165, 250, 0.12);
  29. animation: ringPulse 2s ease-in-out infinite;
  30. }
  31. .loading-wrp::after {
  32. content: '';
  33. position: absolute;
  34. width: 100px;
  35. height: 100px;
  36. border-radius: 50%;
  37. border: 1px solid rgba(167, 139, 250, 0.06);
  38. animation: ringPulse 2s ease-in-out infinite 0.4s;
  39. }
  40. @keyframes ringPulse {
  41. 0%, 100% {
  42. transform: scale(0.8);
  43. opacity: 0.2;
  44. }
  45. 50% {
  46. transform: scale(1.2);
  47. opacity: 0.6;
  48. }
  49. }
  50. .dot {
  51. animation: dotRotate 1.4s infinite linear;
  52. transform: rotate(45deg);
  53. position: relative;
  54. display: inline-block;
  55. font-size: 40px;
  56. width: 40px;
  57. height: 40px;
  58. box-sizing: border-box;
  59. }
  60. .dot i {
  61. width: 16px;
  62. height: 16px;
  63. position: absolute;
  64. display: block;
  65. border-radius: 100%;
  66. transform: scale(0.7);
  67. transform-origin: 50% 50%;
  68. opacity: 0.25;
  69. animation: dotBreathe 1s infinite linear alternate;
  70. }
  71. .dot i:nth-child(1) {
  72. top: 0;
  73. left: 0;
  74. background-color: #60a5fa;
  75. box-shadow: 0 0 14px rgba(96, 165, 250, 0.6);
  76. }
  77. .dot i:nth-child(2) {
  78. top: 0;
  79. right: 0;
  80. background-color: #a78bfa;
  81. box-shadow: 0 0 14px rgba(167, 139, 250, 0.6);
  82. animation-delay: 0.25s;
  83. }
  84. .dot i:nth-child(3) {
  85. right: 0;
  86. bottom: 0;
  87. background-color: #60a5fa;
  88. box-shadow: 0 0 14px rgba(96, 165, 250, 0.6);
  89. animation-delay: 0.5s;
  90. }
  91. .dot i:nth-child(4) {
  92. bottom: 0;
  93. left: 0;
  94. background-color: #a78bfa;
  95. box-shadow: 0 0 14px rgba(167, 139, 250, 0.6);
  96. animation-delay: 0.75s;
  97. }
  98. @keyframes dotRotate {
  99. to {
  100. transform: rotate(405deg);
  101. }
  102. }
  103. @keyframes dotBreathe {
  104. 0% {
  105. opacity: 0.25;
  106. transform: scale(0.7);
  107. }
  108. 100% {
  109. opacity: 1;
  110. transform: scale(1);
  111. }
  112. }