Merge "Add tags for undo edits"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / styles / mw.rcfilters.less
1 @import 'mediawiki.mixins.animation';
2 @import 'mediawiki.ui/variables';
3 @import 'mw.rcfilters.mixins';
4
5 @rcfilters-spinner-size: 12px;
6 @rcfilters-head-min-height: 210px;
7 @rcfilters-head-margin-bottom: 20px;
8 @rcfilters-wl-head-min-height: 300px;
9
10 // Corrections for the standard special page
11 .client-js {
12 .cloptions {
13 border: 0;
14 }
15
16 // Reserve space for the UI while it loads
17 .rcfilters-head {
18 min-height: @rcfilters-head-min-height;
19 margin-bottom: @rcfilters-head-margin-bottom;
20 }
21
22 // On the watchlist, reserve a bit more
23 .mw-special-Watchlist .rcfilters-head {
24 min-height: @rcfilters-wl-head-min-height;
25 }
26
27 .mw-recentchanges-toplinks {
28 padding-left: 0.5em;
29
30 &:not( .mw-recentchanges-toplinks-collapsed ) {
31 margin-bottom: 0.5em;
32 border: 1px solid @colorGray12; // Same as the legend
33 padding: 0 0.5em 0.5em 0.5em;
34 }
35
36 /* stylelint-disable declaration-no-important */
37 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
38 padding-right: 1.2em !important;
39
40 > .oo-ui-indicatorElement-indicator {
41 right: 0 !important;
42 width: 0.9375em !important;
43 }
44 }
45 /* stylelint-enable declaration-no-important */
46 }
47
48 body:not( .mw-rcfilters-ui-initialized ) {
49 .mw-recentchanges-toplinks.mw-recentchanges-toplinks-collapsed {
50 // Similar to the watchlist-details hack, we are going to make this float left
51 // while loading to prevent jumpiness in the min-height calculation
52 float: left;
53
54 .mw-recentchanges-toplinks-content {
55 display: none;
56 }
57 }
58
59 .rcfilters-head {
60 opacity: 0.5;
61 pointer-events: none;
62
63 .cloptions {
64 display: none;
65 }
66
67 }
68 }
69
70 .mw-changeslist {
71 // Reserve space for the highlight circles
72 ul,
73 table.mw-enhanced-rc {
74 .result-circle-margin();
75 }
76 }
77
78 // Temporarily hide any specific 'no result' message while we load rcfilters.
79 .mw-changeslist-empty,
80 .mw-changeslist-timeout,
81 .mw-changeslist-notargetpage {
82 display: none;
83 }
84
85 body.mw-rcfilters-ui-loading .mw-changeslist {
86 opacity: 0.5;
87 }
88
89 .rcfilters-spinner {
90 display: none;
91 position: absolute;
92 left: 50%;
93 // Make sure the middle of the spinner is centered, rather than its left edge
94 margin-left: -3 * @rcfilters-spinner-size / 2;
95
96 opacity: 0.8;
97 white-space: nowrap;
98
99 & .rcfilters-spinner-bounce,
100 &:before,
101 &:after {
102 content: '';
103 display: inline-block;
104 width: @rcfilters-spinner-size;
105 height: @rcfilters-spinner-size;
106 background-color: @colorGray12;
107 border-radius: 100%;
108 .animation( rcfiltersBouncedelay 1.5s ease-in-out -0.16s infinite both );
109 }
110
111 &:before {
112 .animation-delay( -0.33s );
113 }
114
115 &:after {
116 .animation-delay( 0s );
117 }
118 }
119 body:not( .mw-rcfilters-ui-initialized ) .rcfilters-spinner {
120 display: block;
121 // When initializing, display the spinner on top of the area where the UI will appear
122 margin-top: -( @rcfilters-head-min-height + @rcfilters-head-margin-bottom ) / 2;
123 }
124 body.mw-rcfilters-ui-loading .rcfilters-spinner {
125 display: block;
126 // When loading new results, display the spinner on top of the results area
127 margin-top: 2em;
128 }
129
130 #contentSub,
131 form#mw-watchlist-resetbutton {
132 display: none;
133 }
134
135 // Make the watchlist-details message display while loading, but make it not take up any
136 // space. This makes the min-height trick work better.
137 .watchlistDetails {
138 float: left;
139 }
140 }
141
142 .mw-rcfilters-staticfilters-selected {
143 font-weight: bold;
144 }
145
146 @-webkit-keyframes rcfiltersBouncedelay {
147 0%,
148 80%,
149 100% {
150 -webkit-transform: scale( 0.7 );
151 transform: scale( 0.7 );
152 }
153 40% {
154 background-color: @colorGray10;
155 -webkit-transform: scale( 1 );
156 transform: scale( 1 );
157 }
158 }
159
160 @-moz-keyframes rcfiltersBouncedelay {
161 0%,
162 80%,
163 100% {
164 -moz-transform: scale( 0.7 );
165 transform: scale( 0.7 );
166 }
167 40% {
168 background-color: @colorGray10;
169 -moz-transform: scale( 0.7 );
170 transform: scale( 1 );
171 }
172 }
173
174 @keyframes rcfiltersBouncedelay {
175 0%,
176 80%,
177 100% {
178 transform: scale( 0.7 );
179 }
180 40% {
181 background-color: @colorGray10;
182 transform: scale( 1 );
183 }
184 }