Template:EDFM style/styles.css: Difference between revisions
Jump to navigation
Jump to search
EDFM initial deployment: seed initial page structure |
Give edfm-panel-review the same compact/centred width as edfm-panel-draft |
||
| (15 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
/* Shared styling for EDFM's editorial templates. | |||
.edfm-box { | |||
border-left: 4px solid | /* Shared styling for EDFM's editorial templates (Article status, Draft | ||
background: | warning, Prerequisites, Related articles, etc. -- see each template's | ||
padding: | own page for which classes it uses). Freely uses the --edfm-* custom | ||
margin: | properties defined in MediaWiki:Common.css -- see the note there under | ||
"6. Panels" for why these classes live only in this file and not | |||
duplicated in Common.css too. | |||
2026-08-07 SECOND PASS: panels keep the accent-rail + corner-cut | |||
language from the first pass (both are explicitly the "hierarchy | |||
without a full border around everything" technique this redesign asks | |||
for) but get noticeably more padding/breathing room; the status module | |||
is rebuilt with a coloured header band and stacked label/value metadata | |||
instead of a plain left-rail box with inline "Label: value" text; and a | |||
new .edfm-related component replaces the old plain notice-style | |||
"Related articles" bar with a small tile row. */ | |||
.edfm-box, | |||
.edfm-panel { | |||
border-left: 4px solid var( --edfm-cyan ); | |||
background: var( --edfm-surface-2 ); | |||
color: var( --edfm-text ); | |||
padding: 1.1em 1.3em; | |||
margin: 1.4em 0; | |||
box-sizing: border-box; | |||
width: 100%; | |||
clip-path: polygon( 0 0, calc( 100% - 10px ) 0, 100% 10px, 100% 100%, 0 100% ); | |||
} | } | ||
.edfm-panel-info { | |||
border-left-color: var( --edfm-cyan ); | |||
} | |||
.edfm-panel-warning, | |||
.edfm-box.edfm-warning { | .edfm-box.edfm-warning { | ||
border-left-color: | border-left-color: var( --edfm-orange ); | ||
background: | background: #201a12; | ||
} | } | ||
.edfm-panel-draft, | |||
.edfm-box.edfm-draft { | .edfm-box.edfm-draft { | ||
border-left-color: | border-left-color: var( --edfm-text-dim ); | ||
background: | background: var( --edfm-surface-1 ); | ||
} | |||
/* Draft/maintenance notices are intentionally compact and centred; article | |||
prose/nav/tables may stretch, but these banners should not become a | |||
full-width strip across the whole rail. */ | |||
.edfm-panel-review:not( .edfm-status ), | |||
.edfm-panel-draft:not( .edfm-status ), | |||
.edfm-box.edfm-draft:not( .edfm-status ) { | |||
max-width: 44rem !important; | |||
margin-left: auto !important; | |||
margin-right: auto !important; | |||
} | |||
.edfm-panel-reference { | |||
border-left-color: var( --edfm-blue ); | |||
} | } | ||
.edfm-box.edfm-disclaimer { | .edfm-box.edfm-disclaimer { | ||
border-left-color: | border-left-color: var( --edfm-orange ); | ||
font-size: 0. | font-size: 0.92em; | ||
} | } | ||
.edfm-box dl { | .edfm-box dl, | ||
.edfm-panel dl { | |||
margin: 0; | margin: 0; | ||
} | } | ||
.edfm-box dt { | .edfm-box dt, | ||
.edfm-panel dt { | |||
font-weight: bold; | font-weight: bold; | ||
float: left; | float: left; | ||
clear: left; | clear: left; | ||
margin-right: 0.5em; | margin-right: 0.5em; | ||
color: var( --edfm-text ); | |||
} | } | ||
.edfm-box dd { | .edfm-box dd, | ||
.edfm-panel dd { | |||
margin-left: 11em; | margin-left: 11em; | ||
} | } | ||
.edfm-inline-flag { | .edfm-inline-flag { | ||
font-style: italic; | font-style: italic; | ||
color: # | color: var( --edfm-cyan ); | ||
} | |||
/* --- Article metadata / status module (Template:Article status) -------- | |||
2026-08-08 second revision: a compact maintenance banner (RuneScape | |||
Wiki-style notice as the UX reference, not its markup/colours) rather | |||
than a small internal dashboard -- an icon, the bare status word (no | |||
mode/version appended to it), one standard sentence for that status, | |||
and a concise "Uncertain: ..." line when there's something worth | |||
flagging. The full editorial record (reviewer, mode, version, source | |||
quality, the complete uncertainty note, etc.) moves to the | |||
.edfm-status-expand collapsible below, not removed, just no longer | |||
competing with the article for attention. Semantic colouring always | |||
pairs with the visible text status/icon -- never colour alone, per the | |||
site's Verification Policy. Three colour tiers cover the seven actual | |||
status values (see Elite Dangerous Field Manual: Verification Policy): | |||
positive/confirmed (Verified, Partially verified) in cyan -- matching | |||
"cyan = verification information" from the colour system; | |||
attention-needed (Needs review, Upcoming) in orange -- matching | |||
"orange = important actions/emphasis"; and neutral (Draft, Historical, | |||
Legacy only) in a dim neutral tone -- Draft moved here from the | |||
attention tier, since "still being written" isn't the same kind of | |||
concern as "unchecked" or "not released yet". The template sets the | |||
modifier class via #switch. */ | |||
.edfm-status { | |||
border-left-width: 4px; | |||
border-left-style: solid; | |||
padding: 0; | |||
overflow: hidden; | |||
max-width: 44rem !important; | |||
margin: 1em auto !important; | |||
} | |||
.edfm-status--positive { border-left-color: var( --edfm-status-positive ); } | |||
.edfm-status--attention { border-left-color: var( --edfm-status-attention ); } | |||
.edfm-status--neutral { border-left-color: var( --edfm-status-neutral ); } | |||
.edfm-status-banner { | |||
display: flex; | |||
align-items: flex-start; | |||
gap: 0.65em; | |||
padding: 0.55em 0.9em; | |||
} | |||
/* Fixed-size icon swatch -- a single CSS-safe glyph (no icon font/library), | |||
never the same shape as a hard error: a checkmark for the positive | |||
tier, a plain "!" (not a red triangle) for attention, a quiet "i" for | |||
neutral. "Needs review" means not fully verified yet, not wrong. */ | |||
.edfm-status-icon { | |||
flex: 0 0 auto; | |||
width: 1.45em; | |||
height: 1.45em; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-radius: 2px; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-weight: 700; | |||
font-size: 0.85em; | |||
line-height: 1; | |||
} | |||
.edfm-status--positive .edfm-status-icon { background: var( --edfm-status-positive-bg ); color: var( --edfm-status-positive ); } | |||
.edfm-status--attention .edfm-status-icon { background: var( --edfm-status-attention-bg ); color: var( --edfm-status-attention ); } | |||
.edfm-status--neutral .edfm-status-icon { background: var( --edfm-status-neutral-bg ); color: var( --edfm-text-dim ); } | |||
.edfm-status-banner-body { | |||
flex: 1 1 auto; | |||
min-width: 0; | |||
} | |||
.edfm-status-heading { | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-weight: 700; | |||
letter-spacing: 0.06em; | |||
text-transform: uppercase; | |||
font-size: 0.9em; | |||
margin-bottom: 0.2em; | |||
} | |||
.edfm-status--positive .edfm-status-heading { color: var( --edfm-status-positive ); } | |||
.edfm-status--attention .edfm-status-heading { color: var( --edfm-status-attention ); } | |||
.edfm-status--neutral .edfm-status-heading { color: var( --edfm-text ); } | |||
.edfm-status-message { | |||
margin: 0 0 0.2em; | |||
color: var( --edfm-text-muted ); | |||
font-size: 0.86em; | |||
line-height: 1.35; | |||
} | |||
.edfm-status-uncertain { | |||
margin: 0; | |||
color: var( --edfm-text ); | |||
font-size: 0.86em; | |||
line-height: 1.35; | |||
} | |||
.edfm-status-uncertain-label { | |||
font-weight: 700; | |||
color: var( --edfm-text-dim ); | |||
} | |||
.edfm-status-details { | |||
display: grid; | |||
grid-template-columns: repeat( auto-fit, minmax( 11em, 1fr ) ); | |||
gap: 0.85em 1.25em; | |||
margin: 0; | |||
padding: 0.85em 1em; | |||
} | |||
.edfm-status-row { | |||
display: flex; | |||
flex-direction: column; | |||
gap: 0.2em; | |||
/* Grid items default to min-width: auto, which floors their shrink at | |||
their content's min-content size -- a long slash-joined run like | |||
"prerequisite/discovery/invitation/unlock" (no spaces, so no natural | |||
break point in some engines) could floor a column wider than its | |||
track and spill into the next one at in-between widths (2026-08-08: | |||
found at ~820px on The Dweller). Letting the item shrink below that | |||
floor, paired with the dd's own overflow-wrap below, keeps long | |||
values inside their own column at every width instead. */ | |||
min-width: 0; | |||
} | |||
.edfm-status-row dt { | |||
color: var( --edfm-text-dim ); | |||
font-weight: 700; | |||
white-space: nowrap; | |||
float: none; | |||
clear: none; | |||
margin: 0; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-size: 0.7em; | |||
letter-spacing: 0.08em; | |||
text-transform: uppercase; | |||
} | |||
.edfm-status-row dd { | |||
margin: 0; | |||
color: var( --edfm-text ); | |||
font-size: 0.98em; | |||
overflow-wrap: anywhere; | |||
} | |||
@media ( max-width: 800px ) { | |||
.edfm-status-details { | |||
grid-template-columns: 1fr 1fr; | |||
} | |||
} | |||
@media ( max-width: 480px ) { | |||
.edfm-status-details { | |||
grid-template-columns: 1fr; | |||
} | |||
} | |||
/* --- Related content (Template:Related articles) ----------------------- | |||
A small navigation strip instead of a generic bordered notice -- a | |||
quiet uppercase label above a row of individually-boxed link "tiles", | |||
each with a trailing arrow. Deliberately styles the `<a>` elements | |||
directly (not container-level flexbox) so the freeform wikitext link | |||
list passed into the template (arbitrary separators/whitespace between | |||
links) can't break the layout -- every link gets its own tile | |||
regardless of what, if anything, sits between them in the source. */ | |||
.edfm-related { | |||
margin: 1.6em 0; | |||
width: 100%; | |||
box-sizing: border-box; | |||
} | |||
.edfm-related-label { | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-size: 0.75em; | |||
font-weight: 700; | |||
letter-spacing: 0.1em; | |||
text-transform: uppercase; | |||
color: var( --edfm-text-dim ); | |||
margin-bottom: 0.6em; | |||
} | |||
.edfm-related-links { | |||
display: grid; | |||
grid-template-columns: repeat( auto-fit, minmax( 12rem, 1fr ) ); | |||
gap: 0.7em; | |||
} | |||
.edfm-related-links a { | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
gap: 0.5em; | |||
background: var( --edfm-surface-2 ); | |||
border-left: 2px solid var( --edfm-cyan ); | |||
padding: 0.65em 1.1em; | |||
margin: 0; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-weight: 700; | |||
letter-spacing: 0.03em; | |||
text-transform: uppercase; | |||
font-size: 0.85em; | |||
text-decoration: none; | |||
transition: background-color 0.15s ease, border-left-color 0.15s ease, transform 0.15s ease; | |||
} | |||
.edfm-related-links a::after { | |||
content: '\2192'; | |||
} | |||
.edfm-related-links a:hover { | |||
background: var( --edfm-surface-3 ); | |||
border-left-color: var( --edfm-orange ); | |||
transform: translateY( -1px ); | |||
} | |||
/* --- "View verification details" collapsible --------------------------- | |||
Wraps everything beyond the compact banner (Status, Last reviewed, | |||
Reviewer, Game mode, Version coverage, Source quality, the full Known | |||
uncertainty text, and the optional Legacy differences/Recent changes/ | |||
Verification notes fields) behind a native mw-collapsible toggle | |||
instead of a new dependency -- jquery.makeCollapsible | |||
is core MediaWiki, loaded on every page by mediawiki.page.ready. For a | |||
plain <div> its default behaviour prepends a | |||
<button class="mw-collapsible-toggle"><span class="mw-collapsible-text"> | |||
as the first child and wraps the remaining content in | |||
.mw-collapsible-content -- reset here to a plain full-width text row | |||
matching this module's mono/uppercase metadata language, instead of the | |||
browser's default button chrome, which would render as a jarring light | |||
box against this site's dark surfaces (same class of fix as the Save | |||
dialog/toolbar/#filetoc native-component passes elsewhere on this | |||
site). */ | |||
.edfm-status-expand { | |||
border-top: 1px solid var( --edfm-border-soft ); | |||
} | |||
.edfm-status-expand > .mw-collapsible-toggle { | |||
display: block; | |||
width: 100%; | |||
background: none; | |||
border: none; | |||
margin: 0; | |||
padding: 0.45em 1em; | |||
text-align: left; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-size: 0.75em; | |||
font-weight: 700; | |||
letter-spacing: 0.08em; | |||
text-transform: uppercase; | |||
color: var( --edfm-text-dim ); | |||
cursor: pointer; | |||
} | |||
.edfm-status-expand > .mw-collapsible-toggle:hover, | |||
.edfm-status-expand > .mw-collapsible-toggle:focus { | |||
color: var( --edfm-orange ); | |||
outline: none; | |||
} | |||
.edfm-status-expand .mw-collapsible-content .edfm-status-details { | |||
padding-top: 0.3em; | |||
} | |||
/* --- Fact / Field Manual Recommendation callouts ------------------------ | |||
Template:Fact and Template:Field manual recommendation -- a small | |||
labelled distinction between a verified fact and EDFM's own editorial | |||
judgement (see Elite Dangerous Field Manual:Engineering Architecture on | |||
why pinning/strategy guidance is treated as editorial, not database | |||
fact). Deliberately reuses the accent-rail + cyan/orange language | |||
already used everywhere else on this site (status positive/attention, | |||
infobox labels, related-link hover) instead of inventing a new callout | |||
style: cyan marks a verified fact ("cyan = verification information"), | |||
orange marks editorial guidance ("orange = important actions/ | |||
emphasis") -- see the colour rules this mirrors in this file's own | |||
.edfm-status-- modifiers above. */ | |||
.edfm-fact-recommendation { | |||
border-left: 3px solid var( --edfm-border ); | |||
padding: 0.5em 0.9em; | |||
margin: 0.8em 0; | |||
} | |||
.edfm-fact-recommendation--fact { | |||
border-left-color: var( --edfm-cyan ); | |||
} | |||
.edfm-fact-recommendation--recommendation { | |||
border-left-color: var( --edfm-orange ); | |||
} | |||
.edfm-fact-recommendation-label { | |||
display: block; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-weight: 700; | |||
font-size: 0.72em; | |||
letter-spacing: 0.1em; | |||
text-transform: uppercase; | |||
margin-bottom: 0.3em; | |||
} | |||
.edfm-fact-recommendation--fact .edfm-fact-recommendation-label { | |||
color: var( --edfm-cyan ); | |||
} | |||
.edfm-fact-recommendation--recommendation .edfm-fact-recommendation-label { | |||
color: var( --edfm-orange ); | |||
} | |||
.edfm-fact-recommendation-body { | |||
color: var( --edfm-text ); | |||
} | |||
/* =========================================================================== | |||
2026-08-10 ARTICLE RAIL WIDTH GUARANTEE | |||
=========================================================================== */ | |||
/* TemplateStyles is loaded after site Common.css on article pages, so this is | |||
the late-cascade guard that makes ordinary article prose and section blocks | |||
use the full article rail. Only maintenance/status/draft notice components | |||
keep their intentionally compact centered width. */ | |||
.mw-parser-output > p, | |||
.mw-parser-output > ul, | |||
.mw-parser-output > ol, | |||
.mw-parser-output > dl, | |||
.mw-parser-output > div { | |||
width: 100% !important; | |||
max-width: none !important; | |||
box-sizing: border-box; | |||
} | |||
.mw-parser-output > .edfm-status, | |||
.mw-parser-output > .edfm-panel-review, | |||
.mw-parser-output > .edfm-panel-draft, | |||
.mw-parser-output > .edfm-draft { | |||
width: auto !important; | |||
max-width: 44rem !important; | |||
} | |||
.mw-parser-output p, | |||
.mw-parser-output li, | |||
.mw-parser-output dd { | |||
max-width: none !important; | |||
} | |||
/* =========================================================================== | |||
2026-08-12 GUIDED ENCYCLOPEDIA COMPONENTS | |||
=========================================================================== */ | |||
.edfm-guide-info, | |||
.edfm-guide-requirements, | |||
.edfm-guide-step, | |||
.edfm-guide-callout, | |||
.edfm-context-media, | |||
.edfm-what-next { | |||
width: 100%; | |||
box-sizing: border-box; | |||
} | |||
.edfm-guide-info { | |||
border-left: 4px solid var( --edfm-cyan ); | |||
background: linear-gradient( 135deg, rgba( 66, 199, 217, 0.1 ), rgba( 8, 13, 17, 0.94 ) ); | |||
padding: 1.05rem 1.2rem; | |||
margin: 1.35rem 0; | |||
clip-path: polygon( 0 0, calc( 100% - 12px ) 0, 100% 12px, 100% 100%, 0 100% ); | |||
} | |||
.edfm-guide-info-title, | |||
.edfm-guide-requirements-title, | |||
.edfm-what-next-title { | |||
margin: 0 0 0.75rem; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-size: 0.78rem; | |||
font-weight: 800; | |||
letter-spacing: 0.12em; | |||
text-transform: uppercase; | |||
color: var( --edfm-cyan ); | |||
} | |||
.edfm-guide-info dl, | |||
.edfm-guide-requirements dl { | |||
display: grid; | |||
grid-template-columns: minmax( 10rem, 0.34fr ) 1fr; | |||
gap: 0.45rem 0.9rem; | |||
margin: 0; | |||
} | |||
.edfm-guide-info dt, | |||
.edfm-guide-requirements dt { | |||
float: none; | |||
clear: none; | |||
margin: 0; | |||
font-weight: 800; | |||
color: var( --edfm-text ); | |||
} | |||
.edfm-guide-info dd, | |||
.edfm-guide-requirements dd { | |||
margin: 0; | |||
color: var( --edfm-text-muted ); | |||
} | |||
.edfm-guide-requirements { | |||
border-left: 4px solid var( --edfm-blue ); | |||
background: var( --edfm-surface-2 ); | |||
padding: 1rem 1.2rem; | |||
margin: 1.35rem 0; | |||
} | |||
.edfm-guide-requirements-title { | |||
color: var( --edfm-blue ); | |||
} | |||
.edfm-guide-step { | |||
position: relative; | |||
margin: 1.55rem 0; | |||
padding: 1.05rem 1.15rem 1.05rem 1.35rem; | |||
border-left: 4px solid var( --edfm-orange ); | |||
background: rgba( 12, 18, 23, 0.92 ); | |||
box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.04 ); | |||
} | |||
.edfm-guide-step-heading { | |||
display: flex; | |||
align-items: baseline; | |||
gap: 0.6rem; | |||
margin: 0 0 0.65rem; | |||
} | |||
.edfm-guide-step-number { | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-size: 0.82rem; | |||
font-weight: 900; | |||
color: var( --edfm-orange ); | |||
} | |||
.edfm-guide-step-title { | |||
font-size: 1.15rem; | |||
font-weight: 800; | |||
color: var( --edfm-text ); | |||
} | |||
.edfm-guide-step-body { | |||
color: var( --edfm-text ); | |||
} | |||
.edfm-guide-step-body > :first-child, | |||
.edfm-guide-callout-body > :first-child, | |||
.edfm-context-media-body > :first-child, | |||
.edfm-what-next-body > :first-child { margin-top: 0; } | |||
.edfm-guide-step-body > :last-child, | |||
.edfm-guide-callout-body > :last-child, | |||
.edfm-context-media-body > :last-child, | |||
.edfm-what-next-body > :last-child { margin-bottom: 0; } | |||
.edfm-guide-callout { | |||
border-left: 4px solid var( --edfm-cyan ); | |||
background: rgba( 66, 199, 217, 0.08 ); | |||
padding: 0.8rem 1rem; | |||
margin: 1rem 0; | |||
} | |||
.edfm-guide-callout--warning { | |||
border-left-color: var( --edfm-orange ); | |||
background: rgba( 255, 138, 0, 0.1 ); | |||
} | |||
.edfm-guide-callout--important { | |||
border-left-color: var( --edfm-blue ); | |||
background: rgba( 89, 147, 255, 0.1 ); | |||
} | |||
.edfm-guide-callout--tip { | |||
border-left-color: var( --edfm-cyan ); | |||
background: rgba( 66, 199, 217, 0.08 ); | |||
} | |||
.edfm-guide-callout--field-note { | |||
border-left-color: var( --edfm-text-dim ); | |||
background: rgba( 108, 122, 130, 0.1 ); | |||
} | |||
.edfm-guide-callout-label { | |||
display: block; | |||
margin-bottom: 0.35rem; | |||
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace; | |||
font-size: 0.72rem; | |||
font-weight: 900; | |||
letter-spacing: 0.12em; | |||
text-transform: uppercase; | |||
color: var( --edfm-cyan ); | |||
} | |||
.edfm-context-media { | |||
display: grid; | |||
grid-template-columns: minmax( 0, 1fr ) minmax( 16rem, 0.42fr ); | |||
gap: 1rem; | |||
align-items: start; | |||
margin: 1.25rem 0; | |||
padding: 1rem; | |||
background: var( --edfm-surface-1 ); | |||
border: 1px solid var( --edfm-border ); | |||
} | |||
.edfm-context-media--left { | |||
grid-template-columns: minmax( 16rem, 0.42fr ) minmax( 0, 1fr ); | |||
} | |||
.edfm-context-media--left .edfm-context-media-figure { order: -1; } | |||
.edfm-context-media-figure { | |||
margin: 0; | |||
} | |||
.edfm-context-media-figure img, | |||
.edfm-context-media-figure .mw-file-element { | |||
max-width: 100%; | |||
height: auto; | |||
border: 1px solid var( --edfm-border ); | |||
background: #05080b; | |||
} | |||
.edfm-context-media-caption { | |||
margin-top: 0.45rem; | |||
font-size: 0.86rem; | |||
color: var( --edfm-text-muted ); | |||
} | |||
.edfm-what-next { | |||
border-left: 4px solid var( --edfm-cyan ); | |||
background: var( --edfm-surface-2 ); | |||
padding: 1rem 1.15rem; | |||
margin: 1.6rem 0; | |||
} | |||
.edfm-what-next-title { color: var( --edfm-orange ); } | |||
.edfm-what-next-body ul, | |||
.edfm-what-next-body ol { margin-bottom: 0; } | |||
@media ( max-width: 720px ) { | |||
.edfm-guide-info dl, | |||
.edfm-guide-requirements dl, | |||
.edfm-context-media, | |||
.edfm-context-media--left { | |||
display: block; | |||
} | |||
.edfm-guide-info dt, | |||
.edfm-guide-requirements dt { margin-top: 0.55rem; } | |||
.edfm-guide-info dt:first-child, | |||
.edfm-guide-requirements dt:first-child { margin-top: 0; } | |||
.edfm-guide-info dd, | |||
.edfm-guide-requirements dd { margin-top: 0.1rem; } | |||
.edfm-context-media-figure { margin-top: 0.8rem; } | |||
} | } | ||
.edfm-guide-callout--warning .edfm-guide-callout-label { color: var( --edfm-orange ); } | |||
.edfm-guide-callout--important .edfm-guide-callout-label { color: var( --edfm-blue ); } | |||
.edfm-guide-callout--tip .edfm-guide-callout-label { color: var( --edfm-cyan ); } | |||
.edfm-guide-callout--field-note .edfm-guide-callout-label { color: var( --edfm-text-dim ); } | |||
Latest revision as of 22:25, 19 August 2026
/* Shared styling for EDFM's editorial templates (Article status, Draft
warning, Prerequisites, Related articles, etc. -- see each template's
own page for which classes it uses). Freely uses the --edfm-* custom
properties defined in MediaWiki:Common.css -- see the note there under
"6. Panels" for why these classes live only in this file and not
duplicated in Common.css too.
2026-08-07 SECOND PASS: panels keep the accent-rail + corner-cut
language from the first pass (both are explicitly the "hierarchy
without a full border around everything" technique this redesign asks
for) but get noticeably more padding/breathing room; the status module
is rebuilt with a coloured header band and stacked label/value metadata
instead of a plain left-rail box with inline "Label: value" text; and a
new .edfm-related component replaces the old plain notice-style
"Related articles" bar with a small tile row. */
.edfm-box,
.edfm-panel {
border-left: 4px solid var( --edfm-cyan );
background: var( --edfm-surface-2 );
color: var( --edfm-text );
padding: 1.1em 1.3em;
margin: 1.4em 0;
box-sizing: border-box;
width: 100%;
clip-path: polygon( 0 0, calc( 100% - 10px ) 0, 100% 10px, 100% 100%, 0 100% );
}
.edfm-panel-info {
border-left-color: var( --edfm-cyan );
}
.edfm-panel-warning,
.edfm-box.edfm-warning {
border-left-color: var( --edfm-orange );
background: #201a12;
}
.edfm-panel-draft,
.edfm-box.edfm-draft {
border-left-color: var( --edfm-text-dim );
background: var( --edfm-surface-1 );
}
/* Draft/maintenance notices are intentionally compact and centred; article
prose/nav/tables may stretch, but these banners should not become a
full-width strip across the whole rail. */
.edfm-panel-review:not( .edfm-status ),
.edfm-panel-draft:not( .edfm-status ),
.edfm-box.edfm-draft:not( .edfm-status ) {
max-width: 44rem !important;
margin-left: auto !important;
margin-right: auto !important;
}
.edfm-panel-reference {
border-left-color: var( --edfm-blue );
}
.edfm-box.edfm-disclaimer {
border-left-color: var( --edfm-orange );
font-size: 0.92em;
}
.edfm-box dl,
.edfm-panel dl {
margin: 0;
}
.edfm-box dt,
.edfm-panel dt {
font-weight: bold;
float: left;
clear: left;
margin-right: 0.5em;
color: var( --edfm-text );
}
.edfm-box dd,
.edfm-panel dd {
margin-left: 11em;
}
.edfm-inline-flag {
font-style: italic;
color: var( --edfm-cyan );
}
/* --- Article metadata / status module (Template:Article status) --------
2026-08-08 second revision: a compact maintenance banner (RuneScape
Wiki-style notice as the UX reference, not its markup/colours) rather
than a small internal dashboard -- an icon, the bare status word (no
mode/version appended to it), one standard sentence for that status,
and a concise "Uncertain: ..." line when there's something worth
flagging. The full editorial record (reviewer, mode, version, source
quality, the complete uncertainty note, etc.) moves to the
.edfm-status-expand collapsible below, not removed, just no longer
competing with the article for attention. Semantic colouring always
pairs with the visible text status/icon -- never colour alone, per the
site's Verification Policy. Three colour tiers cover the seven actual
status values (see Elite Dangerous Field Manual: Verification Policy):
positive/confirmed (Verified, Partially verified) in cyan -- matching
"cyan = verification information" from the colour system;
attention-needed (Needs review, Upcoming) in orange -- matching
"orange = important actions/emphasis"; and neutral (Draft, Historical,
Legacy only) in a dim neutral tone -- Draft moved here from the
attention tier, since "still being written" isn't the same kind of
concern as "unchecked" or "not released yet". The template sets the
modifier class via #switch. */
.edfm-status {
border-left-width: 4px;
border-left-style: solid;
padding: 0;
overflow: hidden;
max-width: 44rem !important;
margin: 1em auto !important;
}
.edfm-status--positive { border-left-color: var( --edfm-status-positive ); }
.edfm-status--attention { border-left-color: var( --edfm-status-attention ); }
.edfm-status--neutral { border-left-color: var( --edfm-status-neutral ); }
.edfm-status-banner {
display: flex;
align-items: flex-start;
gap: 0.65em;
padding: 0.55em 0.9em;
}
/* Fixed-size icon swatch -- a single CSS-safe glyph (no icon font/library),
never the same shape as a hard error: a checkmark for the positive
tier, a plain "!" (not a red triangle) for attention, a quiet "i" for
neutral. "Needs review" means not fully verified yet, not wrong. */
.edfm-status-icon {
flex: 0 0 auto;
width: 1.45em;
height: 1.45em;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-weight: 700;
font-size: 0.85em;
line-height: 1;
}
.edfm-status--positive .edfm-status-icon { background: var( --edfm-status-positive-bg ); color: var( --edfm-status-positive ); }
.edfm-status--attention .edfm-status-icon { background: var( --edfm-status-attention-bg ); color: var( --edfm-status-attention ); }
.edfm-status--neutral .edfm-status-icon { background: var( --edfm-status-neutral-bg ); color: var( --edfm-text-dim ); }
.edfm-status-banner-body {
flex: 1 1 auto;
min-width: 0;
}
.edfm-status-heading {
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
font-size: 0.9em;
margin-bottom: 0.2em;
}
.edfm-status--positive .edfm-status-heading { color: var( --edfm-status-positive ); }
.edfm-status--attention .edfm-status-heading { color: var( --edfm-status-attention ); }
.edfm-status--neutral .edfm-status-heading { color: var( --edfm-text ); }
.edfm-status-message {
margin: 0 0 0.2em;
color: var( --edfm-text-muted );
font-size: 0.86em;
line-height: 1.35;
}
.edfm-status-uncertain {
margin: 0;
color: var( --edfm-text );
font-size: 0.86em;
line-height: 1.35;
}
.edfm-status-uncertain-label {
font-weight: 700;
color: var( --edfm-text-dim );
}
.edfm-status-details {
display: grid;
grid-template-columns: repeat( auto-fit, minmax( 11em, 1fr ) );
gap: 0.85em 1.25em;
margin: 0;
padding: 0.85em 1em;
}
.edfm-status-row {
display: flex;
flex-direction: column;
gap: 0.2em;
/* Grid items default to min-width: auto, which floors their shrink at
their content's min-content size -- a long slash-joined run like
"prerequisite/discovery/invitation/unlock" (no spaces, so no natural
break point in some engines) could floor a column wider than its
track and spill into the next one at in-between widths (2026-08-08:
found at ~820px on The Dweller). Letting the item shrink below that
floor, paired with the dd's own overflow-wrap below, keeps long
values inside their own column at every width instead. */
min-width: 0;
}
.edfm-status-row dt {
color: var( --edfm-text-dim );
font-weight: 700;
white-space: nowrap;
float: none;
clear: none;
margin: 0;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-size: 0.7em;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.edfm-status-row dd {
margin: 0;
color: var( --edfm-text );
font-size: 0.98em;
overflow-wrap: anywhere;
}
@media ( max-width: 800px ) {
.edfm-status-details {
grid-template-columns: 1fr 1fr;
}
}
@media ( max-width: 480px ) {
.edfm-status-details {
grid-template-columns: 1fr;
}
}
/* --- Related content (Template:Related articles) -----------------------
A small navigation strip instead of a generic bordered notice -- a
quiet uppercase label above a row of individually-boxed link "tiles",
each with a trailing arrow. Deliberately styles the `<a>` elements
directly (not container-level flexbox) so the freeform wikitext link
list passed into the template (arbitrary separators/whitespace between
links) can't break the layout -- every link gets its own tile
regardless of what, if anything, sits between them in the source. */
.edfm-related {
margin: 1.6em 0;
width: 100%;
box-sizing: border-box;
}
.edfm-related-label {
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-size: 0.75em;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var( --edfm-text-dim );
margin-bottom: 0.6em;
}
.edfm-related-links {
display: grid;
grid-template-columns: repeat( auto-fit, minmax( 12rem, 1fr ) );
gap: 0.7em;
}
.edfm-related-links a {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5em;
background: var( --edfm-surface-2 );
border-left: 2px solid var( --edfm-cyan );
padding: 0.65em 1.1em;
margin: 0;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-weight: 700;
letter-spacing: 0.03em;
text-transform: uppercase;
font-size: 0.85em;
text-decoration: none;
transition: background-color 0.15s ease, border-left-color 0.15s ease, transform 0.15s ease;
}
.edfm-related-links a::after {
content: '\2192';
}
.edfm-related-links a:hover {
background: var( --edfm-surface-3 );
border-left-color: var( --edfm-orange );
transform: translateY( -1px );
}
/* --- "View verification details" collapsible ---------------------------
Wraps everything beyond the compact banner (Status, Last reviewed,
Reviewer, Game mode, Version coverage, Source quality, the full Known
uncertainty text, and the optional Legacy differences/Recent changes/
Verification notes fields) behind a native mw-collapsible toggle
instead of a new dependency -- jquery.makeCollapsible
is core MediaWiki, loaded on every page by mediawiki.page.ready. For a
plain <div> its default behaviour prepends a
<button class="mw-collapsible-toggle"><span class="mw-collapsible-text">
as the first child and wraps the remaining content in
.mw-collapsible-content -- reset here to a plain full-width text row
matching this module's mono/uppercase metadata language, instead of the
browser's default button chrome, which would render as a jarring light
box against this site's dark surfaces (same class of fix as the Save
dialog/toolbar/#filetoc native-component passes elsewhere on this
site). */
.edfm-status-expand {
border-top: 1px solid var( --edfm-border-soft );
}
.edfm-status-expand > .mw-collapsible-toggle {
display: block;
width: 100%;
background: none;
border: none;
margin: 0;
padding: 0.45em 1em;
text-align: left;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-size: 0.75em;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var( --edfm-text-dim );
cursor: pointer;
}
.edfm-status-expand > .mw-collapsible-toggle:hover,
.edfm-status-expand > .mw-collapsible-toggle:focus {
color: var( --edfm-orange );
outline: none;
}
.edfm-status-expand .mw-collapsible-content .edfm-status-details {
padding-top: 0.3em;
}
/* --- Fact / Field Manual Recommendation callouts ------------------------
Template:Fact and Template:Field manual recommendation -- a small
labelled distinction between a verified fact and EDFM's own editorial
judgement (see Elite Dangerous Field Manual:Engineering Architecture on
why pinning/strategy guidance is treated as editorial, not database
fact). Deliberately reuses the accent-rail + cyan/orange language
already used everywhere else on this site (status positive/attention,
infobox labels, related-link hover) instead of inventing a new callout
style: cyan marks a verified fact ("cyan = verification information"),
orange marks editorial guidance ("orange = important actions/
emphasis") -- see the colour rules this mirrors in this file's own
.edfm-status-- modifiers above. */
.edfm-fact-recommendation {
border-left: 3px solid var( --edfm-border );
padding: 0.5em 0.9em;
margin: 0.8em 0;
}
.edfm-fact-recommendation--fact {
border-left-color: var( --edfm-cyan );
}
.edfm-fact-recommendation--recommendation {
border-left-color: var( --edfm-orange );
}
.edfm-fact-recommendation-label {
display: block;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-weight: 700;
font-size: 0.72em;
letter-spacing: 0.1em;
text-transform: uppercase;
margin-bottom: 0.3em;
}
.edfm-fact-recommendation--fact .edfm-fact-recommendation-label {
color: var( --edfm-cyan );
}
.edfm-fact-recommendation--recommendation .edfm-fact-recommendation-label {
color: var( --edfm-orange );
}
.edfm-fact-recommendation-body {
color: var( --edfm-text );
}
/* ===========================================================================
2026-08-10 ARTICLE RAIL WIDTH GUARANTEE
=========================================================================== */
/* TemplateStyles is loaded after site Common.css on article pages, so this is
the late-cascade guard that makes ordinary article prose and section blocks
use the full article rail. Only maintenance/status/draft notice components
keep their intentionally compact centered width. */
.mw-parser-output > p,
.mw-parser-output > ul,
.mw-parser-output > ol,
.mw-parser-output > dl,
.mw-parser-output > div {
width: 100% !important;
max-width: none !important;
box-sizing: border-box;
}
.mw-parser-output > .edfm-status,
.mw-parser-output > .edfm-panel-review,
.mw-parser-output > .edfm-panel-draft,
.mw-parser-output > .edfm-draft {
width: auto !important;
max-width: 44rem !important;
}
.mw-parser-output p,
.mw-parser-output li,
.mw-parser-output dd {
max-width: none !important;
}
/* ===========================================================================
2026-08-12 GUIDED ENCYCLOPEDIA COMPONENTS
=========================================================================== */
.edfm-guide-info,
.edfm-guide-requirements,
.edfm-guide-step,
.edfm-guide-callout,
.edfm-context-media,
.edfm-what-next {
width: 100%;
box-sizing: border-box;
}
.edfm-guide-info {
border-left: 4px solid var( --edfm-cyan );
background: linear-gradient( 135deg, rgba( 66, 199, 217, 0.1 ), rgba( 8, 13, 17, 0.94 ) );
padding: 1.05rem 1.2rem;
margin: 1.35rem 0;
clip-path: polygon( 0 0, calc( 100% - 12px ) 0, 100% 12px, 100% 100%, 0 100% );
}
.edfm-guide-info-title,
.edfm-guide-requirements-title,
.edfm-what-next-title {
margin: 0 0 0.75rem;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var( --edfm-cyan );
}
.edfm-guide-info dl,
.edfm-guide-requirements dl {
display: grid;
grid-template-columns: minmax( 10rem, 0.34fr ) 1fr;
gap: 0.45rem 0.9rem;
margin: 0;
}
.edfm-guide-info dt,
.edfm-guide-requirements dt {
float: none;
clear: none;
margin: 0;
font-weight: 800;
color: var( --edfm-text );
}
.edfm-guide-info dd,
.edfm-guide-requirements dd {
margin: 0;
color: var( --edfm-text-muted );
}
.edfm-guide-requirements {
border-left: 4px solid var( --edfm-blue );
background: var( --edfm-surface-2 );
padding: 1rem 1.2rem;
margin: 1.35rem 0;
}
.edfm-guide-requirements-title {
color: var( --edfm-blue );
}
.edfm-guide-step {
position: relative;
margin: 1.55rem 0;
padding: 1.05rem 1.15rem 1.05rem 1.35rem;
border-left: 4px solid var( --edfm-orange );
background: rgba( 12, 18, 23, 0.92 );
box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.04 );
}
.edfm-guide-step-heading {
display: flex;
align-items: baseline;
gap: 0.6rem;
margin: 0 0 0.65rem;
}
.edfm-guide-step-number {
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-size: 0.82rem;
font-weight: 900;
color: var( --edfm-orange );
}
.edfm-guide-step-title {
font-size: 1.15rem;
font-weight: 800;
color: var( --edfm-text );
}
.edfm-guide-step-body {
color: var( --edfm-text );
}
.edfm-guide-step-body > :first-child,
.edfm-guide-callout-body > :first-child,
.edfm-context-media-body > :first-child,
.edfm-what-next-body > :first-child { margin-top: 0; }
.edfm-guide-step-body > :last-child,
.edfm-guide-callout-body > :last-child,
.edfm-context-media-body > :last-child,
.edfm-what-next-body > :last-child { margin-bottom: 0; }
.edfm-guide-callout {
border-left: 4px solid var( --edfm-cyan );
background: rgba( 66, 199, 217, 0.08 );
padding: 0.8rem 1rem;
margin: 1rem 0;
}
.edfm-guide-callout--warning {
border-left-color: var( --edfm-orange );
background: rgba( 255, 138, 0, 0.1 );
}
.edfm-guide-callout--important {
border-left-color: var( --edfm-blue );
background: rgba( 89, 147, 255, 0.1 );
}
.edfm-guide-callout--tip {
border-left-color: var( --edfm-cyan );
background: rgba( 66, 199, 217, 0.08 );
}
.edfm-guide-callout--field-note {
border-left-color: var( --edfm-text-dim );
background: rgba( 108, 122, 130, 0.1 );
}
.edfm-guide-callout-label {
display: block;
margin-bottom: 0.35rem;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-size: 0.72rem;
font-weight: 900;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var( --edfm-cyan );
}
.edfm-context-media {
display: grid;
grid-template-columns: minmax( 0, 1fr ) minmax( 16rem, 0.42fr );
gap: 1rem;
align-items: start;
margin: 1.25rem 0;
padding: 1rem;
background: var( --edfm-surface-1 );
border: 1px solid var( --edfm-border );
}
.edfm-context-media--left {
grid-template-columns: minmax( 16rem, 0.42fr ) minmax( 0, 1fr );
}
.edfm-context-media--left .edfm-context-media-figure { order: -1; }
.edfm-context-media-figure {
margin: 0;
}
.edfm-context-media-figure img,
.edfm-context-media-figure .mw-file-element {
max-width: 100%;
height: auto;
border: 1px solid var( --edfm-border );
background: #05080b;
}
.edfm-context-media-caption {
margin-top: 0.45rem;
font-size: 0.86rem;
color: var( --edfm-text-muted );
}
.edfm-what-next {
border-left: 4px solid var( --edfm-cyan );
background: var( --edfm-surface-2 );
padding: 1rem 1.15rem;
margin: 1.6rem 0;
}
.edfm-what-next-title { color: var( --edfm-orange ); }
.edfm-what-next-body ul,
.edfm-what-next-body ol { margin-bottom: 0; }
@media ( max-width: 720px ) {
.edfm-guide-info dl,
.edfm-guide-requirements dl,
.edfm-context-media,
.edfm-context-media--left {
display: block;
}
.edfm-guide-info dt,
.edfm-guide-requirements dt { margin-top: 0.55rem; }
.edfm-guide-info dt:first-child,
.edfm-guide-requirements dt:first-child { margin-top: 0; }
.edfm-guide-info dd,
.edfm-guide-requirements dd { margin-top: 0.1rem; }
.edfm-context-media-figure { margin-top: 0.8rem; }
}
.edfm-guide-callout--warning .edfm-guide-callout-label { color: var( --edfm-orange ); }
.edfm-guide-callout--important .edfm-guide-callout-label { color: var( --edfm-blue ); }
.edfm-guide-callout--tip .edfm-guide-callout-label { color: var( --edfm-cyan ); }
.edfm-guide-callout--field-note .edfm-guide-callout-label { color: var( --edfm-text-dim ); }