spinner-loading.html.erb 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  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. margin: 0;
  17. }
  18. #loading-app {
  19. display: flex;
  20. }
  21. .loading-animation {
  22. margin: 0 auto;
  23. display: block;
  24. vertical-align: middle;
  25. }
  26. .loading-animation.error {
  27. filter: blur(1px);
  28. }
  29. .loading-animation.error * {
  30. animation: none !important;
  31. }
  32. .loading-main {
  33. margin: auto;
  34. }
  35. .loading-sr-text {
  36. position: absolute;
  37. width: 1px;
  38. height: 1px;
  39. padding: 0;
  40. margin: -1px;
  41. overflow: hidden;
  42. clip: rect(0, 0, 0, 0);
  43. border: 0;
  44. }
  45. .loading-failed {
  46. position: relative;
  47. opacity: 0;
  48. color: #fff;
  49. font-weight: 600;
  50. width: 175px;
  51. text-align: center;
  52. margin-top: -52px;
  53. transition: opacity 0.5s;
  54. font-size: 16px;
  55. line-height: 21px;
  56. }
  57. .loading-failed.active {
  58. opacity: 1;
  59. }
  60. </style>
  61. <div id="loading-app">
  62. <div class="loading-main">
  63. <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">
  64. <style>
  65. #logo-s-path18 { animation: logo-s-path18_c_o 2000ms linear infinite normal forwards }
  66. @keyframes logo-s-path18_c_o {
  67. 0% { opacity: 0 }
  68. 65% { opacity: 0 }
  69. 70% { opacity: 1 }
  70. 100% { opacity: 1 }
  71. }
  72. #logo-s-path19 { animation: logo-s-path19_c_o 2000ms linear infinite normal forwards }
  73. @keyframes logo-s-path19_c_o {
  74. 0% { opacity: 0 }
  75. 60% { opacity: 0 }
  76. 65% { opacity: 1 }
  77. 100% { opacity: 1 }
  78. }
  79. #logo-s-path20 { animation: logo-s-path20_c_o 2000ms linear infinite normal forwards }
  80. @keyframes logo-s-path20_c_o {
  81. 0% { opacity: 0 }
  82. 75% { opacity: 0 }
  83. 80% { opacity: 1 }
  84. 100% { opacity: 1 }
  85. }
  86. #logo-s-path21 { animation: logo-s-path21_c_o 2000ms linear infinite normal forwards }
  87. @keyframes logo-s-path21_c_o {
  88. 0% { opacity: 0 }
  89. 80% { opacity: 0 }
  90. 85% { opacity: 1 }
  91. 100% { opacity: 1 }
  92. }
  93. #logo-s-path22 { animation: logo-s-path22_c_o 2000ms linear infinite normal forwards }
  94. @keyframes logo-s-path22_c_o {
  95. 0% { opacity: 0 }
  96. 70% { opacity: 0 }
  97. 75% { opacity: 1 }
  98. 100% { opacity: 1 }
  99. }
  100. #logo-s-path23 { animation: logo-s-path23_c_o 2000ms linear infinite normal forwards }
  101. @keyframes logo-s-path23_c_o {
  102. 0% { opacity: 0 }
  103. 55% { opacity: 0 }
  104. 60% { opacity: 1 }
  105. 100% { opacity: 1 }
  106. }
  107. #logo-s-path24 { animation: logo-s-path24_c_o 2000ms linear infinite normal forwards }
  108. @keyframes logo-s-path24_c_o {
  109. 0% { opacity: 0 }
  110. 50% { opacity: 0 }
  111. 55% { opacity: 1 }
  112. 100% { opacity: 1 }
  113. }
  114. #logo-s-path25 { animation: logo-s-path25_c_o 2000ms linear infinite normal forwards }
  115. @keyframes logo-s-path25_c_o {
  116. 0% { opacity: 0 }
  117. 45% { opacity: 0 }
  118. 50% { opacity: 1 }
  119. 100% { opacity: 1 }
  120. }
  121. #logo-s-path26 { animation: logo-s-path26_c_o 2000ms linear infinite normal forwards }
  122. @keyframes logo-s-path26_c_o {
  123. 0% { opacity: 0 }
  124. 5% { opacity: 1 }
  125. 100% { opacity: 1 }
  126. }
  127. #logo-s-path27 { animation: logo-s-path27_c_o 2000ms linear infinite normal forwards }
  128. @keyframes logo-s-path27_c_o {
  129. 0% { opacity: 0 }
  130. 5% { opacity: 0 }
  131. 10% { opacity: 1 }
  132. 100% { opacity: 1 }
  133. }
  134. #logo-s-path28 { animation: logo-s-path28_c_o 2000ms linear infinite normal forwards }
  135. @keyframes logo-s-path28_c_o {
  136. 0% { opacity: 0 }
  137. 10% { opacity: 0 }
  138. 15% { opacity: 1 }
  139. 100% { opacity: 1 }
  140. }
  141. #logo-s-path29 { animation: logo-s-path29_c_o 2000ms linear infinite normal forwards }
  142. @keyframes logo-s-path29_c_o {
  143. 0% { opacity: 0 }
  144. 20% { opacity: 0 }
  145. 25% { opacity: 1 }
  146. 100% { opacity: 1 }
  147. }
  148. #logo-s-path30 { animation: logo-s-path30_c_o 2000ms linear infinite normal forwards }
  149. @keyframes logo-s-path30_c_o {
  150. 0% { opacity: 0 }
  151. 40% { opacity: 0 }
  152. 45% { opacity: 1 }
  153. 100% { opacity: 1 }
  154. }
  155. #logo-s-path31 { animation: logo-s-path31_c_o 2000ms linear infinite normal forwards }
  156. @keyframes logo-s-path31_c_o {
  157. 0% { opacity: 0 }
  158. 25% { opacity: 0 }
  159. 30% { opacity: 1 }
  160. 100% { opacity: 1 }
  161. }
  162. #logo-s-path32 { animation: logo-s-path32_c_o 2000ms linear infinite normal forwards }
  163. @keyframes logo-s-path32_c_o {
  164. 0% { opacity: 0 }
  165. 30% { opacity: 0 }
  166. 35% { opacity: 1 }
  167. 100% { opacity: 1 }
  168. }
  169. #logo-s-path33 { animation: logo-s-path33_c_o 2000ms linear infinite normal forwards }
  170. @keyframes logo-s-path33_c_o {
  171. 0% { opacity: 0 }
  172. 35% { opacity: 0 }
  173. 40% { opacity: 1 }
  174. 100% { opacity: 1 }
  175. }
  176. #logo-s-path34 { animation: logo-s-path34_c_o 2000ms linear infinite normal forwards }
  177. @keyframes logo-s-path34_c_o {
  178. 0% { opacity: 0 }
  179. 15% { opacity: 0 }
  180. 20% { opacity: 1 }
  181. 100% { opacity: 1 }
  182. }
  183. </style>
  184. <g id="logo-u-b-w" opacity="0.38">
  185. <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" />
  186. <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" />
  187. <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" />
  188. <path id="logo-s-path4" d="M39.8025,9.1125l-2.61,2.6775L38.43,9.72l1.3725-.6075Z" fill="#8e8e8e" fill-rule="evenodd" />
  189. <path id="logo-s-path5" d="M27.9,10.8225l7.6725-.765L30.24,11.7l-2.34-.8775Z" fill="#8e8e8e" fill-rule="evenodd" />
  190. <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" />
  191. <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" />
  192. <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" />
  193. <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" />
  194. <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" />
  195. <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" />
  196. <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" />
  197. <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" />
  198. <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" />
  199. <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" />
  200. <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" />
  201. <path id="logo-s-path17" d="M17.37,22.0725l6.03-3.825.36,4.4775-6.39-.6525Z" fill="#b7b7b7" fill-rule="evenodd" />
  202. </g>
  203. <g id="logo-u-color">
  204. <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" />
  205. <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" />
  206. <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" />
  207. <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" />
  208. <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" />
  209. <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" />
  210. <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" />
  211. <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" />
  212. <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" />
  213. <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" />
  214. <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" />
  215. <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" />
  216. <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" />
  217. <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" />
  218. <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" />
  219. <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" />
  220. <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" />
  221. </g>
  222. </svg>
  223. <div class="loading-sr-text">
  224. <%= Translation.translate(local_assigns[:locale], 'Loading…') %>
  225. </div>
  226. <div class="loading-failed" aria-hidden="true">
  227. <%= Translation.translate(local_assigns[:locale], 'Loading failed, please try again later.') %>
  228. </div>
  229. </div>
  230. </div>