spinner-loading.html.erb 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. <style>
  2. *, ::before, ::after {
  3. box-sizing: border-box;
  4. border-width: 0;
  5. border-style: solid;
  6. border-color: #656567;
  7. }
  8. body,
  9. html,
  10. #loading-app,
  11. #app[data-loaded="true"] {
  12. height: 100%;
  13. }
  14. html {
  15. background-color: var(--background-primary);
  16. }
  17. body,
  18. html {
  19. margin: 0;
  20. }
  21. #loading-app {
  22. display: flex;
  23. }
  24. .loading-animation {
  25. margin: 0 auto;
  26. display: block;
  27. vertical-align: middle;
  28. }
  29. .loading-animation.error {
  30. filter: blur(1px);
  31. }
  32. .loading-animation.error * {
  33. animation: none !important;
  34. }
  35. .loading-main {
  36. margin: auto;
  37. }
  38. .loading-sr-text {
  39. position: absolute;
  40. width: 1px;
  41. height: 1px;
  42. padding: 0;
  43. margin: -1px;
  44. overflow: hidden;
  45. clip: rect(0, 0, 0, 0);
  46. border: 0;
  47. }
  48. .loading-failed {
  49. position: relative;
  50. opacity: 0;
  51. color: #fff;
  52. font-weight: 600;
  53. width: 175px;
  54. text-align: center;
  55. margin-top: -52px;
  56. transition: opacity 0.5s;
  57. font-size: 16px;
  58. line-height: 21px;
  59. }
  60. .loading-failed.active {
  61. opacity: 1;
  62. }
  63. </style>
  64. <div id="loading-app">
  65. <div class="loading-main">
  66. <svg class="loading-animation" width="80px" height="68px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 36" shape-rendering="geometricPrecision">
  67. <style>
  68. #logo-s-path18 { animation: logo-s-path18_c_o 2000ms linear infinite normal forwards }
  69. @keyframes logo-s-path18_c_o {
  70. 0% { opacity: 0 }
  71. 65% { opacity: 0 }
  72. 70% { opacity: 1 }
  73. 100% { opacity: 1 }
  74. }
  75. #logo-s-path19 { animation: logo-s-path19_c_o 2000ms linear infinite normal forwards }
  76. @keyframes logo-s-path19_c_o {
  77. 0% { opacity: 0 }
  78. 60% { opacity: 0 }
  79. 65% { opacity: 1 }
  80. 100% { opacity: 1 }
  81. }
  82. #logo-s-path20 { animation: logo-s-path20_c_o 2000ms linear infinite normal forwards }
  83. @keyframes logo-s-path20_c_o {
  84. 0% { opacity: 0 }
  85. 75% { opacity: 0 }
  86. 80% { opacity: 1 }
  87. 100% { opacity: 1 }
  88. }
  89. #logo-s-path21 { animation: logo-s-path21_c_o 2000ms linear infinite normal forwards }
  90. @keyframes logo-s-path21_c_o {
  91. 0% { opacity: 0 }
  92. 80% { opacity: 0 }
  93. 85% { opacity: 1 }
  94. 100% { opacity: 1 }
  95. }
  96. #logo-s-path22 { animation: logo-s-path22_c_o 2000ms linear infinite normal forwards }
  97. @keyframes logo-s-path22_c_o {
  98. 0% { opacity: 0 }
  99. 70% { opacity: 0 }
  100. 75% { opacity: 1 }
  101. 100% { opacity: 1 }
  102. }
  103. #logo-s-path23 { animation: logo-s-path23_c_o 2000ms linear infinite normal forwards }
  104. @keyframes logo-s-path23_c_o {
  105. 0% { opacity: 0 }
  106. 55% { opacity: 0 }
  107. 60% { opacity: 1 }
  108. 100% { opacity: 1 }
  109. }
  110. #logo-s-path24 { animation: logo-s-path24_c_o 2000ms linear infinite normal forwards }
  111. @keyframes logo-s-path24_c_o {
  112. 0% { opacity: 0 }
  113. 50% { opacity: 0 }
  114. 55% { opacity: 1 }
  115. 100% { opacity: 1 }
  116. }
  117. #logo-s-path25 { animation: logo-s-path25_c_o 2000ms linear infinite normal forwards }
  118. @keyframes logo-s-path25_c_o {
  119. 0% { opacity: 0 }
  120. 45% { opacity: 0 }
  121. 50% { opacity: 1 }
  122. 100% { opacity: 1 }
  123. }
  124. #logo-s-path26 { animation: logo-s-path26_c_o 2000ms linear infinite normal forwards }
  125. @keyframes logo-s-path26_c_o {
  126. 0% { opacity: 0 }
  127. 5% { opacity: 1 }
  128. 100% { opacity: 1 }
  129. }
  130. #logo-s-path27 { animation: logo-s-path27_c_o 2000ms linear infinite normal forwards }
  131. @keyframes logo-s-path27_c_o {
  132. 0% { opacity: 0 }
  133. 5% { opacity: 0 }
  134. 10% { opacity: 1 }
  135. 100% { opacity: 1 }
  136. }
  137. #logo-s-path28 { animation: logo-s-path28_c_o 2000ms linear infinite normal forwards }
  138. @keyframes logo-s-path28_c_o {
  139. 0% { opacity: 0 }
  140. 10% { opacity: 0 }
  141. 15% { opacity: 1 }
  142. 100% { opacity: 1 }
  143. }
  144. #logo-s-path29 { animation: logo-s-path29_c_o 2000ms linear infinite normal forwards }
  145. @keyframes logo-s-path29_c_o {
  146. 0% { opacity: 0 }
  147. 20% { opacity: 0 }
  148. 25% { opacity: 1 }
  149. 100% { opacity: 1 }
  150. }
  151. #logo-s-path30 { animation: logo-s-path30_c_o 2000ms linear infinite normal forwards }
  152. @keyframes logo-s-path30_c_o {
  153. 0% { opacity: 0 }
  154. 40% { opacity: 0 }
  155. 45% { opacity: 1 }
  156. 100% { opacity: 1 }
  157. }
  158. #logo-s-path31 { animation: logo-s-path31_c_o 2000ms linear infinite normal forwards }
  159. @keyframes logo-s-path31_c_o {
  160. 0% { opacity: 0 }
  161. 25% { opacity: 0 }
  162. 30% { opacity: 1 }
  163. 100% { opacity: 1 }
  164. }
  165. #logo-s-path32 { animation: logo-s-path32_c_o 2000ms linear infinite normal forwards }
  166. @keyframes logo-s-path32_c_o {
  167. 0% { opacity: 0 }
  168. 30% { opacity: 0 }
  169. 35% { opacity: 1 }
  170. 100% { opacity: 1 }
  171. }
  172. #logo-s-path33 { animation: logo-s-path33_c_o 2000ms linear infinite normal forwards }
  173. @keyframes logo-s-path33_c_o {
  174. 0% { opacity: 0 }
  175. 35% { opacity: 0 }
  176. 40% { opacity: 1 }
  177. 100% { opacity: 1 }
  178. }
  179. #logo-s-path34 { animation: logo-s-path34_c_o 2000ms linear infinite normal forwards }
  180. @keyframes logo-s-path34_c_o {
  181. 0% { opacity: 0 }
  182. 15% { opacity: 0 }
  183. 20% { opacity: 1 }
  184. 100% { opacity: 1 }
  185. }
  186. </style>
  187. <g id="logo-u-b-w" opacity="0.38">
  188. <path id="logo-s-path1" d="M27.3375,12.6L36.72,9.72l-5.5575,3.5325-3.825-.6525Z" fill="#7a7a7a" fill-rule="evenodd" />
  189. <path id="logo-s-path2" d="M33.0525,19.62l-1.89-6.3675L36.72,9.72l-1.665,5.715-2.0025,4.185Z" fill="#979797" fill-rule="evenodd" />
  190. <path id="logo-s-path3" d="M39.465,7.9875L38.43,9.72l-3.375,5.715L36.72,9.72l2.745-1.7325Z" fill="#7a7a7a" fill-rule="evenodd" />
  191. <path id="logo-s-path4" d="M39.8025,9.1125l-2.61,2.6775L38.43,9.72l1.3725-.6075Z" fill="#8e8e8e" fill-rule="evenodd" />
  192. <path id="logo-s-path5" d="M27.9,10.8225l7.6725-.765L30.24,11.7l-2.34-.8775Z" fill="#8e8e8e" fill-rule="evenodd" />
  193. <path id="logo-s-path6" d="M28.1925,15.165l2.97-1.9125l1.89,6.3675-.99,2.025-3.87-6.48Z" fill="#7a7a7a" fill-rule="evenodd" />
  194. <path id="logo-s-path7" d="M23.76,22.725L22.3425,5.4l9.72,16.245-8.3025,1.08Z" fill="#d5d5d5" fill-rule="evenodd" />
  195. <path id="logo-s-path8" d="M19.7325,27.1575L23.76,22.725l8.3025-1.08-12.33,5.5125Z" fill="#8e8e8e" fill-rule="evenodd" />
  196. <path id="logo-s-path9" d="M0.1575,35.865l19.575-8.7075L23.76,22.725l-6.39-.6525L0.1575,35.865Z" fill="#d9d9d9" fill-rule="evenodd" />
  197. <path id="logo-s-path10" d="M0.9,28.755l10.0575-1.53l3.1275-2.52-1.53-.675L0.9,28.755Z" fill="#b9b9b9" fill-rule="evenodd" />
  198. <path id="logo-s-path11" d="M4.5225,20.5425L14.085,24.705l3.285-2.6325-12.8475-1.53Z" fill="#e5e5e5" fill-rule="evenodd" />
  199. <path id="logo-s-path12" d="M21.6225,11.6775l-1.215.2025L17.37,22.0725l3.285-2.07.9675-8.325Z" fill="#898989" fill-rule="evenodd" />
  200. <path id="logo-s-path13" d="M23.4,18.2475l-2.745,1.755L22.3425,5.4L23.4,18.2475Z" fill="#9e9e9e" fill-rule="evenodd" />
  201. <path id="logo-s-path14" d="M13.0275,13.05l8.595-1.3725L22.005,8.28l-8.9775,4.77Z" fill="#4d4d4d" fill-rule="evenodd" />
  202. <path id="logo-s-path15" d="M12.105,5.085l7.47,4.5l2.43-1.305.0675-.4725L12.105,5.085Z" fill="#7b7b7b" fill-rule="evenodd" />
  203. <path id="logo-s-path16" d="M13.5675,0.18l6.795,7.155l1.71.4725.27-2.4075-8.775-5.22Z" fill="#898989" fill-rule="evenodd" />
  204. <path id="logo-s-path17" d="M17.37,22.0725l6.03-3.825.36,4.4775-6.39-.6525Z" fill="#b7b7b7" fill-rule="evenodd" />
  205. </g>
  206. <g id="logo-u-color">
  207. <path id="logo-s-path18" d="M27.3375,12.6L36.72,9.72l-5.5575,3.5325-3.825-.6525Z" opacity="0" fill="#ca2317" fill-rule="evenodd" />
  208. <path id="logo-s-path19" d="M33.0525,19.62l-1.89-6.3675L36.72,9.72l-1.665,5.715-2.0025,4.185Z" opacity="0" fill="#e84f83" fill-rule="evenodd" />
  209. <path id="logo-s-path20" d="M39.465,7.9875L38.43,9.72l-3.375,5.715L36.72,9.72l2.745-1.7325Z" opacity="0" fill="#ca2317" fill-rule="evenodd" />
  210. <path id="logo-s-path21" d="M39.8025,9.1125l-2.61,2.6775L38.43,9.72l1.3725-.6075Z" opacity="0" fill="#e54011" fill-rule="evenodd" />
  211. <path id="logo-s-path22" d="M27.9,10.8225l7.6725-.765L30.24,11.7l-2.34-.8775Z" opacity="0" fill="#e54011" fill-rule="evenodd" />
  212. <path id="logo-s-path23" d="M28.1925,15.165l2.97-1.9125l1.89,6.3675-.99,2.025-3.87-6.48Z" opacity="0" fill="#ca2317" fill-rule="evenodd" />
  213. <path id="logo-s-path24" d="M23.76,22.725L22.3425,5.4l9.72,16.245-8.3025,1.08Z" opacity="0" fill="#b7dff2" fill-rule="evenodd" />
  214. <path id="logo-s-path25" d="M19.7325,27.1575L23.76,22.725l8.3025-1.08-12.33,5.5125Z" opacity="0" fill="#e54011" fill-rule="evenodd" />
  215. <path id="logo-s-path26" d="M0.1575,35.865l19.575-8.7075L23.76,22.725l-6.39-.6525L0.1575,35.865Z" opacity="0" fill="#ffce33" fill-rule="evenodd" />
  216. <path id="logo-s-path27" d="M0.9,28.755l10.0575-1.53l3.1275-2.52-1.53-.675L0.9,28.755Z" opacity="0" fill="#d6b12d" fill-rule="evenodd" />
  217. <path id="logo-s-path28" d="M4.5225,20.5425L14.085,24.705l3.285-2.6325-12.8475-1.53Z" opacity="0" fill="#ffde85" fill-rule="evenodd" />
  218. <path id="logo-s-path29" d="M21.6225,11.6775l-1.215.2025L17.37,22.0725l3.285-2.07.9675-8.325Z" opacity="0" fill="#009ec6" fill-rule="evenodd" />
  219. <path id="logo-s-path30" d="M23.4,18.2475l-2.745,1.755L22.3425,5.4L23.4,18.2475Z" opacity="0" fill="#5eafce" fill-rule="evenodd" />
  220. <path id="logo-s-path31" d="M13.0275,13.05l8.595-1.3725L22.005,8.28l-8.9775,4.77Z" opacity="0" fill="#045972" fill-rule="evenodd" />
  221. <path id="logo-s-path32" d="M12.105,5.085l7.47,4.5l2.43-1.305.0675-.4725L12.105,5.085Z" opacity="0" fill="#5a8591" fill-rule="evenodd" />
  222. <path id="logo-s-path33" d="M13.5675,0.18l6.795,7.155l1.71.4725.27-2.4075-8.775-5.22Z" opacity="0" fill="#009ec6" fill-rule="evenodd" />
  223. <path id="logo-s-path34" d="M17.37,22.0725l6.03-3.825.36,4.4775-6.39-.6525Z" opacity="0" fill="#f39804" fill-rule="evenodd" />
  224. </g>
  225. </svg>
  226. <div class="loading-sr-text">
  227. <%= Translation.translate(local_assigns[:locale], 'Loading…') %>
  228. </div>
  229. <div class="loading-failed" aria-hidden="true">
  230. <%= Translation.translate(local_assigns[:locale], 'Loading failed, please try again later.') %>
  231. </div>
  232. </div>
  233. </div>