xref: /webtrees/resources/css/fab.css (revision 8e1afc648389017cb4e48e677289723c2833c768)
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}
456
457.wt-facts-table > tbody > tr > th {
458    min-width: 20%;
459}
460
461.wt-facts-table td {
462    border-radius: 4px;
463    background-color: #ddd;
464}
465
466.wt-facts-table .wt-sex-m > td {
467    background-color: var(--sex-m-bg);
468}
469
470.wt-facts-table .wt-sex-f > td {
471    background-color: var(--sex-f-bg);
472}
473
474.wt-facts-table .wt-sex-u > td {
475    background-color: var(--sex-u-bg);
476}
477
478.wt-facts-table .wt-sex-x > td {
479    background-color: var(--sex-x-bg);
480}
481
482.details_label {
483    font-weight: bold;
484}
485
486.date {
487    color: #337;
488}
489
490.label {
491    font-weight: bold;
492}
493
494.error {
495    color: #f00;
496    font-weight: bold;
497}
498
499.indent {
500    padding-left: 7px;
501}
502
503.parentdeath {
504    padding: 1px;
505}
506
507.journal_box {
508    padding: 3pt;
509    border: thin solid #aaa;
510    overflow: visible;
511}
512
513.news_box {
514    background-color: #ccc;
515    border-top: none;
516    padding: 0.25rem;
517}
518
519.news_title {
520    font-weight: bold;
521    font-size: 14px;
522}
523
524.news_date {
525    margin-bottom: 12px;
526}
527
528.current_day {
529    font-weight: bold;
530    font-size: 16px;
531}
532
533.cal_day {
534    font-weight: bold;
535}
536
537.rtl_cal_day {
538    color: #00f;
539    font-weight: bold;
540}
541
542#user-page h1 {
543    margin: 0.25em auto 0.6em;
544}
545
546.tvertline {
547    vertical-align: bottom;
548}
549
550#childbox {
551    padding: 5px;
552    position: absolute;
553    display: none;
554    text-align: start;
555    white-space: nowrap;
556    top: 20px;
557    left: 0;
558}
559
560.layout3 #childbox {
561    top: auto;
562    bottom: 20px;
563}
564
565.person0 {
566    background-color: #aaf;
567    vertical-align: top;
568}
569
570.person1 {
571    background-color: #afa;
572    vertical-align: top;
573}
574
575.person2 {
576    background-color: #faa;
577    vertical-align: top;
578}
579
580.person3 {
581    background-color: #55f;
582    vertical-align: top;
583}
584
585.person4 {
586    background-color: #f55;
587    vertical-align: top;
588}
589
590.person5 {
591    background-color: #5f5;
592    vertical-align: top;
593}
594
595.starredname {
596    text-decoration: underline;
597}
598
599.search_hit {
600    background-color: #ff0;
601}
602
603.descriptionbox {
604    font-weight: bold;
605    background-color: #ccc;
606    vertical-align: top;
607}
608
609.descriptionbox {
610    font-size: 14px;
611    background-color: #ccc;
612    vertical-align: top;
613    padding: 3px;
614}
615
616.optionbox {
617    background-color: #ddd;
618    color: #000;
619    vertical-align: top;
620    white-space: nowrap;
621    padding: 3px;
622}
623
624.red {
625    color: #f00;
626}
627
628.wt-associate-fact,
629.wt-relation-fact,
630.wt-historic-fact {
631    opacity: 0.8;
632}
633
634.messagebox {
635    background-color: #bce;
636}
637
638/* ---Pending edits--- */
639.wt-new {
640    outline: solid #00f 1px;
641}
642
643.wt-old {
644    outline: solid #f00 1px;
645}
646
647.nowrap {
648    white-space: nowrap;
649}
650
651.wrap {
652    white-space: normal;
653}
654
655.statistics-page {
656    text-align: center;
657}
658
659.gchart {
660    border: 0;
661}
662
663#facts_content dd {
664    float: left;
665    width: 70%;
666}
667
668.filtersH,
669.filtersF {
670    margin: 4px;
671}
672
673.filtersH img {
674    margin-bottom: 2px;
675}
676
677.list-charts {
678    text-align: center;
679}
680
681#place-hierarchy h2,
682#place-hierarchy h4 {
683    text-align: center;
684}
685
686.user_welcome_block table,
687.gedcom_block_block table {
688    margin: auto;
689}
690
691.user_welcome_block td,
692.gedcom_block_block td {
693    width: 33%;
694    text-align: center;
695    vertical-align: top;
696}
697
698/* ==== FAQ table styles ===== */
699table.faq {
700    background-color: #ddd;
701    margin: 5px 0 50px 5px;
702    width: 98%;
703}
704
705table.faq tr:nth-child(odd) td {
706    background-color: #eee;
707}
708
709div.faq_title {
710    background-color: #ddd;
711    margin: 1em 0;
712    padding: .25em;
713    font-weight: bold;
714    width: 98%;
715}
716
717div.faq_body {
718    clear: both;
719    padding: 0 1em;
720}
721
722.faq_top {
723    float: right;
724}
725
726#indi_note {
727    margin: 0 0 5px;
728}
729
730.indi_table {
731    clear: left;
732}
733
734#indi_note .fact_NOTE {
735    float: left;
736    margin: 0 5px 0 0;
737}
738
739#indi_note .fact_SOUR {
740    margin: 3px 0;
741}
742
743#indi_note .fact_SOUR a {
744    font-size: 100%;
745}
746
747#indi_note .fact_NOTE,
748#indi_note .fact_SOUR {
749    clear: both;
750}
751
752.odometer {
753    font-family: courier, monospace;
754    font-weight: bold;
755    background: #000;
756    color: #fff;
757}
758
759.upcoming_events_block button,
760.todays_events_block button {
761    margin: 0 20px;
762}
763
764/* Sidebar - Family navigator */
765.wt-family-navigator-dropdown {
766    background: #eee;
767}
768
769.wt-family-navigator-dropdown-heading {
770    font-weight: bold;
771    font-size: inherit;
772    color: inherit;
773}
774
775/* Sidebar - Descendants */
776#sb_content_descendancy {
777    margin-top: 5px;
778}
779
780#sb_desc_content {
781    margin-left: 3px;
782    font-size: 0.8em;
783}
784
785#sb_desc_content ul {
786    padding: 0;
787    margin: 0;
788}
789
790.sb_desc_indi_li {
791    list-style-type: none;
792}
793
794/* Individuals and Families */
795#sidebar-content-individuals,
796#sidebar-content-families {
797    margin-top: 5px;
798}
799
800.sb_indi_surname_li,
801.sb_fam_surname_li {
802    list-style-image: url(icons/plus.png);
803}
804
805.name_tree_div ul {
806    padding: 0;
807    margin: 0;
808}
809
810.name_tree_div li {
811    list-style: none;
812    margin: 0;
813    padding: 0;
814}
815
816/* Clippings */
817#sb_clippings_content ul {
818    padding: 0;
819    margin: 0;
820}
821
822#sb_clippings_content li {
823    list-style: none;
824    margin: 0;
825    padding: 0;
826    white-space: nowrap;
827}
828
829/*-- Fan chart ---- */
830.fan_chart_menu {
831    background: #fff;
832    position: absolute;
833    display: none;
834    z-index: 100;
835}
836
837#fan_chart ul {
838    list-style-type: none;
839    margin: 0;
840}
841
842/* Lifespans chart */
843.wt-lifespans-subtitle {
844    text-align: center;
845}
846
847.wt-lifespans-scale {
848    white-space: nowrap;
849}
850
851.wt-lifespans-decade {
852    width: 70px;
853    height: 60px;
854    display: inline-block;
855    background-image: url(images/lifespan-decade.png);
856    background-position-y: bottom;
857    background-repeat: no-repeat;
858    background-size: 70px 37px;
859}
860
861.wt-lifespans-individuals {
862    background: #fafafa;
863}
864
865.wt-lifespans-individual {
866
867}
868
869.wt-lifespans-summary {
870    background: #ffffff;
871    border: thin solid #000;
872    z-index: 1;
873}
874
875.wt-lifespans-summary-link {
876    font-weight: bold;
877}
878
879/*-- timeline  --*/
880#timeline_chart {
881    position: relative;
882    top: 0;
883    left: 0;
884}
885
886/*
887 * Any element that is loaded dynamically has the class wt-ajax-load.
888 * We can provide a "loading" placeholder for empty elements with this class.
889 */
890.wt-ajax-load:empty {
891    height: 32px;
892    background: url(images/loading-32x32.gif) no-repeat 50% 50%;
893}
894
895/*
896 * Default icons are provided by FontAwesome.
897 */
898.wt-icon-anniversary {
899}
900
901.wt-icon-arrow-down {
902}
903
904a > .wt-icon-arrow-down:hover {
905}
906
907.wt-icon-arrow-left {
908}
909
910a > .wt-icon-arrow-left:hover {
911}
912
913.wt-icon-arrow-right {
914}
915
916a > .wt-icon-arrow-right:hover {
917}
918
919.wt-icon-arrow-up {
920}
921
922a > .wt-icon-arrow-up:hover {
923}
924
925.wt-icon-bing-maps {
926}
927
928.wt-icon-calendar {
929}
930
931.wt-icon-collapse {
932}
933
934.wt-icon-coordinates {
935}
936
937.wt-icon-copy {
938}
939
940.wt-icon-delete {
941}
942
943.wt-icon-edit {
944}
945
946.wt-icon-expand {
947}
948
949.wt-icon-family {
950}
951
952.wt-icon-google-maps {
953}
954
955.wt-icon-help {
956}
957
958.wt-icon-individual {
959}
960
961.wt-icon-keyboard {
962}
963
964.wt-icon-media {
965}
966
967.wt-icon-note {
968}
969
970.wt-icon-openstreetmap {
971}
972
973.wt-icon-preferences {
974}
975
976.wt-icon-reorder {
977}
978
979.wt-icon-repository {
980}
981
982.wt-icon-sex-f {
983    color: var(--sex-f-fg);
984}
985
986.wt-icon-sex-m {
987    color: var(--sex-m-fg);
988}
989
990.wt-icon-sex-u {
991    color: var(--sex-u-fg);
992}
993
994.wt-icon-sex-x {
995    color: var(--sex-u-fg);
996}
997
998.wt-icon-source {
999}
1000
1001.wt-icon-submitter {
1002}
1003
1004.wt-icon-warning {
1005}
1006
1007.wt-icon-zoom-in {
1008}
1009
1010.wt-icon-zoom-out {
1011}
1012
1013/* Miscellaneous images */
1014.icon-cfamily {
1015    content: url(fab/images/cfamily.png);
1016}
1017
1018.icon-childless {
1019    content: url(images/childless.png);
1020}
1021
1022.icon-children {
1023    content: url(images/children.png);
1024}
1025
1026.icon-edit_indi {
1027    content: url(fab/images/edit_indi.png);
1028}
1029
1030.icon-fam-list {
1031    content: url(fab/images/sfamily.png);
1032}
1033
1034.icon-indi-list {
1035    content: url(fab/images/indis.png);
1036}
1037
1038.icon-loading-small {
1039    content: url(images/indicator.gif);
1040}
1041
1042.icon-minus {
1043    content: url(icons/minus.png);
1044}
1045
1046.icon-mypage {
1047    content: url(fab/images/mypage.png);
1048}
1049
1050.icon-pin-in {
1051    content: url(fab/images/pin-in.png);
1052}
1053
1054.icon-pin-out {
1055    content: url(fab/images/pin-out.png);
1056}
1057
1058.icon-plus {
1059    content: url(icons/plus.png);
1060}
1061
1062.icon-resn-confidential {
1063    content: url(images/resn_confidential.png);
1064}
1065
1066.icon-resn-locked {
1067    content: url(images/resn_locked.png);
1068}
1069
1070.icon-resn-none {
1071    content: url(images/resn_none.png);
1072}
1073
1074.icon-resn-privacy {
1075    content: url(images/resn_privacy.png);
1076}
1077
1078.icon-rings {
1079    content: url(images/rings.png);
1080}
1081
1082.icon-selected {
1083    content: url(fab/images/selected.png);
1084}
1085
1086/* Silhouettes on charts */
1087.icon-silhouette-f {
1088    content: url(fab/images/silhouette_female_small.png);
1089}
1090
1091.icon-silhouette-m {
1092    content: url(fab/images/silhouette_male_small.png);
1093}
1094
1095.icon-silhouette-u,
1096.icon-silhouette-x {
1097    content: url(fab/images/silhouette_unknown_small.png);
1098}
1099
1100.menu-language li {
1101    text-align: left; /* The language menu is always LTR, even on RTL pages */
1102}
1103
1104.menu-theme li {
1105    text-align: left; /* The theme menu is always LTR, even on RTL pages */
1106}
1107
1108.icon-indis {
1109    content: url(fab/images/indis.png);
1110}
1111
1112.icon-patriarch {
1113    content: url(fab/images/patriarch.png);
1114}
1115
1116.icon-pedigree {
1117    content: url(fab/images/pedigree.png);
1118}
1119
1120.icon-sfamily {
1121    content: url(fab/images/sfamily.png);
1122}
1123
1124.icon-user_add {
1125    content: url(fab/images/user_add.png);
1126}
1127
1128/* Census assistant */
1129.wt-census-assistant-form-control:focus {
1130    min-width: 12rem;
1131}
1132
1133/* Some blocks show a reduced version on the right-hand side. */
1134.wt-side-blocks .wt-side-block-optional {
1135    display: none !important;
1136}
1137
1138/* my page chart enhancements */
1139.wt-block-content-charts {
1140    overflow: auto;
1141}
1142
1143/* Some charts are wider than the page. */
1144.wt-chart {
1145    overflow-x: auto;
1146    overflow-y: hidden;
1147}
1148
1149/* Forms */
1150.col-form-label {
1151    font-weight: bold;
1152}
1153