xref: /template/minimal/css/basic.css (revision c0d9897797397c14e04c6b0db84a3df4cdb6ef08)
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
624
625#view>*
626{
627    padding-left: 0px;
628    padding-right: 0px;
629}
630
631#view, #sidebar
632{
633    padding-top: 16px;
634    padding-bottom: 16px;
635}
636
637.site-header
638{
639    border-bottom: 1px solid __border__;
640}
641
642.site-header
643{
644    display: flex;
645    flex-direction: column;
646    padding-top: 8px;
647    padding-bottom: 8px;
648    gap: 16px;
649}
650
651#view>.site-header
652{
653    padding-top: 0px;
654}
655
656.site-navigation
657{
658    display: flex;
659    flex-direction: column;
660    gap: 8px;
661}
662
663
664
665.site-header-content>*:last-child, footer>*:last-child
666{
667    margin-bottom: 0px;
668}
669
670footer
671{
672    padding: 16px;
673    border-top: 1px solid __border__;
674}
675
676
677article#content
678{
679    flex-grow: 1;
680}
681
682article#content h1
683{
684    font-size: 2em;
685}
686article#content h2
687{
688    font-size: 1.5em;
689}
690
691article#content h3
692{
693    font-size: 1.25em;
694}
695
696article#content h4
697{
698    font-size: 1em;
699}
700
701h1, h2, h3, h4, h5, h6
702{
703    color: __text__;
704}
705
706.menu
707{
708    position: relative;
709    cursor: pointer;
710}
711
712
713.menu .list
714{
715    display: none;
716    position: absolute;
717    right: 0px;
718    background-color: __background__;
719    border: 1px solid __border__;
720    min-width: 200px;
721    padding: 8px 0px;
722    top: 44px;
723    z-index: 20000;
724    border-radius: 3px;
725}
726.menu .list li
727{
728    list-style: none;
729    margin: 0px;
730    padding: 0px;
731}
732
733.menu .list li>a
734{
735    display: flex;
736    flex-direction: row-reverse;
737    justify-content: flex-end;
738    align-items: center;
739    gap: 16px;
740    text-decoration: none;
741    color: __text__ ;
742    padding: 4px 16px ;
743}
744.menu .list li>a:hover
745{
746    background-color: __background_alt__;
747}
748.menu .list li>a svg
749{
750    fill: __text_alt__;
751}
752
753.menu .list .user-name
754{
755    padding: 8px 16px;
756    text-align: center;
757    font-weight: bold;
758}
759
760.menu .button
761{
762    display: flex;
763    gap: 4px;
764    align-items: center;
765    color: __text_alt__;
766}
767
768.menu .button:hover
769{
770    color: __text__;
771}
772
773.user-menu .button::before {
774    mask-image: url('images/user-circle.svg');
775}
776
777.page-menu .button::before{
778    mask-image: url('images/document-text.svg');
779}
780
781.site-menu .button::before{
782    mask-image: url('images/server.svg');
783}
784
785#showhidesidemenu .button::before
786{
787    mask-image: url('images/menu.svg');
788}
789
790#showhideappoptions .button::before
791{
792    mask-image: url('images/three-dots-vertical.svg');
793}
794
795
796.menu .button::before, .mobile.icon .button::before
797{
798    display: block;
799    content: "";
800    background-size: 1em;
801    mask-repeat: no-repeat;
802    mask-size: contain;
803    height: 1.2em;
804    width: 1.2em;
805    opacity: 0.9;
806    background: __text_alt__;
807}
808
809.menu .button:hover::before
810{
811    opacity: 1;
812}
813
814
815
816.options
817{
818    display: flex;
819    gap: 16px;
820}
821
822
823navbar .options
824{
825    gap: 0px;
826}
827
828navbar .options .menu
829{
830    padding: 8px;
831}
832
833.mobile.icon
834{
835    display: none;
836    cursor: pointer;
837}
838
839.mobile-menu
840{
841    display: none;
842}
843
844/* Correcting Dokuwiki defaults */
845ul.actions, .dokuwiki .editBar .editButtons
846{
847    display: flex;
848    gap: 10px;
849    flex-wrap: wrap;
850}
851#wiki__editbar
852{
853    margin-top: 15px;
854    display: flex;
855    flex-direction: column;
856    gap: 15px;
857}
858
859#sidebar
860{
861    width: __sidebar_width__;
862    border-right: 1px solid __border__;
863    flex-shrink:0;
864    flex-grow: 0;
865}
866
867#content
868{
869    position: relative;
870}
871
872#dw__toc
873{
874    background-color: transparent;
875    border: none;
876    position: absolute;
877    right: 0px;
878    width: 15em;
879}
880
881#dw__toc>div
882{
883    background-color: __background__;
884    border: 1px solid __border__;
885    border-radius: 3px;
886    margin-top: 28px;
887    width: 100%;
888    padding: 0.5em 1em;
889}
890
891#content #dw__toc .toggle::before
892{
893    display: block;
894    content: "";
895    width: 24px;
896    height: 24px;
897    background: __text_alt__;
898    mask: url('images/bullets.svg');
899    mask-size: contain;
900    cursor: pointer;
901    opacity: 0.7;
902    position: absolute;
903    right: 0px;
904}
905
906#content #dw__toc .toggle
907{
908    height: 0px;
909    overflow: hidden;
910}
911
912#dw__toc
913{
914    display: none;
915}
916
917#config__manager fieldset, #config__manager tr.default .input, #config__manager .value input,
918#config__manager tr.default .input, #config__manager tr.default input, #config__manager tr.default textarea, #config__manager tr.default select, #config__manager .selectiondefault
919{
920    background: none;
921}
922
923#config__manager .value input, #config__manager .value select,  #config__manager .value textarea
924{
925    border: 1px solid __border__;
926    padding: 0.5em 1em;
927
928}
929#config__manager .value input:focus, #config__manager .value select:focus, #config__manager .value textarea:focus
930{
931     border: 1px solid #00b7ff;
932     background-color: __background__;
933     box-shadow: none;
934}
935
936.dokuwiki #config__manager table.inline tr:hover td
937{
938     background-color: __background__;
939}
940
941pre.code
942{
943    padding: 0.5em 1em;
944}