MediaWiki:Common.css
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (โ-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (โ-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/*************************************๐ฎ**************************************
*
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
COMMON.CSS (vA0.1)
โฆ M*n* B**** โฆ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
*
*******************************************************************************/
/*
*This page contains the entire stylesheet for the MB Wiki.
*We urge you "not to edit" this page "directly".
*Some of the code inherited from coralisland.wiki.
*Any functional issue please report to our wiki-team at the official discord channel
*Imports will be starting below this very line;
*/
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600&display=swap');
/* ============================================
ALL @IMPORTS MUST BE AT THE VERY TOP
============================================ */
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Colors.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Module:Documentation.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Documentation.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Infobox.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Tables.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:MessageBox.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:CustomTabs.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Navbox.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Icons.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Dialogue.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Cards.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Tabbers.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Mobile.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Recipe.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:Modal.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:AceEditor.css&action=raw&ctype=text/css");
@import url("https://mbwiki.stairwaygames.work/w/index.php?title=MediaWiki:CodeMirror.css&action=raw&ctype=text/css");
/* ============================================
TOKEN ROOT ARCHITECTURE
============================================ */
/* โฆ THEME MANA (LIGHT) - DEFAULT โฆ */
:root {
/* 1. Core Color Palette */
--color-primary: #88eee0;
--color-secondary: #d9ffe9;
--color-accent: #87b4b7;
/* 2. Semantic Backgrounds */
--theme-body-bg: var(--color-secondary);
--theme-card-bg: rgba(255, 255, 255, 0.85);
--theme-card-bg-hover: #ffffff;
/* 3. Semantic Text Colors */
--theme-text-primary: #1a2b3c;
--theme-text-muted: #4a5b6c;
--theme-heading-color: #0d1b2a;
/* 4. Borders & Interactive Elements */
--theme-border-color: var(--color-accent);
--theme-border-color-rgb: 135, 180, 183;
--theme-link-color: #006b75;
--theme-link-hover: #004a52;
/* 5. Structures */
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;
--shadow-soft: 0 4px 6px rgba(0, 0, 0, 0.05);
/* Main Page Layout Layout */
--main-page-layout--desktop: 'banner banner banner' 'about about updates' 'starts starts starts' 'items items items' 'characters characters characters' 'enemies enemies enemies' 'area area area';
--main-page-layout--tablet: 'banner banner' 'about updates' 'starts starts' 'items items' 'characters characters' 'enemies enemies' 'area area';
--main-page-layout--mobile: 'banner' 'about' 'updates' 'starts' 'items' 'characters' 'enemies' 'area';
}
/* โฆ THEME BREAK (DARK) - TOGGLE โฆ */
html.theme-break {
/* 1. Core Color Palette */
--color-primary: #12435e;
--color-secondary: #0e344d;
--color-accent: #7ff6e3;
/* 2. Semantic Backgrounds */
--theme-body-bg: var(--color-secondary);
--theme-card-bg: var(--color-primary);
--theme-card-bg-hover: #164f6f;
/* 3. Semantic Text Colors */
--theme-text-primary: #eaeef2;
--theme-text-muted: #87b4b7;
--theme-heading-color: #ffffff;
/* 4. Borders & Interactive Elements */
--theme-border-color: var(--color-accent);
--theme-border-color-rgb: 127, 246, 227;
--theme-link-color: var(--color-accent);
--theme-link-hover: #aafff0;
/* 5. Structures */
--shadow-soft: 0 4px 6px rgba(0, 0, 0, 0.3);
}
/* ============================================
BASE LAYOUT & STRUCTURAL RESET
============================================ */
/* 1. Universal Box Sizing */
*, *::before, *::after {
box-sizing: border-box;
}
/* 2. MediaWiki Body & Container Reset */
body {
background-color: var(--theme-body-bg) !important;
color: var(--theme-text-primary);
font-family: 'Fredoka', sans-serif;
transition: background-color 0.3s ease, color 0.3s ease;
}
/* Stripping native MediaWiki container styles */
.mw-body, #content {
background: transparent !important;
border: none !important;
color: var(--theme-text-primary);
}
/* 3. Typography Normalization */
h1, h2, h3, h4, h5, h6 {
color: var(--theme-heading-color);
margin-top: 0;
font-weight: 600;
}
/* Remove MediaWiki's harsh default underline on H1/H2 */
.mw-body h1, .mw-body h2 {
border-bottom: 2px solid var(--theme-border-color);
padding-bottom: 0.25em;
}
/* 4. Hyperlink Standardization */
a {
color: var(--theme-link-color);
text-decoration: none;
transition: color 0.2s ease;
}
a:hover, a:focus {
color: var(--theme-link-hover);
text-decoration: underline;
}
a:visited {
color: var(--theme-link-color);
}
/* 5. Responsive Media & Selection */
img, video {
max-width: 100%;
height: auto;
}
::selection {
background: var(--color-primary);
color: #000;
}
::-moz-selection {
background: var(--color-primary);
color: #000;
}
/* ============================================
BASE LAYOUT (MAPPED TO TOKENS)
============================================ */
html, body {
background-color: var(--theme-body-bg) !important;
background-image: none !important;
color: var(--theme-text-primary);
transition: background-color 0.3s ease, color 0.3s ease;
}
.mw-body {
margin-top: -1px;
border: 1px solid var(--theme-border-color);
border-radius: var(--radius-sm);
background-color: transparent;
}
/* Hide default elements */
.mobileHide, .mobile-only, .no-desktop {
display: none !important;
}
/* Fix for hidden H1 on main page */
body.page-Main_Page.action-view h1.firstHeading,
body.page-Main_Page.action-submit h1.firstHeading {
display: none;
}
/* ============================================
MAIN PAGE GRID LAYOUT
============================================ */
#mp-container {
display: grid;
gap: 2rem;
padding: 1rem;
max-width: 1400px;
margin: 0 auto;
}
/* Desktop Layout */
@media (min-width: 1024px) {
#mp-container {
grid-template-areas: var(--main-page-layout--desktop);
grid-template-columns: repeat(3, 1fr);
}
}
/* Tablet Layout */
@media (min-width: 768px) and (max-width: 1023px) {
#mp-container {
grid-template-areas: var(--main-page-layout--tablet);
grid-template-columns: repeat(2, 1fr);
}
}
/* Mobile Layout */
@media (max-width: 767px) {
#mp-container {
grid-template-areas: var(--main-page-layout--mobile);
grid-template-columns: 1fr;
gap: 1rem;
}
}
/* MP Box styling */
.mp-box {
animation: fadeInUp 0.5s ease forwards;
opacity: 0;
}
/* Staggered animations */
.mp-box:nth-child(1) { animation-delay: 0.05s; }
.mp-box:nth-child(2) { animation-delay: 0.1s; }
.mp-box:nth-child(3) { animation-delay: 0.15s; }
.mp-box:nth-child(4) { animation-delay: 0.2s; }
.mp-box:nth-child(5) { animation-delay: 0.25s; }
.mp-box:nth-child(6) { animation-delay: 0.3s; }
.mp-box:nth-child(7) { animation-delay: 0.35s; }
.mp-box:nth-child(8) { animation-delay: 0.4s; }
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* ============================================
MAIN PAGE CARDS & GRIDS
============================================ */
/* Main Grid Wrapper */
.main-page-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 1rem;
}
/* 1. Game Intro Cards */
.game-intro-card {
background-color: var(--theme-card-bg);
border-radius: var(--radius-lg); /* From Step 1 */
padding: 1.25rem;
border: 1px solid var(--theme-border-color);
box-shadow: var(--shadow-soft);
display: flex;
flex-direction: column;
height: 100%;
transition: background-color 0.3s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.3s ease;
}
.game-intro-card:hover {
background-color: var(--theme-card-bg-hover);
transform: translateY(-4px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
border-color: var(--color-primary);
}
/* 2. Header Elements */
.game-header {
margin-bottom: 1rem;
position: relative;
}
.mana-text {
font-family: 'Fredoka', sans-serif;
font-size: 1.5rem;
font-weight: 600;
margin: 0;
/* Gradient */
background: linear-gradient(135deg, var(--color-accent), var(--color-primary));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
/* Flexbox aligning the icon perfectly */
display: flex;
align-items: center;
gap: 8px;
letter-spacing: 0.5px;
}
.mana-line {
height: 3px;
background: linear-gradient(90deg, var(--color-accent), transparent);
margin-top: 0.5rem;
width: 100%;
border-radius: 2px;
}
/* 3. Card Content & Headings */
.game-content {
color: var(--theme-text-primary);
line-height: 1.6;
flex-grow: 1;
}
.heading-char {
font-size: 1.1rem;
font-weight: 600;
margin: 0.5rem 0;
padding-bottom: 0.25rem;
border-bottom: 2px solid var(--theme-border-color);
display: inline-block;
transition: border-color 0.3s ease;
}
.heading-char a {
color: var(--theme-heading-color);
text-decoration: none;
transition: color 0.2s ease;
}
.heading-char a:hover {
color: var(--color-accent);
}
/* 4. Auto Grid Lists (The Links) */
.auto-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
gap: 0.5rem;
list-style: none;
padding: 0;
margin: 0.75rem 0 0 0;
}
.auto-grid li {
padding: 0;
}
/* Elevated List Link Styling */
.auto-grid li a {
display: block;
padding: 0.35rem 0.5rem;
color: var(--theme-link-color);
text-decoration: none;
border-radius: var(--radius-sm);
background-color: rgba(127, 127, 127, 0.05);
border: 1px solid transparent;
transition: all 0.2s ease;
}
.auto-grid li a:hover {
color: var(--theme-link-hover);
background-color: var(--theme-body-bg);
border-color: var(--theme-border-color);
transform: translateX(3px);
}
/* ============================================
BANNER, WIKI COMPONENTS & SCROLLBAR
============================================ */
/* 1. BANNER SECTION */
#mp-box-banner .mp-body {
background: linear-gradient(135deg, var(--color-secondary), var(--theme-body-bg));
border-radius: var(--radius-lg);
padding: 2rem;
text-align: center;
border: 1px solid var(--theme-border-color);
box-shadow: var(--shadow-soft);
transition: background 0.3s ease, border-color 0.3s ease;
}
/* Social links */
.social {
display: flex;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
margin-top: 2rem;
}
.iconname {
display: flex;
align-items: center;
gap: 0.5rem;
background: var(--theme-card-bg);
border: 1px solid var(--theme-border-color);
padding: 0.5rem 1rem;
border-radius: var(--radius-md);
transition: all 0.2s ease;
}
.iconname:hover {
background: var(--color-primary);
border-color: var(--color-accent);
transform: translateY(-2px);
}
.iconname a {
color: var(--theme-text-primary) !important;
text-decoration: none;
font-weight: 500;
}
/* 2. WIKI FIXES & IMPROVEMENTS */
.wikiEditor-ui-text > .ui-resizable {
width: 100% !important;
max-width: 100%;
}
ul { list-style: disc; }
h2 .mw-headline, h3 .mw-headline, h4 .mw-headline { font-weight: 500; }
.vector-body h3, .vector-body h4, .vector-body h5, .vector-body h6 { margin-bottom: 4px; }
/* Categories */
.catlinks {
border-color: var(--theme-border-color);
border-radius: var(--radius-md);
background-color: var(--theme-card-bg);
padding: 10px;
}
/* Code blocks */
code, pre {
background-color: var(--theme-card-bg);
color: var(--theme-text-primary);
border: 1px solid var(--theme-border-color);
border-radius: var(--radius-sm);
padding: 2px 6px;
font-family: Consolas, Eupheima UCAS, Monaco, Menlo, monospace;
}
code.code-block-table { display: table; line-height: 21px; padding: 8px; }
.code-block-table * { font: 14px Consolas, Eupheima UCAS, Monaco, Menlo, monospace; }
.code-block { display: inline-block; line-height: 21px; }
/* Table of Contents */
.toc {
padding: 12px 16px;
border-radius: var(--radius-md);
background-color: var(--theme-card-bg);
border: 1px solid var(--theme-border-color);
margin-top: 16px;
box-shadow: var(--shadow-soft);
}
.toctogglelabel { color: var(--theme-link-color); }
.tocnumber { color: var(--theme-text-muted); }
.vector-body .toc h2 { font-family: 'Fredoka', sans-serif; }
/* Hatnote */
.hatnote {
border-left: 4px solid var(--color-accent);
padding: 8px 12px;
border-radius: var(--radius-sm);
background-color: var(--theme-card-bg);
margin: 8px 0;
}
/* Variables styling */
span.variable { opacity: 0.65; }
span.variable::after { opacity: 0.65; content: ">"; }
span.variable::before { opacity: 0.65; content: "<"; }
/* Pull quotes */
.pull-quote { font-style: italic; margin: 0; padding: 0 30px 8px !important; }
.pull-quote::before {
color: var(--color-accent);
content: "โ";
display: block;
font-size: 96px;
font-style: normal;
line-height: 72px;
margin: 4px 0 -45px -5px;
}
.pull-quote__source::before { content: "โ "; margin-bottom: 8px; }
.pull-quote__text { margin-bottom: 4px; }
/* Gallery & Changelist */
.gallerytext { text-align: center; font-size: 100%; }
.changelist-header { display: flex; justify-content: space-between; align-items: center; font-size: 88%; margin: 0.3em 0; }
.changelist-content { overflow: auto; max-height: 384px; padding: 1em; box-sizing: border-box; border-radius: var(--radius-md); }
.changelist-border { border: 1px solid var(--theme-border-color); border-left: 6px solid var(--color-accent); }
/* Chat wrapper */
.chat-wrapper { display: flex; flex-direction: column; }
.chat-player, .chat-npc { display: flex; flex-direction: row; gap: 0.5em; }
.chat-player-speaker { white-space: nowrap; min-width: 70px; color: #43b581; font-weight: 600; }
.chat-npc-speaker { white-space: nowrap; min-width: 70px; color: #f04747; font-weight: 600; }
/* 3. RESPONSIVE IMPROVEMENTS */
@media (max-width: 768px) {
.game-intro-card { padding: 1rem; }
.mana-text { font-size: 1.25rem; }
.social { gap: 0.5rem; }
.iconname { padding: 0.35rem 0.75rem; font-size: 0.9rem; }
#mp-box-banner .mp-body { padding: 1rem; }
}
/* 4. CUSTOM SCROLLBAR */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track {
background: var(--theme-body-bg);
border-radius: 0px;
}
::-webkit-scrollbar-thumb {
background: var(--color-accent);
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover { background: var(--theme-link-hover); }
/* 5. UTILITY CLASSES */
.text-center { text-align: center; }
.mt-2 { margin-top: 0.5rem; }
.mb-2 { margin-bottom: 0.5rem; }
.p-2 { padding: 0.5rem; }
/* ============================================
WIKI COMPONENTS
============================================ */
/* 1. WIKITABLES */
table.wikitable {
background-color: var(--theme-card-bg);
color: var(--theme-text-primary);
border: 1px solid var(--theme-border-color);
border-collapse: collapse;
margin: 1em 0;
width: 100%; /* Encourages responsive behavior */
box-shadow: var(--shadow-soft);
}
table.wikitable > tr > th,
table.wikitable > tr > td,
table.wikitable > * > tr > th,
table.wikitable > * > tr > td {
border: 1px solid var(--theme-border-color);
padding: 0.5em 0.75em;
}
/* Table Headers */
table.wikitable > tr > th,
table.wikitable > * > tr > th {
background-color: var(--color-primary);
color: var(--theme-heading-color);
font-weight: 600;
text-align: center;
}
table.wikitable > tbody > tr:hover {
background-color: rgba(127, 127, 127, 0.05);
}
/* 2. INFOBOXES */
.infobox {
float: right;
clear: right;
margin: 0 0 1em 1em;
width: 300px;
background-color: var(--theme-card-bg);
border: 1px solid var(--theme-border-color);
border-radius: var(--radius-md);
padding: 10px;
box-shadow: var(--shadow-soft);
font-size: 0.9em;
color: var(--theme-text-primary);
transition: background-color 0.3s ease, border-color 0.3s ease;
}
/* Infobox Headers */
.infobox th {
background-color: var(--color-secondary);
color: var(--theme-heading-color);
text-align: center;
padding: 5px;
border-radius: var(--radius-sm);
}
.infobox td {
padding: 4px 5px;
border-bottom: 1px solid rgba(127, 127, 127, 0.1);
}
.infobox tr:last-child td {
border-bottom: none;
}
/* 3. NAVBOXES */
.navbox {
background-color: var(--theme-card-bg);
border: 1px solid var(--theme-border-color);
border-radius: var(--radius-md);
margin: 1.5em 0;
padding: 2px;
text-align: center;
box-shadow: var(--shadow-soft);
width: 100%;
clear: both;
}
.navbox th {
background-color: var(--color-primary);
color: var(--theme-heading-color);
border-radius: var(--radius-sm) var(--radius-sm) 0 0;
padding: 6px;
font-weight: 600;
}
/* Group Headers inside Navbox */
.navbox .navbox-group {
background-color: var(--color-secondary);
color: var(--theme-text-primary);
font-weight: 600;
padding: 4px 8px;
white-space: nowrap;
border-right: 2px solid var(--theme-body-bg);
}
.navbox .navbox-list {
text-align: left;
padding: 4px 8px;
}
/* Striping for Navbox lists */
.navbox .navbox-even {
background-color: rgba(127, 127, 127, 0.03);
}
/* ============================================
THEME TOGGLE BUTTON
============================================ */
.floating-theme-toggle {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 9999;
padding: 10px 16px;
background-color: var(--theme-card-bg);
color: var(--theme-heading-color);
border: 2px solid var(--theme-border-color);
border-radius: var(--radius-lg);
font-family: 'Fredoka', sans-serif;
font-size: 0.95rem;
font-weight: 600;
cursor: pointer;
box-shadow: var(--shadow-soft);
transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.2s ease;
backdrop-filter: blur(8px);
}
.floating-theme-toggle:hover {
background-color: var(--color-primary);
border-color: var(--color-accent);
transform: translateY(-4px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
color: #000;
}