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

Current answers. Practical procedures. Reliable reference.
Jump to navigation Jump to search
Compact and center article status banners
Make EDFM editorial panels and related sections span full width
Line 22: Line 22:
padding: 1.1em 1.3em;
padding: 1.1em 1.3em;
margin: 1.4em 0;
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% );
clip-path: polygon( 0 0, calc( 100% - 10px ) 0, 100% 10px, 100% 100%, 0 100% );
}
}
Line 91: Line 93:
padding: 0;
padding: 0;
overflow: hidden;
overflow: hidden;
max-width: 64em;
max-width: none;
margin: 1em auto;
margin: 1em 0;
}
}
.edfm-status--positive { border-left-color: var( --edfm-status-positive ); }
.edfm-status--positive { border-left-color: var( --edfm-status-positive ); }
Line 215: Line 217:
.edfm-related {
.edfm-related {
margin: 1.6em 0;
margin: 1.6em 0;
width: 100%;
box-sizing: border-box;
}
}
.edfm-related-label {
.edfm-related-label {
Line 224: Line 228:
color: var( --edfm-text-dim );
color: var( --edfm-text-dim );
margin-bottom: 0.6em;
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 {
.edfm-related-links a {
display: inline-flex;
display: flex;
align-items: center;
align-items: center;
justify-content: space-between;
gap: 0.5em;
gap: 0.5em;
background: var( --edfm-surface-2 );
background: var( --edfm-surface-2 );
border-left: 2px solid var( --edfm-cyan );
border-left: 2px solid var( --edfm-cyan );
padding: 0.65em 1.1em;
padding: 0.65em 1.1em;
margin: 0 0.7em 0.7em 0;
margin: 0;
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-weight: 700;

Revision as of 19:20, 10 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 );
}
.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: none;
	margin: 1em 0;
}
.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 );
}