xref: /template/minimal/css/basic.css (revision 44351598bc4e737740cf2fe46da62f63ba14aa86)
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    overflow: scroll;
1104    max-height: calc(100vh - 100px);
1105}
1106
1107article#content #dw__toc .toggle::before
1108{
1109    display: block;
1110    content: "";
1111    width: 24px;
1112    height: 24px;
1113    background: __text_alt__;
1114    mask: url('images/bullets.svg');
1115    mask-size: contain;
1116    cursor: pointer;
1117    opacity: 0.7;
1118    position: absolute;
1119    right: 0px;
1120}
1121
1122article#content #dw__toc .toggle
1123{
1124    height: 0px;
1125    margin: 0px;
1126    padding: 0px;
1127    overflow: hidden;
1128}
1129
1130#dw__toc
1131{
1132    display: none;
1133}
1134
1135#config__manager fieldset, #config__manager tr.default .input, #config__manager .value input,
1136#config__manager tr.default .input, #config__manager tr.default input, #config__manager tr.default textarea, #config__manager tr.default select, #config__manager .selectiondefault
1137{
1138    background: none;
1139}
1140
1141#config__manager .value input, #config__manager .value select,  #config__manager .value textarea
1142{
1143    border: 1px solid var(--border-color);
1144    padding: 0.5em 1em;
1145
1146}
1147#config__manager .value input:focus, #config__manager .value select:focus, #config__manager .value textarea:focus
1148{
1149     border: 1px solid #00b7ff;
1150     background-color: var(--background);
1151     box-shadow: none;
1152}
1153
1154.dokuwiki #config__manager table.inline tr:hover td
1155{
1156     background-color: var(--background);
1157}
1158
1159.dokuwiki .editBar .summary
1160{
1161    margin-bottom: 16px;
1162}
1163
1164.dokuwiki .editBar .summary input
1165{
1166    background: var(--background);
1167    border: 1px solid var(--border-color);
1168    padding: 0.2em 0.5em;
1169    border-radius: 3px;
1170    margin-left: 10px;
1171    margin-right: 10px;
1172}
1173
1174.dokuwiki .editBar .summary input.missing
1175{
1176    background: none;
1177    border-color: red;
1178
1179}
1180
1181pre.code
1182{
1183    padding: 0.5em 1em;
1184}
1185
1186#dw__toc ul li div.li
1187{
1188    padding: 0.25em;
1189}
1190
1191
1192.dokuwiki.stoc #dw__toc
1193{
1194    position: sticky;
1195    top: 10px;
1196}
1197