MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
| Line 1: | Line 1: | ||
/*************************************🎮************************************** | /*************************************🎮************************************** | ||
* | |||
╔═══════════════════════════════════════════════════════════════════╗ | ╔═══════════════════════════════════════════════════════════════════╗ | ||
COMMON.CSS (vA0.1) | COMMON.CSS (vA0.1) | ||
✦ M*n* B**** ✦ | ✦ 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'); | @import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600&display=swap'); | ||
/* ============================================ | /* ============================================ | ||
ALL @IMPORTS MUST BE AT THE VERY TOP | 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: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:Module:Documentation.css&action=raw&ctype=text/css"); | ||
| Line 29: | Line 43: | ||
/* ============================================ | /* ============================================ | ||
TOKEN ROOT ARCHITECTURE | |||
============================================ */ | ============================================ */ | ||
/* ✦ THEME MANA (LIGHT) - DEFAULT ✦ */ | |||
:root { | :root { | ||
/* | /* 1. Core Color Palette */ | ||
-- | --color-primary: #88eee0; | ||
--theme- | --color-secondary: #d9ffe9; | ||
--theme-primary- | --color-accent: #87b4b7; | ||
--theme- | |||
/* 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 */ | |||
/* Backgrounds */ | --theme-text-primary: #eaeef2; | ||
--theme- | --theme-text-muted: #87b4b7; | ||
--theme-heading-color: #ffffff; | |||
--theme- | |||
/* 4. Borders & Interactive Elements */ | |||
--theme- | --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); | |||
--theme- | |||
--theme- | |||
--theme- | |||
/* Borders */ | |||
--theme-border-color: | |||
--theme-border-color- | |||
--theme- | |||
--theme- | |||
/* | |||
- | |||
} | } | ||
/* ============================================ | /* ============================================ | ||
BASE LAYOUT & STRUCTURAL RESET | |||
============================================ */ | ============================================ */ | ||
/* 1. Universal Box Sizing */ | |||
*, *::before, *::after { | |||
- | box-sizing: border-box; | ||
} | |||
--theme- | /* 2. MediaWiki Body & Container Reset */ | ||
--theme- | 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); | |||
} | |||
--theme- | /* 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; | ||
} | |||
--theme- | 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 | 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 { | .mw-body { | ||
margin-top: -1px; | margin-top: -1px; | ||
border: 1px solid var(--theme- | border: 1px solid var(--theme-border-color); | ||
border-radius: | border-radius: var(--radius-sm); | ||
background-color: transparent; | background-color: transparent; | ||
} | } | ||
| Line 252: | Line 214: | ||
} | } | ||
/* Desktop Layout */ | |||
@media (min-width: 1024px) { | @media (min-width: 1024px) { | ||
#mp-container { | #mp-container { | ||
| Line 259: | Line 222: | ||
} | } | ||
/* Tablet Layout */ | |||
@media (min-width: 768px) and (max-width: 1023px) { | @media (min-width: 768px) and (max-width: 1023px) { | ||
#mp-container { | #mp-container { | ||
| Line 266: | Line 230: | ||
} | } | ||
/* Mobile Layout */ | |||
@media (max-width: 767px) { | @media (max-width: 767px) { | ||
#mp-container { | #mp-container { | ||
| Line 274: | Line 239: | ||
} | } | ||
/* MP Box styling */ | |||
.mp-box { | .mp-box { | ||
animation: fadeInUp 0.5s ease forwards; | animation: fadeInUp 0.5s ease forwards; | ||
| Line 279: | Line 245: | ||
} | } | ||
/* Staggered animations */ | |||
.mp-box:nth-child(1) { animation-delay: 0.05s; } | .mp-box:nth-child(1) { animation-delay: 0.05s; } | ||
.mp-box:nth-child(2) { animation-delay: 0.1s; } | .mp-box:nth-child(2) { animation-delay: 0.1s; } | ||
| Line 289: | Line 256: | ||
@keyframes fadeInUp { | @keyframes fadeInUp { | ||
from { opacity: 0; transform: translateY(20px); } | from { | ||
to | 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 { | .game-intro-card { | ||
background: var(--theme- | background-color: var(--theme-card-bg); | ||
border-radius: | border-radius: var(--radius-lg); /* From Step 1 */ | ||
padding: 1.25rem; | padding: 1.25rem; | ||
border: 1px solid var(--theme-border-color); | border: 1px solid var(--theme-border-color); | ||
box-shadow: var(--shadow-soft); | |||
display: flex; | |||
flex-direction: column; | |||
height: 100%; | 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 { | .game-intro-card:hover { | ||
transform: translateY(- | background-color: var(--theme-card-bg-hover); | ||
box-shadow: var(-- | transform: translateY(-4px); | ||
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); | |||
border-color: var(--color-primary); | |||
} | } | ||
/* 2. Header Elements */ | |||
.game-header { | .game-header { | ||
margin-bottom: 1rem; | margin-bottom: 1rem; | ||
| Line 319: | Line 308: | ||
font-size: 1.5rem; | font-size: 1.5rem; | ||
font-weight: 600; | font-weight: 600; | ||
background: linear-gradient(135deg, var(--accent), var(-- | margin: 0; | ||
/* Gradient */ | |||
background: linear-gradient(135deg, var(--color-accent), var(--color-primary)); | |||
-webkit-background-clip: text; | -webkit-background-clip: text; | ||
background-clip: text; | background-clip: text; | ||
color: transparent; | color: transparent; | ||
display: | |||
/* Flexbox aligning the icon perfectly */ | |||
display: flex; | |||
align-items: center; | |||
gap: 8px; | |||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||
} | } | ||
.mana-line { | .mana-line { | ||
height: 3px; | height: 3px; | ||
background: linear-gradient(90deg, var(--accent), transparent); | background: linear-gradient(90deg, var(--color-accent), transparent); | ||
margin-top: 0.5rem; | margin-top: 0.5rem; | ||
width: 100%; | width: 100%; | ||
border-radius: 2px; | |||
} | } | ||
/* 3. Card Content & Headings */ | |||
.game-content { | .game-content { | ||
color: var(--theme- | color: var(--theme-text-primary); | ||
line-height: 1.6; | line-height: 1.6; | ||
flex-grow: 1; | |||
} | } | ||
.heading-char { | .heading-char { | ||
font-size: 1.1rem; | font-size: 1.1rem; | ||
font-weight: 600; | font-weight: 600; | ||
margin: 0.5rem 0; | |||
margin: | |||
padding-bottom: 0.25rem; | padding-bottom: 0.25rem; | ||
border-bottom: 2px solid var(-- | border-bottom: 2px solid var(--theme-border-color); | ||
display: inline-block; | display: inline-block; | ||
transition: border-color 0.3s ease; | |||
} | } | ||
.heading-char a { | .heading-char a { | ||
color: var(-- | color: var(--theme-heading-color); | ||
text-decoration: none; | text-decoration: none; | ||
transition: color 0.2s ease; | |||
} | } | ||
.heading-char a:hover { | .heading-char a:hover { | ||
color: var(--color-accent); | |||
} | } | ||
/* | /* 4. Auto Grid Lists (The Links) */ | ||
.auto-grid { | .auto-grid { | ||
display: grid; | display: grid; | ||
grid-template-columns: repeat(auto-fill, minmax( | grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); | ||
gap: 0.5rem; | gap: 0.5rem; | ||
list-style: none; | list-style: none; | ||
padding: 0; | padding: 0; | ||
margin: 0. | margin: 0.75rem 0 0 0; | ||
} | } | ||
.auto-grid li { | .auto-grid li { | ||
padding: | padding: 0; | ||
} | } | ||
/* Elevated List Link Styling */ | |||
.auto-grid li a { | .auto-grid li a { | ||
display: block; | |||
padding: 0.35rem 0.5rem; | |||
color: var(--theme-link-color); | color: var(--theme-link-color); | ||
text-decoration: none; | 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 { | .auto-grid li a:hover { | ||
color: var(-- | color: var(--theme-link-hover); | ||
background-color: var(--theme-body-bg); | |||
border-color: var(--theme-border-color); | |||
transform: translateX(3px); | |||
} | } | ||
/* ============================================ | /* ============================================ | ||
BANNER | BANNER, WIKI COMPONENTS & SCROLLBAR | ||
============================================ */ | ============================================ */ | ||
/* 1. BANNER SECTION */ | |||
#mp-box-banner .mp-body { | #mp-box-banner .mp-body { | ||
background: var(--theme- | background: linear-gradient(135deg, var(--color-secondary), var(--theme-body-bg)); | ||
border-radius: | border-radius: var(--radius-lg); | ||
padding: 2rem; | padding: 2rem; | ||
text-align: center; | 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; | |||
} | } | ||
| Line 419: | Line 418: | ||
align-items: center; | align-items: center; | ||
gap: 0.5rem; | gap: 0.5rem; | ||
background: var(--theme- | background: var(--theme-card-bg); | ||
border: 1px solid var(--theme-border-color); | |||
padding: 0.5rem 1rem; | padding: 0.5rem 1rem; | ||
border-radius: | border-radius: var(--radius-md); | ||
transition: all 0.2s ease; | transition: all 0.2s ease; | ||
} | } | ||
.iconname:hover { | .iconname:hover { | ||
background: | background: var(--color-primary); | ||
border-color: var(--color-accent); | |||
transform: translateY(-2px); | transform: translateY(-2px); | ||
} | } | ||
.iconname a { | .iconname a { | ||
color: var(--theme | color: var(--theme-text-primary) !important; | ||
text-decoration: none; | text-decoration: none; | ||
font-weight: 500; | font-weight: 500; | ||
} | } | ||
/* | /* 2. WIKI FIXES & IMPROVEMENTS */ | ||
.wikiEditor-ui-text > .ui-resizable { | .wikiEditor-ui-text > .ui-resizable { | ||
width: 100% !important; | width: 100% !important; | ||
| Line 444: | Line 443: | ||
} | } | ||
ul { | 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 { | .catlinks { | ||
border-color: var(--theme-border-color); | border-color: var(--theme-border-color); | ||
border-radius: | border-radius: var(--radius-md); | ||
background-color: var(-- | background-color: var(--theme-card-bg); | ||
padding: 10px; | |||
} | } | ||
/* Code blocks */ | |||
code, pre { | code, pre { | ||
background-color: var(--theme- | background-color: var(--theme-card-bg); | ||
color: var(--theme- | color: var(--theme-text-primary); | ||
border: 1px solid var(--theme-border-color); | border: 1px solid var(--theme-border-color); | ||
border-radius: | border-radius: var(--radius-sm); | ||
padding: | padding: 2px 6px; | ||
font-family: Consolas, Eupheima UCAS, Monaco, Menlo, monospace; | font-family: Consolas, Eupheima UCAS, Monaco, Menlo, monospace; | ||
} | } | ||
.code-block-table * { | 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 { | .toc { | ||
padding: | padding: 12px 16px; | ||
border-radius: | border-radius: var(--radius-md); | ||
background-color: var(--theme- | background-color: var(--theme-card-bg); | ||
border: 1px solid var(--theme-border-color); | border: 1px solid var(--theme-border-color); | ||
margin-top: 16px; | margin-top: 16px; | ||
box-shadow: var(--shadow-soft); | |||
} | } | ||
.toctogglelabel { | .toctogglelabel { color: var(--theme-link-color); } | ||
.tocnumber { color: var(--theme-text-muted); } | |||
} | .vector-body .toc h2 { font-family: 'Fredoka', sans-serif; } | ||
.tocnumber { | |||
} | |||
.vector-body .toc h2 { | |||
} | |||
/* Hatnote */ | |||
.hatnote { | .hatnote { | ||
border-left: 4px solid var(-- | border-left: 4px solid var(--color-accent); | ||
padding: | padding: 8px 12px; | ||
border-radius: | border-radius: var(--radius-sm); | ||
background-color: var(--theme-card-bg); | |||
margin: 8px 0; | margin: 8px 0; | ||
} | } | ||
/* Variables styling */ | |||
span.variable { opacity: 0.65; } | span.variable { opacity: 0.65; } | ||
span.variable::after | span.variable::after { opacity: 0.65; content: ">"; } | ||
span.variable::before { opacity: 0.65; content: "<"; } | span.variable::before { opacity: 0.65; content: "<"; } | ||
.pull-quote { | /* Pull quotes */ | ||
.pull-quote { font-style: italic; margin: 0; padding: 0 30px 8px !important; } | |||
} | |||
.pull-quote::before { | .pull-quote::before { | ||
color: var(--accent); | color: var(--color-accent); | ||
content: "“"; | content: "“"; | ||
display: block; | display: block; | ||
| Line 545: | Line 509: | ||
margin: 4px 0 -45px -5px; | 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 */ | ||
text- | @media (max-width: 768px) { | ||
font-size: | .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; } | |||
/* ============================================ | /* ============================================ | ||
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; | |||
: | } | ||
. | |||
Revision as of 03:19, 19 May 2026
/*************************************🎮**************************************
*
╔═══════════════════════════════════════════════════════════════════╗
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; }
/* ============================================
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;
}