|
1
|
/* This CSS file holds the default implementations for all of fossil's |
|
2
|
CSS classes. When /style.css is requested, the rules in this file |
|
3
|
are emitted first, followed by (1) page-specific CSS (if any) and |
|
4
|
(2) skin-specific CSS. |
|
5
|
*/ |
|
6
|
body { |
|
7
|
z-index: 0 /* Used by robot.c:robot_proofofwork() and href.js */; |
|
8
|
} |
|
9
|
div.sidebox { |
|
10
|
float: right; |
|
11
|
background-color: white; |
|
12
|
border-width: medium; |
|
13
|
border-style: double; |
|
14
|
margin: 10px; |
|
15
|
} |
|
16
|
div.sideboxTitle { |
|
17
|
display: inline; |
|
18
|
font-weight: bold; |
|
19
|
} |
|
20
|
div.sideboxDescribed { |
|
21
|
display: inline; |
|
22
|
font-weight: bold; |
|
23
|
} |
|
24
|
span.disabled { |
|
25
|
color: red; |
|
26
|
} |
|
27
|
table.timelineTable { |
|
28
|
border-spacing: 0px 2px; |
|
29
|
} |
|
30
|
.timelineDate { |
|
31
|
white-space: nowrap; |
|
32
|
} |
|
33
|
span.timelineDisabled { |
|
34
|
font-style: italic; |
|
35
|
font-size: small; |
|
36
|
} |
|
37
|
tr.timelineCurrent { |
|
38
|
padding: .1em .2em; |
|
39
|
border: 1px dashed #446979; |
|
40
|
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5); |
|
41
|
} |
|
42
|
.timelineSelected { |
|
43
|
padding: .1em .2em; |
|
44
|
border: 2px solid lightgray; |
|
45
|
background-color: #ffc; |
|
46
|
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5); |
|
47
|
} |
|
48
|
.timelineSecondary { |
|
49
|
background-color: #cff; |
|
50
|
} |
|
51
|
tr.timelineSelected td { |
|
52
|
border-radius: 0; |
|
53
|
border-width: 0; |
|
54
|
} |
|
55
|
tr.timelineCurrent td { |
|
56
|
border-radius: 0; |
|
57
|
border-width: 0; |
|
58
|
} |
|
59
|
span.timelineLeaf { |
|
60
|
font-weight: bold; |
|
61
|
} |
|
62
|
span.timelineHash { |
|
63
|
font-weight: bold; |
|
64
|
} |
|
65
|
span.timelineHistDsp { |
|
66
|
font-weight: bold; |
|
67
|
} |
|
68
|
td.timelineTime { |
|
69
|
vertical-align: top; |
|
70
|
text-align: right; |
|
71
|
white-space: nowrap; |
|
72
|
} |
|
73
|
td.timelineGraph { |
|
74
|
width: 20px; |
|
75
|
text-align: left; |
|
76
|
vertical-align: top; |
|
77
|
} |
|
78
|
span.timelineCompactComment { |
|
79
|
cursor: pointer; |
|
80
|
} |
|
81
|
span.timelineEllipsis { |
|
82
|
cursor: pointer; |
|
83
|
} |
|
84
|
.timelineModernCell, .timelineColumnarCell, .timelineDetailCell { |
|
85
|
vertical-align: top; |
|
86
|
text-align: left; |
|
87
|
padding: 0.75em; |
|
88
|
border-radius: 1em; |
|
89
|
} |
|
90
|
.timelineModernCell[id], .timelineColumnarCell[id], .timelineDetailCell[id] { |
|
91
|
background-color: #efefef; |
|
92
|
} |
|
93
|
.timelineModernDetail { |
|
94
|
font-size: 80%; |
|
95
|
text-align: right; |
|
96
|
float: right; |
|
97
|
opacity: 0.75; |
|
98
|
margin-top: 0.5em; |
|
99
|
margin-left: 1em; |
|
100
|
} |
|
101
|
.tl-canvas { |
|
102
|
margin: 0 6px 0 10px; |
|
103
|
} |
|
104
|
.tl-rail { |
|
105
|
width: 18px; |
|
106
|
} |
|
107
|
.tl-mergeoffset { |
|
108
|
width: 2px; |
|
109
|
} |
|
110
|
.tl-nodemark { |
|
111
|
margin-top: 5px; |
|
112
|
} |
|
113
|
.tl-node { |
|
114
|
width: 10px; |
|
115
|
height: 10px; |
|
116
|
border: 1px solid #000; |
|
117
|
background: #fff; |
|
118
|
cursor: pointer; |
|
119
|
} |
|
120
|
.tl-node.leaf:after { |
|
121
|
content: ''; |
|
122
|
position: absolute; |
|
123
|
top: 3px; |
|
124
|
left: 3px; |
|
125
|
width: 4px; |
|
126
|
height: 4px; |
|
127
|
background: #000; |
|
128
|
} |
|
129
|
.tl-node.closed-leaf svg { |
|
130
|
position: absolute; |
|
131
|
top: 0px; |
|
132
|
left: 0px; |
|
133
|
width: 10px; |
|
134
|
height: 10px; |
|
135
|
color: #000; |
|
136
|
} |
|
137
|
.tl-node.sel:after { |
|
138
|
content: ''; |
|
139
|
position: absolute; |
|
140
|
top: 2px; |
|
141
|
left: 2px; |
|
142
|
width: 6px; |
|
143
|
height: 6px; |
|
144
|
background: red; |
|
145
|
} |
|
146
|
.tl-arrow { |
|
147
|
width: 0; |
|
148
|
height: 0; |
|
149
|
transform: scale(.999); |
|
150
|
border: 0 solid transparent; |
|
151
|
} |
|
152
|
.tl-arrow.u { |
|
153
|
margin-top: -1px; |
|
154
|
border-width: 0 3px; |
|
155
|
border-bottom: 7px solid #000; |
|
156
|
} |
|
157
|
.tl-arrow.u.sm { |
|
158
|
border-bottom: 5px solid #000; |
|
159
|
} |
|
160
|
.tl-line { |
|
161
|
background: #000; |
|
162
|
width: 2px; |
|
163
|
} |
|
164
|
.tl-arrow.merge { |
|
165
|
height: 1px; |
|
166
|
border-width: 2px 0; |
|
167
|
} |
|
168
|
.tl-arrow.merge.l { |
|
169
|
border-right: 3px solid #000; |
|
170
|
} |
|
171
|
.tl-arrow.merge.r { |
|
172
|
border-left: 3px solid #000; |
|
173
|
} |
|
174
|
.tl-line.merge { |
|
175
|
width: 1px; |
|
176
|
} |
|
177
|
.tl-arrow.cherrypick { |
|
178
|
height: 1px; |
|
179
|
border-width: 2px 0; |
|
180
|
} |
|
181
|
.tl-arrow.cherrypick.l { |
|
182
|
border-right: 3px solid #000; |
|
183
|
} |
|
184
|
.tl-arrow.cherrypick.r { |
|
185
|
border-left: 3px solid #000; |
|
186
|
} |
|
187
|
.tl-line.cherrypick.h { |
|
188
|
width: 0px; |
|
189
|
border-top: 1px dashed #000; |
|
190
|
border-left: 0px dashed #000; |
|
191
|
background: rgba(255,255,255,0); |
|
192
|
} |
|
193
|
.tl-line.cherrypick.v { |
|
194
|
width: 0px; |
|
195
|
border-top: 0px dashed #000; |
|
196
|
border-left: 1px dashed #000; |
|
197
|
background: rgba(255,255,255,0); |
|
198
|
} |
|
199
|
.tl-arrow.warp { |
|
200
|
margin-left: 1px; |
|
201
|
border-width: 3px 0; |
|
202
|
border-left: 7px solid #600000; |
|
203
|
} |
|
204
|
.tl-line.warp { |
|
205
|
background: #600000; |
|
206
|
} |
|
207
|
.tl-line.dotted.v { |
|
208
|
width: 0px; |
|
209
|
border-left-width: 2px; |
|
210
|
border-left-style: dotted; |
|
211
|
background: rgba(255,255,255,0); |
|
212
|
} |
|
213
|
.tl-tooltip { |
|
214
|
text-align: center; |
|
215
|
padding: 5px 1em; |
|
216
|
border: 1px solid black; |
|
217
|
border-radius: 6px; |
|
218
|
position: absolute; |
|
219
|
z-index: 100; |
|
220
|
box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.75); |
|
221
|
} |
|
222
|
|
|
223
|
span.tagDsp { |
|
224
|
font-weight: bold; |
|
225
|
} |
|
226
|
span.wikiError { |
|
227
|
font-weight: bold; |
|
228
|
color: red; |
|
229
|
} |
|
230
|
span.infoTagCancelled { |
|
231
|
font-weight: bold; |
|
232
|
text-decoration: line-through; |
|
233
|
} |
|
234
|
span.infoTag { |
|
235
|
font-weight: bold; |
|
236
|
} |
|
237
|
span.wikiTagCancelled { |
|
238
|
text-decoration: line-through; |
|
239
|
} |
|
240
|
div.columns { |
|
241
|
padding: 0 2em 0 2em; |
|
242
|
max-width: 1000px; |
|
243
|
} |
|
244
|
div.columns > ul { |
|
245
|
margin: 0; |
|
246
|
padding: 0 0 0 1em; |
|
247
|
} |
|
248
|
div.columns > ul li:first-child { |
|
249
|
margin-top:0px; |
|
250
|
} |
|
251
|
.columns li { |
|
252
|
break-inside: avoid; |
|
253
|
page-break-inside: avoid; |
|
254
|
} |
|
255
|
body.help .columns li { |
|
256
|
white-space: nowrap /* keep command name aliases from wrapping */; |
|
257
|
} |
|
258
|
.filetree { |
|
259
|
margin: 1em 0; |
|
260
|
line-height: 1.5; |
|
261
|
} |
|
262
|
.filetree > ul { |
|
263
|
display: inline-block; |
|
264
|
} |
|
265
|
.filetree ul { |
|
266
|
margin: 0; |
|
267
|
padding: 0; |
|
268
|
list-style: none; |
|
269
|
} |
|
270
|
.filetree ul.collapsed { |
|
271
|
display: none; |
|
272
|
} |
|
273
|
.filetree ul ul { |
|
274
|
position: relative; |
|
275
|
margin: 0 0 0 21px; |
|
276
|
} |
|
277
|
.filetree li { |
|
278
|
position: relative; |
|
279
|
margin: 0; |
|
280
|
padding: 0; |
|
281
|
} |
|
282
|
.filetree li li:before { |
|
283
|
content: ''; |
|
284
|
position: absolute; |
|
285
|
top: -.8em; |
|
286
|
left: -14px; |
|
287
|
width: 14px; |
|
288
|
height: 1.5em; |
|
289
|
border-left: 2px solid #aaa; |
|
290
|
border-bottom: 2px solid #aaa; |
|
291
|
} |
|
292
|
.filetree li > ul:before { |
|
293
|
content: ''; |
|
294
|
position: absolute; |
|
295
|
top: -1.5em; |
|
296
|
bottom: 0; |
|
297
|
left: -35px; |
|
298
|
border-left: 2px solid #aaa; |
|
299
|
} |
|
300
|
.filetree li.last > ul:before { |
|
301
|
display: none; |
|
302
|
} |
|
303
|
.filetree a { |
|
304
|
position: relative; |
|
305
|
z-index: 1; |
|
306
|
display: table-cell; |
|
307
|
min-height: 16px; |
|
308
|
padding-left: 21px; |
|
309
|
background-image: url("data:image/gif;base64,R0lGODlhEAAQAJEAAP\/\/\/y\ |
|
310
|
EhIf\/\/\/wAAACH5BAEHAAIALAAAAAAQABAAAAIvlIKpxqcfmgOUvoaqDSCxrEEfF14GqFX\ |
|
311
|
ImJZsu73wepJzVMNxrtNTj3NATMKhpwAAOw=="); |
|
312
|
background-position: center left; |
|
313
|
background-repeat: no-repeat; |
|
314
|
} |
|
315
|
ul.browser { |
|
316
|
list-style-type: none; |
|
317
|
padding: 10px; |
|
318
|
margin: 0px; |
|
319
|
white-space: nowrap; |
|
320
|
} |
|
321
|
ul.browser li.file { |
|
322
|
padding-top: 2px; |
|
323
|
} |
|
324
|
ul.browser li.file > a { |
|
325
|
padding-left: 20px; |
|
326
|
background-repeat: no-repeat; |
|
327
|
background-position: 0px center; |
|
328
|
background-image: url("data:image/gif;base64,R0lGODlhEAAQAJEAAP\/\/\/\ |
|
329
|
yEhIf\/\/\/wAAACH5BAEHAAIALAAAAAAQABAAAAIvlIKpxqcfmgOUvoaqDSCxrEEfF14Gq\ |
|
330
|
FXImJZsu73wepJzVMNxrtNTj3NATMKhpwAAOw=="); |
|
331
|
} |
|
332
|
ul.browser li.dir { |
|
333
|
padding-top: 2px; |
|
334
|
} |
|
335
|
ul.browser li.dir > a { |
|
336
|
padding-left: 20px; |
|
337
|
background-image: url("data:image/gif;base64,R0lGODlhEAAQAJEAAP/WVCIiI\ |
|
338
|
v\/\/\/wAAACH5BAEHAAIALAAAAAAQABAAAAInlI9pwa3XYniCgQtkrAFfLXkiFo1jaXpo+\ |
|
339
|
jUs6b5Z/K4siDu5RPUFADs="); |
|
340
|
background-repeat: no-repeat; |
|
341
|
background-position: 0px center; |
|
342
|
} |
|
343
|
div.filetreeline { |
|
344
|
display: table; |
|
345
|
width: 100%; |
|
346
|
white-space: nowrap; |
|
347
|
} |
|
348
|
.filetree .dir > div.filetreeline > a { |
|
349
|
background-image: url("data:image/gif;base64,R0lGODlhEAAQAJEAAP/WVCIiI\ |
|
350
|
v\/\/\/wAAACH5BAEHAAIALAAAAAAQABAAAAInlI9pwa3XYniCgQtkrAFfLXkiFo1jaXpo\ |
|
351
|
+jUs6b5Z/K4siDu5RPUFADs="); |
|
352
|
} |
|
353
|
div.filetreeage { |
|
354
|
display: table-cell; |
|
355
|
padding-left: 1.5em; |
|
356
|
text-align: right; |
|
357
|
width: 8em; |
|
358
|
} |
|
359
|
div.filetreesize { |
|
360
|
display: table-cell; |
|
361
|
padding-left: 1em; |
|
362
|
text-align: right; |
|
363
|
width: 7em; |
|
364
|
} |
|
365
|
div.filetreeline:hover { |
|
366
|
background-color: #eee; |
|
367
|
} |
|
368
|
table.login_out { |
|
369
|
text-align: left; |
|
370
|
margin-right: 10px; |
|
371
|
margin-left: 10px; |
|
372
|
margin-top: 10px; |
|
373
|
} |
|
374
|
div.captcha { |
|
375
|
text-align: center; |
|
376
|
padding: 1ex; |
|
377
|
} |
|
378
|
table.captcha { |
|
379
|
margin: auto; |
|
380
|
padding: 10px; |
|
381
|
border-width: 4px; |
|
382
|
border-style: double; |
|
383
|
border-color: black; |
|
384
|
} |
|
385
|
pre.captcha { |
|
386
|
font-size: 50%; |
|
387
|
} |
|
388
|
td.login_out_label { |
|
389
|
text-align: center; |
|
390
|
} |
|
391
|
span.loginError { |
|
392
|
color: red; |
|
393
|
} |
|
394
|
span.note { |
|
395
|
font-weight: bold; |
|
396
|
} |
|
397
|
span.textareaLabel { |
|
398
|
font-weight: bold; |
|
399
|
} |
|
400
|
table.usetupLayoutTable { |
|
401
|
outline-style: none; |
|
402
|
padding: 0; |
|
403
|
margin: 25px; |
|
404
|
} |
|
405
|
td.usetupColumnLayout { |
|
406
|
vertical-align: top |
|
407
|
} |
|
408
|
table.usetupUserList { |
|
409
|
outline-style: double; |
|
410
|
outline-width: 1px; |
|
411
|
padding: 10px; |
|
412
|
} |
|
413
|
th.usetupListUser { |
|
414
|
text-align: right; |
|
415
|
padding-right: 20px; |
|
416
|
} |
|
417
|
th.usetupListCap { |
|
418
|
text-align: center; |
|
419
|
padding-right: 15px; |
|
420
|
} |
|
421
|
th.usetupListCon { |
|
422
|
text-align: left; |
|
423
|
} |
|
424
|
td.usetupListUser { |
|
425
|
text-align: right; |
|
426
|
padding-right: 20px; |
|
427
|
white-space:nowrap; |
|
428
|
} |
|
429
|
td.usetupListCap { |
|
430
|
text-align: center; |
|
431
|
padding-right: 15px; |
|
432
|
} |
|
433
|
td.usetupListCon { |
|
434
|
text-align: left |
|
435
|
} |
|
436
|
div.ueditCapBox { |
|
437
|
margin-right: 20px; |
|
438
|
margin-bottom: 20px; |
|
439
|
} |
|
440
|
td.usetupEditLabel { |
|
441
|
text-align: right; |
|
442
|
vertical-align: top; |
|
443
|
white-space: nowrap; |
|
444
|
} |
|
445
|
span.ueditInheritNobody { |
|
446
|
color: green; |
|
447
|
padding: .2em; |
|
448
|
} |
|
449
|
span.ueditInheritDeveloper { |
|
450
|
color: red; |
|
451
|
padding: .2em; |
|
452
|
} |
|
453
|
span.ueditInheritReader { |
|
454
|
color: black; |
|
455
|
padding: .2em; |
|
456
|
} |
|
457
|
span.ueditInheritAnonymous { |
|
458
|
color: blue; |
|
459
|
padding: .2em; |
|
460
|
} |
|
461
|
span.capability { |
|
462
|
font-weight: bold; |
|
463
|
} |
|
464
|
span.usertype { |
|
465
|
font-weight: bold; |
|
466
|
} |
|
467
|
span.usertype:before { |
|
468
|
content:"'"; |
|
469
|
} |
|
470
|
span.usertype:after { |
|
471
|
content:"'"; |
|
472
|
} |
|
473
|
p.missingPriv { |
|
474
|
color: blue; |
|
475
|
} |
|
476
|
span.wikiruleHead { |
|
477
|
font-weight: bold; |
|
478
|
} |
|
479
|
td.tktDspLabel { |
|
480
|
text-align: right; |
|
481
|
} |
|
482
|
td.tktDspValue { |
|
483
|
text-align: left; |
|
484
|
vertical-align: top; |
|
485
|
background-color: #d0d0d0; |
|
486
|
} |
|
487
|
td.tktTlOpen { |
|
488
|
color: #800; |
|
489
|
} |
|
490
|
td.tktTlClosed { |
|
491
|
color: #888; |
|
492
|
} |
|
493
|
span.tktError { |
|
494
|
color: red; |
|
495
|
font-weight: bold; |
|
496
|
} |
|
497
|
table.rpteditex { |
|
498
|
float: right; |
|
499
|
margin: 0; |
|
500
|
padding: 0; |
|
501
|
width: 125px; |
|
502
|
text-align: center; |
|
503
|
border-collapse: collapse; |
|
504
|
border-spacing: 0; |
|
505
|
} |
|
506
|
table.report { |
|
507
|
border: 1px solid #999; |
|
508
|
margin: 1em 0 1em 0; |
|
509
|
cursor: pointer; |
|
510
|
} |
|
511
|
td.rpteditex { |
|
512
|
border-width: thin; |
|
513
|
border-color: #000000; |
|
514
|
border-style: solid; |
|
515
|
} |
|
516
|
div.endContent { |
|
517
|
clear: both; |
|
518
|
} |
|
519
|
p.generalError { |
|
520
|
color: red; |
|
521
|
} |
|
522
|
p.tktsetupError { |
|
523
|
color: red; |
|
524
|
font-weight: bold; |
|
525
|
} |
|
526
|
p.xfersetupError { |
|
527
|
color: red; |
|
528
|
font-weight: bold; |
|
529
|
} |
|
530
|
p.thmainError { |
|
531
|
color: red; |
|
532
|
font-weight: bold; |
|
533
|
} |
|
534
|
span.thTrace { |
|
535
|
color: red; |
|
536
|
} |
|
537
|
p.reportError { |
|
538
|
color: red; |
|
539
|
font-weight: bold; |
|
540
|
} |
|
541
|
blockquote.reportError { |
|
542
|
color: red; |
|
543
|
font-weight: bold; |
|
544
|
} |
|
545
|
p.noMoreShun { |
|
546
|
color: blue; |
|
547
|
} |
|
548
|
p.shunned { |
|
549
|
color: blue; |
|
550
|
} |
|
551
|
span.brokenlink { |
|
552
|
color: red; |
|
553
|
} |
|
554
|
ul.filelist { |
|
555
|
margin-top: 3px; |
|
556
|
line-height: 100%; |
|
557
|
} |
|
558
|
ul.filelist li { |
|
559
|
padding-top: 1px; |
|
560
|
} |
|
561
|
|
|
562
|
/* Rules governing diff layout and colors */ |
|
563
|
table.diff { |
|
564
|
width: 100%; |
|
565
|
border-spacing: 0; |
|
566
|
border-radius: 5px; |
|
567
|
border: 1px solid black; |
|
568
|
overflow: hidden; /* Prevent background from overlapping rounded borders. */ |
|
569
|
font-size: 80%; |
|
570
|
} |
|
571
|
table.diff td.diffln{ |
|
572
|
padding: 0; |
|
573
|
} |
|
574
|
table.diff td.diffln > pre{ |
|
575
|
padding: 0 0.25em 0 0.5em; |
|
576
|
margin: 0; |
|
577
|
} |
|
578
|
table.diff td { |
|
579
|
vertical-align: top; |
|
580
|
padding: 0; |
|
581
|
overflow: hidden /*work around inner PRE slight overflow/overlap*/; |
|
582
|
} |
|
583
|
table.diff pre { |
|
584
|
margin: 0 0 0 0; |
|
585
|
padding: 0 0.5em; |
|
586
|
line-height: 1.275/*for mobile: forum post e6f4ee7de98b55c0*/; |
|
587
|
text-size-adjust: none |
|
588
|
/* ^^^ attempt to keep mobile from inflating some text */; |
|
589
|
} |
|
590
|
table.diff pre > ins, |
|
591
|
table.diff pre > del { |
|
592
|
/* Fill platform-dependent color gaps caused by |
|
593
|
inflated line-height */ |
|
594
|
padding: 0.062em 0 0.062em 0; |
|
595
|
} |
|
596
|
table.diff pre > ins > *, |
|
597
|
table.diff pre > del > *{ |
|
598
|
/* Avoid odd-looking color swatches in conjunction with |
|
599
|
(table.diff pre > ins/del) padding */ |
|
600
|
padding: inherit; |
|
601
|
} |
|
602
|
table.diff td.diffln > pre { |
|
603
|
padding: 0 0.35em 0 0.5em; |
|
604
|
} |
|
605
|
table.diff td > pre { |
|
606
|
box-sizing: border-box; |
|
607
|
/* Workaround for "slight wiggle" when using mouse-wheel in some FF |
|
608
|
versions, apparently caused by the increased line-height forcing |
|
609
|
these elements to be a *tick* larger than they should be but not |
|
610
|
large enough to force a scroll bar to show up. */ |
|
611
|
overflow-y: hidden; |
|
612
|
} |
|
613
|
tr.diffskip.jchunk { |
|
614
|
/* jchunk gets added from JS to diffskip rows when they are |
|
615
|
plugged into the /jchunk route. */ |
|
616
|
background-color: aliceblue; |
|
617
|
padding: 0; |
|
618
|
} |
|
619
|
tr.diffskip.jchunk > td { |
|
620
|
padding: 0.25em 0.5em; |
|
621
|
margin: 0; |
|
622
|
} |
|
623
|
tr.diffskip.jchunk:hover { |
|
624
|
/*background-color: rgba(127,127,127,0.5); |
|
625
|
cursor: pointer;*/ |
|
626
|
} |
|
627
|
tr.diffskip > td.chunkctrl { |
|
628
|
text-align: left; |
|
629
|
} |
|
630
|
tr.diffskip > td.chunkctrl > div { |
|
631
|
display: flex; |
|
632
|
align-items: center; |
|
633
|
} |
|
634
|
tr.diffskip > td.chunkctrl > div > span.error { |
|
635
|
padding: 0.25em 0.5em; |
|
636
|
border-radius: 0.5em; |
|
637
|
} |
|
638
|
tr.diffskip > td.chunkctrl .jcbutton |
|
639
|
/* class name .button breaks w/ some skins! */ { |
|
640
|
min-width: 3.5ex; |
|
641
|
max-width: 3.5ex; |
|
642
|
text-align: center; |
|
643
|
display: inline-block; |
|
644
|
padding: 0.1em 1em; |
|
645
|
margin: 0 1em 0 0; |
|
646
|
background-color: rgba(127,127,127,0.2); |
|
647
|
border-style: outset; |
|
648
|
border-width: 0; |
|
649
|
border-radius: 0.5em; |
|
650
|
opacity: 0.7; |
|
651
|
} |
|
652
|
tr.diffskip > td.chunkctrl .jcbutton.up:not(.down){ |
|
653
|
/* Simulate an arrow pointing up */ |
|
654
|
border-radius: 3em 3em 0.25em 0.25em; |
|
655
|
} |
|
656
|
tr.diffskip > td.chunkctrl .jcbutton.down:not(.up){ |
|
657
|
/* Simulate an arrow pointing down */ |
|
658
|
border-radius: 0.25em 0.25em 3em 3em; |
|
659
|
} |
|
660
|
tr.diffskip > td.chunkctrl .jcbutton > span { |
|
661
|
/* In order to increase the glyph size w/o increasing the em-based |
|
662
|
button size or border-radius, we need an extra layer of DOM |
|
663
|
element for the glyph. */ |
|
664
|
font-size: 150%; |
|
665
|
} |
|
666
|
tr.diffskip > td.chunkctrl .jcbutton.up > span::before { |
|
667
|
content: '⇡'; |
|
668
|
} |
|
669
|
tr.diffskip > td.chunkctrl .jcbutton.down > span::before { |
|
670
|
content: '⇣'; |
|
671
|
} |
|
672
|
tr.diffskip > td.chunkctrl .jcbutton.up.down > span::before { |
|
673
|
content: '⇡⇣'; |
|
674
|
} |
|
675
|
tr.diffskip > td.chunkctrl .jcbutton:hover { |
|
676
|
cursor: pointer; |
|
677
|
opacity: 1; |
|
678
|
filter: contrast(1); |
|
679
|
} |
|
680
|
tr.diffchunk { |
|
681
|
display: grid; |
|
682
|
gap: 0px 0px; |
|
683
|
grid-template-rows: 1fr; |
|
684
|
} |
|
685
|
table.splitdiff tr.diffchunk { |
|
686
|
grid-template-columns: auto 1fr auto auto 1fr; |
|
687
|
grid-template-areas: "difflnl difftxtl diffsep difflnr difftxtr"; |
|
688
|
} |
|
689
|
table.udiff tr.diffchunk { |
|
690
|
grid-template-columns: auto auto auto 1fr; |
|
691
|
grid-template-areas: "difflnl difflnr diffsep difftxtu"; |
|
692
|
} |
|
693
|
td.difflnl { grid-area: difflnl; } |
|
694
|
td.difflnr { grid-area: difflnr; } |
|
695
|
td.difftxtu { grid-area: difftxtu; } |
|
696
|
td.difftxtl { grid-area: difftxtl; } |
|
697
|
td.difftxtr { grid-area: difftxtr; } |
|
698
|
td.diffln { |
|
699
|
width: fit-content; |
|
700
|
text-align: right; |
|
701
|
padding: 0 1em 0 0; |
|
702
|
} |
|
703
|
td.difflne { |
|
704
|
padding-bottom: 0.4em; |
|
705
|
} |
|
706
|
td.diffsep { |
|
707
|
width: fit-content; |
|
708
|
padding: 0 0.3em 0 0.5em; |
|
709
|
grid-area: diffsep; |
|
710
|
} |
|
711
|
td.difftxt pre { |
|
712
|
overflow-x: auto; |
|
713
|
} |
|
714
|
td.diffln ins { |
|
715
|
background-color: #a0e4b2; |
|
716
|
text-decoration: none; |
|
717
|
} |
|
718
|
td.diffln del { |
|
719
|
background-color: #ffc0c0; |
|
720
|
text-decoration: none; |
|
721
|
} |
|
722
|
td.difftxt del { |
|
723
|
background-color: #ffe8e8; |
|
724
|
text-decoration: none; |
|
725
|
} |
|
726
|
td.difftxt del > del { |
|
727
|
background-color: #ffc0c0; |
|
728
|
text-decoration: none; |
|
729
|
font-weight: bold; |
|
730
|
} |
|
731
|
td.difftxt del > del.edit { |
|
732
|
background-color: #c0c0ff; |
|
733
|
text-decoration: none; |
|
734
|
font-weight: bold; |
|
735
|
} |
|
736
|
td.difftxt ins { |
|
737
|
background-color: #dafbe1; |
|
738
|
text-decoration: none; |
|
739
|
} |
|
740
|
td.difftxt ins > ins { |
|
741
|
background-color: #a0e4b2; |
|
742
|
text-decoration: none; |
|
743
|
font-weight: bold; |
|
744
|
} |
|
745
|
td.difftxt ins > ins.edit { |
|
746
|
background-color: #c0c0ff; |
|
747
|
text-decoration: none; |
|
748
|
font-weight: bold; |
|
749
|
} |
|
750
|
body.tkt div.content li > table.udiff { |
|
751
|
margin-left: 1.5em; |
|
752
|
margin-top: 0.5em; |
|
753
|
} |
|
754
|
body.tkt div.content ol.tkt-changes > li:target > p > span { |
|
755
|
border-bottom: 3px solid gold; |
|
756
|
} |
|
757
|
body.tkt div.content ol.tkt-changes > li:target > ol { |
|
758
|
border-left: 1px solid gold; |
|
759
|
} |
|
760
|
body.tkt .tktCommentArea { |
|
761
|
display: flex; |
|
762
|
flex-direction: column; |
|
763
|
} |
|
764
|
body.tkt .newest-first-controls { |
|
765
|
display: flex; |
|
766
|
flex-direction: row; |
|
767
|
flex-wrap: nowrap; |
|
768
|
} |
|
769
|
body.tkt .tktCommentArea.reverse { |
|
770
|
flex-direction: column-reverse; |
|
771
|
} |
|
772
|
body.cpage-ckout .file-change-line, |
|
773
|
body.cpage-info .file-change-line, |
|
774
|
body.cpage-vinfo .file-change-line, |
|
775
|
body.cpage-ci .file-change-line, |
|
776
|
body.cpage-vdiff .file-change-line { |
|
777
|
margin-top: 16px; |
|
778
|
margin-bottom: 16px; |
|
779
|
margin-right: 1em /* keep it from nudging right up against the scrollbar-reveal zone */; |
|
780
|
display: flex; |
|
781
|
flex-direction: row; |
|
782
|
justify-content: space-between; |
|
783
|
} |
|
784
|
|
|
785
|
span.modpending { |
|
786
|
color: #b03800; |
|
787
|
font-style: italic; |
|
788
|
} |
|
789
|
pre.th1result { |
|
790
|
white-space: pre-wrap; |
|
791
|
word-wrap: break-word; |
|
792
|
} |
|
793
|
pre.th1error { |
|
794
|
white-space: pre-wrap; |
|
795
|
word-wrap: break-word; |
|
796
|
color: red; |
|
797
|
} |
|
798
|
pre.textPlain { |
|
799
|
white-space: pre-wrap; |
|
800
|
word-wrap: break-word; |
|
801
|
} |
|
802
|
.statistics-report-graph-line { |
|
803
|
border: 2px solid #446979; |
|
804
|
background-color: #446979; |
|
805
|
} |
|
806
|
.statistics-report-graph-extra { |
|
807
|
border: 2px dashed #446979; |
|
808
|
border-left-style: none; |
|
809
|
} |
|
810
|
.statistics-report-table-events th { |
|
811
|
padding: 0 1em 0 1em; |
|
812
|
} |
|
813
|
.statistics-report-table-events td { |
|
814
|
padding: 0.1em 1em 0.1em 1em; |
|
815
|
} |
|
816
|
.statistics-report-row-year { |
|
817
|
text-align: left; |
|
818
|
} |
|
819
|
.statistics-report-week-number-label { |
|
820
|
text-align: right; |
|
821
|
font-size: 0.8em; |
|
822
|
} |
|
823
|
.statistics-report-week-of-year-list { |
|
824
|
font-size: 0.8em; |
|
825
|
} |
|
826
|
#usetupEditCapability { |
|
827
|
font-weight: bold; |
|
828
|
} |
|
829
|
table.adminLogTable { |
|
830
|
text-align: left; |
|
831
|
} |
|
832
|
.adminLogTable .adminTime { |
|
833
|
text-align: left; |
|
834
|
vertical-align: top; |
|
835
|
white-space: nowrap; |
|
836
|
} |
|
837
|
.fileage table { |
|
838
|
border-spacing: 0; |
|
839
|
} |
|
840
|
.fileage tr:hover { |
|
841
|
background-color: #eee; |
|
842
|
} |
|
843
|
.fileage td { |
|
844
|
vertical-align: top; |
|
845
|
text-align: left; |
|
846
|
border-top: 1px solid #ddd; |
|
847
|
padding-top: 3px; |
|
848
|
} |
|
849
|
.fileage td:first-child { |
|
850
|
white-space: nowrap; |
|
851
|
} |
|
852
|
.fileage td:nth-child(2) { |
|
853
|
padding-left: 1em; |
|
854
|
padding-right: 1em; |
|
855
|
} |
|
856
|
.fileage td:nth-child(3) { |
|
857
|
word-wrap: break-word; |
|
858
|
max-width: 50%; |
|
859
|
} |
|
860
|
.brlist table { |
|
861
|
border-spacing: 0; |
|
862
|
} |
|
863
|
.brlist table th { |
|
864
|
text-align: left; |
|
865
|
padding: 0px 1em 0.5ex 0px; |
|
866
|
vertical-align: bottom; |
|
867
|
} |
|
868
|
.brlist table td { |
|
869
|
padding: 0px 2em 0px 0px; |
|
870
|
white-space: nowrap; |
|
871
|
} |
|
872
|
th.sort:after { |
|
873
|
margin-left: .4em; |
|
874
|
cursor: pointer; |
|
875
|
text-shadow: 0 0 0 #000; |
|
876
|
} |
|
877
|
th.sort.none:after { |
|
878
|
content: '\2666'; |
|
879
|
} |
|
880
|
th.sort.asc:after { |
|
881
|
content: '\2193'; |
|
882
|
} |
|
883
|
th.sort.desc:after { |
|
884
|
content: '\2191'; |
|
885
|
} |
|
886
|
span.snippet>mark { |
|
887
|
background-color: inherit; |
|
888
|
font-weight: bold; |
|
889
|
} |
|
890
|
div.searchForm { |
|
891
|
text-align: center; |
|
892
|
} |
|
893
|
p.searchEmpty { |
|
894
|
font-style: italic; |
|
895
|
} |
|
896
|
.clutter { |
|
897
|
display: none; |
|
898
|
} |
|
899
|
table.label-value th { |
|
900
|
vertical-align: top; |
|
901
|
text-align: right; |
|
902
|
padding: 0.2ex 1ex; |
|
903
|
} |
|
904
|
table.forum_post { |
|
905
|
margin-top: 1ex; |
|
906
|
margin-bottom: 1ex; |
|
907
|
margin-left: 0; |
|
908
|
margin-right: 0; |
|
909
|
border-spacing: 0; |
|
910
|
} |
|
911
|
span.forum_author { |
|
912
|
color: #888; |
|
913
|
font-size: 75%; |
|
914
|
} |
|
915
|
span.forum_author::after { |
|
916
|
content: " | "; |
|
917
|
} |
|
918
|
span.forum_age { |
|
919
|
color: #888; |
|
920
|
font-size: 85%; |
|
921
|
} |
|
922
|
span.forum_buttons { |
|
923
|
font-size: 85%; |
|
924
|
} |
|
925
|
span.forum_buttons::before { |
|
926
|
color: #888; |
|
927
|
content: " | "; |
|
928
|
} |
|
929
|
span.forum_npost { |
|
930
|
color: #888; |
|
931
|
font-size: 75%; |
|
932
|
} |
|
933
|
table.forumeditform td { |
|
934
|
vertical-align: top; |
|
935
|
border-collapse: collapse; |
|
936
|
padding: 1px; |
|
937
|
} |
|
938
|
div.forum_body p { |
|
939
|
margin-top: 0; |
|
940
|
} |
|
941
|
div.forum-editor-widget{ |
|
942
|
display: flex; |
|
943
|
flex-direction: column; |
|
944
|
} |
|
945
|
div.forum-editor-widget > textarea { |
|
946
|
max-width: initial; |
|
947
|
} |
|
948
|
td.form_label { |
|
949
|
vertical-align: top; |
|
950
|
text-align: right; |
|
951
|
} |
|
952
|
.debug { |
|
953
|
background-color: #ffc; |
|
954
|
border: 2px solid #ff0; |
|
955
|
} |
|
956
|
div.forumEdit { |
|
957
|
border: 1px solid black; |
|
958
|
padding-left: 1ex; |
|
959
|
padding-right: 1ex; |
|
960
|
} |
|
961
|
div.forumTimeline { |
|
962
|
border: 1px solid black; |
|
963
|
padding-left: 1ex; |
|
964
|
padding-right: 1ex; |
|
965
|
max-width: 50em; |
|
966
|
overflow: auto; |
|
967
|
} |
|
968
|
div.forumTimeline code { |
|
969
|
white-space: pre-wrap; |
|
970
|
} |
|
971
|
div.markdown code { |
|
972
|
white-space: pre-wrap; |
|
973
|
} |
|
974
|
div.forumTime { |
|
975
|
border: 1px solid black; |
|
976
|
padding-left: 1ex; |
|
977
|
padding-right: 1ex; |
|
978
|
margin-top: 1ex; |
|
979
|
display: flex; |
|
980
|
flex-direction: column; |
|
981
|
} |
|
982
|
div.forumClosed { |
|
983
|
} |
|
984
|
div.forumClosed > .forumPostBody { |
|
985
|
opacity: 0.7; |
|
986
|
} |
|
987
|
div.forumClosed > .forumPostHdr::before { |
|
988
|
content: "[CLOSED] "; |
|
989
|
} |
|
990
|
/*div.forumClosed > div.forumPostBody { |
|
991
|
filter: blur(5px); |
|
992
|
}*/ |
|
993
|
div.forumpost-closure-warning { |
|
994
|
margin-top: 1em; |
|
995
|
margin-bottom: 1em; |
|
996
|
border-style: solid; |
|
997
|
padding: 0.25em 0.5em; |
|
998
|
background: #f4f400bb; |
|
999
|
/*font-weight: bold;*/ |
|
1000
|
} |
|
1001
|
div.forumpost-closure-warning input[type=submit] { |
|
1002
|
padding: 0.25em; |
|
1003
|
} |
|
1004
|
div.forumpost-single-controls { |
|
1005
|
/* UI controls along the bottom of a single post |
|
1006
|
** in the thread view. */ |
|
1007
|
} |
|
1008
|
.forum div > form { |
|
1009
|
margin: 0.5em 0; |
|
1010
|
display: inline-block; |
|
1011
|
} |
|
1012
|
body.cpage-forumedit div > form, |
|
1013
|
body.cpage-forume2 div > form{ |
|
1014
|
width: 100%; |
|
1015
|
} |
|
1016
|
.forum div > form > * { |
|
1017
|
margin-bottom: 0.35em; |
|
1018
|
} |
|
1019
|
.forum-post-collapser { |
|
1020
|
/* Common style for the bottom-of-post and right-of-post |
|
1021
|
expand/collapse widgets. */ |
|
1022
|
font-size: 0.8em; |
|
1023
|
padding: 0; |
|
1024
|
border: 1px solid rgba(0, 0, 0, 0.2); |
|
1025
|
border-radius: 0 0 0.5em 0.5em; |
|
1026
|
background-color: rgba(0, 0, 0, 0.05); |
|
1027
|
opacity: 0.8; |
|
1028
|
cursor: pointer; |
|
1029
|
} |
|
1030
|
.forum-post-collapser.bottom { |
|
1031
|
margin: 0 0 0.4em 0; |
|
1032
|
height: 1.75em; |
|
1033
|
line-height: 1.75em; |
|
1034
|
/* ^^^ Those sizes are finely tuned for the current selection of |
|
1035
|
arrow characters. If those change, these should, too. Remember that |
|
1036
|
FF/Chrome simply do not agree on alignment with most values :/. */ |
|
1037
|
display: flex; |
|
1038
|
flex-direction: row; |
|
1039
|
justify-content: space-between; |
|
1040
|
} |
|
1041
|
.forum-post-collapser.bottom > span { |
|
1042
|
margin: 0 1em 0 1em; |
|
1043
|
vertical-align: middle; |
|
1044
|
} |
|
1045
|
.forum-post-collapser.bottom > span::before { |
|
1046
|
content: "⇣⇣⇣"; |
|
1047
|
} |
|
1048
|
.forum-post-collapser.bottom.expanded > span::before { |
|
1049
|
content: "⇡⇡⇡" /*reminder: FF/Chrome cannot agree on alignment of ⮝*/; |
|
1050
|
} |
|
1051
|
div.forumPostBody{ |
|
1052
|
max-height: 50em; |
|
1053
|
overflow: auto; |
|
1054
|
} |
|
1055
|
div.forumPostBody.with-expander { |
|
1056
|
display: flex; |
|
1057
|
flex-direction: row; |
|
1058
|
overflow: auto; |
|
1059
|
} |
|
1060
|
div.forumPostBody.with-expander:not(.expanded) > :first-child { |
|
1061
|
overflow-y: hidden; |
|
1062
|
} |
|
1063
|
div.forumPostBody.with-expander > *:first-child { |
|
1064
|
/* Main content DIV/PRE */ |
|
1065
|
overflow: auto; |
|
1066
|
flex: 10 1 auto; |
|
1067
|
} |
|
1068
|
div.forumPostBody.with-expander.expanded > *:first-child { |
|
1069
|
margin-bottom: 0.5em /* try to suppress scroll bar */; |
|
1070
|
} |
|
1071
|
div.forumPostBody.with-expander .forum-post-collapser.right { |
|
1072
|
/* "Tap zone" for expansion of the post, sits to the right of the |
|
1073
|
post's content. */ |
|
1074
|
flex: 1 10 auto; |
|
1075
|
min-width: 1.25em; |
|
1076
|
max-width: 1.25em; |
|
1077
|
margin: 0 0 0 0.2em; |
|
1078
|
overflow: hidden; |
|
1079
|
display: flex; |
|
1080
|
flex-direction: column; |
|
1081
|
justify-content: space-around; |
|
1082
|
align-items: center; |
|
1083
|
border-radius: 0.1em; |
|
1084
|
cursor: pointer; |
|
1085
|
border-bottom: 0; |
|
1086
|
border-radius: 0 0.5em 0 0; |
|
1087
|
} |
|
1088
|
div.forumPostBody.with-expander .forum-post-collapser.right > span:before { |
|
1089
|
content: "⇣"; |
|
1090
|
} |
|
1091
|
div.forumPostBody.with-expander.expanded .forum-post-collapser.right > span:before { |
|
1092
|
content: "⇡"; |
|
1093
|
} |
|
1094
|
div.forumPostBody.expanded { |
|
1095
|
max-height: initial; |
|
1096
|
} |
|
1097
|
div.forumPostBody.shrunken { |
|
1098
|
/* When an expandable post is un-expanded, it is shrunkend down |
|
1099
|
to this size instead of its original size. */ |
|
1100
|
max-height: 8em; |
|
1101
|
} |
|
1102
|
span.forumPostReplyTitle { |
|
1103
|
/* thread title part of the page header when replying to a post */ |
|
1104
|
font-style: italic; |
|
1105
|
} |
|
1106
|
|
|
1107
|
div.forumSel { |
|
1108
|
background-color: #cef; |
|
1109
|
} |
|
1110
|
div.forumObs { |
|
1111
|
color: #bbb; |
|
1112
|
} |
|
1113
|
|
|
1114
|
div.setup_forum-column { |
|
1115
|
display: flex; |
|
1116
|
flex-direction: column; |
|
1117
|
} |
|
1118
|
|
|
1119
|
body.cpage-setup_forum > .content table { |
|
1120
|
margin-bottom: 1em; |
|
1121
|
} |
|
1122
|
body.cpage-setup_forum > .content table.bordered { |
|
1123
|
border: 1px solid; |
|
1124
|
border-radius: 0.25em; |
|
1125
|
} |
|
1126
|
body.cpage-setup_forum > .content table td, |
|
1127
|
body.cpage-setup_forum > .content table th { |
|
1128
|
text-align: left; |
|
1129
|
} |
|
1130
|
body.cpage-setup_forum table.forum-settings-list > tbody > tr > td { |
|
1131
|
min-width: 2em; |
|
1132
|
} |
|
1133
|
|
|
1134
|
#capabilitySummary { |
|
1135
|
text-align: center; |
|
1136
|
} |
|
1137
|
#capabilitySummary td { |
|
1138
|
padding-left: 3ex; |
|
1139
|
padding-right: 3ex; |
|
1140
|
} |
|
1141
|
#capabilitySummary th { |
|
1142
|
padding-left: 1ex; |
|
1143
|
padding-right: 1ex; |
|
1144
|
} |
|
1145
|
.capsumOff { |
|
1146
|
background-color: #bbb; |
|
1147
|
} |
|
1148
|
.capsumRead { |
|
1149
|
background-color: #bfb; |
|
1150
|
} |
|
1151
|
.capsumWrite { |
|
1152
|
background-color: #ffb; |
|
1153
|
} |
|
1154
|
label { |
|
1155
|
white-space: nowrap; |
|
1156
|
} |
|
1157
|
label[for] { |
|
1158
|
cursor: pointer; |
|
1159
|
} |
|
1160
|
button.copy-button, |
|
1161
|
button.copy-button:hover, |
|
1162
|
button.copy-button:focus, |
|
1163
|
button.copy-button:active { |
|
1164
|
width: 14px; |
|
1165
|
height: 14px; |
|
1166
|
/*Note: .24em is slightly smaller than the average width of a normal space.*/ |
|
1167
|
margin: -2px .24em 0 0; |
|
1168
|
padding: 0; |
|
1169
|
border: 0; |
|
1170
|
outline: 0; |
|
1171
|
background: none; |
|
1172
|
font-size: inherit; /* Required for horizontal spacing. */ |
|
1173
|
vertical-align: middle; |
|
1174
|
user-select: none; |
|
1175
|
cursor: pointer; |
|
1176
|
} |
|
1177
|
button.copy-button-flipped, |
|
1178
|
button.copy-button-flipped:hover, |
|
1179
|
button.copy-button-flipped:focus, |
|
1180
|
button.copy-button-flipped:active { |
|
1181
|
margin: -2px 0 0 .24em; |
|
1182
|
} |
|
1183
|
button.copy-button span { |
|
1184
|
display: block; |
|
1185
|
width: 100%; |
|
1186
|
height: 100%; |
|
1187
|
margin: 0; |
|
1188
|
padding: 0; |
|
1189
|
border: 0; |
|
1190
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' \ |
|
1191
|
viewBox='0,0,14,14'%3E%3Cpath style='fill:black;opacity:0' \ |
|
1192
|
d='M14,14H0V0h14v14z'/%3E%3Cpath style='fill:rgb(240,240,240)' \ |
|
1193
|
d='M1,0h6.6l2,2h1l3.4,3.4v8.6h-10v-2h-3z'/%3E%3Cpath style='fill:rgb(64,64,64)' \ |
|
1194
|
d='M2,1h5l3,3v7h-8z'/%3E%3Cpath style='fill:rgb(248,248,248)' \ |
|
1195
|
d='M3,2h3.6l2.4,2.4v5.6h-6z'/%3E%3Cpath style='fill:rgb(80,128,208)' \ |
|
1196
|
d='M4,5h4v1h-4zm0,2h4v1h-4z'/%3E%3Cpath style='fill:rgb(64,64,64)' \ |
|
1197
|
d='M5,3h5l3,3v7h-8z'/%3E%3Cpath style='fill:rgb(248,248,248)' \ |
|
1198
|
d='M10,4.4v1.6h1.6zm-4,-0.6h3v3h-3zm0,3h6v5.4h-6z'/%3E%3Cpath style='fill:rgb(80,128,208)' \ |
|
1199
|
d='M7,8h4v1h-4zm0,2h4v1h-4z'/%3E%3C/svg%3E"); |
|
1200
|
background-repeat: no-repeat; |
|
1201
|
background-position: center; |
|
1202
|
cursor: pointer; |
|
1203
|
} |
|
1204
|
button.copy-button:enabled:active span { |
|
1205
|
background-size: 90%; |
|
1206
|
} |
|
1207
|
button.copy-button:disabled span { |
|
1208
|
filter: grayscale(1); |
|
1209
|
opacity: 0.4; |
|
1210
|
} |
|
1211
|
.nobr { |
|
1212
|
white-space: nowrap; |
|
1213
|
} |
|
1214
|
.accordion { |
|
1215
|
cursor: pointer; |
|
1216
|
} |
|
1217
|
.accordion_btn { |
|
1218
|
display: inline-block; |
|
1219
|
width: 16px; |
|
1220
|
height: 16px; |
|
1221
|
margin-right: .5em; |
|
1222
|
vertical-align: middle; |
|
1223
|
} |
|
1224
|
/* Note: the order of the next 3 entries should be |
|
1225
|
maintained for the hierarchical cascade to work. */ |
|
1226
|
.accordion > .accordion_btn_plus { |
|
1227
|
display: none; |
|
1228
|
} |
|
1229
|
.accordion_closed > .accordion_btn_minus { |
|
1230
|
display: none; |
|
1231
|
} |
|
1232
|
.accordion_closed > .accordion_btn_plus { |
|
1233
|
display: inline-block; |
|
1234
|
} |
|
1235
|
.accordion_panel { |
|
1236
|
overflow-y: clip; |
|
1237
|
transition: max-height 0.25s ease-out; |
|
1238
|
} |
|
1239
|
.error { |
|
1240
|
color: darkred; |
|
1241
|
background: yellow; |
|
1242
|
} |
|
1243
|
.warning { |
|
1244
|
color: black; |
|
1245
|
background: yellow; |
|
1246
|
} |
|
1247
|
.hidden, .initially-hidden { |
|
1248
|
/* The framework-wide way of hiding elements is to assign them th |
|
1249
|
.hidden class. To make them visible again, remove it. The |
|
1250
|
!important qualifiers are unfortunate but sometimes necessary |
|
1251
|
when hidden element has other classes which specify |
|
1252
|
visibility-related options. The .initially-hidden class is for |
|
1253
|
pages which need to show, e.g., a progress widget while a large |
|
1254
|
WASM blob loads. Elements aside from that load-time widget can be |
|
1255
|
made .initially-hidden and then have that class removed once the |
|
1256
|
long-running startup process is done. See /pikchrshow for an |
|
1257
|
example. */ |
|
1258
|
position: absolute !important; |
|
1259
|
opacity: 0 !important; |
|
1260
|
pointer-events: none !important; |
|
1261
|
display: none !important; |
|
1262
|
} |
|
1263
|
input { |
|
1264
|
max-width: 95%; |
|
1265
|
} |
|
1266
|
textarea { |
|
1267
|
max-width: 95%; |
|
1268
|
} |
|
1269
|
img { |
|
1270
|
max-width: 100%; |
|
1271
|
} |
|
1272
|
hr { |
|
1273
|
/* Needed to keep /dir README.txt from floating right in some skins */ |
|
1274
|
clear: both; |
|
1275
|
} |
|
1276
|
|
|
1277
|
/** |
|
1278
|
.tab-xxx: styles for fossil.tabs.js. |
|
1279
|
*/ |
|
1280
|
.tab-container { |
|
1281
|
width: 100%; |
|
1282
|
display: flex; |
|
1283
|
flex-direction: column; |
|
1284
|
align-items: stretch; |
|
1285
|
} |
|
1286
|
.tab-container > #fossil-status-bar { |
|
1287
|
margin-top: 0; |
|
1288
|
} |
|
1289
|
.tab-container > .tabs { |
|
1290
|
padding: 0.25em; |
|
1291
|
margin: 0; |
|
1292
|
display: flex; |
|
1293
|
flex-direction: column; |
|
1294
|
border-width: 1px; |
|
1295
|
border-style: outset; |
|
1296
|
border-color: inherit; |
|
1297
|
} |
|
1298
|
.tab-container > .tabs > .tab-panel { |
|
1299
|
align-self: stretch; |
|
1300
|
flex: 10 1 auto; |
|
1301
|
display: block; |
|
1302
|
border: 0; |
|
1303
|
padding: 0; |
|
1304
|
margin: 0; |
|
1305
|
} |
|
1306
|
.tab-container > .tab-bar { |
|
1307
|
display: flex; |
|
1308
|
flex-direction: row; |
|
1309
|
flex: 1 10 auto; |
|
1310
|
align-self: stretch; |
|
1311
|
flex-wrap: wrap; |
|
1312
|
} |
|
1313
|
.tab-container > .tab-bar > .tab-button { |
|
1314
|
display: inline-block; |
|
1315
|
border-radius: 0.25em 0.25em 0 0; |
|
1316
|
margin: 0 0.1em; |
|
1317
|
padding: 0.25em 0.75em; |
|
1318
|
align-self: baseline; |
|
1319
|
border-color: inherit; |
|
1320
|
border-width: 1px; |
|
1321
|
border-bottom: none; |
|
1322
|
border-top-style: inset; |
|
1323
|
border-left-style: inset; |
|
1324
|
border-right-style: inset; |
|
1325
|
cursor: pointer; |
|
1326
|
opacity: 0.6; |
|
1327
|
} |
|
1328
|
.tab-container > .tab-bar > .tab-button.selected { |
|
1329
|
text-decoration: underline; |
|
1330
|
opacity: 1.0; |
|
1331
|
border-top-style: outset; |
|
1332
|
border-left-style: outset; |
|
1333
|
border-right-style: outset; |
|
1334
|
} |
|
1335
|
|
|
1336
|
/** |
|
1337
|
The flex-xxx classes can be used to create basic flexbox layouts |
|
1338
|
through the application of classes to the containing/contained |
|
1339
|
objects. |
|
1340
|
*/ |
|
1341
|
.flex-container { |
|
1342
|
display: flex; |
|
1343
|
} |
|
1344
|
.flex-container.flex-row { |
|
1345
|
flex-direction: row; |
|
1346
|
flex-wrap: wrap; |
|
1347
|
justify-content: center; |
|
1348
|
align-items: center; |
|
1349
|
} |
|
1350
|
.flex-container .flex-grow { |
|
1351
|
flex-grow: 10; |
|
1352
|
flex-shrink: 0; |
|
1353
|
} |
|
1354
|
.flex-container .flex-shrink { |
|
1355
|
flex-grow: 0; |
|
1356
|
flex-shrink: 10; |
|
1357
|
} |
|
1358
|
.flex-container.flex-row.stretch { |
|
1359
|
flex-wrap: wrap; |
|
1360
|
align-items: baseline; |
|
1361
|
justify-content: stretch; |
|
1362
|
margin: 0; |
|
1363
|
} |
|
1364
|
.flex-container.flex-column { |
|
1365
|
flex-direction: column; |
|
1366
|
flex-wrap: wrap; |
|
1367
|
justify-content: center; |
|
1368
|
align-items: center; |
|
1369
|
} |
|
1370
|
.flex-container.flex-column.stretch { |
|
1371
|
align-items: stretch; |
|
1372
|
margin: 0; |
|
1373
|
} |
|
1374
|
.flex-container.child-gap-small > * { |
|
1375
|
margin: 0.25em; |
|
1376
|
} |
|
1377
|
#fossil-status-bar { |
|
1378
|
display: block; |
|
1379
|
border-width: 1px; |
|
1380
|
border-style: inset; |
|
1381
|
border-color: inherit; |
|
1382
|
min-height: 1.5em; |
|
1383
|
font-size: 1.2em; |
|
1384
|
padding: 0.2em; |
|
1385
|
margin: 0.25em 0; |
|
1386
|
flex: 0 0 auto; |
|
1387
|
} |
|
1388
|
.font-size-80 { |
|
1389
|
font-size: 80%; |
|
1390
|
} |
|
1391
|
.font-size-100 { |
|
1392
|
font-size: 100%; |
|
1393
|
} |
|
1394
|
.font-size-125 { |
|
1395
|
font-size: 125%; |
|
1396
|
} |
|
1397
|
.font-size-150 { |
|
1398
|
font-size: 150%; |
|
1399
|
} |
|
1400
|
.font-size-175 { |
|
1401
|
font-size: 175%; |
|
1402
|
} |
|
1403
|
.font-size-200 { |
|
1404
|
font-size: 200%; |
|
1405
|
} |
|
1406
|
|
|
1407
|
/** |
|
1408
|
.input-with-label is intended to be a wrapper element which contain |
|
1409
|
both a LABEL tag and an INPUT or SELECT control. The wrapper is |
|
1410
|
"necessary", as opposed to placing the INPUT in the LABEL, so that |
|
1411
|
we can include multiple INPUT elements (e.g. a set of radio |
|
1412
|
buttons). Note that these elements must sometimes be BLOCK elements |
|
1413
|
(e.g. DIV) so that certain nesting constructs are legal. |
|
1414
|
*/ |
|
1415
|
.input-with-label { |
|
1416
|
border: 1px inset rgba(128, 128, 128, 0.5); |
|
1417
|
border-radius: 0.25em; |
|
1418
|
padding: 0.1em; |
|
1419
|
margin: 0 0.5em; |
|
1420
|
display: inline-block |
|
1421
|
/* We would really like flex layout but changing that |
|
1422
|
currently introduces a good deal of UI breakage |
|
1423
|
to chase down. The advantage would be better alignment |
|
1424
|
of the contained elements. */; |
|
1425
|
cursor: default; |
|
1426
|
white-space: nowrap; |
|
1427
|
} |
|
1428
|
.submenu .input-with-label { |
|
1429
|
border: none; |
|
1430
|
} |
|
1431
|
.input-with-label > * { |
|
1432
|
vertical-align: middle; |
|
1433
|
} |
|
1434
|
.input-with-label > label { |
|
1435
|
display: inline; /* some skins set label display to block! */ |
|
1436
|
cursor: pointer; |
|
1437
|
white-space: nowrap; |
|
1438
|
} |
|
1439
|
.input-with-label > input { |
|
1440
|
margin: 0; |
|
1441
|
} |
|
1442
|
.input-with-label > button { |
|
1443
|
margin: 0; |
|
1444
|
} |
|
1445
|
.input-with-label > select { |
|
1446
|
margin: 0; |
|
1447
|
} |
|
1448
|
.input-with-label > input[type=text] { |
|
1449
|
margin: 0; |
|
1450
|
} |
|
1451
|
.input-with-label > textarea { |
|
1452
|
margin: 0; |
|
1453
|
} |
|
1454
|
/* Browsers are unfortunately inconsistent in how they |
|
1455
|
align checkboxes and radio buttons, even if they're |
|
1456
|
given the same vertical-align value. 'middle' seems to |
|
1457
|
be the least bad option, rather than the ideal. */ |
|
1458
|
.input-with-label > input[type=checkbox] { |
|
1459
|
vertical-align: middle; |
|
1460
|
} |
|
1461
|
.input-with-label > input[type=radio] { |
|
1462
|
vertical-align: middle; |
|
1463
|
} |
|
1464
|
.input-with-label > label { |
|
1465
|
font-weight: initial; |
|
1466
|
margin: 0 0.25em 0 0.25em; |
|
1467
|
vertical-align: middle; |
|
1468
|
} |
|
1469
|
|
|
1470
|
table.numbered-lines { |
|
1471
|
width: 100%; |
|
1472
|
table-layout: fixed /* required to keep ultra-wide code from exceeding |
|
1473
|
window width, and instead force a scrollbar |
|
1474
|
on them. */; |
|
1475
|
} |
|
1476
|
table.numbered-lines > tbody > tr { |
|
1477
|
line-height: 1.35; |
|
1478
|
white-space: pre; |
|
1479
|
} |
|
1480
|
table.numbered-lines > tbody > tr > td { |
|
1481
|
font-family: inherit; |
|
1482
|
font-size: inherit; |
|
1483
|
line-height: inherit; |
|
1484
|
white-space: inherit; |
|
1485
|
margin: 0; |
|
1486
|
vertical-align: top; |
|
1487
|
padding: 0.25em 0 0 0 /*prevents slight overlap at top */; |
|
1488
|
} |
|
1489
|
table.numbered-lines td.line-numbers { |
|
1490
|
width: 4.5em; |
|
1491
|
} |
|
1492
|
table.numbered-lines td.line-numbers > pre { |
|
1493
|
margin: 0.25em/*must match top PADDING of td.file-content |
|
1494
|
> pre > code*/ 0 0 0; |
|
1495
|
padding: 0; |
|
1496
|
} |
|
1497
|
table.numbered-lines td.line-numbers span { |
|
1498
|
display: inline-block; |
|
1499
|
margin: 0; |
|
1500
|
padding: 0; |
|
1501
|
line-height: inherit; |
|
1502
|
font-size: inherit; |
|
1503
|
font-family: inherit; |
|
1504
|
cursor: pointer; |
|
1505
|
white-space: pre; |
|
1506
|
margin-right: 2px/*keep selection from nudging the right column */; |
|
1507
|
text-align: right; |
|
1508
|
} |
|
1509
|
table.numbered-lines td.line-numbers span:hover { |
|
1510
|
background-color: rgba(112, 112, 112, 0.25); |
|
1511
|
} |
|
1512
|
table.numbered-lines td.file-content { |
|
1513
|
padding-left: 0.25em; |
|
1514
|
} |
|
1515
|
table.numbered-lines td.file-content > pre, |
|
1516
|
table.numbered-lines td.file-content > pre > code { |
|
1517
|
margin: 0; |
|
1518
|
padding: 0; |
|
1519
|
line-height: inherit; |
|
1520
|
font-size: inherit; |
|
1521
|
font-family: inherit; |
|
1522
|
white-space: pre; |
|
1523
|
display: block/*necessary for certain skins!*/; |
|
1524
|
} |
|
1525
|
table.numbered-lines td.file-content > pre { |
|
1526
|
} |
|
1527
|
table.numbered-lines td.file-content > pre > code { |
|
1528
|
overflow: auto; |
|
1529
|
padding-left: 0.5em; |
|
1530
|
padding-right: 0.5em; |
|
1531
|
padding-top: 0.25em/*any top padding here must match the top MARGIN of |
|
1532
|
td.line-numbers's first span child or the |
|
1533
|
lines/code will get misaligned. */; |
|
1534
|
padding-bottom: 0.25em/*prevents a slight overlap at bottom from |
|
1535
|
triggering a scroller*/; |
|
1536
|
} |
|
1537
|
table.numbered-lines td.file-content > pre > code > * { |
|
1538
|
/* Defense against syntax highlighters indirectly messing up these |
|
1539
|
properties... */ |
|
1540
|
line-height: inherit; |
|
1541
|
font-size: inherit; |
|
1542
|
font-family: inherit; |
|
1543
|
} |
|
1544
|
table.numbered-lines td.line-numbers span.selected-line/*replacement*/ { |
|
1545
|
font-weight: bold; |
|
1546
|
color: blue; |
|
1547
|
background-color: #d5d5ff; |
|
1548
|
border: 1px blue solid; |
|
1549
|
border-top-width: 0; |
|
1550
|
border-bottom-width: 0; |
|
1551
|
padding: 0; |
|
1552
|
margin: 0; |
|
1553
|
} |
|
1554
|
table.numbered-lines td.line-numbers span.selected-line.start { |
|
1555
|
border-top-width: 1px; |
|
1556
|
margin-top: -1px/*restore alignment*/; |
|
1557
|
} |
|
1558
|
table.numbered-lines td.line-numbers span.selected-line.end { |
|
1559
|
border-bottom-width: 1px; |
|
1560
|
margin-top: -1px/*restore alignment*/; |
|
1561
|
} |
|
1562
|
table.numbered-lines td.line-numbers span.selected-line.start.end { |
|
1563
|
margin-top: -2px/*restore alignment*/; |
|
1564
|
} |
|
1565
|
|
|
1566
|
.fossil-tooltip { |
|
1567
|
text-align: center; |
|
1568
|
padding: 0.2em 1em; |
|
1569
|
border: 1px solid black; |
|
1570
|
border-radius: 0.5em; |
|
1571
|
position: absolute; |
|
1572
|
display: inline-block; |
|
1573
|
z-index: 19/*below default skin's hamburger popup*/; |
|
1574
|
box-shadow: -0.15em 0.15em 0.2em rgba(0, 0, 0, 0.75); |
|
1575
|
background-color: inherit; |
|
1576
|
color: inherit; |
|
1577
|
} |
|
1578
|
.fossil-PopupWidget { |
|
1579
|
/* This class is ALWAYS set on every fossil.PopupWidget instance, in |
|
1580
|
addition to client/app-configured classes. It should not get any |
|
1581
|
style - it is only used for DOM element selecting/filtering |
|
1582
|
purposes. */ |
|
1583
|
} |
|
1584
|
.fossil-toast-message { |
|
1585
|
/* "toast"-style popup message. |
|
1586
|
See fossil.popupwidget:toast() */ |
|
1587
|
position: absolute; |
|
1588
|
display: block; |
|
1589
|
z-index: 1001; |
|
1590
|
text-align: left; |
|
1591
|
padding: 0.15em 0.5em; |
|
1592
|
margin: 0; |
|
1593
|
font-size: 1em; |
|
1594
|
border-width: 1px; |
|
1595
|
border-style: solid; |
|
1596
|
border-color: rgba( 127, 127, 127, 0.75 ); |
|
1597
|
border-radius: 0.25em; |
|
1598
|
background-color: rgba(20, 20, 20, 1) |
|
1599
|
/* problem: if we inherit the color it may either be |
|
1600
|
transparent or inherit translucency via the |
|
1601
|
skin, leaving it unreadable. Since we set the bg |
|
1602
|
color we must also set the fg color. */; |
|
1603
|
color: rgba(235, 235, 235, 0.9); |
|
1604
|
} |
|
1605
|
.fossil-PopupWidget a, |
|
1606
|
.fossil-PopupWidget a:visited { |
|
1607
|
color: initial; |
|
1608
|
} |
|
1609
|
.fossil-toast-message.error, |
|
1610
|
.fossil-toast-message.warning { |
|
1611
|
background: yellow; |
|
1612
|
} |
|
1613
|
.fossil-toast-message.error { |
|
1614
|
font-weight: bold; |
|
1615
|
color: darkred; |
|
1616
|
border-color: darkred; |
|
1617
|
} |
|
1618
|
.fossil-toast-message.warning { |
|
1619
|
color: black; |
|
1620
|
} |
|
1621
|
|
|
1622
|
blockquote.file-content { |
|
1623
|
/* file content block in the /file page */ |
|
1624
|
margin: 0 1em; |
|
1625
|
} |
|
1626
|
|
|
1627
|
/* Generic sidebar styling inherited by skins that don't make their own |
|
1628
|
* arrangements. */ |
|
1629
|
.markdown blockquote, p.blockquote, .sidebar { |
|
1630
|
background-color: rgba(0, 0, 0, 0.05); |
|
1631
|
border-left: 3px solid #777; |
|
1632
|
padding: 0.1em 1em; |
|
1633
|
} |
|
1634
|
.sidebar { |
|
1635
|
/* Generic form that can be applied to any block element. */ |
|
1636
|
font-size: 90%; |
|
1637
|
} |
|
1638
|
div.sidebar { |
|
1639
|
/* Special exception for div-type sidebars, where there is no p |
|
1640
|
* wrapper inside to give us the extra padding we want. */ |
|
1641
|
padding: 1em; |
|
1642
|
} |
|
1643
|
div.sidebar:not(.no-label):before { |
|
1644
|
content: "Sidebar: "; |
|
1645
|
font-weight: bold; |
|
1646
|
} |
|
1647
|
|
|
1648
|
|
|
1649
|
/** |
|
1650
|
Circular "help" buttons intended to be placed to the right of |
|
1651
|
another element and hold text text for it. These typically get |
|
1652
|
initialized automatically at page startup via |
|
1653
|
fossil.popupwidget.js, and can be manually initialized/created |
|
1654
|
using window.fossil.helpButtonlets.setup/create(). All of their |
|
1655
|
child content (plain text and/or DOM elements) gets moved out of |
|
1656
|
the DOM and shown in a singleton popup when they are clicked. They |
|
1657
|
may be SPAN elements if their children are all inline elements, |
|
1658
|
otherwise they must be DIVs (block elements) so that nesting of |
|
1659
|
block-element content is legal. |
|
1660
|
*/ |
|
1661
|
.help-buttonlet { |
|
1662
|
display: inline-block; |
|
1663
|
min-width: 1em; |
|
1664
|
max-width: 1em; |
|
1665
|
min-height: 1em; |
|
1666
|
max-height: 1em; |
|
1667
|
cursor: pointer; |
|
1668
|
margin: 0 0 0 0.35em; |
|
1669
|
background-image: /* white question mark on blue circular background */ |
|
1670
|
url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' \ |
|
1671
|
viewBox='0 0 15.867574 15.867574'%3e%3ccircle cx='7.9337869' cy='7.9337869' r='7.9337869' \ |
|
1672
|
style='fill:%23f0f0f0;stroke-width:1' /%3e%3ccircle cx='7.9337869' cy='7.9337869' \ |
|
1673
|
r='6.9662519' style='fill:%23404040;stroke-width:1' /%3e%3ccircle cx='7.9337869' \ |
|
1674
|
cy='7.9337869' r='5.9987168' style='fill:%235080d0;stroke-width:1' /%3e%3cpath \ |
|
1675
|
d='M 9.2253789,9.8629486 H 6.5997716 v -0.356384 q 0,-0.5963983 0.2400139,-1.0546067 \ |
|
1676
|
0.240014,-0.4654816 1.0109681,-1.1782504 L 8.316235,6.8518647 Q 8.7308046,6.473661 \ |
|
1677
|
8.9199065,6.1390961 9.1162816,5.8045312 9.1162816,5.4699662 q 0,-0.5091205 -0.3491113,-0.7927734 \ |
|
1678
|
-0.3491111,-0.2909259 -0.9746021,-0.2909259 -0.5891252,0 -1.2728012,0.247287 \ |
|
1679
|
-0.6836761,0.240014 -1.4255375,0.720042 V 3.0698267 q 0.8800513,-0.3054724 1.6073661,-0.4509353 \ |
|
1680
|
0.7273151,-0.145463 1.403718,-0.145463 1.7746486,0 2.7056104,0.727315 0.930965,0.720042 \ |
|
1681
|
0.930965,2.1092135 0,0.7127686 -0.283654,1.2800746 -0.283652,0.5600324 -0.967329,1.2073428 \ |
|
1682
|
L 10.025425,8.2119439 Q 9.530851,8.6628792 9.3781148,8.9392588 9.2253789,9.2083654 \ |
|
1683
|
9.2253789,9.535657 Z M 6.5997716,10.939376 h 2.6256073 v 2.589241 H 6.5997716 Z' \ |
|
1684
|
style='fill:%23f8f8f8;stroke-width:1.35412836' /%3e%3c/svg%3e "); |
|
1685
|
background-repeat: no-repeat; |
|
1686
|
background-position: center; |
|
1687
|
/* When not using a background image, this additional style works |
|
1688
|
reasonably well along with a ::before content of "?": */ |
|
1689
|
/*border-width: 1px; |
|
1690
|
border-style: outset; |
|
1691
|
border-radius: 0.5em; |
|
1692
|
font-size: 100%; |
|
1693
|
font-family: monspace; |
|
1694
|
font-weight: 700; |
|
1695
|
overflow: hidden; |
|
1696
|
background-color: rgba(54, 54, 255,1); |
|
1697
|
color: rgb(255, 255, 255); |
|
1698
|
text-align: center; |
|
1699
|
line-height: 1; */ |
|
1700
|
} |
|
1701
|
/*.help-buttonlet::before { |
|
1702
|
content: "?"; |
|
1703
|
}*/ |
|
1704
|
/** |
|
1705
|
We really want to hide all help text via CSS but CSS cannot select |
|
1706
|
TEXT nodes. Thus we move them out of the way programmatically |
|
1707
|
during initialization. |
|
1708
|
*/ |
|
1709
|
.help-buttonlet > *{} |
|
1710
|
|
|
1711
|
/** |
|
1712
|
CSS class for PopupWidget which wraps .help-buttonlet content. |
|
1713
|
They also have class fossil-tooltip. We need an overly-exact |
|
1714
|
selector here to be certain that this class's style overrides |
|
1715
|
that of fossil-tooltip. |
|
1716
|
*/ |
|
1717
|
.fossil-tooltip.help-buttonlet-content { |
|
1718
|
cursor: default; |
|
1719
|
text-align: left; |
|
1720
|
border-style: outset; |
|
1721
|
} |
|
1722
|
|
|
1723
|
noscript > .error { |
|
1724
|
/* Part of the style_emit_noscript_for_js_page() interface. */ |
|
1725
|
padding: 1em; |
|
1726
|
font-size: 150%; |
|
1727
|
} |
|
1728
|
|
|
1729
|
/************************************************************ |
|
1730
|
pikchr... |
|
1731
|
DOM structure: |
|
1732
|
<DIV.pikchr-wrapper> |
|
1733
|
<DIV.pikchr-svg> |
|
1734
|
<SVG.pikchr>...</SVG> |
|
1735
|
</DIV.pikchr-svg> |
|
1736
|
<DIV.pikchr-src> |
|
1737
|
<PRE>pikchr source code</PRE> |
|
1738
|
<SPAN class='hidden'><A>link to open pikchr in /pikchrshow</A></SPAN> |
|
1739
|
<!-- ^^^ is unhidden and activated by JS code --> |
|
1740
|
</DIV.pikchr-src> |
|
1741
|
</DIV.pikchr-wrapper> |
|
1742
|
|
|
1743
|
************************************************************/ |
|
1744
|
div.pikchr-wrapper {/*outer wrapper elem for a pikchr construct*/} |
|
1745
|
div.pikchr-svg {/*wrapper for SVG.pikchr element*/} |
|
1746
|
svg.pikchr {/*pikchr SVG*/ |
|
1747
|
width: 100%/*necessary for SOME SVGs for Chrome!*/; |
|
1748
|
} |
|
1749
|
|
|
1750
|
div.pikchr-src { |
|
1751
|
/*Wrapper for source code view of a pikchr (see fossil.pikchr.js)*/ |
|
1752
|
display: flex; |
|
1753
|
flex-direction: column; |
|
1754
|
} |
|
1755
|
div.pikchr-src > pre { |
|
1756
|
/*Source code for a pikchr*/ |
|
1757
|
box-sizing: border-box; |
|
1758
|
text-align: left; |
|
1759
|
} |
|
1760
|
div.pikchr-src > span { |
|
1761
|
/*Wrapper for a link to open a pikchr in /pikchrshow*/ |
|
1762
|
margin-top: 0.5em; |
|
1763
|
margin-bottom: 0.5em; |
|
1764
|
font-size: 85%; |
|
1765
|
} |
|
1766
|
div.pikchr-src > span::before { |
|
1767
|
content: "["; |
|
1768
|
} |
|
1769
|
div.pikchr-src > span::after { |
|
1770
|
content: "]"; |
|
1771
|
} |
|
1772
|
/* The .source-inline class tells the .source class that the |
|
1773
|
source view, when enabled, should be "inline" (same position |
|
1774
|
as the graphic), else the sources are shifted to the left as |
|
1775
|
if they were "plain text". */ |
|
1776
|
div.pikchr-wrapper.center:not(.source), |
|
1777
|
div.pikchr-wrapper.center.source.source-inline{ |
|
1778
|
text-align: center; |
|
1779
|
/* Reminder for The Future: this impl also works: |
|
1780
|
|
|
1781
|
display: grid; place-items: center; |
|
1782
|
|
|
1783
|
and does not require setting display:inline-block on the relevant |
|
1784
|
child items, but caniuse.com/css-grid suggests that some |
|
1785
|
still-seemingly-legitimate browsers don't support grid mode. */ |
|
1786
|
} |
|
1787
|
div.pikchr-wrapper.center > div.pikchr-svg { |
|
1788
|
width: 100%/*necessary for Chrome!*/; |
|
1789
|
} |
|
1790
|
div.pikchr-wrapper.center:not(.source) > div.pikchr-src, |
|
1791
|
div.pikchr-wrapper.center:not(.source) > div.pikchr-svg, |
|
1792
|
/* ^^^ Centered non-source-view elements */ |
|
1793
|
div.pikchr-wrapper.center.source.source-inline div.pikchr-src, |
|
1794
|
div.pikchr-wrapper.center.source.source-inline > div.pikchr-svg |
|
1795
|
/* ^^^ Centered inline-source-view elements */{ |
|
1796
|
display:inline-block/*allows parent text-align to do the alignment*/; |
|
1797
|
/* ^^^^ Browser incompatibility: inline-block causes the centered |
|
1798
|
pikchr to shrink to the point of illegiblity in Chrome. The |
|
1799
|
closest match on Chrome seems to be using 'unset', which centers |
|
1800
|
by virtue of stretching it to the width of the window. Similarly, |
|
1801
|
using {display: grid; place-items: center} centers and sizes well |
|
1802
|
on FF but Chrome shrinks it in the same way. */ |
|
1803
|
} |
|
1804
|
div.pikchr-wrapper.indent:not(.source), |
|
1805
|
div.pikchr-wrapper.indent.source.source-inline{ |
|
1806
|
margin-left: 4em; |
|
1807
|
} |
|
1808
|
div.pikchr-wrapper.float-left:not(.source), |
|
1809
|
div.pikchr-wrapper.float-left.source.source-inline { |
|
1810
|
float: left; |
|
1811
|
padding: 1em 2em; |
|
1812
|
} |
|
1813
|
div.pikchr-wrapper.float-right:not(.source), |
|
1814
|
div.pikchr-wrapper.float-right.source.source-inline{ |
|
1815
|
float: right; |
|
1816
|
padding: 1em 2em; |
|
1817
|
} |
|
1818
|
|
|
1819
|
/* For pikchr-wrapper.source mode, toggle pre.pikchr-src and |
|
1820
|
svg.pikchr visibility... */ |
|
1821
|
div.pikchr-wrapper.source > div.pikchr-src { |
|
1822
|
/* Source code ^^^^^^^ is visible, else it is hidden */ |
|
1823
|
} |
|
1824
|
div.pikchr-wrapper:not(.source) > div.pikchr-src { |
|
1825
|
/* Hide sources when image is being shown. */ |
|
1826
|
position: absolute !important; |
|
1827
|
opacity: 0 !important; |
|
1828
|
pointer-events: none !important; |
|
1829
|
display: none !important; |
|
1830
|
} |
|
1831
|
div.pikchr-wrapper.source > div.pikchr-svg { |
|
1832
|
/* Hide image when sources are being shown. */ |
|
1833
|
position: absolute !important; |
|
1834
|
opacity: 0 !important; |
|
1835
|
pointer-events: none !important; |
|
1836
|
display: none !important; |
|
1837
|
} |
|
1838
|
|
|
1839
|
|
|
1840
|
/* An icon element intended for use as a button/menu for |
|
1841
|
accessing app-specific settings. */ |
|
1842
|
.settings-icon { |
|
1843
|
/* Icon source: https://de.wikipedia.org/wiki/Datei:OOjs_UI_icon_settings.svg |
|
1844
|
MIT License. */ |
|
1845
|
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg \ |
|
1846
|
xmlns='http://www.w3.org/2000/svg' width='24' height='24' \ |
|
1847
|
viewBox='0, 0, 24, 24'%3e%3cg id='settings'%3e%3cpath id='gear' \ |
|
1848
|
d='M3 4h3v2h-3zM12 4h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 \ |
|
1849
|
0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 11h9v2h-9zM18 11h3v2h-3zM14 10h2c.552 0 1 .448 \ |
|
1850
|
1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2h-6zM15 \ |
|
1851
|
18h6v2h-6zM11 17h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 \ |
|
1852
|
0-1-.448-1-1v-2c0-.552.448-1 1-1z'/%3e%3c/g%3e%3c/svg%3e"); |
|
1853
|
background-repeat: no-repeat; |
|
1854
|
background-position: center; |
|
1855
|
display: inline-block; |
|
1856
|
min-height: 1em; |
|
1857
|
max-height: 1em; |
|
1858
|
min-width: 1em; |
|
1859
|
max-width: 1em; |
|
1860
|
margin: 0; |
|
1861
|
padding: 0.2em/*needed to avoid image truncation*/; |
|
1862
|
border: 1px solid rgba(0,0,0,0.0)/*avoid resize when hover style kicks in*/; |
|
1863
|
cursor: pointer; |
|
1864
|
border-radius: 0.25em; |
|
1865
|
} |
|
1866
|
.settings-icon:hover { |
|
1867
|
border: 1px outset rgba(127,127,127,1); |
|
1868
|
} |
|
1869
|
body.fossil-dark-style .settings-icon { |
|
1870
|
filter: invert(100%); |
|
1871
|
} |
|
1872
|
|
|
1873
|
body.branch .brlist > table > tbody > tr:hover:not(.selected), |
|
1874
|
body.branch .brlist > table > tbody > tr.selected { |
|
1875
|
background-color: #ffc; |
|
1876
|
} |
|
1877
|
body.branch .brlist > table > tbody td:first-child > input { |
|
1878
|
cursor: pointer; |
|
1879
|
} |
|
1880
|
body.branch .brlist > table > tbody > tr > td:nth-child(1) { |
|
1881
|
display: flex; |
|
1882
|
flex-direction: row; |
|
1883
|
justify-content: space-between; |
|
1884
|
} |
|
1885
|
body.branch .submenu > a.timeline-link { |
|
1886
|
display: none; |
|
1887
|
} |
|
1888
|
body.branch .submenu > a.timeline-link.selected { |
|
1889
|
display: inline; |
|
1890
|
} |
|
1891
|
|
|
1892
|
/* Candidate fonts for various forms of monospaced text. Collected here |
|
1893
|
* to avoid repeating this long list of fonts. */ |
|
1894
|
code, kbd, pre, samp, tt, var, |
|
1895
|
div.markdown ol.footnotes > li.fn-joined > sup.fn-joined, |
|
1896
|
table.numbered-lines > tbody > tr, |
|
1897
|
tr.diffskip > td.chunkctrl, |
|
1898
|
#fossil-status-bar, |
|
1899
|
.monospace { |
|
1900
|
font-family: "MesloLGSDZ Nerd Font Mono", /* 2025 hotness */ |
|
1901
|
"Source Code Pro", /* 2012 hotness */ |
|
1902
|
"Menlo", "Monaco", "SF Mono", /* Safari reverted to Courier in 2022 */ |
|
1903
|
monospace; /* let OS/browser default take over */ |
|
1904
|
} |
|
1905
|
|
|
1906
|
div.markdown > ol.footnotes { |
|
1907
|
font-size: 90%; |
|
1908
|
} |
|
1909
|
div.markdown > ol.footnotes > li { |
|
1910
|
margin-bottom: 0.5em; |
|
1911
|
} |
|
1912
|
div.markdown ol.footnotes > li.fn-joined > sup.fn-joined { |
|
1913
|
color: gray; |
|
1914
|
} |
|
1915
|
div.markdown ol.footnotes > li.fn-joined > sup.fn-joined::after { |
|
1916
|
content: "(joined from multiple locations) "; |
|
1917
|
} |
|
1918
|
div.markdown ol.footnotes > li.fn-misreference { |
|
1919
|
margin-top: 0.75em; |
|
1920
|
margin-bottom: 0.75em; |
|
1921
|
} |
|
1922
|
div.markdown ol.footnotes > li.fn-toodeep > i, |
|
1923
|
div.markdown ol.footnotes > li.fn-misreference, |
|
1924
|
div.markdown ol.footnotes > li.fn-unreferenced { |
|
1925
|
color: gray; |
|
1926
|
} |
|
1927
|
div.markdown ol.footnotes > li.fn-misreference > span { |
|
1928
|
color: red; |
|
1929
|
} |
|
1930
|
div.markdown ol.footnotes > li.fn-misreference > span::after { |
|
1931
|
content: " (use of undefined label)."; |
|
1932
|
} |
|
1933
|
div.markdown ol.footnotes > li.fn-unreferenced { |
|
1934
|
padding-left: 0.5em; |
|
1935
|
} |
|
1936
|
div.markdown ol.footnotes > li.fn-unreferenced > code { |
|
1937
|
color: red; |
|
1938
|
} |
|
1939
|
div.markdown ol.footnotes > li.fn-unreferenced > i::after { |
|
1940
|
content: " was defined but is not referenced"; |
|
1941
|
} |
|
1942
|
div.markdown ol.footnotes > li.fn-toodeep > i::after { |
|
1943
|
content: " depth of nesting of inline footnotes exceeded the limit"; |
|
1944
|
} |
|
1945
|
div.markdown ol.footnotes > li.fn-toodeep > pre, |
|
1946
|
div.markdown ol.footnotes > li.fn-unreferenced > pre { |
|
1947
|
color: gray; |
|
1948
|
font-size: 85%; |
|
1949
|
padding-left: 0.5em; |
|
1950
|
margin-top: 0.25em; |
|
1951
|
border-left: 2px solid red; |
|
1952
|
} |
|
1953
|
div.markdown ol.footnotes > li.fn-toodeep > pre { |
|
1954
|
margin-left: 0.5em; |
|
1955
|
} |
|
1956
|
div.markdown > ol.footnotes > li > .fn-backrefs { |
|
1957
|
margin-right: 0.5em; |
|
1958
|
font-weight: bold; |
|
1959
|
} |
|
1960
|
div.markdown > ol.footnotes > li > .fn-backrefs > a, |
|
1961
|
div.markdown sup.noteref > a { |
|
1962
|
padding-left: 2px; |
|
1963
|
padding-right: 2px; |
|
1964
|
} |
|
1965
|
div.markdown sup.noteref.misref, |
|
1966
|
div.markdown sup.noteref.misref > a { |
|
1967
|
color: red; |
|
1968
|
font-size: 90%; |
|
1969
|
} |
|
1970
|
div.markdown sup.noteref > a:target, |
|
1971
|
div.markdown span.notescope:target > sup.noteref > a, |
|
1972
|
div.markdown span.notescope:hover > sup.noteref > a, |
|
1973
|
div.markdown > ol.footnotes > li > .fn-backrefs > a:target { |
|
1974
|
background: gold; |
|
1975
|
} |
|
1976
|
div.markdown span.notescope:hover, |
|
1977
|
div.markdown span.notescope:target { |
|
1978
|
border-bottom: 2px solid gold; |
|
1979
|
} |
|
1980
|
|
|
1981
|
/* Cause <dd> elements to be aligned complete to the |
|
1982
|
** right of their <dt> on help pages. */ |
|
1983
|
dl.helpOptions { |
|
1984
|
display: grid; |
|
1985
|
grid-template-columns: max-content 1fr; |
|
1986
|
column-gap: 1rem; |
|
1987
|
} |
|
1988
|
dl.helpOptions > dt { |
|
1989
|
grid-column: 1; |
|
1990
|
} |
|
1991
|
dl.helpOptions > dd { |
|
1992
|
grid-column: 2; |
|
1993
|
margin: 0; |
|
1994
|
} |
|
1995
|
div.helpPage blockquote { |
|
1996
|
margin-left: 0.2em; |
|
1997
|
} |
|
1998
|
|
|
1999
|
/* Objects in the "desktoponly" class are invisible on mobile */ |
|
2000
|
@media screen and (max-width: 600px) { |
|
2001
|
.desktoponly { |
|
2002
|
display: none; |
|
2003
|
} |
|
2004
|
} |
|
2005
|
/* Float sidebars to the right of the main content only if there's room. */ |
|
2006
|
@media screen and (min-width: 600px) { |
|
2007
|
.sidebar { |
|
2008
|
float: right; |
|
2009
|
max-width: 33%; |
|
2010
|
margin-left: 1em; |
|
2011
|
} |
|
2012
|
} |
|
2013
|
/* Objects in the "wideonly" class are invisible only on wide-screen desktops */ |
|
2014
|
@media screen and (max-width: 1200px) { |
|
2015
|
.wideonly { |
|
2016
|
display: none; |
|
2017
|
} |
|
2018
|
} |
|
2019
|
|