]> git.plutz.net Git - shellwiki/blob - themes/default.css
improved styling and options of search macro
[shellwiki] / themes / default.css
1 /*
2 # Copyright 2022 - 2024 Paul Hänsch
3
4 # Permission to use, copy, modify, and/or distribute this software for any
5 # purpose with or without fee is hereby granted, provided that the above
6 # copyright notice and this permission notice appear in all copies.
7
8 # THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11 # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
14 # IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 html { min-height: 100%; }
18
19 body {
20   position: absolute;
21   width: 100%;
22   min-height: 100%;
23   padding-bottom: 6em;
24   background-color: #EEE;
25   font-size: 12pt;
26 }
27
28 header, footer {
29   background-color: #FFF;
30   box-shadow: 0 0 .75em;
31   width: 100%;
32   z-index: 1;
33 }
34
35 footer {
36   padding-top: .5em;
37   position: absolute;
38   bottom: 0;
39 }
40
41 header > :last-child,
42 main > :last-child {
43   margin-bottom: 0;
44 }
45
46 header h1,
47 header h2,
48 header .menu,
49 footer .menu {
50   display: inline-block;
51 }
52
53 header .menu,
54 footer .menu { list-style: none; }
55
56 header .menu > ul > li,
57 header .menu > ol > li,
58 footer .menu > ul > li,
59 footer .menu > ol > li {
60   display: inline-block;
61   margin-right: .5em;
62   vertical-align: top;
63 }
64
65 header .menu.dropdown li > ul,
66 header .menu.dropdown li > ol {
67   display: none;
68   position: absolute;
69   background-color: #FFF;
70   margin: 0;
71   padding: .25em .5em;
72   padding-left: 1.5em;
73   box-shadow: 0 0 .75em;
74 }
75 header .menu.dropdown li:hover > ul,
76 header .menu.dropdown li:hover > ol {
77   display: table;
78 }
79
80 main .pagemenu {
81   list-style: none;
82   background-color: #666;
83   margin: 0;
84   box-shadow: 0 0 .5em;
85   padding: .25em 2em;
86 }
87 main .pagemenu li {
88   display: inline-block;
89   margin-right: 1em;
90 }
91 main .pagemenu li a { color: #FFF; }
92
93 main article,
94 main > form#renamepage, main > form#movepage,
95 main > form#deletepage, 
96 [id$="/[attachment]"] main > form {
97   margin: 1em;
98   padding: .125em 1em 1em 1em;
99   box-shadow: .25em .25em .75em;
100   background-color: #FFF;
101 }
102
103 main > form#deletepage label[for=delsub] {
104   text-decoration: underline;
105 }
106 main > form#deletepage input#delsub:checked + label + ul li.delsub {
107   text-decoration: line-through;
108 }
109
110 main > form#movepage input,
111 main > form#renamepage input {
112   min-width: 30em;
113   max-width: 100%;
114 }
115
116 [id$="/[revision]"] main .revisions,
117 [id$="/[attachment]"] main > .attachment.list {
118   margin: 1em;
119   padding: 1em 2em;
120 }
121 [id$="/[revision]"] main .revisions:before,
122 [id$="/[attachment]"] main > .attachment.list:before {
123   content: '';
124   position: absolute;
125   top: 0; bottom: 0; left: 0; right: 0;
126   background-color: #FFF;
127   box-shadow: .25em .25em .75em;
128 }
129
130 main code {
131   padding: .125em .25em;
132   background-color: #EEE;
133 }
134 main pre {
135   padding: .5em .5em;
136   background-color: #EEE;
137   max-width: 100%;
138   overflow-x: auto;
139 }
140 main pre > code {
141   padding: 0;
142 }
143
144 li.task > input[type=checkbox][disabled],
145 li.task > p > input[type=checkbox][disabled] {
146   display: none;
147 }
148 li.task > p:first-child { display: inline-block;}
149
150 -li.task:before { font-size: 1.125em; }
151 li.task.pending:before  { content: '\274f  '; color: #222; }
152 li.task.partial:before  { content: '\25d4  '; color: #880; }
153 li.task.negative:before { content: '\2718  '; color: #800; }
154 li.task.done:before     { content: '\2714  '; color: #080; }
155 li.task.unsure:before   { content: '?  '    ; color: #880; font-weight: bold; padding-left: 2pt; }
156
157 /* Alternative Check Symbols, all from "geometric shapes" block */ /*
158 -li.task.pending:before  { content: '\25a1  '; color: #222; }
159 -li.task.partial:before  { content: '\25d4  '; color: #880; }
160 -li.task.negative:before { content: '\25a8  '; color: #800; }
161 -li.task.done:before     { content: '\25a3  '; color: #080; }
162 */
163
164 h1 { text-align: center; }
165 .center { text-align: center; }
166
167 form.newpage, form.search {
168   margin-bottom: 1em;
169 }
170 form.search { text-align: center; }
171 input.search, input[type="search"] {
172   min-width: 50%;
173   max-width: 80%;
174   max-width: calc(100%  - 2.5em);
175 }
176 p.search.hits { text-align: center; }
177 ul.search.hits, ol.search.hits {
178   margin-left: auto; margin-right: auto;
179   width: 100%; max-width: 540pt;
180   list-style: none;
181   padding-left: 0;
182 }
183 .search.hits li {
184   padding: 0 .75em;
185 }
186 .search.hits li:hover {
187   background-color: #F4F4F4;
188 }
189 .search.hits li a {
190   display: block;
191 }
192 .search.hits li p {
193   margin: 0 auto .5em auto;
194   white-space: pre-line;
195 }
196 .search.hits p.path {
197   color: #444;
198   font-size: .875em;
199   margin-top: -.5em;
200   margin-left: 1.5ex;
201 }
202
203 table {
204   min-width: 50%;
205   margin-left: auto;
206   margin-right: auto;
207 }
208
209 @media(min-width: 540pt) {
210   .half {
211     display: inline-block;
212     width: 50%;
213     padding-right: 1em;
214     vertical-align: top;
215   }
216   h1.half, h2.half, h3.half, h4.half, h5.half, h6.half {
217     width: 100%;
218   }
219   .right {
220     float: right;
221     clear: both;
222     width: 33%;
223     margin: .25em 0 .5em 1em;
224   }
225   .left {
226     float: left;
227     clear: both;
228     width: 33%;
229     margin: .25em 1em .5em 0;
230   }
231   .left .left, .left .right,
232   .right .left, .right .right,
233   .half .left, .half .right {
234     float: none;
235     width: 100%;
236     margin: .25em 0 .5em 0;
237   }
238   section.left  > :first-child,
239   section.right > :first-child {
240     float: none;
241     margin: 0 0 .5em 0;
242   }
243   .left  > section:first-child > :first-child,
244   .right > section:first-child > :first-child {
245     margin-top: 0;
246   }
247   .left table, .right table, .half table {
248     width: 100%;
249   }
250
251   .left  input.search, .left  input[type="search"],
252   .right input.search, .right input[type="search"] {
253     width: 80%;
254     width: calc(100% - 2.5em);
255   }
256   ul.search.hits, ol.search.hits {
257     min-width: 50%;
258   }
259 }
260
261
262 /* === Editor === */
263
264 [id$="/[edit]"] main .pagemenu {
265   margin-bottom: 1em;
266 }
267
268 .tab[name=edithelp] ~ .tab.editor textarea,
269 .tab[name=edithelp] ~ .tab.syntax,
270 .tab[name=edithelp] ~ .tab.attach,
271 .tab[name=edithelp] ~ .tab.transl {
272   background-color: #FFF;
273   min-height: 20em; min-height: 50vh;
274 }
275
276 .tab[name=edithelp] ~ .tab.editor textarea {
277   width: 100%;
278   font-family: monospace;
279   font-size: inherit;
280 }
281
282 .tab[name=edithelp] ~ .tab.attach {
283   padding-top: 1em;
284   padding-left: 7em;
285 }
286 .tab[name=edithelp] ~ .tab.attach .aimg img {
287   float: left;
288   max-height: 4em;
289   margin-left: -6em;
290 }
291
292 .tab[name=edithelp] ~ .tab.transl {
293   font-family: monospace;
294   white-space: pre;
295 }
296
297 .tab[name=edithelp]#editor:checked ~ .tab.editor,
298 .tab[name=edithelp]#syntax:checked ~ .tab.syntax,
299 .tab[name=edithelp]#attach:checked ~ .tab.attach,
300 .tab[name=edithelp]#transl:checked ~ .tab.transl {
301   display: block;
302 }
303
304
305 /* === Attachments === */
306
307 .attachment.list button[name=delete] {
308   font-size: .75em;
309   line-height: 1.25em;
310   margin-right: 1.25em;
311 }
312 .attachment.list .size,
313 .attachment.list .date {
314   font-size: .875em;
315   top: -.25em;
316 }
317
318 .attachment.list .name:after {
319   white-space: pre-line;
320   content: "\0a";
321 }
322 .attachment.list .size {
323   margin-right: 1em;
324 }
325
326 .revisions li { margin: 1em 0; }
327 .revisions li span.hash,
328 .revisions li span.date {
329   margin-right: 1em;
330 }
331
332 .revisions .diff span {
333   font-family: monospace;
334   display: block;
335   white-space: pre;
336   line-height: 1.375em;
337 }
338 .revisions .diff span.linenum { color: #D60; }
339 .revisions .diff span.linedel { color: #A00; }
340 .revisions .diff span.lineadd { color: #0A0; }
341 .revisions .diff span.linenote { color: #AAA; }
342
343
344 [id$="/[attachment]"] input[type=radio].tab ~ div.tab {
345   display: block;
346   padding-top: 1em;
347 }
348 [id$="/[attachment]"] input[type=radio].tab ~ div.tab ul.attachment.list {
349   list-style: none;
350   margin-left: 0;
351 }
352
353 .tab ul li input[name=select],
354 .tab ul li label.name,
355 .tab ul li a.name,
356 .tab ul li input.name {
357   display: none;
358 }
359
360 [id$="/[attachment]"] input[type=radio].tab#tview:checked ~ div.tab ul li a.name,
361 [id$="/[attachment]"] input[type=radio].tab#tdel:checked  ~ div.tab ul li input[name=select],
362 [id$="/[attachment]"] input[type=radio].tab#tdel:checked  ~ div.tab ul li label.name,
363 [id$="/[attachment]"] input[type=radio].tab#tmove:checked ~ div.tab ul li input[name=select],
364 [id$="/[attachment]"] input[type=radio].tab#tmove:checked ~ div.tab ul li label.name {
365   display: inline;
366 }
367 [id$="/[attachment]"] input[type=radio].tab#tren:checked ~ .tab ul li input.name {
368   display: block;
369 }
370
371 [id$="/[attachment]"] label[for=moveto], [id$="/[attachment]"] input#moveto,
372 [id$="/[attachment]"] button[name=action] { display: none; }
373
374 [id$="/[attachment]"] .upload button[name=action] { display: inline-block; }
375 [id$="/[attachment]"] input[type=radio].tab#tdel:checked  ~ div.tab button[name=action][value=delete],
376 [id$="/[attachment]"] input[type=radio].tab#tmove:checked ~ div.tab label[for=moveto],
377 [id$="/[attachment]"] input[type=radio].tab#tmove:checked ~ div.tab input#moveto,
378 [id$="/[attachment]"] input[type=radio].tab#tmove:checked ~ div.tab button[name=action][value=move],
379 [id$="/[attachment]"] input[type=radio].tab#tren:checked  ~ div.tab button[name=action][value=rename] {
380   display: inline;
381 }
382
383
384 /* === Macros === */
385
386 .macro.toc {
387   display: inline-block;
388   list-style-position: inside;
389   margin-left: 0;
390   background-color: #DDD;
391   background-color: rgba(0, 0, 0, .125);
392   padding: .75em 1em;
393   border: 1pt solid;
394   border-radius: 2pt;
395 }
396 .macro.toc li.h2 { margin-left: 1.25em; }
397 .macro.toc li.h3 { margin-left: 2.5em; }
398 .macro.toc li.h4 { margin-left: 3.75em; }
399 .macro.toc li.h5 { margin-left: 5em; }
400 .macro.toc li.h6 { margin-left: 6.25em; }
401
402
403 .macro.gallery {
404   text-align: center;
405   margin: 2em 0;
406   padding: .5em .125em;
407   background-color: #444;
408   clear: both;
409 }
410 .macro.gallery img {
411   max-height: 9em;
412   margin: 0 .25em;
413 }
414
415
416 ul.macro.tag { padding: 0; }
417 .macro.tag li.tag {
418   display: inline-block;
419   color: #FFF;
420   background-color: #333;
421   font-size: .875em;
422   padding: 0 .5em;
423   margin: .25em .25em 0 0;
424   border-radius: .375em;
425 }
426
427
428 .macro.taglist li {
429   display: inline-block;
430   margin-right: .75em;
431 }
432 .macro.taglist.cloud li[rel="0"] { font-size: 6pt; }
433 .macro.taglist.cloud li[rel="1"] { font-size: 7.5pt; }
434 .macro.taglist.cloud li[rel="2"] { font-size: 9pt; }
435 .macro.taglist.cloud li[rel="3"] { font-size: 11.5pt; }
436 .macro.taglist.cloud li[rel="4"] { font-size: 13pt; }
437 .macro.taglist.cloud li[rel="5"] { font-size: 14.5pt; }
438 .macro.taglist.cloud li[rel="6"] { font-size: 16pt; }
439 .macro.taglist.cloud li[rel="7"] { font-size: 17.5pt; }
440 .macro.taglist.cloud li[rel="8"] { font-size: 19pt; }
441 .macro.taglist.cloud li[rel="9"] { font-size: 21.5pt; }
442
443
444 .macro.changes td .date {
445   display: block;
446   font-size: .75em;
447 }
448 .macro.changes td.outdated,
449 .macro.changes td.current,
450 .macro.changes td.missing {
451   text-align: center;
452 }
453 .macro.changes th { background-color: #EEF; }
454 .macro.changes td { background-color: #DFF; }
455 .macro.changes td.outdated { background-color: #FFD; }
456 .macro.changes td.current  { background-color: #DFD; }
457 .macro.changes td.missing  { background-color: #FDD; }
458
459
460 .macro.calendar.cal_month {
461   border: 1pt solid #AAA;
462   -box-shadow: .25em .25em .75em #AAA;
463 }
464 .macro.calendar.cal_month td {
465   padding: 0 .25em;
466   vertical-align: top;
467 }
468 .macro.calendar.cal_month td > label {
469   display: block;
470   background-color: #F4F4F4;
471   text-align: center;
472   margin-right: 0;
473 }
474 .macro.calendar.cal_month td > ul {
475   padding: .25em 1em;
476   margin-bottom: .125em;
477 }
478 .macro.calendar.cal_month td > ul > li {
479   display: block;
480 }