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