Template:EDFM style/styles.css: Difference between revisions

Current answers. Practical procedures. Reliable reference.
Jump to navigation Jump to search
Fix status-details grid column overflow: long unbroken slash-joined text could spill into the neighboring column at in-between (tablet) widths -- add min-width:0 on the grid item + overflow-wrap:anywhere on the value
Add .edfm-status-banner/.edfm-status-icon/.edfm-status-heading/.edfm-status-message/.edfm-status-uncertain* for the new compact maintenance-banner status module; remove the now-unused .edfm-status-head/.edfm-status-badge/.edfm-status-item/.edfm-status-details--compact rules.
Line 66: Line 66:


/* --- Article metadata / status module (Template:Article status) --------
/* --- Article metadata / status module (Template:Article status) --------
   Immediately communicates document trust/state: a coloured header band
   2026-08-08 second revision: a compact maintenance banner (RuneScape
   (background tint + bottom rule, not a full border) carries the big
   Wiki-style notice as the UX reference, not its markup/colours) rather
   status badge plus mode/version, then a metadata grid below with each
  than a small internal dashboard -- an icon, the bare status word (no
   field as a stacked LABEL / value pair rather than inline "Label: value"
   mode/version appended to it), one standard sentence for that status,
   text -- closer to a real status panel than a definition list. Semantic
   and a concise "Uncertain: ..." line when there's something worth
   colouring always pairs with the visible text badge -- never colour
   flagging. The full editorial record (reviewer, mode, version, source
  alone, per the site's Verification Policy. Three colour tiers cover the
  quality, the complete uncertainty note, etc.) moves to the
   seven actual status values (see Elite Dangerous Field Manual:
  .edfm-status-expand collapsible below, not removed, just no longer
  Verification Policy): positive/confirmed (Verified, Partially verified)
  competing with the article for attention. Semantic colouring always
  in cyan -- matching "cyan = verification information" from the colour
   pairs with the visible text status/icon -- never colour alone, per the
   system; attention-needed (Needs review, Draft, Upcoming) in orange --
  site's Verification Policy. Three colour tiers cover the seven actual
   matching "orange = important actions/emphasis"; and neutral/non-current
   status values (see Elite Dangerous Field Manual: Verification Policy):
  (Historical, Legacy only) in a dim neutral tone. The template sets the
  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. */
   modifier class via #switch. */
