1 @import 'mediawiki.skin.variables.less';
6 > .mw-spinner-container {
10 @mw-spinner-small-size: 20px;
11 @mw-spinner-large-size: 32px;
14 width: @mw-spinner-small-size;
15 height: @mw-spinner-small-size;
17 > .mw-spinner-container {
18 transform: scale( unit( @mw-spinner-small-size / 64 ) );
23 width: @mw-spinner-large-size;
24 height: @mw-spinner-large-size;
26 > .mw-spinner-container {
27 transform: scale( unit( @mw-spinner-large-size / 64 ) );
36 > .mw-spinner-container {
37 display: inline-block;
41 &.mw-spinner-small > .mw-spinner-container {
42 min-width: @mw-spinner-small-size;
45 &.mw-spinner-large > .mw-spinner-container {
46 min-width: @mw-spinner-large-size;
51 display: inline-block;
52 vertical-align: middle;
56 * CSS loading spinner adapted from loadingio, CC0
57 * https://github.com/loadingio/css-spinner/
60 transform-origin: 32px 32px;
61 animation: mw-spinner 1.2s linear infinite;
68 // If this was allowed to flip, then transform-origin would also need to be flipped,
69 // but that's not supported. Partial flipping causes visual issues (T292673).
75 background: @color-base;
79 transform: rotate( 0deg );
80 animation-delay: -1.1s;
84 transform: rotate( 30deg );
89 transform: rotate( 60deg );
90 animation-delay: -0.9s;
94 transform: rotate( 90deg );
95 animation-delay: -0.8s;
99 transform: rotate( 120deg );
100 animation-delay: -0.7s;
104 transform: rotate( 150deg );
105 animation-delay: -0.6s;
109 transform: rotate( 180deg );
110 animation-delay: -0.5s;
114 transform: rotate( 210deg );
115 animation-delay: -0.4s;
119 transform: rotate( 240deg );
120 animation-delay: -0.3s;
124 transform: rotate( 270deg );
125 animation-delay: -0.2s;
129 transform: rotate( 300deg );
130 animation-delay: -0.1s;
134 transform: rotate( 330deg );
140 @keyframes mw-spinner {