Jump to content

MediaWiki:Common.css: Difference between revisions

From Insurer Brain
Content deleted Content added
No edit summary
No edit summary
Line 354: Line 354:


/* ======================================================= */
/* ======================================================= */
/* 1. MOBILE FIX (Minerva Skin) */
/* 1. DESKTOP STICKY HEADER (Vector 2022 Skin) */
/* ======================================================= */
/* ======================================================= */
/* This part works perfectly, as confirmed. */


/* A. Sticky Header (Only when NOT searching) */
body:not(.mw-mf-search-mode) .header-container.header-chrome {
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 999;
background-color: #fff;
border-bottom: 1px solid #eaecf0;
width: 100%;
}

/* B. Search Input Text Fix (Force Visible Text) */
/* This forces the text to be black and background white so you can see it. */
.minerva-header .search-box .search {
color: #202122 !important; /* Dark grey/black text */
background-color: #fff !important; /* White background */
opacity: 1 !important; /* Ensure it's not transparent */
text-shadow: none !important; /* Remove any text shadows */
-webkit-text-fill-color: #202122 !important; /* iOS fix */
}

/* C. Search Icon Displacement Fix */
/* This prevents the search box from stretching too wide and pushing the icon */
.minerva-header .search-box {
box-sizing: border-box !important;
position: relative !important;
/* Ensure there is room for the icon on the right */
padding-right: 0 !important;
}

/* Force the icon overlay to stay in the correct spot */
.minerva-header .search-box .search-box-icon-overlay {
right: 0 !important;
left: auto !important;
top: 0 !important;
bottom: 0 !important;
width: 44px !important; /* Standard touch target size */
height: 100% !important;
display: flex !important;
align-items: center;
justify-content: center;
position: absolute !important;
z-index: 2 !important; /* Sit on top of the input */
pointer-events: none; /* Allow clicking "through" to the input if needed */
}

/* Adjust input padding so text doesn't go under the icon */
.minerva-header .search-box input.search {
padding-right: 40px !important;
box-sizing: border-box !important;
width: 100% !important;
}


/* ======================================================= */
/* 2. DESKTOP FIX (Vector 2022 Skin) */
/* ======================================================= */

/* Use FIXED instead of STICKY.
Sticky stops working if its parent container ends.
Fixed forces it to stay on screen forever. */
.vector-header-container {
.vector-header-container {
position: fixed !important;
position: fixed !important;
Line 429: Line 369:
}
}


/* Pushes article content down so it isn't hidden behind the fixed header */
/* PADDING COMPENSATION (Important!)
Since the header is now "fixed" (floating above everything),
it no longer takes up space in the page flow.
We must push the page content down so it isn't hidden behind the header. */
body.skin-vector-2022 {
body.skin-vector-2022 {
padding-top: 60px; /* Adjust this number if the header covers your title */
padding-top: 60px;
}
}

/* Ensure the scrollable content container behaves correctly */
.mw-page-container {
.mw-page-container {
margin-top: 10px;
margin-top: 10px;
}

/* ======================================================= */
/* 2. MOBILE STICKY HEADER (Minerva Skin) */
/* ======================================================= */

/* We apply 'position: sticky' ONLY when the search overlay is CLOSED.
The ':not(.mw-mf-search-mode)' part is the magic switch.
- When reading: Header is sticky.
- When you click Search: This entire block is disabled.
The header reverts to normal, allowing the search bar to
expand, text to appear, and the icon to sit correctly
using the default skin settings.
*/
body:not(.mw-mf-search-mode) .header-container.header-chrome {
position: -webkit-sticky;
position: sticky;
top: 0;
/* Z-Index 99 is sufficient. Too high (like 999) caused the previous bugs. */
z-index: 99;
background-color: #ffffff;
border-bottom: 1px solid #eaecf0;
width: 100%;
}

/* Safeguard: Ensure the search box sits on top of the white header background
so text doesn't get buried behind it.
*/
body:not(.mw-mf-search-mode) .minerva-header .search-box {
position: relative;
z-index: 100;
}
}

Revision as of 14:01, 6 December 2025

/* CSS placed here will be applied to all skins. This version makes the log-in disappear*/

/* ======================================================= */
/* 1. STANDARD MEDIAWIKI STYLING (Fonts, Quotes, etc.)     */
/* ======================================================= */
cite, dfn { font-style: inherit; }
q { quotes: '"' '"' "'" "'"; }

blockquote {
    overflow: hidden;
    margin: 1em 0;
    padding: 0 40px;
}

small { font-size: 85%; }
.mw-body-content sub, .mw-body-content sup { font-size: 80%; }
.ns-talk .mw-body-content dd { margin-top: 0.4em; margin-bottom: 0.4em; }

