index.css 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. .loading {
  2. height: 100vh;
  3. width: 100vw;
  4. overflow: hidden;
  5. background-color: #3c3c3c;
  6. display: flex;
  7. justify-content: center;
  8. align-items: center;
  9. position: fixed;
  10. top: 0;
  11. left: 0;
  12. user-select: none;
  13. }
  14. .loader {
  15. position: relative;
  16. }
  17. @keyframes stroke {
  18. 0% {
  19. fill: rgba(72, 138, 20, 0);
  20. stroke: rgba(54, 95, 160, 1);
  21. stroke-dashoffset: 25%;
  22. stroke-dasharray: 0 50%;
  23. stroke-width: 1;
  24. text-shadow: none;
  25. }
  26. 70% {
  27. fill: rgba(72, 138, 20, 0);
  28. stroke: rgba(54, 95, 160, 1);
  29. stroke-width: 3;
  30. text-shadow: none;
  31. }
  32. 90%,
  33. 100% {
  34. fill: rgba(255,255,255, 1);
  35. stroke: rgba(0, 0, 0, 0);
  36. stroke-dashoffset: -25%;
  37. stroke-dasharray: 50% 0;
  38. stroke-width: 0;
  39. text-shadow: 0 0 10px #ccc;
  40. }
  41. }
  42. .loader .logo {
  43. position: absolute;
  44. top: -150px;
  45. left: 50%;
  46. margin-left: calc((4 * 80px + 50px) / -2);
  47. }
  48. .loader svg {
  49. display: block;
  50. height: 120px;
  51. width: calc(4 * 80px + 50px);
  52. }
  53. .loader svg text {
  54. /*color: #FFFFFF;*/
  55. animation: stroke 5s infinite alternate;
  56. letter-spacing: 10px;
  57. font-size: 80px;
  58. /*text-shadow: 0 0 4px #FFFFFF;*/
  59. }
  60. .loader .dot {
  61. -webkit-animation-name: movement;
  62. animation-name: movement;
  63. -webkit-animation-duration: 2s;
  64. animation-duration: 2s;
  65. -webkit-animation-iteration-count: infinite;
  66. animation-iteration-count: infinite;
  67. -webkit-animation-timing-function: ease-in-out;
  68. animation-timing-function: ease-in-out;
  69. height: 10px;
  70. position: absolute;
  71. top: -10px;
  72. transform: translate3d(0, -25px, 0) scale(1);
  73. width: 10px;
  74. }
  75. .loader .dot:nth-of-type(1) {
  76. -webkit-animation-delay: -0.1s;
  77. animation-delay: -0.1s;
  78. left: 150px;
  79. }
  80. .loader .dot:nth-of-type(1)::before {
  81. -webkit-animation-delay: -0.1s;
  82. animation-delay: -0.1s;
  83. }
  84. .loader .dot:nth-of-type(2) {
  85. -webkit-animation-delay: -1.2s;
  86. animation-delay: -1.2s;
  87. left: 150px;
  88. }
  89. .loader .dot:nth-of-type(2)::before {
  90. -webkit-animation-delay: -1.2s;
  91. animation-delay: -1.2s;
  92. }
  93. .loader .dot:nth-of-type(3) {
  94. -webkit-animation-delay: -0.3s;
  95. animation-delay: -0.3s;
  96. left: 125px;
  97. }
  98. .loader .dot:nth-of-type(3)::before {
  99. -webkit-animation-delay: -0.3s;
  100. animation-delay: -0.3s;
  101. }
  102. .loader .dot:nth-of-type(4) {
  103. -webkit-animation-delay: -1.4s;
  104. animation-delay: -1.4s;
  105. left: 125px;
  106. }
  107. .loader .dot:nth-of-type(4)::before {
  108. -webkit-animation-delay: -1.4s;
  109. animation-delay: -1.4s;
  110. }
  111. .loader .dot:nth-of-type(5) {
  112. -webkit-animation-delay: -0.5s;
  113. animation-delay: -0.5s;
  114. left: 100px;
  115. }
  116. .loader .dot:nth-of-type(5)::before {
  117. -webkit-animation-delay: -0.5s;
  118. animation-delay: -0.5s;
  119. }
  120. .loader .dot:nth-of-type(6) {
  121. -webkit-animation-delay: -1.6s;
  122. animation-delay: -1.6s;
  123. left: 100px;
  124. }
  125. .loader .dot:nth-of-type(6)::before {
  126. -webkit-animation-delay: -1.6s;
  127. animation-delay: -1.6s;
  128. }
  129. .loader .dot:nth-of-type(7) {
  130. -webkit-animation-delay: -0.7s;
  131. animation-delay: -0.7s;
  132. left: 75px;
  133. }
  134. .loader .dot:nth-of-type(7)::before {
  135. -webkit-animation-delay: -0.7s;
  136. animation-delay: -0.7s;
  137. }
  138. .loader .dot:nth-of-type(8) {
  139. -webkit-animation-delay: -1.8s;
  140. animation-delay: -1.8s;
  141. left: 75px;
  142. }
  143. .loader .dot:nth-of-type(8)::before {
  144. -webkit-animation-delay: -1.8s;
  145. animation-delay: -1.8s;
  146. }
  147. .loader .dot:nth-of-type(9) {
  148. -webkit-animation-delay: -0.9s;
  149. animation-delay: -0.9s;
  150. left: 50px;
  151. }
  152. .loader .dot:nth-of-type(9)::before {
  153. -webkit-animation-delay: -0.9s;
  154. animation-delay: -0.9s;
  155. }
  156. .loader .dot:nth-of-type(10) {
  157. -webkit-animation-delay: -2s;
  158. animation-delay: -2s;
  159. left: 50px;
  160. }
  161. .loader .dot:nth-of-type(10)::before {
  162. -webkit-animation-delay: -2s;
  163. animation-delay: -2s;
  164. }
  165. .loader .dot:nth-of-type(11) {
  166. -webkit-animation-delay: -1.1s;
  167. animation-delay: -1.1s;
  168. left: 25px;
  169. }
  170. .loader .dot:nth-of-type(11)::before {
  171. -webkit-animation-delay: -1.1s;
  172. animation-delay: -1.1s;
  173. }
  174. .loader .dot:nth-of-type(12) {
  175. -webkit-animation-delay: -2.2s;
  176. animation-delay: -2.2s;
  177. left: 25px;
  178. }
  179. .loader .dot:nth-of-type(12)::before {
  180. -webkit-animation-delay: -2.2s;
  181. animation-delay: -2.2s;
  182. }
  183. .loader .dot:nth-of-type(13) {
  184. -webkit-animation-delay: -1.3s;
  185. animation-delay: -1.3s;
  186. left: 0px;
  187. }
  188. .loader .dot:nth-of-type(13)::before {
  189. -webkit-animation-delay: -1.3s;
  190. animation-delay: -1.3s;
  191. }
  192. .loader .dot:nth-of-type(14) {
  193. -webkit-animation-delay: -2.4s;
  194. animation-delay: -2.4s;
  195. left: 0px;
  196. }
  197. .loader .dot:nth-of-type(14)::before {
  198. -webkit-animation-delay: -2.4s;
  199. animation-delay: -2.4s;
  200. }
  201. .loader .dot:nth-of-type(15) {
  202. -webkit-animation-delay: -1.5s;
  203. animation-delay: -1.5s;
  204. left: -25px;
  205. }
  206. .loader .dot:nth-of-type(15)::before {
  207. -webkit-animation-delay: -1.5s;
  208. animation-delay: -1.5s;
  209. }
  210. .loader .dot:nth-of-type(16) {
  211. -webkit-animation-delay: -2.6s;
  212. animation-delay: -2.6s;
  213. left: -25px;
  214. }
  215. .loader .dot:nth-of-type(16)::before {
  216. -webkit-animation-delay: -2.6s;
  217. animation-delay: -2.6s;
  218. }
  219. .loader .dot:nth-of-type(17) {
  220. -webkit-animation-delay: -1.7s;
  221. animation-delay: -1.7s;
  222. left: -50px;
  223. }
  224. .loader .dot:nth-of-type(17)::before {
  225. -webkit-animation-delay: -1.7s;
  226. animation-delay: -1.7s;
  227. }
  228. .loader .dot:nth-of-type(18) {
  229. -webkit-animation-delay: -2.8s;
  230. animation-delay: -2.8s;
  231. left: -50px;
  232. }
  233. .loader .dot:nth-of-type(18)::before {
  234. -webkit-animation-delay: -2.8s;
  235. animation-delay: -2.8s;
  236. }
  237. .loader .dot:nth-of-type(19) {
  238. -webkit-animation-delay: -1.9s;
  239. animation-delay: -1.9s;
  240. left: -75px;
  241. }
  242. .loader .dot:nth-of-type(19)::before {
  243. -webkit-animation-delay: -1.9s;
  244. animation-delay: -1.9s;
  245. }
  246. .loader .dot:nth-of-type(20) {
  247. -webkit-animation-delay: -3s;
  248. animation-delay: -3s;
  249. left: -75px;
  250. }
  251. .loader .dot:nth-of-type(20)::before {
  252. -webkit-animation-delay: -3s;
  253. animation-delay: -3s;
  254. }
  255. .loader .dot:nth-of-type(21) {
  256. -webkit-animation-delay: -2.1s;
  257. animation-delay: -2.1s;
  258. left: -100px;
  259. }
  260. .loader .dot:nth-of-type(21)::before {
  261. -webkit-animation-delay: -2.1s;
  262. animation-delay: -2.1s;
  263. }
  264. .loader .dot:nth-of-type(22) {
  265. -webkit-animation-delay: -3.2s;
  266. animation-delay: -3.2s;
  267. left: -100px;
  268. }
  269. .loader .dot:nth-of-type(22)::before {
  270. -webkit-animation-delay: -3.2s;
  271. animation-delay: -3.2s;
  272. }
  273. .loader .dot:nth-of-type(23) {
  274. -webkit-animation-delay: -2.3s;
  275. animation-delay: -2.3s;
  276. left: -125px;
  277. }
  278. .loader .dot:nth-of-type(23)::before {
  279. -webkit-animation-delay: -2.3s;
  280. animation-delay: -2.3s;
  281. }
  282. .loader .dot:nth-of-type(24) {
  283. -webkit-animation-delay: -3.4s;
  284. animation-delay: -3.4s;
  285. left: -125px;
  286. }
  287. .loader .dot:nth-of-type(24)::before {
  288. -webkit-animation-delay: -3.4s;
  289. animation-delay: -3.4s;
  290. }
  291. .loader .dot:nth-of-type(25) {
  292. -webkit-animation-delay: -2.5s;
  293. animation-delay: -2.5s;
  294. left: -150px;
  295. }
  296. .loader .dot:nth-of-type(25)::before {
  297. -webkit-animation-delay: -2.5s;
  298. animation-delay: -2.5s;
  299. }
  300. .loader .dot:nth-of-type(26) {
  301. -webkit-animation-delay: -3.6s;
  302. animation-delay: -3.6s;
  303. left: -150px;
  304. }
  305. .loader .dot:nth-of-type(26)::before {
  306. -webkit-animation-delay: -3.6s;
  307. animation-delay: -3.6s;
  308. }
  309. .loader .dot::before {
  310. -webkit-animation-name: size-opacity;
  311. animation-name: size-opacity;
  312. -webkit-animation-duration: 2s;
  313. animation-duration: 2s;
  314. -webkit-animation-iteration-count: infinite;
  315. animation-iteration-count: infinite;
  316. -webkit-animation-timing-function: ease;
  317. animation-timing-function: ease;
  318. background: white;
  319. border-radius: 50%;
  320. content: "";
  321. display: block;
  322. height: 100%;
  323. width: 100%;
  324. }
  325. .loader .dot:nth-of-type(even)::before {
  326. background-color: #ff47aa;
  327. box-shadow: inset 0 0 4px #ff1492;
  328. }
  329. @-webkit-keyframes movement {
  330. 0% {
  331. transform: translate3d(0, -25px, 0);
  332. z-index: 0;
  333. }
  334. 50% {
  335. transform: translate3d(0, 25px, 0);
  336. z-index: 10;
  337. }
  338. 100% {
  339. transform: translate3d(0, -25px, 0);
  340. z-index: -5;
  341. }
  342. }
  343. @keyframes movement {
  344. 0% {
  345. transform: translate3d(0, -25px, 0);
  346. z-index: 0;
  347. }
  348. 50% {
  349. transform: translate3d(0, 25px, 0);
  350. z-index: 10;
  351. }
  352. 100% {
  353. transform: translate3d(0, -25px, 0);
  354. z-index: -5;
  355. }
  356. }
  357. @-webkit-keyframes size-opacity {
  358. 0% {
  359. opacity: 1;
  360. transform: scale(1);
  361. }
  362. 25% {
  363. transform: scale(1.5);
  364. }
  365. 50% {
  366. opacity: 1;
  367. }
  368. 75% {
  369. opacity: 0.35;
  370. transform: scale(0.5);
  371. }
  372. 100% {
  373. opacity: 1;
  374. transform: scale(1);
  375. }
  376. }
  377. @keyframes size-opacity {
  378. 0% {
  379. opacity: 1;
  380. transform: scale(1);
  381. }
  382. 25% {
  383. transform: scale(1.5);
  384. }
  385. 50% {
  386. opacity: 1;
  387. }
  388. 75% {
  389. opacity: 0.35;
  390. transform: scale(0.5);
  391. }
  392. 100% {
  393. opacity: 1;
  394. transform: scale(1);
  395. }
  396. }