MediaWiki:Mobile.css: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
No edit summary |
No edit summary |
||
| Line 153: | Line 153: | ||
/* ======================================================= */ |
/* ======================================================= */ |
||
/* 2. TOP FLOATING SQUARES ( |
/* 2. TOP FLOATING SQUARES (40px | High Transparency) */ |
||
/* ======================================================= */ |
/* ======================================================= */ |
||
| Line 178: | Line 178: | ||
.header-container .navigation-drawer { display: none !important; } |
.header-container .navigation-drawer { display: none !important; } |
||
/* --- B. COMMON SQUARE STYLE (0. |
/* --- B. COMMON SQUARE STYLE (0.05 Transparency - No Blur) --- */ |
||
.branding-box, |
.branding-box, |
||
#searchIcon, |
#searchIcon, |
||
#cps-open-toc, |
#cps-open-toc, |
||
body.mw-mf-search-mode .minerva-header .search-box input { |
body.mw-mf-search-mode .minerva-header .search-box input { |
||
/* 5% Black Background (Twice as transparent as 0.1) */ |
|||
| ⚫ | |||
background-color: rgba(0, 0, 0, 0.05) !important; |
|||
border-radius: 8px !important; |
border-radius: 8px !important; |
||
pointer-events: auto !important; |
pointer-events: auto !important; |
||
border: none !important; |
border: none !important; |
||
box-shadow: none !important; |
box-shadow: none !important; |
||
/* Removed Blur as requested */ |
|||
| ⚫ | |||
} |
} |
||
/* --- C. BUTTON 1: SEARCH TRIGGER ( |
/* --- C. BUTTON 1: SEARCH TRIGGER (TOP LEFT) --- */ |
||
#searchIcon { |
#searchIcon { |
||
position: fixed !important; |
position: fixed !important; |
||
top: |
top: 10px !important; |
||
left: 10px !important; |
left: 10px !important; |
||
right: auto !important; |
right: auto !important; |
||
| ⚫ | |||
/* Size: 40px */ |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
display: flex !important; align-items: center; justify-content: center; |
display: flex !important; align-items: center; justify-content: center; |
||
margin: 0 !important; padding: 0 !important; |
margin: 0 !important; padding: 0 !important; |
||
} |
} |
||
/* |
/* Search Icon Size */ |
||
#searchIcon .minerva-icon { |
#searchIcon .minerva-icon { |
||
font-size: |
font-size: 24px !important; /* Matches Hamburger */ |
||
color: #fff !important; |
color: #fff !important; |
||
fill: #fff !important; |
fill: #fff !important; |
||
| Line 212: | Line 219: | ||
} |
} |
||
/* --- D. BUTTON 2: TOC ( |
/* --- D. BUTTON 2: TOC (TOP RIGHT-CENTER) --- */ |
||
#cps-open-toc { |
#cps-open-toc { |
||
display: flex !important; |
display: flex !important; |
||
position: fixed !important; |
position: fixed !important; |
||
top: |
top: 10px !important; |
||
right: 64px !important; /* Shifted Left to leave space for X */ |
|||
/* Position: Leave space for the "X" on the right */ |
|||
| ⚫ | |||
left: auto !important; bottom: auto !important; |
left: auto !important; bottom: auto !important; |
||
| ⚫ | |||
/* Size: 40px */ |
|||
| ⚫ | |||
z-index: 1002 !important; |
z-index: 1002 !important; |
||
color: #fff !important; |
color: #fff !important; |
||
align-items: center; justify-content: center; |
align-items: center; justify-content: center; |
||
} |
} |
||
| ⚫ | |||
/* Hamburger Icon Size (Increased ~25%) */ |
|||
| ⚫ | |||
#cps-open-toc .icon { |
|||
| ⚫ | |||
} |
|||
| ⚫ | |||
.branding-box, .branding-box a { |
.branding-box, .branding-box a { |
||
position: fixed !important; |
position: fixed !important; |
||
top: |
top: 10px !important; |
||
right: 118px !important; /* 64px (TOC) + 44px + 10px Gap */ |
|||
/* Position: 60px (TOC) + 40px (Width) + 10px (Gap) */ |
|||
| ⚫ | |||
right: 110px !important; |
|||
| ⚫ | |||
/* Size: 40px */ |
|||
width: 40px !important; height: 40px !important; |
|||
z-index: 1002 !important; |
z-index: 1002 !important; |
||
} |
} |
||
/* |
/* Centering the Home Icon */ |
||
.branding-box a { |
.branding-box a { |
||
display: flex !important; |
display: flex !important; |
||
align-items: center; |
align-items: center; justify-content: center; |
||
justify-content: center; |
|||
width: 100% !important; height: 100% !important; |
width: 100% !important; height: 100% !important; |
||
padding: 0 !important; margin: 0 !important; |
padding: 0 !important; margin: 0 !important; |
||
| Line 247: | Line 266: | ||
.branding-box a::before { |
.branding-box a::before { |
||
content: "⌂"; |
content: "⌂"; |
||
font-size: 24px !important; |
font-size: 24px !important; /* Matches others */ |
||
color: #fff !important; |
color: #fff !important; |
||
margin-top: -4px; |
margin-top: -4px; |
||
display: block !important; |
display: block !important; |
||
| ⚫ | |||
} |
} |
||
/* --- F. THE SEARCH INPUT (Overlaid |
/* --- F. THE SEARCH INPUT (Overlaid) --- */ |
||
/* 1. Hide initially */ |
/* 1. Hide initially */ |
||
| Line 265: | Line 283: | ||
display: block !important; |
display: block !important; |
||
position: fixed !important; |
position: fixed !important; |
||
top: |
top: 10px !important; /* Aligned with buttons */ |
||
height: |
height: 40px !important; /* Aligned with buttons */ |
||
z-index: 1001 !important; /* |
z-index: 1001 !important; /* Under the Search Button */ |
||
left: 10px !important; /* |
left: 10px !important; /* Start at Search Button */ |
||
right: 10px !important; /* |
right: 10px !important; /* End at screen edge */ |
||
| ⚫ | |||
padding: 0 !important; margin: 0 !important; |
padding: 0 !important; margin: 0 !important; |
||
| Line 280: | Line 297: | ||
body.mw-mf-search-mode .minerva-header .search-box input { |
body.mw-mf-search-mode .minerva-header .search-box input { |
||
width: 100% !important; |
width: 100% !important; |
||
height: |
height: 40px !important; |
||
border-radius: 8px !important; |
border-radius: 8px !important; |
||
/* Same transparency as buttons */ |
|||
background-color: rgba(0, 0, 0, 0.4) !important; |
|||
| ⚫ | |||
color: #fff !important; |
color: #fff !important; |
||
-webkit-text-fill-color: #fff !important; |
-webkit-text-fill-color: #fff !important; |
||
font-size: 16px !important; |
font-size: 16px !important; |
||
/* |
/* Text Padding: 40px (Button) + 10px (Gap) */ |
||
padding-left: |
padding-left: 50px !important; |
||
padding-right: 50px !important; |
padding-right: 50px !important; |
||
} |
} |
||
/* 4. Hide Inner Icon ( |
/* 4. Hide Inner Icon (We use the button as the icon) */ |
||
.minerva-header .search-box .search-box-icon-overlay { |
.minerva-header .search-box .search-box-icon-overlay { |
||
display: none !important; |
display: none !important; |
||
| Line 304: | Line 322: | ||
} |
} |
||
/* 6. |
/* 6. Cancel "X" Button positioning */ |
||
.search-box .search-box-cancel { |
.search-box .search-box-cancel { |
||
display: block !important; |
display: block !important; |
||
| Line 310: | Line 328: | ||
top: 0 !important; |
top: 0 !important; |
||
right: 0 !important; |
right: 0 !important; |
||
width: |
width: 40px !important; |
||
height: |
height: 40px !important; |
||
line-height: |
line-height: 40px !important; |
||
text-align: center !important; |
text-align: center !important; |
||
color: #fff !important; |
color: #fff !important; |
||
Revision as of 14:24, 6 December 2025
/* All CSS here will be loaded for users of the mobile site */
/* Standard <youtube> (no lazy-load) */
.mw-parser-output iframe[data-extension="youtube"] {
width: 100% !important;
height: auto !important;
aspect-ratio: 16 / 9;
display: block;
}
/* Lazy-load wrapper + its thumbnail image */
.mw-parser-output .ext-YouTube-video {
width: 100% !important; /* override inline width="560px" etc. */
height: auto !important; /* override inline height */
}
.mw-parser-output .ext-YouTube-video img {
width: 100% !important; /* scale preview to screen */
height: auto !important;
aspect-ratio: 16 / 9;
display: block;
}
/* Optional: cap on very large screens (adjust 720px to taste) */
@media (min-width: 992px) {
.mw-parser-output iframe[data-extension="youtube"],
.mw-parser-output .ext-YouTube-video {
max-width: 720px;
margin: 0 auto;
}
}
/* 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;
}
/* ======================================================= */
/* 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. TOP FLOATING SQUARES (40px | High Transparency) */
/* ======================================================= */
/* --- A. HEADER RESET (Invisible Container) --- */
.header-container.header-chrome {
position: fixed !important;
top: 0 !important; left: 0 !important; right: 0 !important;
height: 60px !important;
z-index: 1000 !important;
background: transparent !important;
border: none !important;
box-shadow: none !important;
pointer-events: none !important;
transform: none !important;
transition: none !important;
overflow: visible !important;
}
/* Push content down */
body.skin-minerva { padding-top: 60px !important; }
.mw-body { margin-top: 10px !important; }
/* Hide default elements */
.header-container .navigation-drawer { display: none !important; }
/* --- B. COMMON SQUARE STYLE (0.05 Transparency - No Blur) --- */
.branding-box,
#searchIcon,
#cps-open-toc,
body.mw-mf-search-mode .minerva-header .search-box input {
/* 5% Black Background (Twice as transparent as 0.1) */
background-color: rgba(0, 0, 0, 0.05) !important;
border-radius: 8px !important;
pointer-events: auto !important;
border: none !important;
box-shadow: none !important;
/* Removed Blur as requested */
backdrop-filter: none !important;
}
/* --- C. BUTTON 1: SEARCH TRIGGER (TOP LEFT) --- */
#searchIcon {
position: fixed !important;
top: 10px !important;
left: 10px !important;
right: auto !important;
/* Size: 40px */
width: 40px !important; height: 40px !important;
z-index: 1003 !important; /* Highest Z-Index (Above Bar) */
display: flex !important; align-items: center; justify-content: center;
margin: 0 !important; padding: 0 !important;
}
/* Search Icon Size */
#searchIcon .minerva-icon {
font-size: 24px !important; /* Matches Hamburger */
color: #fff !important;
fill: #fff !important;
opacity: 1;
filter: brightness(0) invert(1);
}
/* --- D. BUTTON 2: TOC (TOP RIGHT-CENTER) --- */
#cps-open-toc {
display: flex !important;
position: fixed !important;
top: 10px !important;
/* Position: Leave space for the "X" on the right */
right: 60px !important;
left: auto !important; bottom: auto !important;
/* Size: 40px */
width: 40px !important; height: 40px !important;
z-index: 1002 !important;
color: #fff !important;
align-items: center; justify-content: center;
}
/* Hamburger Icon Size (Increased ~25%) */
#cps-open-toc .icon {
font-size: 24px !important;
}
/* --- E. BUTTON 3: HOME (LEFT OF TOC) --- */
.branding-box, .branding-box a {
position: fixed !important;
top: 10px !important;
/* Position: 60px (TOC) + 40px (Width) + 10px (Gap) */
right: 110px !important;
left: auto !important;
/* Size: 40px */
width: 40px !important; height: 40px !important;
z-index: 1002 !important;
}
/* Centering the Home Icon */
.branding-box a {
display: flex !important;
align-items: center; justify-content: center;
width: 100% !important; height: 100% !important;
padding: 0 !important; margin: 0 !important;
font-size: 0 !important; color: transparent !important;
}
.branding-box a::before {
content: "⌂";
font-size: 24px !important; /* Matches others */
color: #fff !important;
margin-top: -4px;
display: block !important;
}
/* --- F. THE SEARCH INPUT (Overlaid) --- */
/* 1. Hide initially */
body:not(.mw-mf-search-mode) .minerva-header .search-box {
display: none !important;
}
/* 2. Position Wrapper */
body.mw-mf-search-mode .minerva-header .search-box {
display: block !important;
position: fixed !important;
top: 10px !important; /* Aligned with buttons */
height: 40px !important; /* Aligned with buttons */
z-index: 1001 !important; /* Under the Search Button */
left: 10px !important; /* Start at Search Button */
right: 10px !important; /* End at screen edge */
padding: 0 !important; margin: 0 !important;
background: transparent !important;
}
/* 3. Style Input Pill */
body.mw-mf-search-mode .minerva-header .search-box input {
width: 100% !important;
height: 40px !important;
border-radius: 8px !important;
/* Same transparency as buttons */
background-color: rgba(0, 0, 0, 0.05) !important;
color: #fff !important;
-webkit-text-fill-color: #fff !important;
font-size: 16px !important;
/* Text Padding: 40px (Button) + 10px (Gap) */
padding-left: 50px !important;
padding-right: 50px !important;
}
/* 4. Hide Inner Icon (We use the button as the icon) */
.minerva-header .search-box .search-box-icon-overlay {
display: none !important;
}
/* 5. Placeholder */
body.mw-mf-search-mode .minerva-header .search-box input::placeholder {
color: rgba(255, 255, 255, 0.7) !important;
-webkit-text-fill-color: rgba(255, 255, 255, 0.7) !important;
}
/* 6. Cancel "X" Button positioning */
.search-box .search-box-cancel {
display: block !important;
position: absolute !important;
top: 0 !important;
right: 0 !important;
width: 40px !important;
height: 40px !important;
line-height: 40px !important;
text-align: center !important;
color: #fff !important;
z-index: 1004 !important;
}