spinner-loading.html.erb 10 KB

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