Jump to content

MediaWiki:Common.css

From DEAD Wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/****************************
 * DEAD Wiki – Full Custom CSS
 * Skin: Vector 2022
 ****************************/

/* ==== Brand tokens (edit these for theme) ==== */
:root {
  --brand: #ff6a00;   /* DEAD orange */
  --brand-2: #6a38f0; /* Accent purple */
  --text: #111418;
  --muted: #4a5160;
  --bg: #ffffff;
  --bg-soft: #f6f7fb;
  --border: #d7dbe5;
  --link: #0b57d0;
  --link-hover: #063b8f;
  --code-bg: #0d1117;
  --code-text: #e6edf3;
}

/* ==== Dark mode (auto) ==== */
@media (prefers-color-scheme: dark) {
  :root {
    --text: #e8eaf0;
    --muted: #b3b7c2;
    --bg: #0f131a;
    --bg-soft: #141a23;
    --border: #262c38;
    --link: #8ab4ff;
    --link-hover: #b8ccff;
    --code-bg: #0b0f16;
    --code-text: #e8f0ff;
  }
}

/* ==== Page layout (Vector 2022) ==== */
.skin-vector-2022 .mw-page-container {
  max-width: 1400px !important; /* wider frame */
}
.skin-vector-2022 .mw-content-container,
.skin-vector-2022 .vector-body,
.mw-body {
  max-width: 1080px !important; /* wider content */
}

/* ==== Base typography ==== */
html, body {
  background: var(--bg) !important;
  color: var(--text) !important;
}
.mw-parser-output {
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  font-size: 18.5px !important;
  line-height: 1.75 !important;
  color: var(--text) !important;
  letter-spacing: 0.1px;
}
.mw-parser-output p { margin: 0.75em 0; }
.mw-parser-output ul,
.mw-parser-output ol { margin: 0.4em 0 1em 1.4em; }

/* ==== Headings ==== */
.mw-parser-output h1,
.mw-parser-output h2,
.mw-parser-output h3,
.mw-parser-output h4 {
  font-weight: 800 !important;
  line-height: 1.25 !important;
  color: var(--text) !important;
  margin: 1.4em 0 0.6em;
}
.mw-parser-output h1 { font-size: 2.2rem !important; border: 0 !important; }
.mw-parser-output h2 {
  font-size: 1.75rem !important;
  border-bottom: 2px solid var(--border) !important;
  padding-bottom: .35rem !important;
}
.mw-parser-output h3 { font-size: 1.3rem !important; }
.mw-parser-output h4 { font-size: 1.08rem !important; color: var(--muted) !important; }

/* ==== Links ==== */
.mw-parser-output a {
  color: var(--link) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.mw-parser-output a:hover,
.mw-parser-output a:focus {
  color: var(--link-hover) !important;
}

/* ==== TOC ==== */
#toc, .toc {
  background: var(--bg-soft) !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px;
  padding: 0.9rem 1rem !important;
}
#toc a { color: var(--link) !important; text-decoration: none; }
#toc a:hover { text-decoration: underline; }
.tocnumber { color: var(--brand-2) !important; font-weight: 800; }

/* ==== Tables ==== */
.wikitable, .mw-parser-output table.wikitable {
  border: 1px solid var(--border) !important;
  border-radius: 12px;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
}
.wikitable th {
  background: var(--bg-soft) !important;
  color: var(--text) !important;
  font-weight: 800 !important;
  padding: .6rem .8rem;
}
.wikitable td {
  border-top: 1px solid var(--border) !important;
  padding: .55rem .8rem;
}
.wikitable tr:nth-child(even) td {
  background: #fafbfe !important;
}

/* ==== Infobox ==== */
.infobox, table.infobox {
  float: right;
  width: 320px;
  margin: 0 0 1rem 1rem;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  font-size: .95rem;
}
.infobox th {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--brand) 18%, var(--bg) 82%),
    var(--bg-soft)
  );
  padding: .6rem .8rem;
  text-align: left;
}
.infobox td {
  padding: .55rem .8rem;
  border-top: 1px solid var(--border);
}
.infobox caption {
  caption-side: top;
  background: var(--brand);
  color: #fff;
  font-weight: 900;
  padding: .7rem .9rem;
}

