xref: /webtrees/resources/css/minimal.css (revision 3430c0bab1304f028145cca3ec085308fb0390b5)
1/**
2 * webtrees: online genealogy
3 * Copyright (C) 2022 webtrees development team
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <https://www.gnu.org/licenses/>.
14 */
15
16/* The minimal theme */
17@import "_base.css";
18
19:root {
20    --chart-line-radius: 1rem;
21    --chart-line: solid gray thin;
22    --link-color-hover: #0a58ca;
23    --link-color: #0d6efd;
24    --link-decoration-hover: underline;
25    --link-decoration: underline;
26    --sex-f-bg: #ffffff;
27    --sex-f-fg: #888888;
28    --sex-m-bg: #ffffff;
29    --sex-m-fg: #888888;
30    --sex-u-bg: #ffffff;
31    --sex-u-fg: #888888;
32    --sex-x-bg: #ffffff;
33    --sex-x-fg: #888888;
34}
35
36/* Override Bootstrap formatting */
37.btn-link {
38    padding-left: 0.25rem;
39    padding-right: 0.25rem;
40}
41
42.table-given-name {
43    overflow-x: hidden;
44}
45
46.container-fluid {
47    padding-left: 5px;
48    padding-right: 5px;
49}
50
51table {
52    border-collapse: separate;
53}
54
55/*
56 * Pages have the following high-level structure:
57 *
58 * wt-global wt-theme-<THEME> wt-route-<ROUTE>
59 * +---wt-header-wrapper
60 * |   +---wt-header-container
61 * |       +---wt-header-content
62 * |           +---wt-accessibility-links
63 * |           +---wt-site-logo
64 * |           +---wt-site-title
65 * |           +---wt-header-search
66 * |           |   +---wt-header-search-form
67 * |           |       +---wt-header-search-field
68 * |           |       +---wt-header-search-button
69 * |           +---wt-secondary-navigation
70 * |           |   +---wt-user-menu
71 * |           +---wt-primary-navigation
72 * |               +---wt-genealogy-menu
73 * +---wt-main-wrapper
74 * |   +---wt-main-container
75 * |       +---wt-main-content
76 * |           +---wt-messages
77 * |           +---wt-page-title
78 * |           +---wt-page-options wt-page-options-xxxxx
79 * |           +---wt-page-content
80 * +---wt-footers
81 *     +---wt-footer wt-footer-xxxxx
82 */
83
84.wt-global {
85    /* Avoid extremes of black and white.  It is better for users with dyslexia. */
86    color: #0a0a0a;
87    background-color: #f9f9f9;
88}
89
90.wt-header-wrapper {
91}
92
93.wt-header-container {
94    margin-top: 1rem;
95}
96
97.wt-header-content {
98}
99
100.wt-accessibility-links {
101}
102
103.wt-site-logo {
104    display: none;
105}
106
107.wt-site-title {
108    order: 1;
109    flex: 1 1 auto;
110    width: auto;
111    font-size: 1.75rem;
112}
113
114.wt-header-search {
115    order: 3;
116    flex: 0 0 15rem;
117}
118
119.wt-header-search-form {
120}
121
122.wt-header-search-field {
123}
124
125.wt-header-search-button {
126}
127
128.wt-secondary-navigation {
129    order: 2;
130    flex: 0 0 auto;
131    width: auto;
132    white-space: nowrap;
133}
134
135.wt-user-menu {
136    flex-wrap: nowrap;
137}
138
139.wt-user-menu .nav-link {
140    padding: 0.5rem;
141}
142
143.wt-primary-navigation {
144    order: 4;
145    /* Extend to full page width */
146    flex: 0 1 100vw;
147    max-width: 100vw;
148    /* Recalculate margins for content */
149    margin: 0 calc(50% - 50vw);
150    padding: 0 calc(50vw - 50%);
151    border-bottom: 2px solid #aaa;
152}
153
154.wt-genealogy-menu {
155    justify-content: center;
156}
157
158.wt-genealogy-menu .nav-link {
159    padding: 0.5rem;
160}
161
162.wt-main-container {
163    /* Space between the header/footer and the main content. */
164    padding-top: 1rem;
165    padding-bottom: 1rem;
166}
167
168.wt-main {
169}
170
171.wt-messages {
172}
173
174.wt-page-title {
175    text-align: center;
176}
177
178.wt-page-content {
179    margin-top: 1rem;
180}
181
182.wt-footers {
183}
184
185.wt-footer {
186}
187
188.wt-footer-contact {
189}
190
191.wt-footer-cookies {
192    background: #aaa;
193    color: #fff;
194    transition: height 0.5s;
195}
196
197.wt-footer-page-views {
198}
199
200.wt-footer-powered-by {
201}
202
203.wt-footer-powered-by-webtrees {
204}
205
206/*
207 * The tree/user home pages
208 *
209 * wt-home-page / wt-user-page
210 * +---wt-main-blocks
211 * |   +---wt-block, wt-block-AAA
212 * |   +---wt-block, wt-block-BBB
213 * |   +---wt-block, wt-block-CCC
214 * +---wt-side-blocks
215 *     +---wt-block, wt-block-XXX
216 *     +---wt-block, wt-block-YYY
217 *     +---wt-block, wt-block-ZZZ
218 *
219 * Each block as the structure
220 * wt-block, wt-block-XXX
221 * +---wt-block-header, wt-block-header-XXX
222 * +---wt-block-content, wt-block-content-XXX
223 */
224
225.wt-block {
226    border: solid #000 1px;
227}
228
229.wt-block-header {
230    background-color: #fff;
231}
232
233.wt-block-content {
234}
235
236.wt-block-content .list_table {
237    border-spacing: 1px;
238    border: solid #000 1px;
239    border-right: 0;
240}
241
242.wt-block-content .list_value,
243.wt-block-content .list_value_wrap {
244    border: 0;
245    border-top: solid #000 1px;
246    border-right: solid #000 1px;
247}
248
249/*
250 * The individual page.
251 *
252 * wt-route-individual
253 * +---wt-header-wrapper
254 */
255.wt-individual-silhouette-f {
256    content: url(images/individual-silhouette-female.png);
257}
258
259.wt-individual-silhouette-m {
260    content: url(images/individual-silhouette-male.png);
261}
262
263.wt-individual-silhouette-u,
264.wt-individual-silhouette-x {
265    content: url(images/individual-silhouette-unknown.png);
266}
267
268/*
269 * Chart-boxes are used to build the various charts.
270 * Each type of chart will set its own size and hide/show content.
271 *
272 * wt-chart-box
273 * +--- wt-chart-box-thumbnail
274 * +--- wt-chart-box-extra
275 *      +--- wt-chart-box-zoom
276 *           +--- wt-chart-box-icon
277 *           +--- wt-chart-box-dropdown wt-chart-box-zoom-dropdown
278 *      +--- wt-chart-box-links
279 *           +--- wt-chart-box-icon
280 *           +--- wt-chart-box-dropdown wt-chart-box-links-dropdown
281 * +--- wt-chart-box-name
282 * +--- wt-chart-box-lifespan
283 * +--- wt-chart-box-facts
284 *     +--- wt-chart-box-fact
285 */
286.wt-chart-box {
287    height: 5rem;
288    padding: 2px;
289    line-height: 1.1;
290    border: solid gray thin;
291}
292
293.wt-chart-box-f,
294.wt-chart-box-f .wt-chart-box-dropdown {
295    background: var(--sex-f-bg);
296    border: solid var(--sex-f-fg) thin;
297}
298
299.wt-chart-box-m,
300.wt-chart-box-m .wt-chart-box-dropdown {
301    background: var(--sex-m-bg);
302    border: solid var(--sex-m-fg) thin;
303}
304
305.wt-chart-box-u,
306.wt-chart-box-u .wt-chart-box-dropdown {
307    background: var(--sex-u-bg);
308    border: solid var(--sex-u-fg) thin;
309}
310
311.wt-chart-box-x,
312.wt-chart-box-x .wt-chart-box-dropdown {
313    background: var(--sex-x-bg);
314    border: solid var(--sex-x-fg) thin;
315}
316
317/* ---Pending edits--- */
318.wt-new {
319    outline: solid thin blue;
320}
321
322.wt-old {
323    outline: solid thin red;
324}
325
326.list_value,
327.list_value_wrap {
328    border: solid #000 1px;
329    vertical-align: top;
330    padding: 4px;
331}
332
333.list_table {
334    margin: 0 auto;
335}
336
337.filtersH,
338.filtersF {
339    margin: 4px;
340}
341
342.filtersH img {
343    margin-bottom: 2px;
344}
345
346.list-charts {
347    text-align: center;
348}
349
350#place-hierarchy h2,
351#place-hierarchy h4 {
352    text-align: center;
353}
354
355/* ======== Block styles ===== */
356.block {
357    background-color: #fff;
358    color: #555;
359    border: solid #ccc 1px;
360    padding: 3px;
361    vertical-align: top;
362}
363
364.blockcontent {
365    margin: 5px;
366    overflow: auto;
367}
368
369.blockcontent .list_table {
370    border-spacing: 0;
371    border: solid #555 1px;
372    border-right: 0;
373}
374
375.blockcontent .list_value,
376.blockcontent .list_value_wrap {
377    border: 0;
378    border-top: solid #555 1px;
379    border-right: solid #555 1px;
380}
381
382.blockheader {
383    font-weight: bold;
384}
385
386/* end Block styles */
387
388.user_welcome_block table,
389.gedcom_block_block table {
390    margin: auto;
391}
392
393.user_welcome_block td,
394.gedcom_block_block td {
395    width: 33%;
396    text-align: center;
397    vertical-align: top;
398}
399
400.user_welcome_block i,
401.gedcom_block_block i {
402    background-image: none;
403    height: 0;
404    width: 0;
405}
406
407/* Table of genealogical facts */
408.wt-facts-table caption {
409    caption-side: top;
410}
411
412.wt-facts-table th {
413    border: 1px solid #000;
414    font-weight: normal;
415    min-width: 20%;
416}
417
418.wt-facts-table td {
419    border: solid #000 1px;
420}
421
422.parentdeath {
423    padding: 1px;
424}
425
426/* ==== FAQ table styles ===== */
427table.faq {
428    background-color: #ddd;
429    margin: 5px 0 50px 5px;
430    width: 98%;
431}
432
433table.faq tr:nth-child(odd) td {
434    background-color: #fff;
435}
436
437div.faq_title {
438    background-color: #ddd;
439    margin: 1em 0;
440    padding: .25em;
441    font-weight: bold;
442    width: 98%;
443}
444
445div.faq_body {
446    clear: both;
447    padding: 0 1em;
448}
449
450.faq_top {
451    float: right;
452}
453
454#indi_note {
455    margin: 0 0 5px;
456}
457
458.indi_table {
459    clear: left;
460}
461
462.label {
463    font-weight: bold;
464}
465
466#indi_note .fact_NOTE {
467    float: left;
468    margin: 0 5px 0 0;
469}
470
471#indi_note .fact_SOUR {
472    margin: 3px 0;
473}
474
475#indi_note .fact_SOUR a {
476    font-size: 100%;
477}
478
479#indi_note .fact_NOTE,
480#indi_note .fact_SOUR {
481    clear: both;
482}
483
484.odometer {
485    font-family: courier, monospace;
486    font-weight: bold;
487    background: #000;
488    color: #fff;
489}
490
491.upcoming_events_block button,
492.todays_events_block button {
493    margin: 0 20px;
494}
495
496/* Sidebar - Family navigator */
497
498/* Sidebar - Descendants */
499#sb_content_descendancy {
500    margin-top: 5px;
501}
502
503#sb_desc_content {
504    margin-left: 3px;
505    font-size: 0.8em;
506}
507
508#sb_desc_content ul {
509    padding: 0;
510    margin: 0;
511}
512
513.sb_desc_indi_li {
514    list-style-type: none;
515}
516
517/* Individuals and Families */
518#sidebar-content-individuals,
519#sidebar-content-families {
520    margin-top: 5px;
521}
522
523.sb_indi_surname_li,
524.sb_fam_surname_li {
525    list-style-image: url(icons/plus.png);
526}
527
528.name_tree_div ul {
529    padding: 0;
530    margin: 0;
531}
532
533.name_tree_div li {
534    list-style: none;
535    margin: 0;
536    padding: 0;
537}
538
539/* Clippings */
540#sb_clippings_content ul {
541    padding: 0;
542    margin: 0;
543}
544
545#sb_clippings_content li {
546    list-style: none;
547    margin: 0;
548    padding: 0;
549    white-space: nowrap;
550}
551
552/* ====== Charts Styles ======== */
553
554#people label {
555    display: block;
556}
557
558/*-- Fan chart ---- */
559.fan_chart_menu {
560    background: #fff;
561    position: absolute;
562    display: none;
563    z-index: 100;
564}
565
566#fan_chart ul {
567    list-style-type: none;
568    margin: 0;
569}
570
571/* Lifespans chart */
572.wt-lifespans-subtitle {
573    text-align: center;
574}
575
576.wt-lifespans-scale {
577    white-space: nowrap;
578}
579
580.wt-lifespans-decade {
581    width: 70px;
582    height: 60px;
583    display: inline-block;
584    background-image: url(images/lifespan-decade.png);
585    background-position-y: bottom;
586    background-repeat: no-repeat;
587    background-size: 70px 37px;
588}
589
590.wt-lifespans-individuals {
591    background: #fafafa;
592}
593
594.wt-lifespans-individual {
595
596}
597
598.wt-lifespans-summary {
599    background: #ffffff;
600    border: thin solid #000;
601    z-index: 1;
602}
603
604.wt-lifespans-summary-link {
605    font-weight: bold;
606}
607
608/*-- Pedigree ---- */
609.tvertline {
610    vertical-align: bottom;
611}
612
613.optionbox, .descriptionbox {
614    border: solid #000 1px;
615    vertical-align: top;
616    padding: 3px;
617}
618
619#childbox {
620    padding: 5px;
621    position: absolute;
622    display: none;
623    text-align: start;
624    white-space: nowrap;
625    top: 20px;
626    left: 0;
627}
628
629.layout3 #childbox {
630    top: auto;
631    bottom: 20px;
632}
633
634.person0, .person1, .person2, .person3, .person4, .person5 {
635    border:outset #555 1px;
636    vertical-align:top;
637}
638.person0{
639    background-color:#eee;
640}
641
642.person1{
643    background-color:#bfbfbf;
644}
645
646.person2{
647    background-color:#999;
648}
649
650.person3{
651    background-color:#dfdfdf;
652}
653
654.person4{
655    background-color:#eee;
656}
657
658.person5{
659    background-color:#fefefe;
660}
661
662/*-- timeline  --*/
663#timeline_chart {
664    position: relative;
665    top: 0;
666    left: 0;
667}
668
669/*
670 * Any element that is loaded dynamically has the class wt-ajax-load.
671 * We can provide a "loading" placeholder for empty elements with this class.
672 */
673.wt-ajax-load:empty {
674    height: 32px;
675    background: url(images/loading-32x32.gif) no-repeat 50% 50%;
676}
677
678/*
679 * Default icons are provided by FontAwesome.
680 */
681.wt-icon-anniversary {
682}
683
684.wt-icon-arrow-down {
685}
686
687a > .wt-icon-arrow-down:hover {
688}
689
690.wt-icon-arrow-left {
691}
692
693a > .wt-icon-arrow-left:hover {
694}
695
696.wt-icon-arrow-right {
697}
698
699a > .wt-icon-arrow-right:hover {
700}
701
702.wt-icon-arrow-up {
703}
704
705a > .wt-icon-arrow-up:hover {
706}
707
708.wt-icon-bing-maps {
709}
710
711.wt-icon-calendar {
712}
713
714.wt-icon-collapse {
715}
716
717.wt-icon-coordinates {
718}
719
720.wt-icon-copy {
721}
722
723.wt-icon-delete {
724}
725
726.wt-icon-edit {
727}
728
729.wt-icon-expand {
730}
731
732.wt-icon-family {
733}
734
735.wt-icon-google-maps {
736}
737
738.wt-icon-help {
739}
740
741.wt-icon-individual {
742}
743
744.wt-icon-keyboard {
745}
746
747.wt-icon-media {
748}
749
750.wt-icon-note {
751}
752
753.wt-icon-openstreetmap {
754}
755
756.wt-icon-preferences {
757}
758
759.wt-icon-reorder {
760}
761
762.wt-icon-repository {
763}
764
765.wt-icon-sex-f {
766    color: var(--sex-m-fg);
767}
768
769.wt-icon-sex-m {
770    color: var(--sex-m-fg);
771}
772
773.wt-icon-sex-u {
774    color: var(--sex-u-fg);
775}
776
777.wt-icon-sex-x {
778    color: var(--sex-u-fg);
779}
780
781.wt-icon-source {
782}
783
784.wt-icon-submitter {
785}
786
787.wt-icon-warning {
788}
789
790.wt-icon-zoom-in {
791}
792
793.wt-icon-zoom-out {
794}
795
796/* Miscellaneous images */
797.icon-cfamily {
798}
799
800.icon-childless {
801    content: url(images/childless.png);
802}
803
804.icon-children {
805    content: url(images/children.png);
806}
807
808.icon-edit_indi {
809    content: url(minimal/images/edit_indi.png);
810}
811
812.icon-fam-list {
813    content: url(minimal/images/sfamily.png);
814}
815
816.icon-indi-list {
817    content: url(minimal/images/indis.png);
818}
819
820.icon-loading-small {
821    content: url(images/indicator.gif);
822}
823
824.icon-loading-large {
825    content: url(images/loading-32x32.gif);
826}
827
828.icon-minus {
829    content: url(icons/minus.png);
830}
831
832.icon-mypage {
833    content: url(minimal/images/mypage.png);
834}
835
836.icon-plus {
837    content: url(icons/plus.png);
838}
839
840.icon-resn-confidential {
841    content: none;
842}
843
844.icon-resn-locked {
845    content: none;
846}
847
848.icon-resn-none {
849    content: none;
850}
851
852.icon-resn-privacy {
853    content: none;
854}
855
856.icon-rings {
857    content: url(images/rings.png);
858}
859
860.icon-selected {
861    content: url(minimal/images/selected.png);
862}
863
864.icon-sfamily {
865    content: url(minimal/images/sfamily.png);
866}
867
868/* Silhouettes on charts */
869.icon-silhouette-f {
870    content: url(minimal/images/silhouette_female_small.png);
871}
872
873.icon-silhouette-m {
874    content: url(minimal/images/silhouette_male_small.png);
875}
876
877.icon-silhouette-u,
878.icon-silhouette-x {
879    content: url(minimal/images/silhouette_unknown_small.png);
880}
881
882.icon-indis {
883    content: url(minimal/images/indis.png);
884}
885
886.icon-pedigree {
887    content: url(minimal/images/pedigree.png);
888}
889
890/* Census assistant */
891.wt-census-assistant-form-control:focus {
892    min-width: 12rem;
893}
894
895/* Some blocks show a reduced version on the right-hand side. */
896.wt-side-blocks .wt-side-block-optional {
897    display: none !important;
898}
899
900/* my page chart enhancements */
901.wt-block-content-charts {
902    overflow: auto;
903}
904
905/* Some charts are wider than the page. */
906.wt-chart {
907    overflow-x: auto;
908    overflow-y: hidden;
909}
910
911.wt-calendar-month {
912    border-collapse: collapse;
913}
914
915.wt-calendar-month .wt-page-options-label,
916.wt-calendar-month .wt-page-options-value {
917    border: solid grey thin;
918    padding: 0.2rem;
919}
920
921/* Forms */
922.col-form-label {
923    font-weight: bold;
924}
925
926/* Accordions */
927.accordion .wt-icon-expand,
928.accordion .wt-icon-collapse {
929    display: none;
930}
931
932.accordion-button:after {
933    display: block;
934}
935