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 margin-top: 16px; 862 flex-grow: 1; 863} 864 865article#content h1 866{ 867 font-size: 2em; 868} 869article#content h2 870{ 871 font-size: 1.5em; 872} 873 874article#content h3 875{ 876 font-size: 1.25em; 877} 878 879article#content h4 880{ 881 font-size: 1em; 882} 883 884h1, h2, h3, h4, h5, h6 885{ 886 color: var(--text-color); 887} 888 889.menu 890{ 891 position: relative; 892 cursor: pointer; 893} 894 895 896.menu .list 897{ 898 display: none; 899 position: absolute; 900 right: 0px; 901 background-color: var(--background); 902 border: 1px solid var(--border-color); 903 min-width: 200px; 904 padding: 8px 0px; 905 top: 44px; 906 z-index: 20000; 907 border-radius: 3px; 908} 909.menu .list li 910{ 911 list-style: none; 912 margin: 0px; 913 padding: 0px; 914} 915 916.menu .list li>a 917{ 918 display: flex; 919 flex-direction: row-reverse; 920 justify-content: flex-end; 921 align-items: center; 922 gap: 16px; 923 text-decoration: none; 924 color: var(--text-color) ; 925 padding: 4px 16px ; 926} 927.menu .list li>a:hover 928{ 929 background-color: __background_alt__; 930} 931.menu .list li>a svg 932{ 933 fill: __text_alt__; 934} 935 936.menu .list li.top 937{ 938 display: none; 939} 940 941.menu .list .user-name 942{ 943 padding: 8px 16px; 944 text-align: center; 945 font-weight: bold; 946} 947 948.menu .button 949{ 950 display: flex; 951 gap: 4px; 952 align-items: center; 953 color: __text_alt__; 954} 955 956.menu .button:hover 957{ 958 color: var(--text-color); 959} 960 961.user-menu .button::before { 962 mask-image: url('images/user-circle.svg'); 963} 964 965.page-menu .button::before{ 966 mask-image: url('images/document-text.svg'); 967} 968 969.site-menu .button::before{ 970 mask-image: url('images/server.svg'); 971} 972 973#showhidesidemenu .button::before 974{ 975 mask-image: url('images/menu.svg'); 976} 977 978#showhideappoptions .button::before 979{ 980 mask-image: url('images/three-dots-vertical.svg'); 981} 982 983 984.menu .button::before, .mobile.icon .button::before 985{ 986 display: block; 987 content: ""; 988 background-size: 1em; 989 mask-repeat: no-repeat; 990 mask-size: contain; 991 height: 1.2em; 992 width: 1.2em; 993 opacity: 0.9; 994 background: __text_alt__; 995} 996 997.menu .button:hover::before 998{ 999 opacity: 1; 1000} 1001 1002 1003 1004.options 1005{ 1006 display: flex; 1007 gap: 16px; 1008} 1009 1010 1011navbar .options 1012{ 1013 gap: 0px; 1014} 1015 1016navbar .options .menu 1017{ 1018 padding: 8px; 1019} 1020 1021.mobile.icon 1022{ 1023 display: none; 1024 cursor: pointer; 1025} 1026 1027.mobile-menu 1028{ 1029 display: none; 1030} 1031 1032/* Correcting Dokuwiki defaults */ 1033ul.actions, .dokuwiki .editBar .editButtons 1034{ 1035 display: flex; 1036 gap: 10px; 1037 flex-wrap: wrap; 1038} 1039#wiki__editbar 1040{ 1041 margin-top: 15px; 1042 display: flex; 1043 flex-direction: column; 1044 gap: 15px; 1045} 1046 1047div#sidebar 1048{ 1049 width: var(--sidebar-width); 1050 border-right: 1px solid var(--border-color); 1051 flex-shrink:0; 1052 flex-grow: 0; 1053} 1054 1055article#content 1056{ 1057 position: relative; 1058} 1059 1060#dw__toc 1061{ 1062 background-color: transparent; 1063 border: none; 1064 position: absolute; 1065 right: 0px; 1066 width: 15em; 1067} 1068 1069#dw__toc>div 1070{ 1071 background-color: var(--background); 1072 border: 1px solid var(--border-color); 1073 border-radius: 3px; 1074 margin-top: 28px; 1075 width: 100%; 1076 padding: 0.5em 1em; 1077} 1078 1079article#content #dw__toc .toggle::before 1080{ 1081 display: block; 1082 content: ""; 1083 width: 24px; 1084 height: 24px; 1085 background: __text_alt__; 1086 mask: url('images/bullets.svg'); 1087 mask-size: contain; 1088 cursor: pointer; 1089 opacity: 0.7; 1090 position: absolute; 1091 right: 0px; 1092} 1093 1094article#content #dw__toc .toggle 1095{ 1096 height: 0px; 1097 margin: 0px; 1098 padding: 0px; 1099 overflow: hidden; 1100} 1101 1102#dw__toc 1103{ 1104 display: none; 1105} 1106 1107#config__manager fieldset, #config__manager tr.default .input, #config__manager .value input, 1108#config__manager tr.default .input, #config__manager tr.default input, #config__manager tr.default textarea, #config__manager tr.default select, #config__manager .selectiondefault 1109{ 1110 background: none; 1111} 1112 1113#config__manager .value input, #config__manager .value select, #config__manager .value textarea 1114{ 1115 border: 1px solid var(--border-color); 1116 padding: 0.5em 1em; 1117 1118} 1119#config__manager .value input:focus, #config__manager .value select:focus, #config__manager .value textarea:focus 1120{ 1121 border: 1px solid #00b7ff; 1122 background-color: var(--background); 1123 box-shadow: none; 1124} 1125 1126.dokuwiki #config__manager table.inline tr:hover td 1127{ 1128 background-color: var(--background); 1129} 1130 1131.dokuwiki .editBar .summary 1132{ 1133 margin-bottom: 16px; 1134} 1135 1136.dokuwiki .editBar .summary input 1137{ 1138 background: var(--background); 1139 border: 1px solid var(--border-color); 1140 padding: 0.2em 0.5em; 1141 border-radius: 3px; 1142 margin-left: 10px; 1143 margin-right: 10px; 1144} 1145 1146.dokuwiki .editBar .summary input.missing 1147{ 1148 background: none; 1149 border-color: red; 1150 1151} 1152 1153pre.code 1154{ 1155 padding: 0.5em 1em; 1156} 1157 1158#dw__toc ul li div.li 1159{ 1160 padding: 0.25em; 1161} 1162 1163.plain-toolbar li svg 1164{ 1165 display: none; 1166} 1167 1168.plain-toolbar 1169{ 1170 padding: 8px 0px; 1171 display: flex; 1172 flex-wrap: wrap; 1173 gap: 16px; 1174 flex-direction: row; 1175} 1176 1177.plain-toolbar li 1178{ 1179 list-style: none; 1180 padding: 0px; 1181 margin:0px; 1182} 1183 1184 1185body.dokuwiki, #main 1186{ 1187 display: flex; 1188 flex-direction: column; 1189} 1190 1191#main, #content 1192{ 1193 flex-grow: 1; 1194} 1195 1196navbar .site-tagline 1197{ 1198 font-size: 0.9em; 1199}