/* ==== Code & pre ==== */
pre, code, .mw-code, .mw-highlight pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}
pre, .mw-code, .mw-highlight pre {
  background: var(--code-bg) !important;
  color: var(--code-text) !important;
  font-size: 15.5px !important;
  line-height: 1.6 !important;
  border-radius: 12px;
  padding: .95rem 1.1rem !important;
}
code {
  background: color-mix(in srgb, var(--code-bg) 75%, var(--bg) 25%) !important;
  color: var(--code-text) !important;
  padding: .1rem .35rem;
  border-radius: 6px;
}

/* ==== Thumbnails & images ==== */
.thumb, .thumbinner { border: 0; background: transparent; }
.thumb img, .thumbimage, .gallerybox .thumb img {
  border-radius: 12px;
  display: block;
}
.thumbcaption {
  color: var(--muted) !important;
  font-size: .96rem !important;
  margin-top: .35rem;
}

/* ==== Search ==== */
#p-search input[type="search"] {
  font-size: 16.5px !important;
  padding: .55rem .7rem !important;
  border-radius: 10px !important;
  border: 1px solid var(--border) !important;
  background: #fff !important;
  color: var(--text) !important;
}

/* ==== Sidebar & right rail ==== */
#mw-panel .portal h3 { color: var(--muted) !important; font-weight: 700; }
#mw-panel .portal .body ul { padding-left: .75rem; }
#mw-panel, .vector-page-tools { color: var(--muted) !important; }
#mw-panel a, .vector-page-tools a {
  color: var(--link) !important;
  text-decoration: none;
}
#mw-panel a:hover, .vector-page-tools a:hover {
  text-decoration: underline;
}

/* ==== Buttons ==== */
.mw-ui-button, a.mw-ui-button {
  border-radius: 10px !important;
  background: var(--brand);
  border: 1px solid var(--brand);
  color: #fff !important;
  font-weight: 800;
  padding: .45rem .85rem;
}
.mw-ui-button:hover { filter: brightness(1.06); }

/* ==== Footer ==== */
#footer {
  border-top: 1px solid var(--border);
  margin-top: 2rem;
  color: var(--muted);
}
#footer a { color: var(--muted); }
#footer a:hover { color: var(--link-hover); }

/* ==== Lead paragraph emphasis ==== */
.mw-parser-output > p:first-of-type {
  font-size: 1.08em !important;
}

/* Weapon grid */
.weapon-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  margin: 1.5rem 0;
}

.weapon-tile {
  flex: 0 1 200px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .6rem;
  text-align: center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.weapon-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.weapon-tile img {
  border-radius: 8px;
  margin-bottom: .5rem;
}

.weapon-name {
  font-weight: 700;
  font-size: 1rem;
}

/* Weapon infobox polish */
.infobox-weapon .infobox-weapon-image { background: var(--bg); }
.infobox-weapon .infobox-weapon-thumb {
  border-radius: 10px;
  display: inline-block;
}

/* Stat bars */
.infobox-weapon .statline { display: grid; grid-template-columns: auto 1fr; gap: .5rem; align-items: center; }
.infobox-weapon .statnum { font-variant-numeric: tabular-nums; color: var(--text); }
.infobox-weapon .statbar {
  height: 8px;
  background: color-mix(in srgb, var(--brand-2) 10%, var(--bg) 90%);
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--brand-2) 25%, var(--bg) 75%);
}
.infobox-weapon .statbar__fill {
  height: 100%;
  background: var(--brand-2);
  border-radius: 999px;
}

.mw-pageimage-hidden { display:none; }

/* Main page cards */
.mp-card-row { display:flex; flex-wrap:wrap; gap:12px; }
.mp-card { flex:1 1 280px; background:#11161d; color:#e6f1ff; border:1px solid #1b2430; border-radius:12px; padding:12px; }
.mp-card a { color:#7cc0ff; }
.mainpage-hero a { color:#9fd1ff; }

/* Furniture infobox */
.infobox-furniture-wrap { max-width:360px; }
.infobox-furniture { width:100%; table-layout:fixed; }
.infobox-furniture caption { font-weight:700; font-size:1.1em; padding:.4em .6em; }

/* Responsive */
@media (max-width: 900px) {
  .infobox-furniture-wrap { float:none !important; margin:0 auto 1em !important; max-width:520px; }
}