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