1/** 2 * webtrees: online genealogy 3 * Copyright (C) 2023 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: solid gray thin; 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/*-- Fan chart ---- */ 827.fan_chart_menu { 828 background: #fff; 829 position: absolute; 830 display: none; 831 z-index: 100; 832} 833 834#fan_chart ul { 835 list-style-type: none; 836 margin: 0; 837} 838 839/* Lifespans chart */ 840.wt-lifespans-subtitle { 841 text-align: center; 842} 843 844.wt-lifespans-scale { 845 white-space: nowrap; 846} 847 848.wt-lifespans-decade { 849 width: 70px; 850 height: 60px; 851 display: inline-block; 852 background-image: url(images/lifespan-decade.png); 853 background-position-y: bottom; 854 background-repeat: no-repeat; 855 background-size: 70px 37px; 856} 857 858.wt-lifespans-individuals { 859 background: #fafafa; 860} 861 862.wt-lifespans-individual { 863 864} 865 866.wt-lifespans-summary { 867 background: #ffffff; 868 border: thin solid #000; 869 z-index: 1; 870} 871 872.wt-lifespans-summary-link { 873 font-weight: bold; 874} 875 876/*-- timeline --*/ 877#timeline_chart { 878 position: relative; 879 top: 0; 880 left: 0; 881} 882 883/* 884 * Any element that is loaded dynamically has the class wt-ajax-load. 885 * We can provide a "loading" placeholder for empty elements with this class. 886 */ 887.wt-ajax-load:empty { 888 height: 32px; 889 background: url(images/loading-32x32.gif) no-repeat 50% 50%; 890} 891 892/* 893 * Default icons are provided by FontAwesome. 894 */ 895.wt-icon-anniversary { 896} 897 898.wt-icon-arrow-down { 899} 900 901a > .wt-icon-arrow-down:hover { 902} 903 904.wt-icon-arrow-left { 905} 906 907a > .wt-icon-arrow-left:hover { 908} 909 910.wt-icon-arrow-right { 911} 912 913a > .wt-icon-arrow-right:hover { 914} 915 916.wt-icon-arrow-up { 917} 918 919a > .wt-icon-arrow-up:hover { 920} 921 922.wt-icon-bing-maps { 923} 924 925.wt-icon-calendar { 926} 927 928.wt-icon-collapse { 929} 930 931.wt-icon-coordinates { 932} 933 934.wt-icon-copy { 935} 936 937.wt-icon-delete { 938} 939 940.wt-icon-edit { 941} 942 943.wt-icon-expand { 944} 945 946.wt-icon-family { 947} 948 949.wt-icon-google-maps { 950} 951 952.wt-icon-help { 953} 954 955.wt-icon-individual { 956} 957 958.wt-icon-keyboard { 959} 960 961.wt-icon-media { 962} 963 964.wt-icon-note { 965} 966 967.wt-icon-openstreetmap { 968} 969 970.wt-icon-preferences { 971} 972 973.wt-icon-reorder { 974} 975 976.wt-icon-repository { 977} 978 979.wt-icon-sex-f { 980 color: var(--sex-f-fg); 981} 982 983.wt-icon-sex-m { 984 color: var(--sex-m-fg); 985} 986 987.wt-icon-sex-u { 988 color: var(--sex-u-fg); 989} 990 991.wt-icon-sex-x { 992 color: var(--sex-u-fg); 993} 994 995.wt-icon-source { 996} 997 998.wt-icon-submitter { 999} 1000 1001.wt-icon-warning { 1002} 1003 1004.wt-icon-zoom-in { 1005} 1006 1007.wt-icon-zoom-out { 1008} 1009 1010/* Miscellaneous images */ 1011.icon-cfamily { 1012 content: url(fab/images/cfamily.png); 1013} 1014 1015.icon-childless { 1016 content: url(images/childless.png); 1017} 1018 1019.icon-children { 1020 content: url(images/children.png); 1021} 1022 1023.icon-edit_indi { 1024 content: url(fab/images/edit_indi.png); 1025} 1026 1027.icon-fam-list { 1028 content: url(fab/images/sfamily.png); 1029} 1030 1031.icon-indi-list { 1032 content: url(fab/images/indis.png); 1033} 1034 1035.icon-loading-small { 1036 content: url(images/indicator.gif); 1037} 1038 1039.icon-minus { 1040 content: url(icons/minus.png); 1041} 1042 1043.icon-mypage { 1044 content: url(fab/images/mypage.png); 1045} 1046 1047.icon-pin-in { 1048 content: url(fab/images/pin-in.png); 1049} 1050 1051.icon-pin-out { 1052 content: url(fab/images/pin-out.png); 1053} 1054 1055.icon-plus { 1056 content: url(icons/plus.png); 1057} 1058 1059.icon-resn-confidential { 1060 content: url(images/resn_confidential.png); 1061} 1062 1063.icon-resn-locked { 1064 content: url(images/resn_locked.png); 1065} 1066 1067.icon-resn-none { 1068 content: url(images/resn_none.png); 1069} 1070 1071.icon-resn-privacy { 1072 content: url(images/resn_privacy.png); 1073} 1074 1075.icon-rings { 1076 content: url(images/rings.png); 1077} 1078 1079.icon-selected { 1080 content: url(fab/images/selected.png); 1081} 1082 1083/* Silhouettes on charts */ 1084.icon-silhouette-f { 1085 content: url(fab/images/silhouette_female_small.png); 1086} 1087 1088.icon-silhouette-m { 1089 content: url(fab/images/silhouette_male_small.png); 1090} 1091 1092.icon-silhouette-u, 1093.icon-silhouette-x { 1094 content: url(fab/images/silhouette_unknown_small.png); 1095} 1096 1097.menu-language li { 1098 text-align: left; /* The language menu is always LTR, even on RTL pages */ 1099} 1100 1101.menu-theme li { 1102 text-align: left; /* The theme menu is always LTR, even on RTL pages */ 1103} 1104 1105.icon-indis { 1106 content: url(fab/images/indis.png); 1107} 1108 1109.icon-patriarch { 1110 content: url(fab/images/patriarch.png); 1111} 1112 1113.icon-pedigree { 1114 content: url(fab/images/pedigree.png); 1115} 1116 1117.icon-sfamily { 1118 content: url(fab/images/sfamily.png); 1119} 1120 1121.icon-user_add { 1122 content: url(fab/images/user_add.png); 1123} 1124 1125/* Census assistant */ 1126.wt-census-assistant-form-control:focus { 1127 min-width: 12rem; 1128} 1129 1130/* Some blocks show a reduced version on the right-hand side. */ 1131.wt-side-blocks .wt-side-block-optional { 1132 display: none !important; 1133} 1134 1135/* my page chart enhancements */ 1136.wt-block-content-charts { 1137 overflow: auto; 1138} 1139 1140/* Some charts are wider than the page. */ 1141.wt-chart { 1142 overflow-x: auto; 1143 overflow-y: hidden; 1144} 1145 1146/* Forms */ 1147.col-form-label { 1148 font-weight: bold; 1149} 1150