MediaWiki:Common.css: Difference between revisions
MediaWiki interface page
More actions
No edit summary |
No edit summary |
||
| Line 69: | Line 69: | ||
/* ============================================================ | /* ============================================================ | ||
SpiritVale: | SpiritVale Infoboxes (Skills + Passives) | ||
- Shared styling for both infobox types | |||
- Passives: fixed desktop width, centered contents | |||
- Skills: fixed desktop max width + list wrapper panel | |||
- Skills top band: NESTED TABLE version ONLY | |||
(GameSkills outputs .sv-topband-cell > .sv-topband-table > .sv-type-table) | |||
========================================================== */ | |||
/* ------------------------------------------------------------ | |||
Global size knobs (adjust here, everything updates) | |||
------------------------------------------------------------ */ | |||
:root { | |||
--sv-passive-width: 540px; | |||
--sv-skill-width: 660px; | |||
--sv-infobox-max: 620px; /* generic fallback if needed */ | |||
} | |||
/* ============================================================ | |||
1) Shared base: both Skills + Passives | |||
========================================================== */ | ========================================================== */ | ||
| Line 78: | Line 96: | ||
border-spacing: 0; | border-spacing: 0; | ||
width: 100%; | width: 100%; | ||
max-width: | max-width: var(--sv-infobox-max); | ||
margin: 1.5em auto; | margin: 1.5em auto; | ||
| Line 91: | Line 109: | ||
} | } | ||
/* | /* HERO row (icon+name left, description right) */ | ||
table.spiritvale-skill-infobox > tbody > tr.spiritvale-infobox-main > th, | table.spiritvale-skill-infobox > tbody > tr.spiritvale-infobox-main > th, | ||
table.spiritvale-skill-infobox > tbody > tr.spiritvale-infobox-main > td, | table.spiritvale-skill-infobox > tbody > tr.spiritvale-infobox-main > td, | ||
| Line 103: | Line 121: | ||
} | } | ||
/* | /* Icon spacing in hero row */ | ||
table.spiritvale-skill-infobox > tbody > tr:first-child > th .image, | table.spiritvale-skill-infobox > tbody > tr:first-child > th .image, | ||
table.spiritvale-passive-infobox > tbody > tr:first-child > th .image { | table.spiritvale-passive-infobox > tbody > tr:first-child > th .image { | ||
| Line 110: | Line 128: | ||
} | } | ||
/* | /* Row separators (direct children only) */ | ||
table.spiritvale-skill-infobox > tbody > tr, | table.spiritvale-skill-infobox > tbody > tr, | ||
table.spiritvale-passive-infobox > tbody > tr { | table.spiritvale-passive-infobox > tbody > tr { | ||
border-bottom: 1px solid rgba(148, 163, 184, 0.4); | border-bottom: 1px solid rgba(148, 163, 184, 0.4); | ||
} | } | ||
table.spiritvale-skill-infobox > tbody > tr:last-child, | table.spiritvale-skill-infobox > tbody > tr:last-child, | ||
table.spiritvale-passive-infobox > tbody > tr:last-child { | table.spiritvale-passive-infobox > tbody > tr:last-child { | ||
| Line 121: | Line 138: | ||
} | } | ||
/* | /* Label cells (direct children only; avoids styling nested top-band tables) */ | ||
table.spiritvale-skill-infobox > tbody > tr:not(.spiritvale-infobox-main) > th:not(.spiritvale-infobox-section-header), | table.spiritvale-skill-infobox > tbody > tr:not(.spiritvale-infobox-main) > th:not(.spiritvale-infobox-section-header), | ||
table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > th:not(.spiritvale-infobox-section-header) { | table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > th:not(.spiritvale-infobox-section-header) { | ||
| Line 132: | Line 148: | ||
} | } | ||
/* | /* Value cells (direct children only) */ | ||
table.spiritvale-skill-infobox > tbody > tr > td, | table.spiritvale-skill-infobox > tbody > tr > td, | ||
table.spiritvale-passive-infobox > tbody > tr > td { | table.spiritvale-passive-infobox > tbody > tr > td { | ||
| Line 139: | Line 155: | ||
} | } | ||
/* Zebra striping | /* Zebra striping (direct children only) */ | ||
table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > td, | table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > td, | ||
table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > th:not(.spiritvale-infobox-section-header), | table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > th:not(.spiritvale-infobox-section-header), | ||
| Line 147: | Line 163: | ||
} | } | ||
/* Section headers | /* Section headers (Requirements / Mechanics / etc.) */ | ||
.spiritvale-infobox-section-header { | .spiritvale-infobox-section-header { | ||
background: linear-gradient(135deg, #5a4e7c, #372b54); | background: linear-gradient(135deg, #5a4e7c, #372b54); | ||
| Line 158: | Line 174: | ||
} | } | ||
/* | /* Hero content helpers */ | ||
.spiritvale-infobox-main-left-inner { | .spiritvale-infobox-main-left-inner { | ||
display: flex; | display: flex; | ||
| Line 172: | Line 188: | ||
} | } | ||
.spiritvale-infobox-main-right-inner { | .spiritvale-infobox-main-right-inner { | ||
display: flex; | display: flex; | ||
| Line 188: | Line 203: | ||
/* ============================================================ | /* ============================================================ | ||
2) Passives (stable, consistent tooltip layout) | |||
========================================================== */ | ========================================================== */ | ||
table.spiritvale-passive-infobox { | table.spiritvale-passive-infobox { | ||
width: var(--sv-passive-width); | width: var(--sv-passive-width); | ||
| Line 205: | Line 213: | ||
} | } | ||
/* | /* Hero column balance */ | ||
table.spiritvale-passive-infobox > tbody > tr.spiritvale-infobox-main > th { | table.spiritvale-passive-infobox > tbody > tr.spiritvale-infobox-main > th { | ||
width: 42%; | width: 42%; | ||
| Line 214: | Line 222: | ||
} | } | ||
/* Center + wrap | /* Center + wrap all non-hero rows */ | ||
table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > th, | table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > th, | ||
table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > td { | table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > td { | ||
| Line 224: | Line 232: | ||
} | } | ||
/* | /* Let passive labels wrap */ | ||
table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) | table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) | ||
> th:not(.spiritvale-infobox-section-header) { | > th:not(.spiritvale-infobox-section-header) { | ||
| Line 230: | Line 238: | ||
} | } | ||
/* | /* Passive section headers centered */ | ||
table.spiritvale-passive-infobox .spiritvale-infobox-section-header { | table.spiritvale-passive-infobox .spiritvale-infobox-section-header { | ||
text-align: center; | text-align: center; | ||
} | } | ||
/* | /* Passive description never forces odd layout */ | ||
table.spiritvale-passive-infobox .spiritvale-infobox-description { | table.spiritvale-passive-infobox .spiritvale-infobox-description { | ||
max-width: 100%; | max-width: 100%; | ||
| Line 242: | Line 250: | ||
} | } | ||
/* Passive list layout */ | /* Passive list layout (stacked, centered) */ | ||
.spiritvale-passive-list { | .spiritvale-passive-list { | ||
display: flex; | display: flex; | ||
| Line 250: | Line 258: | ||
} | } | ||
/* Citizen/ | /* Remove Citizen wrapper borders/spacing around passive tables in lists */ | ||
.spiritvale-passive-list .mw-table-wrapper, | .spiritvale-passive-list .mw-table-wrapper, | ||
.spiritvale-passive-list .table-overflow, | .spiritvale-passive-list .table-overflow, | ||
| Line 262: | Line 270: | ||
} | } | ||
/* Mobile / portrait | /* Mobile/portrait: keep passive hero row side-by-side */ | ||
@media (max-width: 768px) { | @media (max-width: 768px) { | ||
body.skin-citizen table.spiritvale-passive-infobox { | body.skin-citizen table.spiritvale-passive-infobox { | ||
| Line 315: | Line 323: | ||
/* ============================================================ | /* ============================================================ | ||
3) Skills | |||
- | - Single skill: fixed desktop max width | ||
- List | - List mode: ONE wrapper panel with dividers | ||
- Top band | - Top band: nested-table version ONLY | ||
========================================================== */ | ========================================================== */ | ||
/* | /* Single-skill width */ | ||
table.spiritvale-skill-infobox { | table.spiritvale-skill-infobox { | ||
width: 100%; | width: 100%; | ||
| Line 332: | Line 337: | ||
} | } | ||
/* | /* List wrapper: flush, “pop” border, no background */ | ||
.sv-skill-collection { | .sv-skill-collection { | ||
width: 100%; | width: 100%; | ||
max-width: | max-width: var(--sv-skill-width); /* keeps wrapper aligned to skill width */ | ||
margin: | margin: 0 auto !important; /* remove extra spacing around wrapper */ | ||
padding: 0 !important; | padding: 0 !important; | ||
border: 2px solid #372b54; | border: 2px solid #372b54; | ||
border-radius: 10px; | border-radius: 10px; | ||
box-shadow: 0 2px 6px rgba(0,0,0,0.25); | box-shadow: 0 2px 6px rgba(0,0,0,0.25); | ||
background: transparent !important; | |||
overflow: hidden; | overflow: hidden; | ||
display: block !important; | display: block !important; | ||
} | } | ||
/* Neutralize Citizen | /* Neutralize Citizen wrappers inside the skill collection */ | ||
.sv-skill-collection .mw-table-wrapper, | .sv-skill-collection .mw-table-wrapper, | ||
.sv-skill-collection .table-overflow, | .sv-skill-collection .table-overflow, | ||
| Line 368: | Line 365: | ||
} | } | ||
/* | /* In list mode, each skill becomes a “row” inside the wrapper */ | ||
.sv-skill-collection table.spiritvale-skill-infobox { | .sv-skill-collection table.spiritvale-skill-infobox { | ||
width: 100%; | width: 100%; | ||
| Line 379: | Line 376: | ||
} | } | ||
/* Divider between skills | /* Divider between skills */ | ||
.sv-skill-collection > * + * { | .sv-skill-collection > * + * { | ||
border-top: 1px solid rgba(148, 163, 184, 0.25); | border-top: 1px solid rgba(148, 163, 184, 0.25); | ||
} | } | ||
/* | /* ------------------------- | ||
Skill top band ( | Skill top band (nested-table) | ||
------------------------- */ | |||
table.spiritvale-skill-infobox .sv-topband-cell { | table.spiritvale-skill-infobox .sv-topband-cell { | ||
| Line 394: | Line 391: | ||
rgba(90, 78, 124, 0.55), | rgba(90, 78, 124, 0.55), | ||
rgba(55, 43, 84, 0.55) | rgba(55, 43, 84, 0.55) | ||
) !important; | ) !important; | ||
} | } | ||
/* | /* Inner 2-column table must fully fill the cell */ | ||
table.spiritvale-skill-infobox .sv- | table.spiritvale-skill-infobox .sv-topband-table { | ||
width: 100% !important; | |||
max-width: 100% !important; | |||
margin: 0 !important; | |||
border: 0 !important; | |||
border-collapse: collapse !important; | |||
border-spacing: 0 !important; | |||
table-layout: fixed; | |||
background: transparent !important; | |||
} | } | ||
/* | /* Two halves of the top band */ | ||
table.spiritvale-skill-infobox .sv-topband- | table.spiritvale-skill-infobox .sv-topband-table > tbody > tr > td { | ||
table | width: 50%; | ||
padding: 0 !important; /* padding goes inside the blocks below */ | |||
vertical-align: middle; | |||
} | } | ||
table.spiritvale-skill-infobox .sv-topband- | table.spiritvale-skill-infobox .sv-topband-table > tbody > tr > td:first-child { | ||
border-right: 1px solid rgba(148, 163, 184, 0.25); | border-right: 1px solid rgba(148, 163, 184, 0.25); | ||
} | } | ||
/* Level | /* Left: Level Select block fills the entire half */ | ||
table.spiritvale-skill-infobox .sv-level-ui { | table.spiritvale-skill-infobox .sv-level-ui { | ||
width: 100%; | width: 100%; | ||
margin: 0 !important; | |||
padding: 0.75em 0.9em; | |||
display: flex; | display: flex; | ||
flex-direction: column; | flex-direction: column; | ||
| Line 427: | Line 429: | ||
} | } | ||
/* (Re-using the same title/label classes is fine) */ | |||
table.spiritvale-skill-infobox .sv-level-title { | table.spiritvale-skill-infobox .sv-level-title { | ||
font-weight: 700; | font-weight: 700; | ||
| Line 441: | Line 444: | ||
table.spiritvale-skill-infobox .sv-level-slider input[type="range"] { | table.spiritvale-skill-infobox .sv-level-slider input[type="range"] { | ||
width: 100%; | width: 100%; | ||
box-sizing: border-box; | |||
} | } | ||
/* Type | /* Right: Type table fills the entire half */ | ||
table.spiritvale-skill-infobox .sv-type- | table.spiritvale-skill-infobox .sv-type-table { | ||
width: 100%; | width: 100% !important; | ||
margin: 0 !important; | |||
padding: 0.75em 0.9em; | |||
border: 0 !important; | |||
border-collapse: collapse !important; | |||
background: transparent !important; | |||
} | } | ||
table.spiritvale-skill-infobox .sv-type- | table.spiritvale-skill-infobox .sv-type-table th, | ||
table.spiritvale-skill-infobox .sv-type-table td { | |||
background: transparent !important; | |||
padding: 0.2em 0; | |||
align | text-align: left; | ||
vertical-align: top; | |||
} | } | ||
table.spiritvale-skill-infobox .sv-type- | table.spiritvale-skill-infobox .sv-type-table th { | ||
font-weight: 700; | font-weight: 700; | ||
white-space: nowrap; | white-space: nowrap; | ||
padding-right: 0.9em; | |||
} | } | ||
/* Mobile: stack Level + Type */ | /* Mobile: stack Level + Type */ | ||
@media (max-width: 560px) { | @media (max-width: 560px) { | ||
table.spiritvale-skill-infobox .sv- | table.spiritvale-skill-infobox .sv-topband-table > tbody > tr > td { | ||
display: block; | |||
width: 100%; | |||
} | } | ||
table.spiritvale-skill-infobox .sv-topband- | table.spiritvale-skill-infobox .sv-topband-table > tbody > tr > td:first-child { | ||
border-right: none; | border-right: none; | ||
border-bottom: 1px solid rgba(148, 163, 184, 0.25); | border-bottom: 1px solid rgba(148, 163, 184, 0.25); | ||
} | } | ||
} | } | ||