1/** 2 * This file provides the most basic styles. 3 * 4 * If you integrate DokuWiki into another project, you might either 5 * want to integrate this file into the other project as well, or use 6 * the other project's basic CSS for DokuWiki instead of this one. 7 * 8 * @author Reactive Matter <reactivematter@protonmail.org> 9 * 10 */ 11 12html { 13 overflow-x: auto; 14 overflow-y: scroll; 15} 16 17body 18{ 19 --background: __background__; 20 --background-alt: __background_alt__; 21 --text-color: __text__; 22 --site-width: __site_width__; 23 --text-color-alt: __text_neu__; 24 --sidebar-width: __sidebar_width__; 25 --link-color: __link__; 26 --link-color-existing: __existing__; 27 --link-color-missing: __missing__; 28 --border-color: __border__; 29} 30 31body { 32 background-color: var(--background); 33 color: var(--text-color); 34 margin: 0; 35 padding: 0; 36 min-height: 100vh; 37 font-family: sans-serif; 38 font-size: 16px; 39 display: flex; 40 flex-direction: column; 41 width: 100%; 42} 43 44body:not(.full-width) 45{ 46 max-width: var(--site-width); 47 margin: auto; 48} 49 50body * 51{ 52 box-sizing: border-box; 53} 54 55 56 57 58.hide 59{ 60 display: none; 61} 62 63/*____________ headers ____________*/ 64 65h1, 66h2, 67h3, 68h4, 69h5, 70h6 { 71 font-weight: bold; 72 color: var(--text-color-alt); 73 background-color: inherit; 74 padding: 0; 75 line-height: 1.2; 76 clear: left; /* ideally 'both', but problems with toc */ 77} 78[dir=rtl] h1, 79[dir=rtl] h2, 80[dir=rtl] h3, 81[dir=rtl] h4, 82[dir=rtl] h5, 83[dir=rtl] h6 { 84 clear: right; 85} 86 87h1 { 88 font-size: 2.25em; 89 margin: 0 0 0.444em; 90} 91h2 { 92 font-size: 1.5em; 93 margin: 0 0 0.666em; 94} 95h3 { 96 font-size: 1.125em; 97 margin: 0 0 0.888em; 98} 99h4 { 100 font-size: 1em; 101 margin: 0 0 1.0em; 102} 103h5 { 104 font-size: .875em; 105 margin: 0 0 1.1428em; 106} 107h6 { 108 font-size: .75em; 109 margin: 0 0 1.333em; 110} 111/* bottom margin = 1 / font-size */ 112 113caption, 114figcaption, 115summary, 116legend { 117 font-style: italic; 118 font-weight: normal; 119 line-height: 1.2; 120 padding: 0; 121 margin: 0 0 .35em; 122} 123 124 125/*____________ basic margins and paddings ____________*/ 126 127p, 128ul, 129ol, 130dl, 131pre, 132table, 133hr, 134blockquote, 135figure, 136details, 137fieldset, 138address { 139 margin: 0 0 1.4em 0; /* bottom margin = line-height */ 140 padding: 0; 141} 142 143div { 144 margin: 0; 145 padding: 0; 146} 147 148 149/*____________ lists ____________*/ 150 151ul, 152ol { 153 padding: 0 0 0 1.5em; 154} 155[dir=rtl] ul, 156[dir=rtl] ol { 157 padding: 0 1.5em 0 0; 158} 159 160li, 161dd { 162 padding: 0; 163 margin: 0 0 0 1.5em; 164} 165[dir=rtl] li, 166[dir=rtl] dd { 167 margin: 0 1.5em 0 0; 168} 169 170dt { 171 font-weight: bold; 172 margin: 0; 173 padding: 0; 174} 175 176li ul, 177li ol, 178li dl, 179dl ul, 180dl ol, 181dl dl { 182 margin-bottom: 0; 183 padding: 0; 184} 185li li { 186 font-size: 100%; 187} 188 189ul { 190 list-style: disc outside; 191} 192ol { 193 list-style: decimal outside; 194} 195ol ol { 196 list-style-type: lower-alpha; 197} 198ol ol ol { 199 list-style-type: upper-roman; 200} 201ol ol ol ol { 202 list-style-type: upper-alpha; 203} 204ol ol ol ol ol { 205 list-style-type: lower-roman; 206} 207 208 209/*____________ tables ____________*/ 210 211table { 212 border-collapse: collapse; 213 empty-cells: show; 214 border-spacing: 0; 215 border: 1px solid var(--border-color); 216} 217 218caption { 219 caption-side: top; 220 text-align: left; 221} 222[dir=rtl] caption { 223 text-align: right; 224} 225 226th, 227td { 228 padding: .3em .5em; 229 margin: 0; 230 vertical-align: top; 231 border: 1px solid var(--border-color); 232} 233th { 234 font-weight: bold; 235 background-color: __background_alt__; 236 color: inherit; 237 text-align: left; 238} 239[dir=rtl] th { 240 text-align: right; 241} 242 243 244/*____________ links ____________*/ 245 246a { 247} 248a:link, 249a:visited { 250 text-decoration: none; 251 color: var(--link-color); 252} 253 254a:visited:hover, 255a:link:focus, 256a:visited:focus, 257a:link:active, 258a:visited:active { 259 text-decoration: none; 260} 261 262 263.dokuwiki a.wikilink2 264{ 265 color: var(--link-color-missing); 266} 267 268a:hover 269{ 270 text-decoration: underline; 271} 272 273 274/*____________ misc ____________*/ 275 276img, 277svg { 278 border-width: 0; 279 vertical-align: middle; 280 color: #666; 281 background-color: transparent; 282 font-style: italic; 283} 284 285img, 286svg, 287object, 288embed, 289iframe, 290video, 291audio { 292 max-width: 100%; 293} 294 295img, 296svg, 297video { 298 height: auto; 299} 300 301iframe { 302 border-width: 0; 303 background-color: inherit; 304} 305 306button img, 307button svg { 308 max-width: none; 309} 310 311hr { 312 border-style: solid; 313 border-width: 1px 0 0; 314 text-align: center; 315 height: 0; 316 width: 100%; 317 clear: both; 318} 319 320acronym, 321abbr { 322 font-style: normal; 323} 324acronym[title], 325abbr[title] { 326 cursor: help; 327 border-bottom: 1px dotted; 328 text-decoration: none; 329} 330em acronym, 331em abbr { 332 font-style: italic; 333} 334 335mark { 336 background: __highlight__; 337 color: inherit; 338} 339 340pre, 341code, 342samp, 343kbd { 344 font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace; 345 /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */ 346 font-size: 1em; 347 background-color: var(--background-alt); 348 color: var(--text-color); 349 direction: ltr; 350 text-align: left; 351} 352pre { 353 border: 1px solid var(--border-color); 354 padding: 0 .2em; 355 overflow: auto; 356 word-wrap: normal; 357} 358 359blockquote { 360 padding: 0 .5em; 361 border: solid var(--border-color); 362 border-width: 0 0 0 .25em; 363} 364[dir=rtl] blockquote { 365 border-width: 0 .25em 0 0; 366} 367q:before, 368q:after { 369 content: ''; 370} 371 372sub, 373sup { 374 font-size: .8em; 375 line-height: 1; 376} 377sub { 378 vertical-align: sub; 379} 380sup { 381 vertical-align: super; 382} 383 384small { 385 font-size: .8em; 386} 387 388wbr { 389 display: inline-block; 390} 391 392/*____________ forms ____________*/ 393 394form { 395 display: inline; 396 margin: 0; 397 padding: 0; 398} 399 400fieldset { 401 padding: .7em 1em 0; 402 padding: .7rem 1rem; /* for those browsers understanding :last-child */ 403 border: 1px solid #999; 404} 405fieldset > :last-child { 406 margin-bottom: 0; 407} 408legend { 409 padding: 0 .1em; 410} 411 412label { 413 vertical-align: middle; 414 cursor: pointer; 415} 416 417input, 418textarea, 419button, 420select, 421optgroup, 422option, 423keygen, 424output, 425meter, 426progress { 427 font: inherit; 428 color: inherit; 429 /* background-color destroys button look */ 430 line-height: normal; 431 margin: 0; 432 vertical-align: middle; 433 -moz-box-sizing: content-box; 434 -webkit-box-sizing: content-box; 435 box-sizing: content-box; 436} 437 438input, 439button, 440select, 441keygen, 442textarea { 443 padding: .1em; 444} 445input[type=radio], 446input[type=checkbox], 447input[type=image], 448input.check { 449 padding: 0; 450} 451 452input[type=submit], 453input[type=button], 454input[type=reset], 455input.button, 456button { 457 cursor: pointer; 458 overflow: visible; 459 padding: .1em .4em; 460} 461 462input[disabled], 463button[disabled], 464select[disabled], 465textarea[disabled], 466option[disabled], 467input[readonly], 468button[readonly], 469select[readonly], 470textarea[readonly] { 471 cursor: auto; 472 opacity: .5; 473} 474 475input:focus, 476button:focus, 477select:focus, 478keygen:focus, 479textarea:focus { 480 box-shadow: 0 0 5px #999; 481 outline: 0; 482 483} 484input::-moz-focus-inner, 485button::-moz-focus-inner { 486 border: 0; 487 padding: 0; 488} 489 490select { 491 max-width: 100%; 492} 493optgroup { 494 font-style: italic; 495 font-weight: bold; 496} 497option { 498 font-style: normal; 499 font-weight: normal; 500} 501 502#config__manager tr .input, #config__manager tr input, #config__manager tr textarea, #config__manager tr select,#config__manager fieldset, 503#config__manager tr.default .input, #config__manager tr.default input, #config__manager tr.default textarea, #config__manager tr.default select, #config__manager .selectiondefault 504{ 505 color: var(--text-color); 506} 507 508#config__manager tr .input, #config__manager tr input, #config__manager tr textarea, #config__manager tr select 509{ 510 background-color: var(--background); 511} 512 513.JSpopup 514{ 515 background-color: var(--background) !important; 516 border-color: var(--border-color) !important; 517} 518 519 520/*____________ links to wiki pages (addition to _links) ____________*/ 521 522/* existing wikipage */ 523.dokuwiki a.wikilink1 { 524 color: var(--link-color-existing); 525 background-color: inherit; 526} 527/* not existing wikipage */ 528.dokuwiki a.wikilink2 { 529 color: var(--link-color-missing); 530 background-color: inherit; 531} 532 533 534/*____________ images ____________*/ 535 536/* embedded images (styles are already partly set in DokuWiki's lib/styles/all.css) */ 537.dokuwiki img.media { 538 margin: .2em 0; 539} 540.dokuwiki img.medialeft { 541 margin: .2em 1.5em .2em 0; 542} 543.dokuwiki img.mediaright { 544 margin: .2em 0 .2em 1.5em; 545} 546.dokuwiki img.mediacenter { 547 margin: .2em auto; 548} 549 550 551/*____________ tables ____________*/ 552 553/* div before each table */ 554.dokuwiki div.table { 555} 556 557.dokuwiki table.inline { 558 min-width: 50%; 559} 560.dokuwiki table.inline tr:hover td { 561 background-color: var(--background-alt); 562} 563.dokuwiki table.inline tr:hover th { 564 background-color: var(--border-color); 565} 566 567 568/*____________ code ____________*/ 569 570/* fix if background-color hides underlining */ 571.dokuwiki em.u code { 572 text-decoration: underline; 573} 574 575/* filenames for downloadable file and code blocks */ 576.dokuwiki dl.code, 577.dokuwiki dl.file { 578} 579 580.dokuwiki dl.code dt, 581.dokuwiki dl.file dt { 582 background-color: var(--background-alt); 583 border: solid var(--border-color); 584 border-width: 1px 1px 0; 585 color: inherit; 586 display: inline; 587 padding: .1em .5em .2em; 588 margin-left: 1em; 589} 590[dir=rtl] .dokuwiki dl.code dt, 591[dir=rtl] .dokuwiki dl.file dt { 592 margin-left: 0; 593 margin-right: 1em; 594} 595.dokuwiki dl.code dt a, 596.dokuwiki dl.file dt a { 597} 598 599.dokuwiki dl.code dd, 600.dokuwiki dl.file dd { 601 margin: 0; 602} 603 604/* for code in <file> */ 605.dokuwiki pre.file, 606.dokuwiki dl.file pre, 607.dokuwiki dl.file dt { 608 border-color: var(--border-color); 609} 610 611 612/*____________ media manager ____________*/ 613 614/* some headings in the media manager should not look like headings */ 615#mediamanager__page h2, 616#mediamanager__page h3 { 617 font-family: Frutiger, Calibri, Myriad, "Nimbus Sans L", Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif; 618 color: var(--text-color); 619} 620 621/* to style button-like div in _fileuploader.css to look like other buttons, 622 please add '.qq-upload-button' to the according styles (which don't really exist in this template) */ 623.qq-upload-button { 624 border: 1px solid var(--border-color); 625 background-color: var(--background-alt); 626 padding: 0.125em 0.4em; 627} 628 629/*____________ styling plugin ____________*/ 630 631#plugin__styling.ispopup { 632 padding: 1em; 633} 634 635 636/*____________ JS popup ____________*/ 637 638.JSpopup { 639 background-color: var(--background); 640 color: var(--text-color); 641 border: 1px solid var(--border-color); 642 line-height: 1.2; 643 padding: 0 .2em; 644} 645 646.JSpopup ul, 647.JSpopup ol { 648 padding-left: 0; 649} 650[dir=rtl] .JSpopup ul, 651[dir=rtl] .JSpopup ol { 652 padding-right: 0; 653} 654 655 656/* CSS starts */ 657 658.hide 659{ 660 display: none; 661} 662 663.flex-fill 664{ 665 flex-grow: 1; 666} 667 668.left-column { 669 display: flex; 670 flex-wrap: wrap; 671 flex-direction: column; 672 gap: 16px; 673 padding: 8px 16px; 674} 675 676.right-column { 677 display: flex; 678 flex-wrap: wrap; 679 flex-direction: column; 680 flex-grow: 1; 681 gap: 16px; 682 padding: 8px 16px; 683} 684 685 686 687navbar 688{ 689 display: flex; 690 border-bottom: 1px solid var(--border-color); 691 line-height: 1; 692} 693 694navbar .site-name 695{ 696 display: flex; 697 gap: 16px; 698 align-items: center; 699} 700 701 702navbar .site-name .site-logo 703{ 704 width: 24px; 705 height: 24px; 706} 707navbar .site-name .site-title 708{ 709 font-weight: bold; 710 font-size: 1.2rem; 711 padding: 8px 0px; 712} 713 714navbar a.site-name, navbar a.site-name:hover 715{ 716 color: __title_color__; 717 text-decoration: none; 718} 719 720navbar form.search button { 721 background-color: transparent; 722 background-image: url("images/search.svg"); 723 border-width: 0; 724 background-size: 14px; 725 background-repeat: no-repeat; 726 width: 19px; 727 height: 14px; 728 text-indent: -99999px; 729 margin-left: -20px; 730 box-shadow: none; 731 padding: 0; 732 position: relative; 733 top:0px; 734 right: 5px; 735 opacity: 0.5; 736} 737 738navbar form.search input 739{ 740 padding: 0.5em 1em; 741 padding-right: 2em; 742 width: 20rem; 743 border: 1px solid var(--border-color); 744 border-radius: 3px; 745 box-sizing: border-box; 746 background-color: var(--background); 747} 748navbar form.search input:focus 749{ 750 box-shadow: none; 751} 752 753#navbar .left-column 754{ 755 flex-direction: row; 756 align-items: center; 757} 758#navbar .right-column { 759 border: none; 760 flex-direction: row-reverse; 761 gap: 16px; 762 align-items: center; 763} 764 765#qsearch__out 766{ 767 display: none; 768 padding: 0.5em 1em; 769 width: 20rem; 770 left: unset; 771 top: unset; 772} 773 774#qsearch__out>strong 775{ 776 color: __text_alt__; 777 margin-bottom: 1em; 778} 779#qsearch__out ul, #qsearch__out ol, #qsearch__out li 780{ 781 margin: 0px; 782} 783 784#qsearch__out li 785{ 786 margin: 4px 0px; 787} 788 789navbar .right-column .options 790{ 791 display: flex; 792 flex-direction: row; 793} 794 795#main 796{ 797 display: flex; 798 flex-grow: 1; 799} 800 801.page-info 802{ 803 margin-top: 24px; 804 font-size: 0.9em; 805} 806 807 808 809 810div#view>* 811{ 812 padding-left: 0px; 813 padding-right: 0px; 814} 815 816div#view, div#sidebar 817{ 818 padding-top: 16px; 819 padding-bottom: 16px; 820} 821 822.site-header 823{ 824 border-bottom: 1px solid var(--border-color); 825} 826 827.site-header 828{ 829 display: flex; 830 flex-direction: column; 831 padding-top: 8px; 832 padding-bottom: 8px; 833 padding-left: 16px; 834 padding-right: 16px; 835 gap: 8px; 836} 837 838#view>.site-header 839{ 840 padding-top: 0px; 841 padding-left: 0px; 842 padding-right: 0px; 843} 844 845.site-header .site-header-content 846{ 847 padding: 8px 0px; 848} 849 850#view>.site-header .site-header-content 851{ 852 padding: 0px; 853} 854 855.site-navigation 856{ 857 display: flex; 858 flex-direction: column; 859 gap: 8px; 860} 861 862 863 864.site-header-content>*:last-child, footer>*:last-child 865{ 866 margin-bottom: 0px; 867} 868 869footer 870{ 871 padding: 16px; 872 border-top: 1px solid var(--border-color); 873} 874 875#view>footer 876{ 877 padding-bottom: 0px; 878} 879 880 881article#content 882{ 883 flex-grow: 1; 884} 885 886article#content h1 887{ 888 font-size: 2em; 889} 890article#content h2 891{ 892 font-size: 1.5em; 893} 894 895article#content h3 896{ 897 font-size: 1.25em; 898} 899 900article#content h4 901{ 902 font-size: 1em; 903} 904 905h1, h2, h3, h4, h5, h6 906{ 907 color: var(--text-color); 908} 909 910.menu 911{ 912 position: relative; 913 cursor: pointer; 914} 915 916 917.menu .list 918{ 919 display: none; 920 position: absolute; 921 right: 0px; 922 background-color: var(--background); 923 border: 1px solid var(--border-color); 924 min-width: 200px; 925 padding: 8px 0px; 926 top: 44px; 927 z-index: 20000; 928 border-radius: 3px; 929} 930.menu .list li 931{ 932 list-style: none; 933 margin: 0px; 934 padding: 0px; 935} 936 937.menu .list li>a 938{ 939 display: flex; 940 flex-direction: row-reverse; 941 justify-content: flex-end; 942 align-items: center; 943 gap: 16px; 944 text-decoration: none; 945 color: var(--text-color) ; 946 padding: 4px 16px ; 947} 948.menu .list li>a:hover 949{ 950 background-color: __background_alt__; 951} 952.menu .list li>a svg 953{ 954 fill: __text_alt__; 955} 956 957.menu .list li.top 958{ 959 display: none; 960} 961 962.menu .list .user-name 963{ 964 padding: 8px 16px; 965 text-align: center; 966 font-weight: bold; 967} 968 969.menu .button 970{ 971 display: flex; 972 gap: 4px; 973 align-items: center; 974 color: __text_alt__; 975} 976 977.menu .button:hover 978{ 979 color: var(--text-color); 980} 981 982.user-menu .button::before { 983 mask-image: url('images/user-circle.svg'); 984} 985 986.page-menu .button::before{ 987 mask-image: url('images/document-text.svg'); 988} 989 990.site-menu .button::before{ 991 mask-image: url('images/server.svg'); 992} 993 994#showhidesidemenu .button::before 995{ 996 mask-image: url('images/menu.svg'); 997} 998 999#showhideappoptions .button::before 1000{ 1001 mask-image: url('images/three-dots-vertical.svg'); 1002} 1003 1004 1005.menu .button::before, .mobile.icon .button::before 1006{ 1007 display: block; 1008 content: ""; 1009 background-size: 1em; 1010 mask-repeat: no-repeat; 1011 mask-size: contain; 1012 height: 1.2em; 1013 width: 1.2em; 1014 opacity: 0.9; 1015 background: __text_alt__; 1016} 1017 1018.menu .button:hover::before 1019{ 1020 opacity: 1; 1021} 1022 1023 1024 1025.options 1026{ 1027 display: flex; 1028 gap: 16px; 1029} 1030 1031 1032navbar .options 1033{ 1034 gap: 0px; 1035} 1036 1037navbar .options .menu 1038{ 1039 padding: 8px; 1040} 1041 1042.mobile.icon 1043{ 1044 display: none; 1045 cursor: pointer; 1046} 1047 1048.mobile-menu 1049{ 1050 display: none; 1051} 1052 1053/* Correcting Dokuwiki defaults */ 1054ul.actions, .dokuwiki .editBar .editButtons 1055{ 1056 display: flex; 1057 gap: 10px; 1058 flex-wrap: wrap; 1059} 1060#wiki__editbar 1061{ 1062 margin-top: 15px; 1063 display: flex; 1064 flex-direction: column; 1065 gap: 15px; 1066} 1067 1068div#sidebar 1069{ 1070 width: var(--sidebar-width); 1071 border-right: 1px solid var(--border-color); 1072 flex-shrink:0; 1073 flex-grow: 0; 1074} 1075 1076article#content 1077{ 1078 position: relative; 1079} 1080 1081#dw__toc 1082{ 1083 background-color: transparent; 1084 border: none; 1085 position: absolute; 1086 right: 0px; 1087 width: 15em; 1088} 1089 1090#dw__toc>div 1091{ 1092 background-color: var(--background); 1093 border: 1px solid var(--border-color); 1094 border-radius: 3px; 1095 margin-top: 28px; 1096 width: 100%; 1097 padding: 0.5em 1em; 1098} 1099 1100.dokuwiki.stoc #dw__toc>div 1101{ 1102 position: absolute; 1103} 1104 1105article#content #dw__toc .toggle::before 1106{ 1107 display: block; 1108 content: ""; 1109 width: 24px; 1110 height: 24px; 1111 background: __text_alt__; 1112 mask: url('images/bullets.svg'); 1113 mask-size: contain; 1114 cursor: pointer; 1115 opacity: 0.7; 1116 position: absolute; 1117 right: 0px; 1118} 1119 1120article#content #dw__toc .toggle 1121{ 1122 height: 0px; 1123 margin: 0px; 1124 padding: 0px; 1125 overflow: hidden; 1126} 1127 1128#dw__toc 1129{ 1130 display: none; 1131} 1132 1133#config__manager fieldset, #config__manager tr.default .input, #config__manager .value input, 1134#config__manager tr.default .input, #config__manager tr.default input, #config__manager tr.default textarea, #config__manager tr.default select, #config__manager .selectiondefault 1135{ 1136 background: none; 1137} 1138 1139#config__manager .value input, #config__manager .value select, #config__manager .value textarea 1140{ 1141 border: 1px solid var(--border-color); 1142 padding: 0.5em 1em; 1143 1144} 1145#config__manager .value input:focus, #config__manager .value select:focus, #config__manager .value textarea:focus 1146{ 1147 border: 1px solid #00b7ff; 1148 background-color: var(--background); 1149 box-shadow: none; 1150} 1151 1152.dokuwiki #config__manager table.inline tr:hover td 1153{ 1154 background-color: var(--background); 1155} 1156 1157.dokuwiki .editBar .summary 1158{ 1159 margin-bottom: 16px; 1160} 1161 1162.dokuwiki .editBar .summary input 1163{ 1164 background: var(--background); 1165 border: 1px solid var(--border-color); 1166 padding: 0.2em 0.5em; 1167 border-radius: 3px; 1168 margin-left: 10px; 1169 margin-right: 10px; 1170} 1171 1172.dokuwiki .editBar .summary input.missing 1173{ 1174 background: none; 1175 border-color: red; 1176 1177} 1178 1179pre.code 1180{ 1181 padding: 0.5em 1em; 1182} 1183 1184#dw__toc ul li div.li 1185{ 1186 padding: 0.25em; 1187} 1188 1189 1190.dokuwiki.stoc #dw__toc 1191{ 1192 position: sticky; 1193 top: 10px; 1194} 1195