Absolutely position "legend" on grouped results
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / styles / mw.rcfilters.ui.ChangesListWrapperWidget.less
1 @import 'mediawiki.ui/variables';
2 @import 'mw.rcfilters.mixins';
3 @import 'mw.rcfilters.variables';
4
5 @keyframes fadeBlue {
6 60% {
7 border-top-color: @colorProgressive;
8 }
9 100% {
10 border-top-color: @colorGray12;
11 }
12 }
13
14 .mw-rcfilters-ui-changesListWrapperWidget {
15
16 &-newChanges {
17 min-height: 34px;
18 margin: 8px 0 0 0;
19 text-align: center;
20 }
21
22 &-previousChangesIndicator {
23 margin: 10px 0;
24 border-top: 2px solid @colorGray12;
25 animation: 1s ease fadeBlue;
26 }
27
28 &-results {
29 width: 35em;
30 margin: 5em auto;
31
32 &-noresult,
33 &-conflict {
34 margin-bottom: 0.5em;
35 font-weight: bold;
36 text-align: center;
37 }
38 }
39
40 // Rule needs to be specific
41 // We want the expand button to appear outside the color
42 // to match the way the general highlight background appears
43 &-enhanced-grey td:not( :nth-child( -n+2 ) ) {
44 background-color: @light-gray;
45 }
46
47 &-highlighted {
48 ul {
49 list-style: none;
50
51 li {
52 list-style: none;
53 }
54 }
55 }
56
57 &-enhancedView {
58 .mw-changeslist-legend {
59 z-index: 1;
60
61 &:not( .mw-collapsed ) {
62 .box-shadow( 0 1px 1px rgba( 0, 0, 0, 0.15 ) );
63 }
64 }
65 }
66
67 .mw-changeslist-legend {
68 background-color: @background-color-base;
69 border: 1px solid @colorGray12;
70 }
71
72 // Correction for Enhanced RC
73 // This is outside the scope of the 'highlights' wrapper
74 table.mw-enhanced-rc {
75 td:last-child {
76 width: 100%;
77 }
78 }
79
80 &-highlights {
81 display: none;
82 padding: 0 @result-circle-general-margin 0 0;
83 text-align: right;
84 // The width is 5 circles times their diameter + individual margin
85 // and then plus the general margin
86 width: ~'calc( ( @{result-circle-diameter} + @{result-circle-margin} ) * 5 )';
87 // And we want to shift the entire block to the left of the li
88 position: relative;
89 // Negative left margin of width + padding
90 margin-left: ~'calc( ( @{result-circle-diameter} + @{result-circle-margin} ) * -5 - @{result-circle-general-margin} )';
91
92 .mw-rcfilters-ui-changesListWrapperWidget-highlighted & {
93 display: inline-block;
94 }
95
96 // This needs to be very specific, since these are
97 // position rules that should apply to all overrides
98 .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-ui-changesListWrapperWidget-highlights > div&-circle {
99 .box-sizing( border-box );
100 margin-right: @result-circle-margin;
101 vertical-align: middle;
102 // This is to make the dots appear at the center of the
103 // text itself; it's a horrendous hack and blame JamesF for it.
104 margin-top: -2px;
105 }
106
107 &-color {
108
109 &-none {
110 .mw-rcfilters-mixin-circle( @highlight-none, @result-circle-diameter, 0, true );
111 display: inline-block;
112
113 .mw-rcfilters-highlight-color-c1 &,
114 .mw-rcfilters-highlight-color-c2 &,
115 .mw-rcfilters-highlight-color-c3 &,
116 .mw-rcfilters-highlight-color-c4 &,
117 .mw-rcfilters-highlight-color-c5 & {
118 display: none;
119 }
120 }
121 .result-circle( c1 );
122 .result-circle( c2 );
123 .result-circle( c3 );
124 .result-circle( c4 );
125 .result-circle( c5 );
126 }
127 }
128 }
129
130 // One color
131 .mw-rcfilters-highlight-color-c1 {
132 .highlight-changesListWrapperWidget( tint( @highlight-c1, 70% ); );
133 }
134
135 .mw-rcfilters-highlight-color-c2 {
136 .highlight-changesListWrapperWidget( tint( @highlight-c2, 70% ); );
137 }
138
139 .mw-rcfilters-highlight-color-c3 {
140 .highlight-changesListWrapperWidget( tint( @highlight-c3, 70% ); );
141 }
142
143 .mw-rcfilters-highlight-color-c4 {
144 .highlight-changesListWrapperWidget( tint( @highlight-c4, 70% ); );
145 }
146
147 .mw-rcfilters-highlight-color-c5 {
148 .highlight-changesListWrapperWidget( tint( @highlight-c5, 70% ); );
149 }
150
151 // Two colors
152 .highlight-color-mix( c1, c2 );
153 // Overriding .highlight-color-mix( c1, c3 ); to produce
154 // a custom color rather than the computed tint
155 // see https://phabricator.wikimedia.org/T161267
156 .mw-rcfilters-highlight-color-c1.mw-rcfilters-highlight-color-c3 {
157 .highlight-changesListWrapperWidget( @light-green );
158 }
159 .highlight-color-mix( c1, c4 );
160 .highlight-color-mix( c1, c5 );
161 .highlight-color-mix( c2, c3 );
162 .highlight-color-mix( c2, c4 );
163 .highlight-color-mix( c2, c5 );
164 .highlight-color-mix( c3, c4 );
165 .highlight-color-mix( c3, c5 );
166 .highlight-color-mix( c4, c5 );
167
168 // Three colors
169 .highlight-color-mix( c1, c2, c3 );
170 .highlight-color-mix( c1, c2, c5 );
171 .highlight-color-mix( c1, c2, c4 );
172 .highlight-color-mix( c1, c3, c4 );
173 .highlight-color-mix( c1, c3, c5 );
174 .highlight-color-mix( c1, c4, c5 );
175 .highlight-color-mix( c2, c3, c4 );
176 .highlight-color-mix( c2, c3, c5 );
177 .highlight-color-mix( c2, c4, c5 );
178 .highlight-color-mix( c3, c4, c5 );
179
180 // Four colors
181 .highlight-color-mix( c1, c2, c3, c4 );
182 .highlight-color-mix( c1, c2, c3, c5 );
183 .highlight-color-mix( c1, c2, c4, c5 );
184 .highlight-color-mix( c1, c3, c4, c5 );
185 .highlight-color-mix( c2, c3, c4, c5 );
186
187 // Five colors:
188 .mw-rcfilters-highlight-color-c1.mw-rcfilters-highlight-color-c2.mw-rcfilters-highlight-color-c3.mw-rcfilters-highlight-color-c4.mw-rcfilters-highlight-color-c5 {
189 .highlight-changesListWrapperWidget( tint( mix( @highlight-c1, mix( @highlight-c2, mix( @highlight-c3, average( @highlight-c4, @highlight-c5 ), 20% ), 20% ), 20% ), 15% ) );
190 }