1
+ [x-cloak ] { display : none !important ; }
2
+
1
3
div .odoc {
2
4
max-width : 56rem /* 896px */ ;
3
5
position : relative;
@@ -186,12 +188,12 @@ div.odoc span.at-tag {
186
188
font-weight : bold;
187
189
}
188
190
189
- div .odoc a {
191
+ div .odoc a : not (. source_code a ) {
190
192
font-weight : bold;
191
193
color : # cc4e0c ;
192
194
}
193
195
194
- .dark div .odoc a {
196
+ .dark div .odoc a : not (. source_code a ) {
195
197
text-decoration : underline;
196
198
color : white;
197
199
}
@@ -314,6 +316,24 @@ div.odoc .comment-delim {
314
316
border-color : rgb (32 , 68 , 165 );
315
317
}
316
318
319
+ .navmap-tag .page-tag ::after {
320
+ content : "P" ;
321
+ }
322
+ .page-tag {
323
+ color : rgb (32 , 68 , 165 );
324
+ background-color : rgb (32 , 68 , 165 );
325
+ border-color : rgb (32 , 68 , 165 );
326
+ }
327
+
328
+ .navmap-tag .source-tag ::after {
329
+ content : "S" ;
330
+ }
331
+ .source-tag {
332
+ color : rgb (97 , 8 , 138 );
333
+ background-color : rgb (97 , 8 , 138 );
334
+ border-color : rgb (97 , 8 , 138 );
335
+ }
336
+
317
337
span .icon-expand > .navmap-tag ,
318
338
span .no-expand > .navmap-tag {
319
339
color : white;
@@ -344,10 +364,12 @@ span.arrow-expand.open {
344
364
}
345
365
346
366
span .sign-expand ::before {
347
- content : " \002B" ;
367
+ content : "\002B" ;
348
368
display : flex;
369
+ justify-content : center;
349
370
align-items : center;
350
371
font-size : 1.25rem ;
372
+ width : 1.25rem ;
351
373
margin-top : -0.25rem ;
352
374
}
353
375
@@ -359,3 +381,263 @@ span.sign-expand.open::before {
359
381
/* Lists of modules */
360
382
361
383
.modules { list-style-type : none; padding-left : 0 ; }
384
+
385
+ /* Taken from odoc's css sheet */
386
+
387
+ .source_container {
388
+
389
+ /* light gruvbox theme colors */
390
+ --bg_h : # f9f5d7 ;
391
+ --bg : # f6f8fa ; /*#fbf1c7;*/
392
+ --bg_s : # f2e5bc ;
393
+ --bg1 : # ebdbb2 ;
394
+ --bg2 : # d5c4a1 ;
395
+ --bg3 : # bdae93 ;
396
+ --bg4 : # a89984 ;
397
+
398
+ --fg : # 282828 ;
399
+ --fg1 : # 3c3836 ;
400
+ --fg2 : # 504945 ;
401
+ --fg3 : # 665c54 ;
402
+ --fg4 : # 7c6f64 ;
403
+
404
+ --red : # 9d0006 ;
405
+ --green : # 79740e ;
406
+ --yellow : # b57614 ;
407
+ --blue : # 076678 ;
408
+ --purple : # 8f3f71 ;
409
+ --aqua : # 427b58 ;
410
+ --orange : # af3a03 ;
411
+ --gray : # 928374 ;
412
+
413
+ --red-dim : # cc2412 ;
414
+ --green-dim : # 98971a ;
415
+ --yellow-dim : # d79921 ;
416
+ --blue-dim : # 458598 ;
417
+ --purple-dim : # b16286 ;
418
+ --aqua-dim : # 689d6a ;
419
+ --orange-dim : # d65d0e ;
420
+ --gray-dim : # 7c6f64 ;
421
+
422
+ /* odoc colors */
423
+ --odoc-blue : # 5c9cf5 ;
424
+ --odoc-bg : # FFFFFF ;
425
+ --odoc-bg1 : # f6f8fa ;
426
+ --odoc-fg : # 333333 ;
427
+ --odoc-fg1 : # 1F2D3D ;
428
+
429
+ }
430
+
431
+ body .dark .source_container {
432
+ /* dark gruvbox theme colors */
433
+ --bg_h : # 1d2021 ;
434
+ --bg : # 282828 ;
435
+ --bg_s : # 32302f ;
436
+ --bg1 : # 3c3836 ;
437
+ --bg2 : # 504945 ;
438
+ --bg3 : # 665c54 ;
439
+ --bg4 : # 7c6f64 ;
440
+
441
+ --fg : # fbf1c7 ;
442
+ --fg1 : # ebdbb2 ;
443
+ --fg2 : # d5c4a1 ;
444
+ --fg3 : # bdae93 ;
445
+ --fg4 : # a89984 ;
446
+
447
+ --red : # fb4934 ;
448
+ --green : # b8bb26 ;
449
+ --yellow : # fabd2f ;
450
+ --blue : # 83a598 ;
451
+ --purple : # d3869b ;
452
+ --aqua : # 8ec07c ;
453
+ --gray : # 928374 ;
454
+ --orange : # fe8019 ;
455
+
456
+ --red-dim : # cc2412 ;
457
+ --green-dim : # 98971a ;
458
+ --yellow-dim : # d79921 ;
459
+ --blue-dim : # 458588 ;
460
+ --purple-dim : # b16286 ;
461
+ --aqua-dim : # 689d6a ;
462
+ --gray-dim : # a89984 ;
463
+ --orange-dim : # d65d0e ;
464
+
465
+ /* odoc colors */
466
+ --odoc-blue : # 5c9cf5 ;
467
+ --odoc-bg : # 202020 ;
468
+ --odoc-bg1 : # 252525 ;
469
+ --odoc-fg : # bebebe ;
470
+ --odoc-fg1 : # 777 ;
471
+ }
472
+
473
+
474
+ .source_container {
475
+ --code-color : var (--fg );
476
+ --code-background : var (--bg );
477
+
478
+ --source-link-color : var (--fg4 );
479
+ --source-line-column : var (--fg3 );
480
+ --source-line-column-bg : var (--bg_h );
481
+
482
+ --source-code-comment : var (--gray );
483
+ --source-code-docstring : var (--green-dim );
484
+ --source-code-lident : var (--fg1 );
485
+ --source-code-uident : var (--blue );
486
+ --source-code-literal : var (--yellow );
487
+ --source-code-keyword : var (--red );
488
+ --source-code-underscore : var (--fg3 );
489
+ --source-code-operator : var (--purple );
490
+ --source-code-parens : var (--orange-dim );
491
+ --source-code-separator : var (--orange-dim );
492
+ }
493
+
494
+ .source_container .source_code a : not (: hover ) {
495
+ text-decoration : inherit;
496
+ }
497
+
498
+ /* Source links float inside preformated text or headings. */
499
+ a .source_link {
500
+ float : right;
501
+ color : var (--source-link-color );
502
+ font-family : "Fira Sans" , sans-serif;
503
+ font-size : initial;
504
+ }
505
+
506
+
507
+ .source_container {
508
+ display : flex;
509
+ padding : 0 ;
510
+ }
511
+
512
+ .source_line_column {
513
+ padding-right : 0.5em ;
514
+ text-align : right;
515
+ color : var (--source-line-column );
516
+ background : var (--source-line-column-bg );
517
+ }
518
+
519
+ .source_line {
520
+ padding : 0 1em ;
521
+ }
522
+
523
+ .source_code {
524
+ flex-grow : 1 ;
525
+ background : var (--code-background );
526
+ padding : 0 0.3em ;
527
+ color : var (--code-color );
528
+ }
529
+
530
+
531
+ /* Linked highlight */
532
+ .source_code * : target {
533
+ border-radius : 1px ;
534
+ border : var (--orange-dim ) 2px solid !important ;
535
+ }
536
+
537
+ /* Keywords */
538
+ .source_code : is (.AND , .ANDOP , .AS , .ASSERT ,
539
+ .BAR , .BEGIN ,
540
+ .CLASS , .CONSTRAINT ,
541
+ .DO , .DONE , .DOWNTO ,
542
+ .ELSE , .END , .EXCEPTION , .EXTERNAL ,
543
+ .FOR , .FUN , .FUNCTION , .FUNCTOR ,
544
+ .IF , .IN , .INCLUDE , .INHERIT , .INITIALIZER ,
545
+ .LAZY , .LESSMINUS , .LET , .LETOP ,
546
+ .MATCH , .METHOD , .MINUSGREATER , .MODULE , .MUTABLE ,
547
+ .NEW , .NONREC ,
548
+ .OBJECT , .OF , .OPEN ,
549
+ .PERCENT , .PRIVATE ,
550
+ .REC ,
551
+ .SEMISEMI , .SIG , .STRUCT ,
552
+ .THEN , .TO , .TRY , .TYPE ,
553
+ .VAL , .VIRTUAL ,
554
+ .WHEN , .WITH , .WHILE )
555
+ {
556
+ color : var (--source-code-keyword );;
557
+ }
558
+
559
+ /* Separators */
560
+ .source_code : is (.COMMA , .COLON , .COLONGREATER , .SEMI ) {
561
+ color : var (--source-code-separator );
562
+ }
563
+
564
+ /* Parens
565
+ `begin` and `end ` are excluded because `end` is used in other, more
566
+ keyword-y contexts*/
567
+ .source_code : is (.BARRBRACKET ,
568
+ .LBRACE ,
569
+ .LBRACELESS ,
570
+ .LBRACKET ,
571
+ .LBRACKETAT ,
572
+ .LBRACKETATAT ,
573
+ .LBRACKETATATAT ,
574
+ .LBRACKETBAR ,
575
+ .LBRACKETGREATER ,
576
+ .LBRACKETLESS ,
577
+ .LBRACKETPERCENT ,
578
+ .LBRACKETPERCENTPERCENT ,
579
+ .LPAREN ,
580
+ .RBRACE ,
581
+ .RBRACKET ,
582
+ .RPAREN )
583
+ {
584
+ color : var (--source-code-parens );
585
+ }
586
+
587
+ /* Prefix operators */
588
+ .source_code : is (.ASSERT , .BANG , .PREFIXOP ,
589
+ /* Infix operators.
590
+ A choice had to be made for equal `=` which is both a keyword and an operator.
591
+ It looked better having it as an operator, because when it is a keyword,
592
+ there are already loads of keyword around.
593
+ It would look even nicer if there was a way to distinguish between these
594
+ two cases.*/
595
+ .INFIXOP0 , .INFIXOP1 , .INFIXOP2 , .INFIXOP3 , .INFIXOP4 ,
596
+ .BARBAR , .PLUS , .STAR , .AMPERAMPER , .AMPERAND , .COLONEQUAL , .GREATER , .LESS ,
597
+ .MINUS , .MINUSDOT , .MINUSGREATER , .OR , .PLUSDOT , .PLUSEQ , .EQUAL )
598
+ {
599
+ color : var (--source-code-operator );
600
+ }
601
+
602
+ /* Upper case ident
603
+ `true` and `false` are considered uident here, because you can bind them in a
604
+ constructor defintion :
605
+ ```ocaml
606
+ type my_bool =
607
+ | true of string
608
+ | false
609
+ | Other of int
610
+ ```
611
+ */
612
+ .source_code : is (.UIDENT , .COLONCOLON , .TRUE , .FALSE ) {
613
+ color : var (--source-code-uident );
614
+
615
+ }
616
+
617
+ /* Lower case idents.
618
+ Quotes are here because of `type 'a t = 'a list`,
619
+ and question mark and tildes because of
620
+ ```ocaml
621
+ let f ~a ?b () = Option.map a b
622
+ ```
623
+ */
624
+ .source_code : is (.LIDENT , .QUESTION , .QUOTE , .TILDE ) {
625
+ color : var (--source-code-lident );
626
+ }
627
+
628
+ /* Litterals */
629
+ .source_code : is ( .STRING , .CHAR , .INT , .FLOAT , .QUOTED_STRING_EXPR , .QUOTED_STRING_ITEM ) {
630
+ color : var (--source-code-literal );
631
+ }
632
+
633
+ .source_code : is (.UNDERSCORE ) {
634
+ color : var (--source-code-underscore );
635
+ }
636
+
637
+ .source_code : is (.DOCSTRING ) {
638
+ color : var (--source-code-docstring );
639
+ }
640
+
641
+ .source_code : is (.COMMENT ) {
642
+ color : var (--source-code-comment );
643
+ }
0 commit comments