xref: /webtrees/resources/css/minimal.css (revision cf7c85896a54223772c76826381a9151d4a21e10)
1/**
2 * webtrees: online genealogy
3 * Copyright (C) 2020 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 <http://www.gnu.org/licenses/>.
14 */
15
16/* The minimal theme */
17@import "_base.css";
18
19/* Colors for chart boxes, etc. */
20:root {
21  --sex-f-fg: #888888;
22  --sex-m-fg: #888888;
23  --sex-u-fg: #888888;
24  --sex-f-bg: #ffffff;
25  --sex-m-bg: #ffffff;
26  --sex-u-bg: #ffffff;
27    --chart-line: solid gray thin;
28    --chart-line-radius: 1rem;
29}
30
31/* Override Bootstrap formatting */
32.btn-link {
33    padding-left: 0.25rem;
34    padding-right: 0.25rem;
35}
36
37.table-given-name {
38    overflow-x: hidden;
39}
40
41.container-fluid {
42    padding-left: 5px;
43    padding-right: 5px;
44}
45
46table {
47    border-collapse: separate;
48}
49
50/*
51 * Pages have the following high-level structure:
52 *
53 * wt-global wt-theme-<THEME> wt-route-<ROUTE>
54 * +---wt-header-wrapper
55 * |   +---wt-header-container
56 * |       +---wt-header-content
57 * |           +---wt-accessibility-links
58 * |           +---wt-site-logo
59 * |           +---wt-site-title
60 * |           +---wt-header-search
61 * |           |   +---wt-header-search-form
62 * |           |       +---wt-header-search-field
63 * |           |       +---wt-header-search-button
64 * |           +---wt-secondary-navigation
65 * |           |   +---wt-user-menu
66 * |           +---wt-primary-navigation
67 * |               +---wt-genealogy-menu
68 * +---wt-main-wrapper
69 * |   +---wt-main-container
70 * |       +---wt-main-content
71 * |           +---wt-messages
72 * |           +---wt-page-title
73 * |           +---wt-page-options wt-page-options-xxxxx
74 * |           +---wt-page-content
75 * +---wt-footers
76 *     +---wt-footer wt-footer-xxxxx
77 */
78
79.wt-global {
80    /* Avoid extremes of black and white.  It is better for users with dyslexia. */
81    color: #0a0a0a;
82    background-color: #f9f9f9;
83}
84
85.wt-header-wrapper {
86}
87
88.wt-header-container {
89    margin-top: 1rem;
90}
91
92.wt-header-content {
93}
94
95.wt-accessibility-links {
96}
97
98.wt-site-logo {
99    display: none;
100}
101
102.wt-site-title {
103    order: 1;
104    flex: 1 1 auto;
105    width: auto;
106    font-size: 1.75rem;
107}
108
109.wt-header-search {
110    order: 3;
111    flex: 0 0 15rem;
112}
113
114.wt-header-search-form {
115}
116
117.wt-header-search-field {
118}
119
120.wt-header-search-button {
121}
122
123.wt-secondary-navigation {
124    order: 2;
125    flex: 0 0 auto;
126    width: auto;
127    white-space: nowrap;
128}
129
130.wt-user-menu {
131    flex-wrap: nowrap;
132}
133
134.wt-user-menu .nav-link {
135    padding: 0.5rem;
136}
137
138.wt-primary-navigation {
139    order: 4;
140    /* Extend to full page width */
141    flex: 0 1 100vw;
142    max-width: 100vw;
143    /* Recalculate margins for content */
144    margin: 0 calc(50% - 50vw);
145    padding: 0 calc(50vw - 50%);
146    border-bottom: 2px solid #aaa;
147}
148
149.wt-genealogy-menu {
150    justify-content: center;
151}
152
153.wt-genealogy-menu .nav-link {
154    padding: 0.5rem;
155}
156
157.wt-main-container {
158    /* Space between the header/footer and the main content. */
159    padding-top: 1rem;
160    padding-bottom: 1rem;
161}
162
163.wt-main {
164}
165
166.wt-messages {
167}
168
169.wt-page-title {
170    text-align: center;
171}
172
173.wt-page-content {
174    margin-top: 1rem;
175}
176
177.wt-footers {
178}
179
180.wt-footer {
181}
182
183.wt-footer-contact {
184}
185
186.wt-footer-cookies {
187    background: #aaa;
188    color: #fff;
189    transition: height 0.5s;
190}
191
192.wt-footer-page-views {
193}
194
195.wt-footer-powered-by {
196}
197
198.wt-footer-powered-by-webtrees {
199}
200
201/*
202 * The tree/user home pages
203 *
204 * wt-home-page / wt-user-page
205 * +---wt-main-blocks
206 * |   +---wt-block, wt-block-AAA
207 * |   +---wt-block, wt-block-BBB
208 * |   +---wt-block, wt-block-CCC
209 * +---wt-side-blocks
210 *     +---wt-block, wt-block-XXX
211 *     +---wt-block, wt-block-YYY
212 *     +---wt-block, wt-block-ZZZ
213 *
214 * Each block as the structure
215 * wt-block, wt-block-XXX
216 * +---wt-block-header, wt-block-header-XXX
217 * +---wt-block-content, wt-block-content-XXX
218 */
219
220.wt-block {
221    border: solid #000 1px;
222}
223
224.wt-block-header {
225    background-color: #fff;
226}
227
228.wt-block-content {
229}
230
231.wt-block-content .list_table {
232    border-spacing: 1px;
233    border: solid #000 1px;
234    border-right: 0;
235}
236
237.wt-block-content .list_value,
238.wt-block-content .list_value_wrap {
239    border: 0;
240    border-top: solid #000 1px;
241    border-right: solid #000 1px;
242}
243
244/*
245 * The individual page.
246 *
247 * wt-route-individual
248 * +---wt-header-wrapper
249 */
250
251.wt-individual-silhouette {
252    content: url(images/individual-silhouette-unknown.png);
253}
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/*
264 * Chart-boxes are used to build the various charts.
265 * Each type of chart will set its own size and hide/show content.
266 *
267 * wt-chart-box
268 * +--- wt-chart-box-thumbnail
269 * +--- wt-chart-box-extra
270 *      +--- wt-chart-box-zoom
271 *           +--- wt-chart-box-icon
272 *           +--- wt-chart-box-dropdown wt-chart-box-zoom-dropdown
273 *      +--- wt-chart-box-links
274 *           +--- wt-chart-box-icon
275 *           +--- wt-chart-box-dropdown wt-chart-box-links-dropdown
276 * +--- wt-chart-box-name
277 * +--- wt-chart-box-lifespan
278 * +--- wt-chart-box-facts
279 *     +--- wt-chart-box-fact
280 */
281.wt-chart-box,
282.wt-chart-box-menu {
283    background: var(--sex-u-bg);
284    border: dashed var(--sex-u-fg) thin;
285}
286
287.wt-chart-box {
288    height: 5rem;
289    padding: 2px;
290    line-height: 1.1;
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/* ---Pending edits--- */
306.wt-new {
307    outline: solid thin blue;
308}
309
310.wt-old {
311    outline: solid thin red;
312}
313
314.list_value,
315.list_value_wrap {
316    border: solid #000 1px;
317    vertical-align: top;
318    padding: 4px;
319}
320
321.list_table {
322    margin: 0 auto;
323}
324
325.filtersH,
326.filtersF {
327    margin: 4px;
328}
329
330.filtersH img {
331    margin-bottom: 2px;
332}
333
334.list-charts {
335    text-align: center;
336}
337
338#place-hierarchy h2,
339#place-hierarchy h4 {
340    text-align: center;
341}
342
343/* ======== Block styles ===== */
344#index_main_blocks {
345    clear: none;
346    width: 60%;
347    float: left;
348}
349
350#index_small_blocks {
351    clear: none;
352    width: 40%;
353    float: right;
354}
355
356#index_full_blocks {
357    clear: none;
358    width: 100%;
359}
360
361.block {
362    background-color: #fff;
363    color: #555;
364    border: solid #ccc 1px;
365    padding: 3px;
366    vertical-align: top;
367}
368
369.blockcontent {
370    margin: 5px;
371    overflow: auto;
372}
373
374.blockcontent .list_table {
375    border-spacing: 0;
376    border: solid #555 1px;
377    border-right: 0;
378}
379
380.blockcontent .list_value,
381.blockcontent .list_value_wrap {
382    border: 0;
383    border-top: solid #555 1px;
384    border-right: solid #555 1px;
385}
386
387.blockheader {
388    font-weight: bold;
389}
390
391/* end Block styles */
392
393.user_welcome_block table,
394.gedcom_block_block table {
395    margin: auto;
396}
397
398.user_welcome_block td,
399.gedcom_block_block td {
400    width: 33%;
401    text-align: center;
402    vertical-align: top;
403}
404
405.user_welcome_block i,
406.gedcom_block_block i {
407    background-image: none;
408    height: 0;
409    width: 0;
410}
411
412/* Table of genealogical facts */
413.wt-facts-table caption {
414    caption-side: top;
415}
416
417.wt-facts-table th {
418    border: 1px solid #000;
419    font-weight: normal;
420    min-width: 20%;
421}
422
423.wt-facts-table td {
424    border: solid #000 1px;
425}
426
427a {
428    color: #333;
429    text-decoration: none;
430}
431
432a:hover {
433    color: #333;
434    text-decoration: underline;
435}
436
437a:hover {
438    text-decoration: underline!important;
439}
440
441.parentdeath {
442    padding: 1px;
443}
444
445.source_citations {
446    display: none;
447}
448
449/* ==== FAQ table styles ===== */
450table.faq {
451    background-color: #ddd;
452    margin: 5px 0 50px 5px;
453    width: 98%;
454}
455
456table.faq tr:nth-child(odd) td {
457    background-color: #fff;
458}
459
460div.faq_title {
461    background-color: #ddd;
462    margin: 1em 0;
463    padding: .25em;
464    font-weight: bold;
465    width: 98%;
466}
467
468div.faq_body {
469    clear: both;
470    padding: 0 1em;
471}
472
473.faq_top {
474    float: right;
475}
476
477/* === Positioning edit, copy, delete links === */
478/* General use */
479.editfacts {
480    clear: left;
481    padding-top: 15px;
482}
483
484#indi_note {
485    margin: 0 0 5px;
486}
487
488.indi_table {
489    clear: left;
490}
491
492#sex {
493    float: right;
494}
495
496#dates {
497    color: #666;
498    float: right;
499}
500
501.label {
502    font-weight: bold;
503}
504
505#individual-names .wt-icon-edit,
506#individual-names .wt-icon-delete {
507    float: right;
508}
509
510#indi_note .fact_NOTE {
511    float: left;
512    margin: 0 5px 0 0;
513}
514
515#indi_note .fact_SOUR {
516    margin: 3px 0;
517}
518
519#indi_note .fact_SOUR a {
520    font-size: 100%;
521}
522
523#indi_note .fact_NOTE,
524#indi_note .fact_SOUR {
525    clear: both;
526}
527
528/* markdown formatting */
529
530.markdown {
531    /* Tables and pre-formatted text can break the layout. */
532    overflow-x: auto;
533}
534
535.markdown p {
536    margin: 0 0 0.5em;
537    white-space: pre-wrap;
538}
539
540.markdown table {
541    border-collapse: collapse;
542    font-size: 10px;
543    margin-bottom: 5px;
544}
545
546.markdown th {
547    font-weight: bold;
548}
549
550.markdown td,
551.markdown th {
552    border: solid thin #000;
553    padding: 3px;
554}
555
556.odometer {
557    font-family: courier, monospace;
558    font-weight: bold;
559    background: #000;
560    color: #fff;
561}
562
563/* ======== Indi tabs ======== */
564/* Facts & Events tab */
565.media-display-image {
566    float: left;
567}
568
569.media-display-title {
570    float: left;
571    font-style: italic;
572    margin: 10px;
573}
574
575.upcoming_events_block button,
576.todays_events_block button {
577    margin: 0 20px;
578}
579
580/* Sidebar - Family navigator */
581
582/* Sidebar - Descendants */
583#sb_content_descendancy {
584    margin-top: 5px;
585}
586
587#sb_desc_content {
588    margin-left: 3px;
589    font-size: 0.8em;
590}
591
592#sb_desc_content ul {
593    padding: 0;
594    margin: 0;
595}
596
597.sb_desc_indi_li {
598    list-style-type: none;
599}
600
601/* Individuals and Families */
602#sidebar-content-individuals,
603#sidebar-content-families {
604    margin-top: 5px;
605}
606
607.sb_indi_surname_li,
608.sb_fam_surname_li {
609    list-style-image: url(icons/plus.png);
610}
611
612.name_tree_div ul {
613    padding: 0;
614    margin: 0;
615}
616
617.name_tree_div li {
618    list-style: none;
619    margin: 0;
620    padding: 0;
621}
622
623/* Clippings */
624#sb_clippings_content ul {
625    padding: 0;
626    margin: 0;
627}
628
629#sb_clippings_content li {
630    list-style: none;
631    margin: 0;
632    padding: 0;
633    white-space: nowrap;
634}
635
636/* Stories module */
637.story_title {
638    padding-top: 12px;
639    font-size: 13px;
640    height: 32px;
641    font-weight: bold;
642}
643
644.story_body {
645    padding: 20px;
646    white-space: normal;
647}
648
649.story_edit {
650    padding: 12px;
651}
652
653/* Stories module */
654.story_title {
655    padding-top: 12px;
656    font-size: 13px;
657    height: 32px;
658    font-weight: bold;
659}
660
661.story_body {
662    padding: 20px;
663    white-space: normal;
664}
665
666.story_edit {
667    padding: 12px;
668}
669
670/* ====== Charts Styles ======== */
671
672#people label {
673    display: block;
674}
675
676/*-- Fan chart ---- */
677.fan_chart_menu {
678    background: #fff;
679    position: absolute;
680    display: none;
681    z-index: 100;
682}
683
684#fan_chart ul {
685    list-style-type: none;
686    margin: 0;
687}
688
689/* Lifespans chart */
690.wt-lifespans-subtitle {
691    text-align: center;
692}
693
694.wt-lifespans-scale {
695    white-space: nowrap;
696}
697
698.wt-lifespans-decade {
699    width: 70px;
700    height: 60px;
701    display: inline-block;
702    background-image: url(images/lifespan-decade.png);
703    background-position-y: bottom;
704    background-repeat: no-repeat;
705    background-size: 70px 37px;
706}
707
708.wt-lifespans-individuals {
709    background: #fafafa;
710}
711
712.wt-lifespans-individual {
713
714}
715
716.wt-lifespans-summary {
717    background: #ffffff;
718    border: thin solid #000;
719    z-index: 1;
720}
721
722.wt-lifespans-summary-link {
723    font-weight: bold;
724}
725
726/*-- Pedigree ---- */
727.tvertline {
728    vertical-align: bottom;
729}
730
731.optionbox, .descriptionbox {
732    border: solid #000 1px;
733    vertical-align: top;
734    padding: 3px;
735}
736
737#childbox {
738    padding: 5px;
739    position: absolute;
740    display: none;
741    text-align: start;
742    white-space: nowrap;
743    top: 20px;
744    left: 0;
745}
746
747.layout3 #childbox {
748    top: auto;
749    bottom: 20px;
750}
751
752#childbox a.name1 {
753    display: block;
754    margin-left: 5px;
755}
756
757.person0, .person1, .person2, .person3, .person4, .person5 {
758    border:outset #555 1px;
759    vertical-align:top;
760}
761.person0{
762    background-color:#eee;
763}
764
765.person1{
766    background-color:#bfbfbf;
767}
768
769.person2{
770    background-color:#999;
771}
772
773.person3{
774    background-color:#dfdfdf;
775}
776
777.person4{
778    background-color:#eee;
779}
780
781.person5{
782    background-color:#fefefe;
783}
784
785/*-- timeline  --*/
786#timeline_chart {
787    position: relative;
788    top: 0;
789    left: 0;
790}
791
792/*
793 * Any element that is loaded dynamically has the class wt-ajax-load.
794 * We can provide a "loading" placeholder for empty elements with this class.
795 */
796.wt-ajax-load:empty {
797    height: 32px;
798    background: url(images/loading-32x32.gif) no-repeat 50% 50%;
799}
800
801/*
802 * Default icons are provided by FontAwesome.
803 */
804.wt-icon-anniversary {
805}
806
807.wt-icon-arrow-down {
808}
809
810a > .wt-icon-arrow-down:hover {
811}
812
813.wt-icon-arrow-left {
814}
815
816a > .wt-icon-arrow-left:hover {
817}
818
819.wt-icon-arrow-right {
820}
821
822a > .wt-icon-arrow-right:hover {
823}
824
825.wt-icon-arrow-up {
826}
827
828a > .wt-icon-arrow-up:hover {
829}
830
831.wt-icon-bing-maps {
832}
833
834.wt-icon-calendar {
835}
836
837.wt-icon-collapse {
838}
839
840.wt-icon-coordinates {
841}
842
843.wt-icon-copy {
844}
845
846.wt-icon-delete {
847}
848
849.wt-icon-edit {
850}
851
852.wt-icon-expand {
853}
854
855.wt-icon-family {
856}
857
858.wt-icon-google-maps {
859}
860
861.wt-icon-help {
862}
863
864.wt-icon-individual {
865}
866
867.wt-icon-keyboard {
868}
869
870.wt-icon-media {
871}
872
873.wt-icon-note {
874}
875
876.wt-icon-openstreetmap {
877}
878
879.wt-icon-preferences {
880}
881
882.wt-icon-reorder {
883}
884
885.wt-icon-repository {
886}
887
888.wt-icon-sex-f {
889    color: var(--sex-m-fg);
890}
891
892.wt-icon-sex-m {
893    color: var(--sex-m-fg);
894}
895
896.wt-icon-sex-u {
897    color: var(--sex-u-fg);
898}
899
900.wt-icon-sex-x {
901    color: var(--sex-u-fg);
902}
903
904.wt-icon-source {
905}
906
907.wt-icon-submitter {
908}
909
910.wt-icon-warning {
911}
912
913.wt-icon-zoom-in {
914}
915
916.wt-icon-zoom-out {
917}
918
919/* Miscellaneous images */
920.icon-cfamily {
921}
922
923.icon-childless {
924    content: url(images/childless.png);
925}
926
927.icon-children {
928    content: url(images/children.png);
929}
930
931.icon-edit_indi {
932    content: url(minimal/images/edit_indi.png);
933}
934
935.icon-fam-list {
936    content: url(minimal/images/sfamily.png);
937}
938
939.icon-indi-list {
940    content: url(minimal/images/indis.png);
941}
942
943.icon-loading-small {
944    content: url(images/indicator.gif);
945}
946
947.icon-loading-large {
948    content: url(images/loading-32x32.gif);
949}
950
951.icon-minus {
952    content: url(icons/minus.png);
953}
954
955.icon-mypage {
956    content: url(minimal/images/mypage.png);
957}
958
959.icon-plus {
960    content: url(icons/plus.png);
961}
962
963.icon-resn-confidential {
964    content: none;
965}
966
967.icon-resn-locked {
968    content: none;
969}
970
971.icon-resn-none {
972    content: none;
973}
974
975.icon-resn-privacy {
976    content: none;
977}
978
979.icon-rings {
980    content: url(images/rings.png);
981}
982
983.icon-selected {
984    content: url(minimal/images/selected.png);
985}
986
987.icon-sfamily {
988    content: url(minimal/images/sfamily.png);
989}
990
991/* Silhouettes on charts */
992.icon-silhouette-F {
993    content: url(minimal/images/silhouette_female_small.png);
994}
995
996.icon-silhouette-M {
997    content: url(minimal/images/silhouette_male_small.png);
998}
999
1000.icon-silhouette-U {
1001    content: url(minimal/images/silhouette_unknown_small.png);
1002}
1003
1004.icon-indis {
1005    content: url(minimal/images/indis.png);
1006}
1007
1008.icon-pedigree {
1009    content: url(minimal/images/pedigree.png);
1010}
1011
1012/* Census assistant */
1013.wt-census-assistant-form-control:focus {
1014    min-width: 12rem;
1015}
1016
1017/* Some blocks show a reduced version on the right-hand side. */
1018.wt-side-blocks .wt-side-block-optional {
1019    display: none !important;
1020}
1021
1022/* my page chart enhancements */
1023.wt-block-content-charts {
1024    overflow: auto;
1025}
1026
1027/* Some charts are wider than the page. */
1028.wt-chart {
1029    overflow-x: auto;
1030    overflow-y: hidden;
1031}
1032
1033/* Fit thumbnail into parent on charts */
1034.select2-selection.select2-selection--single {
1035    min-height: 36px;
1036    height: auto;
1037    padding: 2px 0;
1038}
1039
1040.select2-container .select2-selection--single .select2-selection__rendered {
1041    padding-left: 2px;
1042}
1043
1044.select2-selection--single .NAME {
1045    padding-left: 4px;
1046}
1047
1048/*
1049 *  These selectors control how the short horizontal lines are positioned in the Charts
1050 *  Optimized for Win10 and FF, Chrome and Edge browsers
1051 *  	Ancestors
1052 *  	Descendants
1053 *  	amily book
1054 *
1055 */
1056
1057/* Ascentors */
1058.wt-chart-ancestors .linea1 {
1059    margin-bottom: 4px;
1060}
1061
1062.wt-chart-ancestors .linea2 {
1063    margin-bottom: 7px;
1064}
1065
1066.wt-chart-ancestors .linea3 {
1067    margin-bottom: 4px;
1068}
1069
1070.wt-chart-ancestors .linea4 {
1071    margin-bottom: 7px;
1072}
1073
1074.wt-chart-ancestors .linea5 {
1075    vertical-align: top;
1076}
1077
1078/* Descendants */
1079.wt-chart-descendants .lined1 {
1080    margin-bottom: 4px;
1081}
1082
1083.wt-chart-descendants .lined2 {
1084    margin-bottom: 7px;
1085}
1086
1087.wt-chart-descendants .lined3 {
1088    margin-bottom: 4px;
1089}
1090
1091.wt-chart-descendants .lined4 {
1092    margin-bottom: 7px;
1093}
1094
1095.wt-chart-descendants .linea5 {
1096    vertical-align: top;
1097}
1098
1099/* Some menus (e.g. languages) can be longer than a page */
1100.dropdown-menu {
1101    max-height: 30rem;
1102    overflow-x: hidden;
1103}
1104
1105/* Forms */
1106.col-form-label {
1107    font-weight: bold;
1108}
1109