/* Collapsible elements logic */
.client-js .collapsible:not( .mw-made-collapsible).collapsed > tbody > tr:not(:first-child),
.client-js .outercollapse .innercollapse.mw-collapsible:not( .mw-made-collapsible ) > p,
.client-js .outercollapse .innercollapse.mw-collapsible:not( .mw-made-collapsible ) > table,
.client-js .outercollapse .innercollapse.mw-collapsible:not( .mw-made-collapsible ) > thead + tbody,
.client-js .outercollapse .innercollapse.mw-collapsible:not( .mw-made-collapsible ) tr:not( :first-child ),
.client-js .outercollapse .innercollapse.mw-collapsible:not( .mw-made-collapsible ) .mw-collapsible-content,
#editpage-specialchars {
    display: none;
}

.references { margin-bottom: 0.5em; }

/* Cite Link Styling */
span[ rel="mw:referencedBy" ] { counter-reset: mw-ref-linkback 0; }
span[ rel='mw:referencedBy' ] > a::before {
    content: counter( mw-ref-linkback, lower-alpha );
    font-size: 80%; font-weight: bold; font-style: italic;
}
a[ rel="mw:referencedBy" ]::before { font-weight: bold; content: "^"; }
span[ rel="mw:referencedBy" ]::before { content: "^ "; }

.mw-parser-output .mw-collapsible-toggle:not(.mw-ui-button) {
    font-weight: normal; padding-right: 0.2em; padding-left: 0.2em;
}
.mw-collapsible-leftside-toggle .mw-collapsible-toggle { float: left; }
.wikitable td ul, .wikitable td ol, .wikitable td dl { text-align: left; }

/* PDF Icons */
.mw-parser-output a[href$=".pdf"].external,
.mw-parser-output a[href*=".pdf?"].external,
.mw-parser-output a[href*=".pdf#"].external,
.mw-parser-output a[href$=".PDF"].external,
.mw-parser-output a[href*=".PDF?"].external,
.mw-parser-output a[href*=".PDF#"].external {
    background: url("//upload.wikimedia.org/wikipedia/commons/4/4d/Icon_pdf_file.png") no-repeat right;
    padding: 8px 18px 8px 0;
}

/* Warnings and Notices */
.mw-warning-with-logexcerpt.mw-warning-with-logexcerpt.mw-warning-with-logexcerpt,
div.mw-lag-warn-high, div.mw-cascadeprotectedwarning, div#mw-protect-cascadeon {
    clear: both; margin: 0.2em 0; border: 1px solid #bb7070;
    background-color: var(--background-color-error-subtle, #ffdbdb);
    padding: 0.25em 0.9em; box-sizing: border-box;
}
.mw-contributions-blocked-notice-partial .mw-warning-with-logexcerpt.mw-warning-with-logexcerpt {
    border-color: #fc3; background-color: var(--background-color-warning-subtle, #fef6e7);
}

@media (min-width: 640px) {
    figure[typeof~='mw:File/Thumb'], figure[typeof~='mw:File/Frame'], .thumbinner { min-width: 100px; }
}

#mw-subcategories, #mw-pages, #mw-category-media, #filehistory, #wikiPreview, #wikiDiff { clear: both; }

/* Hide Permission Groups */
.checkuser-show, .sysop-show, .abusefilter-show, .abusefilter-helper-show,
.patroller-show, .templateeditor-show, .extendedmover-show, .extendedconfirmed-show,
.autoconfirmed-show, .user-show { display: none; }

.ve-ui-mwNoticesPopupTool-item .editnotice-redlink,
.ve-ui-mwNoticesPopupTool-item .mbox-image,
.ve-ui-mwNoticesPopupTool-item .mbox-imageright { display: none !important; }

ul.permissions-errors { margin: 0; }
ul.permissions-errors > li { list-style: none; }
span.mwe-math-mathml-inline { font-size: 118%; }
.mwe-math-fallback-image-display, .mwe-math-mathml-display {
    margin-left: 1.6em !important; margin-top: 0.6em; margin-bottom: 0.6em;
}
.mwe-math-mathml-display math { display: inline; }

@media screen {
    body:not(.ns-0):not(.ns-2):not(.ns-100) .gallerybox .thumb img {
        background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;
    }
    #siteSub { display: block; }
    .references { font-size: 90%; }
}

.flaggedrevs_draft_synced, .flaggedrevs_stable_synced, #t-upload,
.mw-special-Book #coll-downloadbox { display: none; }

