/* Utility.css contains CSS classes which are not design relevant for the specific wiki Rather there are functional and best practice CSS constructs which without modification can be helpful on other wikis too (see especially Categoy:MultiWiki) See detailed documentation in Dev/mediawiki */ /* ---------------------------- */ /* 1. General purpose Utilities */ .width-100 { width: 100%; } .justify-left { justify-content: left !important; } .justify-center { justify-content: center !important; } .justify-right { justify-content: right !important; } .margin-left-0 { margin-left: 0 !important; } .margin-left-5 { margin-left: 5px !important; } .margin-left-10 { margin-left: 10px !important; } .margin-left-20 { margin-left: 20px !important; } .margin-left-30 { margin-left: 30px !important; } .margin-right-0 { margin-right: 0 !important; } .margin-right-5 { margin-right: 5px !important; } .margin-right-10 { margin-right: 10px !important; } .margin-right-20 { margin-right: 20px !important; } .margin-right-30 { margin-right: 30px !important; } .margin-top-0 { margin-top: 0 !important; } .margin-top-5 { margin-top: 5px !important; } .margin-top-10 { margin-top: 10px !important; } .margin-top-20 { margin-top: 20px !important; } .margin-top-30 { margin-top: 30px !important; } .margin-bottom-0 { margin-bottom: 0 !important; } .margin-bottom-5 { margin-bottom: 5px !important; } .margin-bottom-10 { margin-bottom: 10px !important; } .margin-bottom-20 { margin-bottom: 20px !important; } .margin-bottom-30 { margin-bottom: 30px !important; } .padding-left-0 { padding-left: 0 !important; } .padding-left-5 { padding-left: 5px !important; } .padding-left-10 { padding-left: 10px !important; } .padding-left-20 { padding-left: 20px !important; } .padding-left-30 { padding-left: 30px !important; } .padding-right-0 { padding-right: 0 !important; } .padding-right-5 { padding-right: 5px !important; } .padding-right-10 { padding-right: 10px !important; } .padding-right-20 { padding-right: 20px !important; } .padding-right-30 { padding-right: 30px !important; } .padding-top-0 { padding-top: 0 !important; } .padding-top-5 { padding-top: 5px !important; } .padding-top-10 { padding-top: 10px !important; } .padding-top-20 { padding-top: 20px !important; } .padding-top-30 { padding-top: 30px !important; } .padding-bottom-0 { padding-bottom: 0 !important; } .padding-bottom-5 { padding-bottom: 5px !important; } .padding-bottom-10 { padding-bottom: 10px !important; } .padding-bottom-20 { padding-bottom: 20px !important; } .padding-bottom-30 { padding-bottom: 30px !important; } .vspacer-0 { display: block; width: 100%; overflow: auto; float: none; height: 0; } .vspacer-1 { display: block; width: 100%; overflow: auto; float: none; height: 1px; } .vspacer-2 { display: block; width: 100%; overflow: auto; float: none; height: 2px; } .vspacer-3 { display: block; width: 100%; overflow: auto; float: none; height: 3px; } .vspacer-4 { display: block; width: 100%; overflow: auto; float: none; height: 4px; } .vspacer-5 { display: block; width: 100%; overflow: auto; float: none; height: 5px; } .vspacer-10 { display: block; width: 100%; overflow: auto; float: none; height: 10px; } .vspacer-20 { display: block; width: 100%; overflow: auto; float: none; height: 20px; } .vspacer-30 { display: block; width: 100%; overflow: auto; float: none; height: 30px; } .vspacer-50 { display: block; width: 100%; overflow: auto; float: none; height: 50px; } .pos-1px-up { position: relative; top: -1px; } .pos-1px-down { position: relative; top: 1px; } .pos-2px-up { position: relative; top: -2px; } .pos-2px-down { position: relative; top: 2px; } .pos-3px-up { position: relative; top: -3px; } .pos-3px-down { position: relative; top: 3px; } .text-align-center { text-align: center; } .vertical-align-middle { vertical-align: middle; } .nowrap { white-space: nowrap; } .clear-float { clear: both; float: none; overflow: auto; } /* ------------------------------- */ /* 2. Manually place anchor Utiliy */ .manually-placed-anchor { position: relative; top: -40px; } /* ----------------------- */ /* 3. Scroll-Table Utility */ .wikitable-auto-wrapper { position: relative; } .wikitable-auto-wrapper > .table-content { max-width: 100%; overflow-x: auto; } .wikitable-auto-wrapper table { margin: 0 !important; } .wikitable-auto-wrapper.scroll-overflow-mobile { padding-bottom: 11px; } .wikitable-auto-wrapper.scroll-overflow-mobile > .before, .wikitable-auto-wrapper.scroll-overflow-mobile > .after { display: block; width: 100%; padding: 0 0 0 14px; color: #fff; border-radius: 4px; background: linear-gradient( to right,#3fb8eb 30%,transparent); font-size: 11px; font-weight: bold; line-height: 14px; letter-spacing: 2px; } .wikitable-auto-wrapper.scroll-overflow-mobile > .before:before, .wikitable-auto-wrapper.scroll-overflow-mobile > .after:before { content: 'SWIPE'; } .wikitable-auto-wrapper.scroll-overflow-mobile > .before:after, .wikitable-auto-wrapper.scroll-overflow-mobile > .after:after { content: '▷ ▷ ▷'; position: relative; left: 10px; top: -1px; font-size: 12px; } /* ---------------- */ /* 4. No-JS classes */ html.client-js .show-for-nojs-only, html.client-js .hide-for-js-only, html.client-nojs .show-for-js-only, html.client-nojs .hide-for-nojs-only { display: none !important; } /* ------------------ */ /* 5. Columns Utility */ .use-2-columns, .use-3-columns { column-gap: 20px; column-rule: 1px solid #ddd; width: 100%; margin: 15px 0; } .use-2-columns { column-count: 2; } .use-3-columns { column-count: 3; } .use-2-columns .keep-together, .use-3-columns .keep-together { display: inline-block; vertical-align: top; } .use-3-columns.strict-list-columns > ul, .use-3-columns.strict-list-columns > ol { display: inline-block; } /* Responsive */ @media (max-width: 590px) { .use-3-columns { column-count: 2; } } @media (max-width: 450px) { .use-2-columns, .use-3-columns { column-count: 1; } } /* -------------------------------- */ /* 6. Edit Preview improve editform */ body.action-submit #editform { position: relative; z-index: 1000; background: #f6f3f4; padding: 10px; border: 1px solid #ccc; } /* -------------------- */ /* 7. Mbox Box info-box */ #mw-content-text .info-box { padding: 5px 21px; margin: 13px 0 13px -2px; border: 1px solid #e0e0e0; background: white; border-radius: 8px; box-shadow: 2px 2px 5px rgba(0, 0, 0, .09); display: flow-root; } @media (max-width: 650px) { #mw-content-text .info-box.ib-for-thumb { clear: both; } } #mw-content-text .info-box.has-icon { padding-left: 55px; position: relative; } #mw-content-text .info-box.has-icon .info-box-icon { position: absolute; left: 15px; top: min( calc( 50% - 20px ), 17px ); width: 30px; height: 40px; } #mw-content-text .info-box.has-icon .info-box-icon i { font-size: 18px; text-align: center; padding: 10px 0; width: 100%; } #mw-content-text .info-box.has-icon .info-box-icon > span, #mw-content-text .info-box.has-icon .info-box-icon > span > :is(a,span), #mw-content-text .info-box.has-icon .info-box-icon > span > :is(a,span) > img { display: inline-block; height: inherit; width: inherit; object-fit: contain; border-radius: 5px; } /* -------------------------------- */ /* 8. Intro paragraph and IntroLike */ .intro-like, .pre-intro-p { margin-top: 1.5em; } .intro-like, .post-intro-p { margin-bottom: 1.5em; } .intro-like > :first-child, .pre-intro-p + *, .pre-intro-p + .hidden-thumbnail + * { padding-top: 1em !important; border-top-left-radius: 9px; border-top-right-radius: 9px; box-shadow: inset 5px 5px 8px -2px rgb(0 0 0 / 9%) !important; } .pre-intro-p + .hidden-thumbnail { display: none !important; } .intro-like > *, .pre-intro-p ~ :not(.post-intro-p):not(.post-intro-p ~ *) { font-size: 17px !important; color: #656565 !important; font-style: italic; display: flow-root; margin: 30px 0; padding: 6px 20px 7px 26px; background: #eee; margin: 0 !important; box-shadow: inset 11px 0 8px -8px rgb(0 0 0 / 9%); } .pre-intro-p.hidden ~ *:not(.post-intro-p ~ *) { display: none !important; } .intro-like > :last-child, .pre-intro-p ~ :has(+ .post-intro-p) { padding-bottom: 1.1em !important; border-bottom-left-radius: 9px; border-bottom-right-radius: 9px; } /* --------------- */ /* 9. Info Tooltip */ .info-tooltip { display: inline-block; position: relative; background-image: url('/w/images/thumb/c/c8/Ambox_notice.png/40px-Ambox_notice.png'); background-size: contain; background-repeat: no-repeat; width: 20px; height: 20px; } .info-tooltip > * { display: none; position: absolute; max-width: 200px; width: max-content; background: white; border: 1px solid #ccc; box-shadow: 2px 2px 4px rgba( 0,0,0, .07); padding: 5px 10px; border-radius: 5px; top: -10px; left: -10px; z-index: 10; } .info-tooltip > *:before { content: " "; background-image: url('/w/images/thumb/c/c8/Ambox_notice.png/40px-Ambox_notice.png'); width: 22px; height: 20px; display: inline-block; background-size: contain; background-repeat: no-repeat; position: relative; top: 4px; left: -1px; } .info-tooltip:hover > *, .info-tooltip > *:hover { display: block; } /* ----------------- */ /* 10. Col Container */ .col-container { display: flex; flex-wrap: wrap; justify-content: center; } .col-container.cc-3 > * { flex: 0 0 31%; margin: 2% 1%; } @media (max-width: 730px) { .col-container.cc-3 > * { flex: 0 0 48%; } } @media (max-width: 460px) { .col-container.cc-3 > * { flex: 0 0 88%; margin: 2% 6% 5%; } } .col-container.cc-4 > * { flex: 0 0 23%; margin: 2% 1%; } @media (max-width: 800px) { .col-container.cc-4 > * { flex: 0 0 31%; } } @media (max-width: 600px) { .col-container.cc-4 > * { flex: 0 0 48%; } } @media (max-width: 430px) { .col-container.cc-4 > * { flex: 0 0 88%; margin: 2% 6% 5%; } } .col-container.cc-5 > * { flex: 0 0 18%; margin: 1.5% 1%; } .col-container i.image { padding-top: 70%; width: 100%; display: block; background-size: contain; background-repeat: no-repeat; background-position: center center; } .col-container i.image.image-cover { background-size: cover !important; } .col-container i.image.image-left { background-position: left; } .col-container img.image { width: 100%; height: 70%; display: block; object-fit: contain; } .col-container img.image.image-cover { object-fit: cover; } .col-container img.image.image-left { object-position: left; } /* ------------------ */ /* 11. Colors Schemes */ .cs-red { background-color: #ff6e6e !important; color: white !important; } .cs-red-light { background-color: #ffe5e5 !important; color: #666 !important; } .cs-green { background-color: #00d931 !important; color: white !important; } .cs-green-light { background-color: #d4ffd9 !important; color: #666 !important; } .cs-green-dark { background-color: #006100 !important; color: white !important; } .cs-blue { background-color: #37c6ff !important; color: white !important; } .cs-blue-light { background-color: #d9f6ff !important; color: #666 !important; } .cs-blue-dark { background-color: #0228ff !important; color: white !important; } .cs-yellow { background-color: #fff23e !important; color: #444 !important; } .cs-yellow-light { background-color: #fff9a5 !important; color: #666 !important; } /* ------------------- */ /* 12. Dark Mode Fixes */ /* for https://www.mediawiki.org/wiki/Extension:DarkMode */ .client-darkmode { background: unset; } /* -------------- */ /* 13. Font Sizes */ .fontsize19 { font-size: 19px; } .fontsize21 { font-size: 21px; } /* ----------------------------------------------- */ /* 14. Design fixes for Extension:MultimediaViewer */ .mw-mmv-main .mw-mmv-post-image:not(.mw-mmv-untruncated) .mw-mmv-image-metadata { opacity: 0; margin-top: 0; } /* --------------------------------- */ /* 15. Expand or collapse all button */ html.client-nojs .expand-or-collapse-all-button { display: none; } /* ------------------------ */ /* 16. VideoLink (Template) */ .video-link { border: 2px solid #fff; box-shadow: 1px 1px 4px rgb(0 0 0/.1); border-radius: 5px; padding: 3px 1px 3px 5px; background: #fff; margin: 0 9px 0 4px; } .video-link .icons { color: #777; } .video-link .icons a { display: inline-block; } .video-link .icons a:first-child { margin-left: 3px; } .video-link .icons a:hover { display: inline-block; transform: scale(1.3); } .video-link .icons a > img { height: 1em; width: auto; vertical-align: top; position: relative; top: .3em; } .video-link .text { background: #f4f4f4; padding: 0 .4em .04em; border-radius: 4px; } .video-link .text a { padding-left: 0; color: #2575c5 !important; } .video-link .text .ext-link-to-archive { display: none; } /* ----------------- */ /* 17. Thumb Gallery */ @media (max-width: 540px) { .thumb-gallery { display: flex; flex-wrap: wrap; float: none !important; clear: both !important; margin: 0 !important; justify-content: center; gap: 10px; } .thumb-gallery figure { display: flex !important; flex-direction: column; justify-content: space-between; margin: 0 !important; } } /* --------------------------- */ /* 18. ContentImage (Template) */ .content-image-wrapper { display: inline-block; } .content-image-wrapper img { max-width: 100%; height: auto; } .content-image-wrapper.ciw-w100, .content-image-wrapper.ciw-w100 * { width: 100%; display: inline-block; } /* ------------------------------ */ /* 19. Community Support Template */ #mw-content-text .info-box.community-support-info.csi-page { border: 2px solid #ff9101; background: #fff7ef; } #mw-content-text .info-box.community-support-info.csi-chapter { border-color: #ff9101; } /* --------------------------- */ /* 20. Anti-Spam Email tooltip */ .antispam-email-tooltip { position: relative; } .antispam-email-tooltip .tooltip { display: none; position: absolute; left: -1px; background: white; z-index: 10; padding: 10px 20px; top: 2.2em; border-radius: 6px; box-shadow: 2px 2px 3px rgba( 0 0 0 / 10% ); } .antispam-email-tooltip:hover:before { content: " "; display: inline-block; width: 100%; height: 3em; position: absolute; } .antispam-email-tooltip:hover .tooltip { width: 300px; display: block; } .antispam-email-tooltip .tooltip:before { content: " "; position: absolute; top: -14px; left: 11px; border-width: 7px; border-style: solid; border-color: transparent transparent white transparent; } .antispam-email-tooltip .ul { color: red; padding: .6em 0 0 1.5em; display: inline-block; } .antispam-email-tooltip .ul > span { display: list-item; list-style: none; position: relative; } .antispam-email-tooltip .ul > span > i { position: absolute; top: 0; left: -1.3em; } .antispam-email-tooltip .ul > span > i:not([class^="fa-"]):before { content: "•"; width: 1em; display: inline-block; height: 1em; } .antispam-email-tooltip .ul > span > i[class^="fa-"] { top: 0.4em; left: -1.6em; } /* [[Category:MultiWiki]] */