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