loaders.less 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. //
  2. // Misago Spinners
  3. // --------------------------------------------------
  4. // Big spinner used for transitions
  5. .misago-loader {
  6. // CSS Spinner (c) Luke Haas (MIT Licensed)
  7. // http://lukehaas.me
  8. // https://github.com/lukehaas/css-loaders
  9. font-size: 11px;
  10. text-indent: -99999em;
  11. margin: @line-height-computed * 2 auto;
  12. position: relative;
  13. width: 10em;
  14. height: 10em;
  15. box-shadow: inset 0 0 0 1em @loader-color;
  16. &, &:before, &:after {
  17. border-radius: 50%;
  18. }
  19. &:before, &:after {
  20. position: absolute;
  21. content: '';
  22. }
  23. &:before {
  24. width: 5.2em;
  25. height: 10.2em;
  26. background: @body-bg;
  27. border-radius: 10.2em 0 0 10.2em;
  28. top: -0.1em;
  29. left: -0.1em;
  30. -webkit-transform-origin: 5.2em 5.1em;
  31. transform-origin: 5.2em 5.1em;
  32. -webkit-animation: load2 2s infinite ease 1.5s;
  33. animation: load2 2s infinite ease 1.5s;
  34. }
  35. &:after {
  36. width: 5.2em;
  37. height: 10.2em;
  38. background: @body-bg;
  39. border-radius: 0 10.2em 10.2em 0;
  40. top: -0.1em;
  41. left: 5.1em;
  42. -webkit-transform-origin: 0px 5.1em;
  43. transform-origin: 0px 5.1em;
  44. -webkit-animation: load2 2s infinite ease;
  45. animation: load2 2s infinite ease;
  46. }
  47. @-webkit-keyframes load2 {
  48. 0% {
  49. -webkit-transform: rotate(0deg);
  50. transform: rotate(0deg);
  51. }
  52. 100% {
  53. -webkit-transform: rotate(360deg);
  54. transform: rotate(360deg);
  55. }
  56. }
  57. @keyframes load2 {
  58. 0% {
  59. -webkit-transform: rotate(0deg);
  60. transform: rotate(0deg);
  61. }
  62. 100% {
  63. -webkit-transform: rotate(360deg);
  64. transform: rotate(360deg);
  65. }
  66. }
  67. }
  68. // Loader message
  69. .loading {
  70. .loader-message {
  71. color: @loader-color;
  72. font-size: @font-size-large;
  73. text-align: center;
  74. }
  75. }
  76. // Transmission Bars
  77. .loader-compact {
  78. margin: 0px auto;
  79. width: 50px;
  80. height: 30px;
  81. text-align: center;
  82. font-size: 10px;
  83. &>div {
  84. background-color: @loader-compact-color;
  85. height: 100%;
  86. width: 6px;
  87. display: inline-block;
  88. -webkit-animation: stretchdelay 1.2s infinite ease-in-out;
  89. animation: stretchdelay 1.2s infinite ease-in-out;
  90. }
  91. .rect2 {
  92. -webkit-animation-delay: -1.1s;
  93. animation-delay: -1.1s;
  94. }
  95. .rect3 {
  96. -webkit-animation-delay: -1.0s;
  97. animation-delay: -1.0s;
  98. }
  99. .rect4 {
  100. -webkit-animation-delay: -0.9s;
  101. animation-delay: -0.9s;
  102. }
  103. .rect5 {
  104. -webkit-animation-delay: -0.8s;
  105. animation-delay: -0.8s;
  106. }
  107. }
  108. @-webkit-keyframes stretchdelay {
  109. 0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
  110. 20% { -webkit-transform: scaleY(1.0) }
  111. }
  112. @keyframes stretchdelay {
  113. 0%, 40%, 100% {
  114. transform: scaleY(0.4);
  115. -webkit-transform: scaleY(0.4);
  116. } 20% {
  117. transform: scaleY(1.0);
  118. -webkit-transform: scaleY(1.0);
  119. }
  120. }
  121. // Loading overlay used for images
  122. .loading-overlay {
  123. position: absolute; // needs to be positioned inside relative
  124. top: 0px;
  125. left: 0px;
  126. display: table;
  127. background-color: @loading-overlay-bg;
  128. &>.overlay-icon {
  129. display: table-cell;
  130. vertical-align: middle;
  131. text-align: center;
  132. .loader-compact>div{
  133. background-color: @loading-overlay-color;
  134. }
  135. }
  136. }