blob: 0c4106849bd53cf645f2412ac7e1e7b8db7ceab7 [file] [log] [blame]
Akron49bfdbf2016-11-22 21:47:33 +01001@charset "utf-8";
2@import "../util";
3
Akron7e5afce2020-08-25 15:50:19 +02004/**
5 * Styles for the KWIC view.
6 */
7
Akron08b82d62016-12-05 15:06:05 +01008$font-size: 10pt;
Akron49bfdbf2016-11-22 21:47:33 +01009
10#search {
Akron7e5afce2020-08-25 15:50:19 +020011 position: relative;
Akron49bfdbf2016-11-22 21:47:33 +010012 margin-bottom: 30px;
Akron7e5afce2020-08-25 15:50:19 +020013 overflow: visible;
Akron49bfdbf2016-11-22 21:47:33 +010014
Akron7e5afce2020-08-25 15:50:19 +020015 div.matchinfo {
16 display: none;
17 }
Akron49bfdbf2016-11-22 21:47:33 +010018
Akron7e5afce2020-08-25 15:50:19 +020019 > ol {
20 overflow-x: hidden;
21 overflow-y: visible;
22 width: auto;
23 text-indent: 0;
24 list-style-type: none;
25 margin: 0;
26 padding: 0;
27 border: $result-border-size solid $kwic-border;
28 font-size: $font-size;
Akronf74cd2e2018-08-15 16:26:18 +020029
Akron7e5afce2020-08-25 15:50:19 +020030 > li {
31 display: flex;
32 flex-direction: row;
33 flex-wrap: nowrap;
34 align-items: stretch;
35 align-content: stretch;
36
37 border: {
38 style: solid;
39 color: $dark-orange;
40 width: 0;
41 }
Akronf74cd2e2018-08-15 16:26:18 +020042
Akron7e5afce2020-08-25 15:50:19 +020043 // Actions
44 .button-group.button-view {
45 display: none;
46 }
47
48 // Zebra style
49 &:nth-of-type(even) div.match-main div.match-wrap {
50 background-color: $kwic-line-even;
51 }
52
53 // References
54 p.ref {
55 display: none;
Akronf74cd2e2018-08-15 16:26:18 +020056 }
57
Akron7e5afce2020-08-25 15:50:19 +020058 div.meta,
59 div.match-main {
60 position: relative;
61 cursor: pointer;
Akron46b9f212017-05-01 13:55:17 +020062 }
Akron7e5afce2020-08-25 15:50:19 +020063
64 div.match-main {
65 display: block;
66 flex: 7 0;
67 z-index: 4;
68 overflow: hidden;
69
70 > div.match-wrap {
71 width: 99999%;
72 margin-left: -49999.5%;
73 background-color: $kwic-line-noneven;
74 overflow-x: hidden;
75 overflow-y: visible;
76 white-space: normal;
77 }
Akron46b9f212017-05-01 13:55:17 +020078 }
Akron7e5afce2020-08-25 15:50:19 +020079
80 div.meta {
81 flex: 1 0;
82 min-width: 12em;
83 max-width: 15em;
84 text-align: left;
85 width: 2px;
86 z-index: 5;
87 overflow-y: hidden;
88 overflow-x: hidden;
89 text-overflow: ellipsis;
90 white-space: nowrap;
91 background-color: lighten($middle-grey, 5%);
92 color: $nearly-white;
93 font-size: 75%;
94 padding: 0 5pt;
95
96 border: {
97 color: $dark-grey;
98 style: solid;
99 width: 2px 1px 0 0;
100 }
101
102 // Tiny hack
103 &:before {
104 content: " ";
105 display: inline-block;
106 height: 100%;
107 vertical-align: middle;
108 }
109
110 &:empty {
111 border-width: 0 1px 0 0;
112 }
113
114 &.flip {
115 background-color: lighten($middle-grey, 17%);
116 }
Akron08b82d62016-12-05 15:06:05 +0100117 }
Akron7e5afce2020-08-25 15:50:19 +0200118
119 &:first-of-type div.meta {
120 border-top-width: 0;
121 }
122
123 &:last-of-type div.meta {
124 border-bottom-width: 0;
125 }
Akron08b82d62016-12-05 15:06:05 +0100126 }
Akron49bfdbf2016-11-22 21:47:33 +0100127 }
128}
129
Akron49bfdbf2016-11-22 21:47:33 +0100130
Akron7e5afce2020-08-25 15:50:19 +0200131/**
132 * Snippet rules
Akron49bfdbf2016-11-22 21:47:33 +0100133 */
Akron49bfdbf2016-11-22 21:47:33 +0100134div.snippet {
135 text-overflow: ellipsis;
Akron7e5afce2020-08-25 15:50:19 +0200136 text-indent: 0;
137 text-shadow: $light-shadow;
138 font-size: 0;
139 white-space: nowrap !important;
Akronf74cd2e2018-08-15 16:26:18 +0200140
Akron49bfdbf2016-11-22 21:47:33 +0100141 > span, mark {
Akron7e5afce2020-08-25 15:50:19 +0200142 padding: 5pt 0 6pt 0;
Akron2b75b132018-08-13 09:47:47 +0200143 font-size: $font-size;
Akron49bfdbf2016-11-22 21:47:33 +0100144 }
Akron7e5afce2020-08-25 15:50:19 +0200145
146 > mark,
147 > span.match {
Akron49bfdbf2016-11-22 21:47:33 +0100148 font-weight: bold;
Akron08b82d62016-12-05 15:06:05 +0100149 color: $black;
150 text-shadow: none;
Akron49bfdbf2016-11-22 21:47:33 +0100151 padding-left: 4pt;
152 padding-right: 2pt;
153 }
Akron7e5afce2020-08-25 15:50:19 +0200154
Akron09e7f1f2018-05-28 14:08:14 +0200155 > span.match > span.cutted::after {
Akron7e5afce2020-08-25 15:50:19 +0200156 @include icon-font;
Akron09e7f1f2018-05-28 14:08:14 +0200157 content: $fa-cut;
Akron7e5afce2020-08-25 15:50:19 +0200158 color: $light-green;
159
Akron09e7f1f2018-05-28 14:08:14 +0200160 padding: {
Akron7e5afce2020-08-25 15:50:19 +0200161 left: 4pt;
Akron09e7f1f2018-05-28 14:08:14 +0200162 right: 4pt;
163 }
Akronb6685bb2018-02-04 00:44:47 +0100164 }
Akron86817092024-05-27 17:52:21 +0200165
Akron7e5afce2020-08-25 15:50:19 +0200166 &.startMore:before,
167 &.endMore:after {
168 content: "…";
169 padding-left: 2pt;
170 padding-right: 2pt;
Akronb6685bb2018-02-04 00:44:47 +0100171 }
Akron3bb91bc2016-12-02 16:43:17 +0100172
Akron7e5afce2020-08-25 15:50:19 +0200173 // Flags
174 div.flag {
175 position: absolute;
176 height: 100%;
177 top: 0;
178 left: 0;
179 width: 11px;
180 background-color: $dark-orange;
181 border-right: 1px solid $darkest-orange;
Akron49bfdbf2016-11-22 21:47:33 +0100182 }
183}
Akron49bfdbf2016-11-22 21:47:33 +0100184
Akron8b592d42018-01-26 18:33:06 +0100185
Akron49bfdbf2016-11-22 21:47:33 +0100186/**
Akron7e5afce2020-08-25 15:50:19 +0200187 * Active rules
Akron49bfdbf2016-11-22 21:47:33 +0100188 */
Akron2a4e9af2017-12-22 15:45:22 +0100189body.no-js #search > ol > li:active,
190#search > ol > li.active,
191#search > ol > li:target {
Akron7e5afce2020-08-25 15:50:19 +0200192 position: relative;
193 display: block;
Akron2a4e9af2017-12-22 15:45:22 +0100194 background-color: $dark-orange;
Akron7e5afce2020-08-25 15:50:19 +0200195 text-align: left;
196 border-width: 2px;
Akron548ee672020-10-19 17:41:20 +0200197 white-space: normal;
Akron7e5afce2020-08-25 15:50:19 +0200198 height: auto;
199 width: auto;
200 overflow: hidden;
Akron3bb91bc2016-12-02 16:43:17 +0100201
Akron7e5afce2020-08-25 15:50:19 +0200202 div.matchinfo {
203 display: block;
Akron49bfdbf2016-11-22 21:47:33 +0100204 }
Akron7e5afce2020-08-25 15:50:19 +0200205
206 + li.active {
207 border-top: $border-size solid $light-grey;
208 padding-top: 3 * $border-size;
209
210 .button-group.button-view {
211 padding-top: 3 * $border-size;
212 }
Akronf74cd2e2018-08-15 16:26:18 +0200213 }
214
Akron7e5afce2020-08-25 15:50:19 +0200215 .snippet {
216 white-space: normal !important;
217 padding: 2pt 0 5pt 5pt;
218 background-color: $light-orange;
219
220 span {
221 display: inline !important;
222 }
223
Akron86817092024-05-27 17:52:21 +0200224 > * {
225 background-color: transparent;
226 }
Akron7e5afce2020-08-25 15:50:19 +0200227
Akron86817092024-05-27 17:52:21 +0200228 span.inline-marker {
229 font-weight: normal;
230 color: $dark-grey;
231 &::before, &::after {
232 display: inline-block !important;
233 border-width: 2px;
234 border-radius: 0;
235 margin: 0 3pt;
236 padding: 0 4pt;
237 }
238 &::before {
239 color: white;
240 margin-right: 0;
241 border-top-left-radius: 5px;
242 border-bottom-left-radius: 5px;
243 border-width-right: 0;
244 background-color: $dark-orange !important;
245 content: attr(data-key) ': ';
246 }
247
248 &::after {
249 border-width-left: 0;
250 margin-left: 0;
251 padding-left: 0;
252 border-top-right-radius: 5px;
253 border-bottom-right-radius: 5px;
254 background-color: $dark-orange !important;
255 content: attr(data-value);
256 }
257 }
258
Akron7e5afce2020-08-25 15:50:19 +0200259 div.flag {
260 display: none;
261 }
262
263 margin: {
264 top: 0;
265 right: $right-view-distance;
266 bottom: 0;
267 left: 0;
268 }
269
270 > span {
271 line-height: 1.4em;
272 width: auto;
273
274 &.context-left {
275 margin-left: 0;
276 display: inline;
277 overflow: visible;
278 text-align: left;
279 width: auto;
280 }
281 }
Akron3bb91bc2016-12-02 16:43:17 +0100282 }
Akron7e5afce2020-08-25 15:50:19 +0200283
Akronbfe912c2018-07-17 19:30:52 +0200284 .button-group.button-view {
Akron3bb91bc2016-12-02 16:43:17 +0100285 display: block;
286 }
Akron7e5afce2020-08-25 15:50:19 +0200287
288 div.match-main {
289 display: block;
290 width: 100%;
291
292 div.match-wrap {
293 cursor: default;
294 min-height: 20pt;
295 background-color: $dark-orange;
296 width: 100%;
297 margin-left: 0;
298 overflow-x: visible;
Akron548ee672020-10-19 17:41:20 +0200299 white-space: normal;
Akron49bfdbf2016-11-22 21:47:33 +0100300 }
301 }
Akron49bfdbf2016-11-22 21:47:33 +0100302
Akron49bfdbf2016-11-22 21:47:33 +0100303 div.meta {
Akron97d42802016-11-26 22:45:46 +0100304 display: none;
Akron49bfdbf2016-11-22 21:47:33 +0100305 }
Akron7e5afce2020-08-25 15:50:19 +0200306
Akron49bfdbf2016-11-22 21:47:33 +0100307 p.ref {
Akron7e5afce2020-08-25 15:50:19 +0200308 display: block;
Akron9bddc842021-12-14 10:12:10 +0100309 color: $nearly-white;
310 padding: 3pt 10pt 3pt 3pt;
311 padding-right: $right-view-distance;
312 margin: 0pt;
313 width: 100%;
314 bottom: 0;
315 z-index: 30;
Akron7e5afce2020-08-25 15:50:19 +0200316
Akron9bddc842021-12-14 10:12:10 +0100317 > span.sigle {
318 font-size: 75%;
319 vertical-align: top;
320 color: $light-orange;
321 float: right;
322 }
323
324 > div.button-panel + * {
325 margin-left: .5em;
326 }
Akron49bfdbf2016-11-22 21:47:33 +0100327 }
328}
Akron49bfdbf2016-11-22 21:47:33 +0100329
Akronf74cd2e2018-08-15 16:26:18 +0200330
331/**
Akron7e5afce2020-08-25 15:50:19 +0200332 * Alignment rules
Akronf74cd2e2018-08-15 16:26:18 +0200333 */
Akron7e5afce2020-08-25 15:50:19 +0200334#search ol {
335 span.context-left {
336 display: inline-block;
337 width: 50.01%;
338 text-align: right;
Akronad739342018-08-14 13:48:14 +0200339 }
340
Akron7e5afce2020-08-25 15:50:19 +0200341 // Right aligned
342 &.align-right {
343 text-align: right;
Akronf74cd2e2018-08-15 16:26:18 +0200344
Akron7e5afce2020-08-25 15:50:19 +0200345 div.match-main span.context-right {
346 display: inline-block;
347 width: 49.915%;
Akronf74cd2e2018-08-15 16:26:18 +0200348 text-align: left;
Akron7e5afce2020-08-25 15:50:19 +0200349 }
350 }
351
352 // Center aligned
353 &.align-center {
354 div.match-main {
355 width: 100% !important;
356
357 > .match-wrap {
358 position: relative;
359 margin-left: 0;
360 }
361 }
362
363 li:not(.active) div.snippet {
364 white-space: normal;
365 text-align: center;
366 width: 100000pt;
367 margin-left: -50000pt;
368
369 span.context-left {
370 display: inline-block;
371 text-align: right;
372 width: 40000pt;
373 margin-left: 70vw;
374 }
375
376 span.context-right {
377 display: inline-block;
378 text-align: left;
379 width: 40000pt;
380 }
Akronad739342018-08-14 13:48:14 +0200381 }
382 }
383}
384
385
Akron7e5afce2020-08-25 15:50:19 +0200386/**
387 * Fix empty contexts
388 */
389#search ol span {
390 &.context-left,
391 &.context-right {
392 &:empty::after {
393 content: " ";
394 display: inline-block;
395 }
Akron01231002017-06-29 20:47:58 +0200396 }
397}
Akron49bfdbf2016-11-22 21:47:33 +0100398
Akron7e5afce2020-08-25 15:50:19 +0200399
Akron49bfdbf2016-11-22 21:47:33 +0100400/**
Akron7e5afce2020-08-25 15:50:19 +0200401 * Highlight rules
Akron49bfdbf2016-11-22 21:47:33 +0100402 */
403mark {
404 background-color: inherit;
Akron7e5afce2020-08-25 15:50:19 +0200405 color: inherit;
Akron49bfdbf2016-11-22 21:47:33 +0100406}
407
408mark > mark,
409em,
410.level-0 {
411 border-bottom-width: 2px;
412 border-bottom-style: solid;
Akron7e5afce2020-08-25 15:50:19 +0200413 padding-bottom: 0px !important;
414 font-style: normal;
Akron49bfdbf2016-11-22 21:47:33 +0100415}
416
417mark > mark > mark,
418em > em,
419.level-1 {
Akron3bb91bc2016-12-02 16:43:17 +0100420 padding-bottom: 3px !important;
Akron49bfdbf2016-11-22 21:47:33 +0100421}
422
423mark > mark > mark > mark,
424em > em > em,
425.level-2 {
Akron3bb91bc2016-12-02 16:43:17 +0100426 padding-bottom: 6px !important;
Akron49bfdbf2016-11-22 21:47:33 +0100427}
428
429
430#search > ol > li {
431 &:not(.active) mark > mark > mark > mark,
432 &:not(.active) em > em > em {
433 line-height: 180%;
434 }
435 &.active mark > mark > mark > mark,
436 &.active em > em > em {
437 line-height: 250%;
438 }
439}
440
441.class-1 { border-color: $kwic-highlight-1; }
442.class-2 { border-color: $kwic-highlight-2; }
443.class-3 { border-color: $kwic-highlight-3; }
444.class-4 { border-color: $kwic-highlight-4; }