/* Infoboxes */
.infobox {
    border: 1px solid #a2a9b1; color: black; padding: 0.2em;
    font-size: 88%; line-height: 1.5em; border-spacing: 3px;
}
@media screen { .infobox { background-color: #f8f9fa; } }
@media (max-width: 640px) { .infobox { width: 100%; } .infobox .nowrap { white-space: normal; } }
@media (min-width: 640px) {
    .infobox { margin: 0.5em 0 0.5em 1em; float: right; clear: right; width: 22em; }
}
.infobox-header, .infobox-label, .infobox-above, .infobox-full-data, .infobox-data,
.infobox-below, .infobox-subheader, .infobox-image, .infobox-navbar,
.infobox th, .infobox td { vertical-align: top; }
.infobox-label, .infobox-data, .infobox th, .infobox td { text-align: left; }
.infobox .infobox-above, .infobox .infobox-title, .infobox caption {
    font-size: 125%; font-weight: bold; text-align: center; padding: 0.2em;
}
.infobox .infobox-header, .infobox .infobox-subheader, .infobox .infobox-image,
.infobox .infobox-full-data, .infobox .infobox-below { text-align: center; }
.infobox .infobox-navbar { text-align: right; }

.wikitable.plainrowheaders th[scope=row], .wikitable.plainrowheaders th[scope=rowgroup] {
    font-weight: normal; text-align: left;
}
.nounderlines a, .IPA a:link, .IPA a:visited { text-decoration: none !important; }
.nowrap, .nowraplinks a { white-space: nowrap; }
.wrap, .wraplinks a { white-space: normal; }

span.texhtml {
    font-family: "Nimbus Roman No9 L", "Times New Roman", Times, serif;
    font-size: 118%; line-height: 1;
    font-variant-numeric: lining-nums tabular-nums; font-kerning: none;
}
span.texhtml span.texhtml { font-size: 100%; }
@media (min-width: 640px) { span.texhtml { white-space: nowrap; } }
@media (max-width: 640px) {
    .flagicon a > img, .flagicon noscript > img { max-width: none !important; }
}
@media screen { .nochecker .gallerybox .thumb img { background-image: none; } }

/* YouTube Embeds */
.mw-parser-output iframe[src*="youtube.com"],
.mw-parser-output iframe[src*="youtube-nocookie.com"] {
    width: 100% !important; max-width: 320px; height: auto !important;
    aspect-ratio: 16 / 9; display: block; margin: 0 auto;
}

/* ======================================================= */
/* RESTORED CAPSACH TOC (From Version 1)                   */
/* ======================================================= */

/* CapSach — Mobile TOC overlay (all skins) */
#cps-open-toc {
  position: fixed;
  
  /* POSITION: Right side */
  right: 16px;             /* Changed from left: 16px */
  left: auto;              /* Safety: ensures left is unset */
  
  /* POSITION: Lifted (to clear Google Anchor Ads) */
  bottom: calc(120px + env(safe-area-inset-bottom, 0px));
  
  /* SHAPE: Smaller Size (40px) */
  width: 44px;             /* Changed from 48px */
  height: 44px;            /* Changed from 48px */
  
  border: 0; border-radius: 999px;
  display: none; 
  align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600;
  color: #fff; background: rgba(0,0,0,.1);
  /* box-shadow: 0 2px 8px rgba(0,0,0,.0);*/
  z-index: 1000; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

#cps-open-toc:focus { outline: 2px solid #36c; outline-offset: 2px; }
#cps-open-toc .label { display: none; } /* icon-only by default */
#cps-open-toc .icon { font-size: 20px; line-height: 1; }

/* Full-screen scrim */
#cps-toc-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.1);
  display: none; z-index: 1001;
}
#cps-toc-overlay.is-open { display: block; }

/* Bottom sheet panel */
#cps-toc-panel {
  position: fixed; left: 0; right: 0; bottom: 0;
  max-height: 85vh;
  border-radius: 12px 12px 0 0;
  background: #fff; color: #202122;
  /* box-shadow: 0 -8px 20px rgba(0,0,0,.0); */
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px)) 12px;
}

/* Header row */
#cps-toc-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 6px;
}
#cps-toc-title { font-size: 16px; font-weight: 600; margin: 0; }
#cps-toc-close {
  background: transparent; border: 0; font-size: 22px; line-height: 1;
}

/* List */
#cps-toc-list {
  list-style: none; margin: 0; padding: 4px 2px 6px;
  max-height: 70vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
#cps-toc-list li { margin: 2px 0; }
#cps-toc-list a {
  display: block; padding: 8px 10px; border-radius: 8px;
  text-decoration: none; color: inherit;
}
#cps-toc-list a:focus, #cps-toc-list a:active {
  outline: 2px solid #36c; background: #f5f6f7;
}

/* Indentation by heading level */
#cps-toc-list li[data-level="3"] { padding-left: 12px; }
#cps-toc-list li[data-level="4"] { padding-left: 24px; }
#cps-toc-list li[data-level="5"] { padding-left: 36px; }
#cps-toc-list li[data-level="6"] { padding-left: 48px; }

