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