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