/* Only show on phone-ish widths; tablet/desktop keep native TOC */
@media (min-width: 768px) {
  #cps-open-toc, #cps-toc-overlay { display: none !important; }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ======================================================= */
/* FIX: HIDE DUPLICATE "CONTENTS" TITLE IN MOBILE TOC      */
/* ======================================================= */

/* This hides the original MediaWiki header inside your custom panel */
#cps-toc-panel .toctitle,
#cps-toc-panel #mw-toc-heading,
#cps-toc-panel h2 {
    display: none !important;
}

/* ======================================================= */
/* 2. GLOBAL HIDE (READ-ONLY MODE)                         */
/* These elements are hidden for everyone by default.   */
/* They are UNHIDDEN in MediaWiki:Group-user.css        */
/* ======================================================= */

/* HIDE USER LINKS (Includes Sticky Header IDs for Vector 2022) */
#vector-user-links,
#p-personal,
#pt-login,
#pt-login-2,           /* Sticky Header Login */
#pt-createaccount,
#pt-createaccount-2,   /* Sticky Header Create Account */
#pt-userpage,
#pt-mytalk,
#pt-preferences,
#pt-watchlist,
#pt-mycontris,
#pt-logout {
    display: none !important;
}

/* HIDE TOOLS (Sidebar, Dropdowns, Tabs) */
#p-tb,                       /* Toolbox */
#vector-page-tools,          /* Vector 22 Sidebar */
#vector-page-tools-dropdown, /* Vector 22 Dropdown */
.vector-p-tb,
#ca-viewsource,
#ca-history,
#ca-talk {
    display: none !important;
}

/* HIDE CATEGORIES */
#catlinks,
.catlinks,
.mw-normal-catlinks {
    display: none !important;
}

/* ======================================================= */
/* FORCE HIDE MOBILE HISTORY BAR                           */
/* Placed in Common.css to ensure it loads on all devices  */
/* ======================================================= */

/* Target the container class from your HTML */
.last-modified-bar,
a.last-modified-bar {
    display: none !important;
    visibility: hidden !important;
}

/* Target the text wrapper explicitly */
.last-modified-bar__text,
.modified-enhancement {
    display: none !important;
}

/* Target the specific clock icon found inside that button */
.minerva-icon--modified-history {
    display: none !important;
}

/* ======================================================= */
/* HIDE MOBILE USER/LOGIN MENU (Wrapper Method)            */
/* ======================================================= */

/* Target the main container div */
.minerva-user-menu {
    display: none !important;
}

/* Backup: Target the toggle button specifically */
.toggle-list__toggle#minerva-user-menu-toggle {
    display: none !important;
}

/* Backup: Target the icon inside */
.minerva-icon--userAvatarOutline {
    display: none !important;
}

/* ======================================================= */
/* HIDE MOBILE SIDEBAR ITEMS                               */
/* ======================================================= */

/* 1. Hide "Recent Changes" */
#mw-mf-page-left a[href*="Special:RecentChanges"],
#mw-mf-page-left a[data-event-name="recentchanges"] {
    display: none !important;
}

/* 2. Hide "Special Pages" */
#mw-mf-page-left a[href*="Special:SpecialPages"] {
    display: none !important;
}

/* 3. Hide "Community Portal" */
/* Matches the URL: index.php?title=...Community_portal */
#mw-mf-page-left a[href*="Community_portal"] {
    display: none !important;
}

/* ======================================================= */
/* 1. DESKTOP STICKY HEADER (Vector 2022 Skin)             */
/* ======================================================= */
/* This part works perfectly, as confirmed. */

.vector-header-container {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

/* Pushes article content down so it isn't hidden behind the fixed header */
body.skin-vector-2022 {
    padding-top: 60px;
}
.mw-page-container {
    margin-top: 10px;
}

/* ======================================================= */
/* 2. MOBILE STICKY HEADER (Minerva Skin)                  */
/* ======================================================= */

/* We apply 'position: sticky' ONLY when the search overlay is CLOSED.
   The ':not(.mw-mf-search-mode)' part is the magic switch. 
   
   - When reading: Header is sticky.
   - When you click Search: This entire block is disabled. 
     The header reverts to normal, allowing the search bar to 
     expand, text to appear, and the icon to sit correctly 
     using the default skin settings.
*/
body:not(.mw-mf-search-mode) .header-container.header-chrome {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    /* Z-Index 99 is sufficient. Too high (like 999) caused the previous bugs. */
    z-index: 99; 
    background-color: #ffffff;
    border-bottom: 1px solid #eaecf0;
    width: 100%;
}

/* Safeguard: Ensure the search box sits on top of the white header background 
   so text doesn't get buried behind it. 
*/
body:not(.mw-mf-search-mode) .minerva-header .search-box {
    position: relative;
    z-index: 100; 
}