.edfm-status {
.edfm-status {
Line 90: Line 96:
.edfm-status--neutral { border-left-color: var( --edfm-status-neutral ); }
.edfm-status--neutral { border-left-color: var( --edfm-status-neutral ); }


/* Polish pass: this band was reading as too large a banner for how
.edfm-status-banner {
  little text it holds -- padding roughly halved and the badge scaled
  down slightly so it sits closer to a compact status line
  ("NEEDS REVIEW  MODE: BOTH  VERSION: ...") than a headline, while
  staying clearly the most prominent element in the module. */
.edfm-status-head {
display: flex;
display: flex;
flex-wrap: wrap;
align-items: flex-start;
align-items: baseline;
gap: 0.8em;
gap: 0.35em 1.2em;
padding: 0.8em 1.1em;
padding: 0.55em 1.3em;
}
border-bottom: 1px solid var( --edfm-border-soft );
/* Fixed-size icon swatch -- a single CSS-safe glyph (no icon font/library),
/* TemplateStyles' CSS sanitizer rejects var() specifically inside
  never the same shape as a hard error: a checkmark for the positive
  font-family (even though it's otherwise valid CSS) -- spelled out
  tier, a plain "!" (not a red triangle) for attention, a quiet "i" for
  literally here to match --edfm-mono in MediaWiki:Common.css. */
  neutral. "Needs review" means not fully verified yet, not wrong. */
.edfm-status-icon {
flex: 0 0 auto;
width: 1.7em;
height: 1.7em;
display: flex;
align-items: center;
justify-content: center;
border-radius: 3px;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
font-weight: 700;
font-size: 1em;
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--positive .edfm-status-head { background: var( --edfm-status-positive-bg ); }
.edfm-status-heading {
.edfm-status--attention .edfm-status-head { background: var( --edfm-status-attention-bg ); }
font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
.edfm-status--neutral .edfm-status-head { background: var( --edfm-status-neutral-bg ); }
.edfm-status-badge {
font-weight: 700;
font-weight: 700;
letter-spacing: 0.06em;
letter-spacing: 0.06em;
text-transform: uppercase;
text-transform: uppercase;
font-size: 1.02em;
font-size: 1em;
margin-bottom: 0.3em;
}
}
.edfm-status--positive .edfm-status-badge { color: var( --edfm-status-positive ); }
.edfm-status--positive .edfm-status-heading { color: var( --edfm-status-positive ); }
.edfm-status--attention .edfm-status-badge { color: var( --edfm-status-attention ); }
.edfm-status--attention .edfm-status-heading { color: var( --edfm-status-attention ); }
.edfm-status--neutral .edfm-status-badge { color: var( --edfm-text ); }
.edfm-status--neutral .edfm-status-heading { color: var( --edfm-text ); }
.edfm-status-item {
.edfm-status-message {
margin: 0 0 0.35em;
color: var( --edfm-text-muted );
color: var( --edfm-text-muted );
font-size: 0.8em;
font-size: 0.95em;
letter-spacing: 0.04em;
line-height: 1.4;
text-transform: uppercase;
}
.edfm-status-uncertain {
margin: 0;
color: var( --edfm-text );
font-size: 0.95em;
line-height: 1.4;
}
.edfm-status-uncertain-label {
font-weight: 700;
color: var( --edfm-text-dim );
}
}
.edfm-status-details {
.edfm-status-details {
Line 218: Line 246:
border-left-color: var( --edfm-orange );
border-left-color: var( --edfm-orange );
transform: translateY( -1px );
transform: translateY( -1px );
}
/* --- Compact status details (2026-08-08 Engineer article layout pass) --
  The always-visible summary grid (Last reviewed / Source quality / Known
  uncertainty) reuses .edfm-status-details's existing responsive grid --
  just slightly tighter padding, since this row is meant to be scanned at
  a glance rather than read as the full metadata block. */
.edfm-status-details--compact {
padding: 0.9em 1.3em;
}
}


/* --- "View verification details" collapsible ---------------------------
/* --- "View verification details" collapsible ---------------------------
   Wraps Template:Article status's less-urgent fields (Reviewer, Legacy
   Wraps everything beyond the compact banner (Status, Last reviewed,
   differences, Recent changes, Verification notes) behind a native
  Reviewer, Game mode, Version coverage, Source quality, the full Known
  mw-collapsible toggle instead of a new dependency -- jquery.makeCollapsible
   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
   is core MediaWiki, loaded on every page by mediawiki.page.ready. For a
   plain <div> its default behaviour prepends a
   plain <div> its default behaviour prepends a

Revision as of 17:06, 8 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;
	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 );
}
.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;
}
.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.8em;
	padding: 0.8em 1.1em;
}
/* 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.7em;
	height: 1.7em;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 3px;
	font-family: 'JetBrains Mono', 'Fira Code', Consolas, 'SF Mono', Menlo, 'Courier New', monospace;
	font-weight: 700;
	font-size: 1em;
	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: 1em;
	margin-bottom: 0.3em;
}
.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.35em;
	color: var( --edfm-text-muted );
	font-size: 0.95em;
	line-height: 1.4;
}
.edfm-status-uncertain {
	margin: 0;
	color: var( --edfm-text );
	font-size: 0.95em;
	line-height: 1.4;
}
.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: 1em 1.5em;
	margin: 0;
	padding: 1.1em 1.3em;
}
.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;
}
.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 a {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	background: var( --edfm-surface-2 );
	border-left: 2px solid var( --edfm-cyan );
	padding: 0.65em 1.1em;
	margin: 0 0.7em 0.7em 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.55em 1.3em;
	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 );
}