xref: /template/minimal/css/basic.css (revision d9eab01f1a305070fb3b7d9b4fb1a04500049d6d)
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 Anika Henke <anika@selfthinker.org>
9 */
10
11html {
12    overflow-x: auto;
13    overflow-y: scroll;
14}
15html,
16body {
17    background-color: __background__;
18    color: __text__;
19    margin: 0;
20    padding: 0;
21    min-height: 100vh;
22    font-family: sans-serif;
23    font-size: 16px;
24    display: flex;
25    flex-direction: column;
26    width: 100%;
27}
28
29body:not(.full-width)
30{
31    max-width: __site_width__;
32    margin: auto;
33}
34
35body *
36{
37    box-sizing: border-box;
38}
39
40.hide
41{
42    display: none;
43}
44
45/*____________ headers ____________*/
46
47h1,
48h2,
49h3,
50h4,
51h5,
52h6 {
53    font-weight: bold;
54    color: __text_neu__;
55    background-color: inherit;
56    padding: 0;
57    line-height: 1.2;
58    clear: left; /* ideally 'both', but problems with toc */
59}
60[dir=rtl] h1,
61[dir=rtl] h2,
62[dir=rtl] h3,
63[dir=rtl] h4,
64[dir=rtl] h5,
65[dir=rtl] h6 {
66    clear: right;
67}
68
69h1 {
70    font-size: 2.25em;
71    margin: 0 0 0.444em;
72}
73h2 {
74    font-size: 1.5em;
75    margin: 0 0 0.666em;
76}
77h3 {
78    font-size: 1.125em;
79    margin: 0 0 0.888em;
80}
81h4 {
82    font-size: 1em;
83    margin: 0 0 1.0em;
84}
85h5 {
86    font-size: .875em;
87    margin: 0 0 1.1428em;
88}
89h6 {
90    font-size: .75em;
91    margin: 0 0 1.333em;
92}
93/* bottom margin = 1 / font-size */
94
95caption,
96figcaption,
97summary,
98legend {
99    font-style: italic;
100    font-weight: normal;
101    line-height: 1.2;
102    padding: 0;
103    margin: 0 0 .35em;
104}
105
106
107/*____________ basic margins and paddings ____________*/
108
109p,
110ul,
111ol,
112dl,
113pre,
114table,
115hr,
116blockquote,
117figure,
118details,
119fieldset,
120address {
121    margin: 0 0 1.4em 0; /* bottom margin = line-height */
122    padding: 0;
123}
124
125div {
126    margin: 0;
127    padding: 0;
128}
129
130
131/*____________ lists ____________*/
132
133ul,
134ol {
135    padding: 0 0 0 1.5em;
136}
137[dir=rtl] ul,
138[dir=rtl] ol {
139    padding: 0 1.5em 0 0;
140}
141
142li,
143dd {
144    padding: 0;
145    margin: 0 0 0 1.5em;
146}
147[dir=rtl] li,
148[dir=rtl] dd {
149    margin: 0 1.5em 0 0;
150}
151
152dt {
153    font-weight: bold;
154    margin: 0;
155    padding: 0;
156}
157
158li ul,
159li ol,
160li dl,
161dl ul,
162dl ol,
163dl dl {
164    margin-bottom: 0;
165    padding: 0;
166}
167li li {
168    font-size: 100%;
169}
170
171ul {
172    list-style: disc outside;
173}
174ol {
175    list-style: decimal outside;
176}
177ol ol {
178    list-style-type: lower-alpha;
179}
180ol ol ol {
181    list-style-type: upper-roman;
182}
183ol ol ol ol {
184    list-style-type: upper-alpha;
185}
186ol ol ol ol ol {
187    list-style-type: lower-roman;
188}
189
190
191/*____________ tables ____________*/
192
193table {
194    border-collapse: collapse;
195    empty-cells: show;
196    border-spacing: 0;
197    border: 1px solid __border__;
198}
199
200caption {
201    caption-side: top;
202    text-align: left;
203}
204[dir=rtl] caption {
205    text-align: right;
206}
207
208th,
209td {
210    padding: .3em .5em;
211    margin: 0;
212    vertical-align: top;
213    border: 1px solid __border__;
214}
215th {
216    font-weight: bold;
217    background-color: __background_alt__;
218    color: inherit;
219    text-align: left;
220}
221[dir=rtl] th {
222    text-align: right;
223}
224
225
226/*____________ links ____________*/
227
228a {
229}
230a:link,
231a:visited {
232    text-decoration: none;
233    color: __link__;
234}
235
236a:visited:hover,
237a:link:focus,
238a:visited:focus,
239a:link:active,
240a:visited:active {
241    text-decoration: none;
242}
243
244
245a:hover
246{
247    text-decoration: underline;
248}
249
250
251/*____________ misc ____________*/
252
253img,
254svg {
255    border-width: 0;
256    vertical-align: middle;
257    color: #666;
258    background-color: transparent;
259    font-style: italic;
260}
261
262img,
263svg,
264object,
265embed,
266iframe,
267video,
268audio {
269    max-width: 100%;
270}
271
272img,
273svg,
274video {
275    height: auto;
276}
277
278iframe {
279    border-width: 0;
280    background-color: inherit;
281}
282
283button img,
284button svg {
285    max-width: none;
286}
287
288hr {
289    border-style: solid;
290    border-width: 1px 0 0;
291    text-align: center;
292    height: 0;
293    width: 100%;
294    clear: both;
295}
296
297acronym,
298abbr {
299    font-style: normal;
300}
301acronym[title],
302abbr[title] {
303    cursor: help;
304    border-bottom: 1px dotted;
305    text-decoration: none;
306}
307em acronym,
308em abbr {
309    font-style: italic;
310}
311
312mark {
313    background: __highlight__;
314    color: inherit;
315}
316
317pre,
318code,
319samp,
320kbd {
321    font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
322    /* same font stack should be used for ".dokuwiki table.diff td" in _diff.css */
323    font-size: 1em;
324    background-color: __background_alt__;
325    color: __text__;
326    direction: ltr;
327    text-align: left;
328}
329pre {
330    border: 1px solid __border__;
331    padding: 0 .2em;
332    overflow: auto;
333    word-wrap: normal;
334}
335
336blockquote {
337    padding: 0 .5em;
338    border: solid __border__;
339    border-width: 0 0 0 .25em;
340}
341[dir=rtl] blockquote {
342    border-width: 0 .25em 0 0;
343}
344q:before,
345q:after {
346    content: '';
347}
348
349sub,
350sup {
351    font-size: .8em;
352    line-height: 1;
353}
354sub {
355    vertical-align: sub;
356}
357sup {
358    vertical-align: super;
359}
360
361small {
362    font-size: .8em;
363}
364
365wbr {
366    display: inline-block;
367}
368
369/*____________ forms ____________*/
370
371form {
372    display: inline;
373    margin: 0;
374    padding: 0;
375}
376
377fieldset {
378    padding: .7em 1em 0;
379    padding: .7rem 1rem; /* for those browsers understanding :last-child */
380    border: 1px solid #999;
381}
382fieldset > :last-child {
383    margin-bottom: 0;
384}
385legend {
386    padding: 0 .1em;
387}
388
389label {
390    vertical-align: middle;
391    cursor: pointer;
392}
393
394input,
395textarea,
396button,
397select,
398optgroup,
399option,
400keygen,
401output,
402meter,
403progress {
404    font: inherit;
405    color: inherit;
406    /* background-color destroys button look */
407    line-height: normal;
408    margin: 0;
409    vertical-align: middle;
410    -moz-box-sizing: content-box;
411    -webkit-box-sizing: content-box;
412    box-sizing: content-box;
413}
414
415input,
416button,
417select,
418keygen,
419textarea {
420    padding: .1em;
421}
422input[type=radio],
423input[type=checkbox],
424input[type=image],
425input.check {
426    padding: 0;
427}
428
429input[type=submit],
430input[type=button],
431input[type=reset],
432input.button,
433button {
434    cursor: pointer;
435    overflow: visible;
436    padding: .1em .4em;
437}
438
439input[disabled],
440button[disabled],
441select[disabled],
442textarea[disabled],
443option[disabled],
444input[readonly],
445button[readonly],
446select[readonly],
447textarea[readonly] {
448    cursor: auto;
449    opacity: .5;
450}
451
452input:focus,
453button:focus,
454select:focus,
455keygen:focus,
456textarea:focus {
457    box-shadow: 0 0 5px #999;
458    outline: 0;
459}
460input::-moz-focus-inner,
461button::-moz-focus-inner {
462    border: 0;
463    padding: 0;
464}
465
466select {
467    max-width: 100%;
468}
469optgroup {
470    font-style: italic;
471    font-weight: bold;
472}
473option {
474    font-style: normal;
475    font-weight: normal;
476}
477
478.hide
479{
480    display: none;
481}
482
483.flex-fill
484{
485    flex-grow: 1;
486}
487
488.left-column {
489    display: flex;
490    flex-wrap: wrap;
491    flex-direction: column;
492    gap: 16px;
493    padding: 8px 16px;
494}
495
496.right-column {
497    display: flex;
498    flex-wrap: wrap;
499    flex-direction: column;
500    flex-grow: 1;
501    gap: 16px;
502    padding: 8px 16px;
503}
504
505
506
507navbar
508{
509    display: flex;
510    border-bottom: 1px solid __border__;
511}
512
513navbar .site-name
514{
515    display: flex;
516    gap: 16px;
517}
518
519
520navbar .site-name .site-logo
521{
522    width: 24px;
523    height: 24px;
524}
525navbar .site-name .site-title
526{
527    font-weight: bold;
528    font-size: 1.2rem;
529}
530
531navbar a.site-name, navbar a.site-name:hover
532{
533    color: __title_color__;
534    text-decoration: none;
535}
536
537navbar form.search button {
538    background-color: transparent;
539    background-image: url("images/search.svg");
540    border-width: 0;
541    background-size: 14px;
542    background-repeat: no-repeat;
543    width: 19px;
544    height: 14px;
545    text-indent: -99999px;
546    margin-left: -20px;
547    box-shadow: none;
548    padding: 0;
549    position: relative;
550    top:0px;
551    right: 5px;
552    opacity: 0.5;
553}
554
555navbar form.search input
556{
557    padding: 0.5em 1em;
558    padding-right: 2em;
559    width: 20rem;
560    border: 1px solid __border__;
561    border-radius: 3px;
562    box-sizing: border-box;
563}
564navbar form.search input:focus
565{
566    box-shadow: none;
567}
568
569#navbar .left-column
570{
571    flex-direction: row;
572    align-items: center;
573}
574#navbar .right-column {
575    border: none;
576    flex-direction: row-reverse;
577    gap: 16px;
578    align-items: center;
579}
580
581#qsearch__out
582{
583    display: none;
584    padding: 0.5em 1em;
585    width: 20rem;
586    left: unset;
587    top: unset;
588}
589
590#qsearch__out>strong
591{
592    color: __text_alt__;
593    margin-bottom: 1em;
594}
595#qsearch__out ul, #qsearch__out ol, #qsearch__out li
596{
597    margin: 0px;
598}
599
600#qsearch__out li
601{
602    margin: 4px 0px;
603}
604
605navbar .right-column .options
606{
607    display: flex;
608    flex-direction: row;
609}
610
611#main
612{
613    display: flex;
614    flex-grow: 1;
615}
616
617.page-info
618{
619    padding: 16px;
620}
621
622
623.site-header
624{
625    padding: 8px 16px;
626    border-bottom: 1px solid __border__;
627}
628
629#view>*
630{
631    padding-left: 0px;
632    padding-right: 0px;
633}
634
635.site-header, .site-navigation,
636{
637    display: flex;
638    flex-direction: column;
639    gap: 16px;
640}
641
642footer
643{
644    padding: 16px;
645    border-top: 1px solid __border__;
646}
647
648.site-header-content>*:last-child, footer>*:last-child
649{
650    margin-bottom: 0px;
651}
652
653
654article#content
655{
656    flex-grow: 1;
657
658}
659
660article#content h1
661{
662    font-size: 2em;
663    margin-top: 0.5em;
664}
665article#content h2
666{
667    font-size: 1.5em;
668}
669
670article#content h3
671{
672    font-size: 1.25em;
673}
674
675article#content h4
676{
677    font-size: 1em;
678}
679
680h1, h2, h3, h4, h5, h6
681{
682    color: __text__;
683}
684
685.menu
686{
687    position: relative;
688    cursor: pointer;
689}
690
691
692.menu .list
693{
694    display: none;
695    position: absolute;
696    right: 0px;
697    background-color: __background__;
698    border: 1px solid __border__;
699    min-width: 200px;
700    padding: 8px 0px;
701    top: 44px;
702    z-index: 20000;
703    border-radius: 3px;
704}
705.menu .list li
706{
707    list-style: none;
708    margin: 0px;
709    padding: 0px;
710}
711
712.menu .list li>a
713{
714    display: flex;
715    flex-direction: row-reverse;
716    justify-content: flex-end;
717    align-items: center;
718    gap: 16px;
719    text-decoration: none;
720    color: __text__ ;
721    padding: 4px 16px ;
722}
723.menu .list li>a:hover
724{
725    background-color: __background_alt__;
726}
727.menu .list li>a svg
728{
729    fill: __text_alt__;
730}
731
732.menu .list .user-name
733{
734    padding: 8px 16px;
735    text-align: center;
736    font-weight: bold;
737}
738
739.menu .button
740{
741    display: flex;
742    gap: 4px;
743    align-items: center;
744    color: __text_alt__;
745}
746
747.menu .button:hover
748{
749    color: __text__;
750}
751
752.user-menu .button::before {
753    mask-image: url('images/user-circle.svg');
754}
755
756.page-menu .button::before{
757    mask-image: url('images/document-text.svg');
758}
759
760.site-menu .button::before{
761    mask-image: url('images/server.svg');
762}
763
764#showhidesidemenu .button::before
765{
766    mask-image: url('images/menu.svg');
767}
768
769#showhideappoptions .button::before
770{
771    mask-image: url('images/three-dots-vertical.svg');
772}
773
774
775.menu .button::before, .mobile.icon .button::before
776{
777    display: block;
778    content: "";
779    background-size: 1em;
780    mask-repeat: no-repeat;
781    mask-size: contain;
782    height: 1.2em;
783    width: 1.2em;
784    opacity: 0.9;
785    background: __text_alt__;
786}
787
788.menu .button:hover::before
789{
790    opacity: 1;
791}
792
793
794
795.options
796{
797    display: flex;
798    gap: 16px;
799}
800
801
802navbar .options
803{
804    gap: 0px;
805}
806
807navbar .options .menu
808{
809    padding: 8px;
810}
811
812.mobile.icon
813{
814    display: none;
815    cursor: pointer;
816}
817
818.mobile-menu
819{
820    display: none;
821}
822
823/* Correcting Dokuwiki defaults */
824ul.actions, .dokuwiki .editBar .editButtons
825{
826    display: flex;
827    gap: 10px;
828    flex-wrap: wrap;
829}
830#wiki__editbar
831{
832    margin-top: 15px;
833    display: flex;
834    flex-direction: column;
835    gap: 15px;
836}
837
838#sidebar
839{
840    width: __sidebar_width__;
841    padding-top: 24px;
842    padding-bottom: 24px;
843    border-right: 1px solid __border__;
844    flex-shrink:0;
845    flex-grow: 0;
846}
847
848#content
849{
850    position: relative;
851}
852
853#dw__toc
854{
855    background-color: transparent;
856    border: none;
857    position: absolute;
858    right: 0px;
859    width: 15em;
860}
861
862#dw__toc>div
863{
864    background-color: __background__;
865    border: 1px solid __border__;
866    border-radius: 3px;
867    margin-top: 28px;
868    width: 100%;
869    padding: 0.5em 1em;
870}
871
872#content #dw__toc .toggle::before
873{
874    display: block;
875    content: "";
876    width: 24px;
877    height: 24px;
878    background: __text_alt__;
879    mask: url('images/bullets.svg');
880    mask-size: contain;
881    cursor: pointer;
882    opacity: 0.7;
883    position: absolute;
884    right: 0px;
885}
886
887#content #dw__toc .toggle
888{
889    height: 0px;
890    overflow: hidden;
891}
892
893#dw__toc
894{
895    display: none;
896}
897
898#config__manager fieldset, #config__manager tr.default .input, #config__manager .value input,
899#config__manager tr.default .input, #config__manager tr.default input, #config__manager tr.default textarea, #config__manager tr.default select, #config__manager .selectiondefault
900{
901    background: none;
902}
903
904#config__manager .value input, #config__manager .value select,  #config__manager .value textarea
905{
906    border: 1px solid __border__;
907    padding: 0.5em 1em;
908
909}
910#config__manager .value input:focus, #config__manager .value select:focus, #config__manager .value textarea:focus
911{
912     border: 1px solid #00b7ff;
913     background-color: __background__;
914     box-shadow: none;
915}
916
917.dokuwiki #config__manager table.inline tr:hover td
918{
919     background-color: __background__;
920}
921
922pre.code
923{
924    padding: 0.5em 1em;
925}