You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

380 lines
12 KiB

  1. .dmxCloak {
  2. display: none;
  3. }
  4. .dmxPreloader {
  5. --color: #333;
  6. --bgcolor: #fff;
  7. position: fixed;
  8. top: 0;
  9. left: 0;
  10. bottom: 0;
  11. right: 0;
  12. z-index: 1050;
  13. background-color: #fff;
  14. background-color: var(--bgcolor);
  15. -webkit-transition: all 0.5s linear;
  16. -moz-transition: all 0.5s linear;
  17. -o-transition: all 0.5s linear;
  18. -ms-transition: all 0.5s linear;
  19. transition: all 0.5s linear;
  20. }
  21. .dmxPreloader-spinner {
  22. position: absolute;
  23. top: 50%;
  24. left: 50%;
  25. margin-top: -20px;
  26. margin-left: -20px;
  27. width: 40px;
  28. height: 40px;
  29. margin-top: calc(var(--size) / 2 * -1);
  30. margin-left: calc(var(--size) / 2 * -1);
  31. width: var(--size);
  32. height: var(--size);
  33. }
  34. /* rotatingPlane */
  35. .dmxPreloader-rotatingPlane {
  36. background-color: #333;
  37. background-color: var(--color);
  38. animation: rotatePlane 1.2s infinite ease-in-out;
  39. }
  40. @keyframes rotatePlane {
  41. 0% { transform: perspective(200px) rotateX(0deg) rotateY(0deg); }
  42. 50% { transform: perspective(200px) rotateX(-180.1deg) rotateY(0deg); }
  43. 100% { transform: perspective(200px) rotateX(-180deg) rotateY(-179.9deg); }
  44. }
  45. /* doubleBounce */
  46. .dmxPreloader-doubleBounce > div {
  47. width: 100%;
  48. height: 100%;
  49. border-radius: 50%;
  50. background-color: #333;
  51. background-color: var(--color);
  52. opacity: 0.6;
  53. position: absolute;
  54. top: 0;
  55. left: 0;
  56. animation: doubleBounce 2s infinite ease-in-out;
  57. }
  58. .dmxPreloader-doubleBounce > div:nth-child(2) {
  59. animation-delay: -1s;
  60. }
  61. @keyframes doubleBounce {
  62. 0%, 100% { transform: scale(0); }
  63. 50% { transform: scale(1); }
  64. }
  65. /* wave */
  66. .dmxPreloader-wave > div {
  67. background-color: #333;
  68. background-color: var(--color);
  69. height: 100%;
  70. width: 6px;
  71. width: calc((var(--size) / 5) - 6%);
  72. margin: 0 3%;
  73. display: inline-block;
  74. animation: waveStretchDelay 1.2s infinite ease-in-out;
  75. }
  76. .dmxPreloader-wave > div:nth-child(2) {
  77. animation-delay: -.2s;
  78. }
  79. .dmxPreloader-wave > div:nth-child(3) {
  80. animation-delay: -.4s;
  81. }
  82. .dmxPreloader-wave > div:nth-child(4) {
  83. animation-delay: -.6s;
  84. }
  85. .dmxPreloader-wave > div:nth-child(5) {
  86. animation-delay: -.8s;
  87. }
  88. @keyframes waveStretchDelay {
  89. 0%, 40%, 100% { transform: scaleY(0.4); }
  90. 20% { transform: scaleY(1); }
  91. }
  92. /* wanderingCubes */
  93. .dmxPreloader-wanderingCubes > div {
  94. background-color: #333;
  95. background-color: var(--color);
  96. width: 15px;
  97. height: 15px;
  98. width: calc(var(--size) / 3);
  99. height: calc(var(--size) / 3);
  100. position: absolute;
  101. top: 0;
  102. left: 0;
  103. animation: wanderingCube 1.8s infinite ease-in-out;
  104. }
  105. .dmxPreloader-wanderingCubes > div:nth-child(2) {
  106. animation-delay: -0.9s;
  107. }
  108. @keyframes wanderingCube {
  109. 0% { transform: rotate(0deg); }
  110. 25% { transform: translateX(25px) rotate(-90deg) scale(0.5); transform: translateX(calc(var(--size) / 3 * 2)) rotate(-90deg) scale(0.5); }
  111. 50% { transform: translateX(25px) translateY(25px) rotate(-179deg); transform: translateX(calc(var(--size) / 3 * 2)) translateY(calc(var(--size) / 3 * 2)) rotate(-179deg); }
  112. 50.1% { transform: translateX(25px) translateY(25px) rotate(-180deg); transform: translateX(calc(var(--size) / 3 * 2)) translateY(calc(var(--size) / 3 * 2)) rotate(-180deg); }
  113. 75% { transform: translateX(0) translateY(25px) rotate(-270deg) scale(0.5); transform: translateX(0) translateY(calc(var(--size) / 3 * 2)) rotate(-270deg) scale(0.5); }
  114. 100% { transform: rotate(-360deg); }
  115. }
  116. /* pulse */
  117. .dmxPreloader-pulse {
  118. background-color: #333;
  119. background-color: var(--color);
  120. border-radius: 50%;
  121. animation: pulseScaleOut 1.0s infinite ease-in-out;
  122. }
  123. @keyframes pulseScaleOut {
  124. 0% { transform: scale(0); }
  125. 100% { transform: scale(1); opacity: 0; }
  126. }
  127. /* chasingDots */
  128. .dmxPreloader-chasingDots {
  129. animation: chasingDotsRotate 2s infinite linear;
  130. }
  131. .dmxPreloader-chasingDots > div {
  132. width: 60%;
  133. height: 60%;
  134. position: absolute;
  135. top: 0;
  136. left: 40%;
  137. background-color: #333;
  138. background-color: var(--color);
  139. border-radius: 50%;
  140. animation: chasingDotsBounce 2s infinite ease-in-out;
  141. }
  142. .dmxPreloader-chasingDots > div:nth-child(2) {
  143. top: auto;
  144. bottom: 0;
  145. animation-delay: -1s;
  146. }
  147. @keyframes chasingDotsRotate {
  148. 100% { transform: rotate(360deg); }
  149. }
  150. @keyframes chasingDotsBounce {
  151. 0%, 100% { transform: scale(0); }
  152. 50% { transform: scale(1); }
  153. }
  154. /* threeBounce */
  155. .dmxPreloader-threeBounce > div {
  156. background-color: #333;
  157. background-color: var(--color);
  158. width: 25%;
  159. height: 25%;
  160. margin: 37.5% 4%;
  161. border-radius: 50%;
  162. display: inline-block;
  163. animation: threeBounce 1.4s infinite ease-in-out both;
  164. }
  165. .dmxPreloader-threeBounce > div:nth-child(1) {
  166. animation-delay: -0.32s;
  167. }
  168. .dmxPreloader-threeBounce > div:nth-child(2) {
  169. animation-delay: -0.16s;
  170. }
  171. @keyframes threeBounce {
  172. 0%, 80%, 100% { transform: scale(0); }
  173. 40% { transform: scale(1); }
  174. }
  175. /* circle */
  176. .dmxPreloader-circle > div {
  177. width: 100%;
  178. height: 100%;
  179. position: absolute;
  180. left: 0;
  181. top: 0;
  182. }
  183. .dmxPreloader-circle > div:before {
  184. content: '';
  185. display: block;
  186. margin: 0 auto;
  187. width: 15%;
  188. height: 15%;
  189. background-color: #333;
  190. background-color: var(--color);
  191. border-radius: 50%;
  192. animation: circleBounceDelay 1.2s infinite ease-in-out both;
  193. }
  194. .dmxPreloader-circle > div:nth-child(2) { transform: rotate(30deg); }
  195. .dmxPreloader-circle > div:nth-child(2):before { animation-delay: -1.1s; }
  196. .dmxPreloader-circle > div:nth-child(3) { transform: rotate(60deg); }
  197. .dmxPreloader-circle > div:nth-child(3):before { animation-delay: -1.0s; }
  198. .dmxPreloader-circle > div:nth-child(4) { transform: rotate(90deg); }
  199. .dmxPreloader-circle > div:nth-child(4):before { animation-delay: -0.9s; }
  200. .dmxPreloader-circle > div:nth-child(5) { transform: rotate(120deg); }
  201. .dmxPreloader-circle > div:nth-child(5):before { animation-delay: -0.8s; }
  202. .dmxPreloader-circle > div:nth-child(6) { transform: rotate(150deg); }
  203. .dmxPreloader-circle > div:nth-child(6):before { animation-delay: -0.7s; }
  204. .dmxPreloader-circle > div:nth-child(7) { transform: rotate(180deg); }
  205. .dmxPreloader-circle > div:nth-child(7):before { animation-delay: -0.6s; }
  206. .dmxPreloader-circle > div:nth-child(8) { transform: rotate(210deg); }
  207. .dmxPreloader-circle > div:nth-child(8):before { animation-delay: -0.5s; }
  208. .dmxPreloader-circle > div:nth-child(9) { transform: rotate(240deg); }
  209. .dmxPreloader-circle > div:nth-child(9):before { animation-delay: -0.4s; }
  210. .dmxPreloader-circle > div:nth-child(10) { transform: rotate(270deg); }
  211. .dmxPreloader-circle > div:nth-child(10):before { animation-delay: -0.3s; }
  212. .dmxPreloader-circle > div:nth-child(11) { transform: rotate(300deg); }
  213. .dmxPreloader-circle > div:nth-child(11):before { animation-delay: -0.2s; }
  214. .dmxPreloader-circle > div:nth-child(12) { transform: rotate(330deg); }
  215. .dmxPreloader-circle > div:nth-child(12):before { animation-delay: -0.1s; }
  216. @keyframes circleBounceDelay {
  217. 0%, 80%, 100% { transform: scale(0); }
  218. 40% { transform: scale(1); }
  219. }
  220. /* cubeGrid */
  221. .dmxPreloader-cubeGrid > div {
  222. width: 33.33%;
  223. height: 33.33%;
  224. width: calc(var(--size) / 3);
  225. height: calc(var(--size) / 3);
  226. background-color: #333;
  227. background-color: var(--color);
  228. float: left;
  229. animation: cubeGridScaleDelay 1.3s infinite ease-in-out;
  230. }
  231. .dmxPreloader-cubeGrid > div:nth-child(1) { animation-delay: 0.2s; }
  232. .dmxPreloader-cubeGrid > div:nth-child(2) { animation-delay: 0.3s; }
  233. .dmxPreloader-cubeGrid > div:nth-child(3) { animation-delay: 0.4s; }
  234. .dmxPreloader-cubeGrid > div:nth-child(4) { animation-delay: 0.1s; }
  235. .dmxPreloader-cubeGrid > div:nth-child(5) { animation-delay: 0.2s; }
  236. .dmxPreloader-cubeGrid > div:nth-child(6) { animation-delay: 0.3s; }
  237. .dmxPreloader-cubeGrid > div:nth-child(7) { animation-delay: 0s; }
  238. .dmxPreloader-cubeGrid > div:nth-child(8) { animation-delay: 0.1s; }
  239. .dmxPreloader-cubeGrid > div:nth-child(9) { animation-delay: 0.2s; }
  240. @keyframes cubeGridScaleDelay {
  241. 0%, 70%, 100% { transform: scale3d(1, 1, 1); }
  242. 35% { transform: scale3d(0, 0, 1); }
  243. }
  244. /* fadingCircle */
  245. .dmxPreloader-fadingCircle > div {
  246. width: 100%;
  247. height: 100%;
  248. position: absolute;
  249. left: 0;
  250. top: 0;
  251. }
  252. .dmxPreloader-fadingCircle > div:before {
  253. content: '';
  254. display: block;
  255. margin: 0 auto;
  256. width: 15%;
  257. height: 15%;
  258. background-color: #333;
  259. background-color: var(--color);
  260. border-radius: 50%;
  261. animation: circleFadeDelay 1.2s infinite ease-in-out both;
  262. }
  263. .dmxPreloader-fadingCircle > div:nth-child(2) { transform: rotate(30deg); }
  264. .dmxPreloader-fadingCircle > div:nth-child(2):before { animation-delay: -1.1s; }
  265. .dmxPreloader-fadingCircle > div:nth-child(3) { transform: rotate(60deg); }
  266. .dmxPreloader-fadingCircle > div:nth-child(3):before { animation-delay: -1.0s; }
  267. .dmxPreloader-fadingCircle > div:nth-child(4) { transform: rotate(90deg); }
  268. .dmxPreloader-fadingCircle > div:nth-child(4):before { animation-delay: -0.9s; }
  269. .dmxPreloader-fadingCircle > div:nth-child(5) { transform: rotate(120deg); }
  270. .dmxPreloader-fadingCircle > div:nth-child(5):before { animation-delay: -0.8s; }
  271. .dmxPreloader-fadingCircle > div:nth-child(6) { transform: rotate(150deg); }
  272. .dmxPreloader-fadingCircle > div:nth-child(6):before { animation-delay: -0.7s; }
  273. .dmxPreloader-fadingCircle > div:nth-child(7) { transform: rotate(180deg); }
  274. .dmxPreloader-fadingCircle > div:nth-child(7):before { animation-delay: -0.6s; }
  275. .dmxPreloader-fadingCircle > div:nth-child(8) { transform: rotate(210deg); }
  276. .dmxPreloader-fadingCircle > div:nth-child(8):before { animation-delay: -0.5s; }
  277. .dmxPreloader-fadingCircle > div:nth-child(9) { transform: rotate(240deg); }
  278. .dmxPreloader-fadingCircle > div:nth-child(9):before { animation-delay: -0.4s; }
  279. .dmxPreloader-fadingCircle > div:nth-child(10) { transform: rotate(270deg); }
  280. .dmxPreloader-fadingCircle > div:nth-child(10):before { animation-delay: -0.3s; }
  281. .dmxPreloader-fadingCircle > div:nth-child(11) { transform: rotate(300deg); }
  282. .dmxPreloader-fadingCircle > div:nth-child(11):before { animation-delay: -0.2s; }
  283. .dmxPreloader-fadingCircle > div:nth-child(12) { transform: rotate(330deg); }
  284. .dmxPreloader-fadingCircle > div:nth-child(12):before { animation-delay: -0.1s; }
  285. @keyframes circleFadeDelay {
  286. 0%, 39%, 100% { opacity: 0; }
  287. 40% { opacity: 1; }
  288. }
  289. /* foldingCube */
  290. .dmxPreloader-foldingCube {
  291. transform: rotateZ(45deg);
  292. }
  293. .dmxPreloader-foldingCube > div {
  294. float: left;
  295. width: 50%;
  296. height: 50%;
  297. position: relative;
  298. transform: scale(1.1);
  299. }
  300. .dmxPreloader-foldingCube > div:before {
  301. content: '';
  302. position: absolute;
  303. top: 0;
  304. left: 0;
  305. width: 100%;
  306. height: 100%;
  307. background-color: #333;
  308. background-color: var(--color);
  309. animation: foldCubeAngle 2.4s infinite linear both;
  310. transform-origin: 100% 100%;
  311. }
  312. .dmxPreloader-foldingCube > div:nth-child(2) { transform: scale(1.1) rotateZ(90deg); }
  313. .dmxPreloader-foldingCube > div:nth-child(3) { transform: scale(1.1) rotateZ(270deg); }
  314. .dmxPreloader-foldingCube > div:nth-child(4) { transform: scale(1.1) rotateZ(180deg); }
  315. .dmxPreloader-foldingCube > div:nth-child(2):before { animation-delay: 0.3s; }
  316. .dmxPreloader-foldingCube > div:nth-child(3):before { animation-delay: 0.9s; }
  317. .dmxPreloader-foldingCube > div:nth-child(4):before { animation-delay: 0.6s; }
  318. @keyframes foldCubeAngle {
  319. 0%, 10% { transform: perspective(140px) rotateX(-180deg); opacity: 0; }
  320. 25%, 75% { transform: perspective(140px) rotateX(0deg); opacity: 1; }
  321. 90%, 100% { transform: perspective(140px) rotateY(180deg); opacity: 0; }
  322. }