Fossil SCM

fossil-scm / src / default.css
Blame History Raw 2019 lines
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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button