MediaWiki:Timeless.css

OMNIVERSE
Revision as of 02:36, 19 January 2026 by Jbacot (talk | contribs)

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* =========================================================
   OMNIVERSE-style Dark Theme (Timeless)
   Paste into: MediaWiki:Timeless.css
   ========================================================= */


/* ===== Branded header ===== */
#mw-header {
  background: linear-gradient(
    rgba(10,14,20,0.9),
    rgba(10,14,20,0.9)
  ),
  url("/images/wiki-header-bg.jpg") center / cover no-repeat;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

/* Logo spacing */
#p-logo {
  margin-right: 18px;
}

/* Content cards */
.card {
  background: #1a2230;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 16px 18px;
  margin: 16px 0;
}
/* ---------- Theme tokens ---------- */
:root {
  --bg: #0f141c;          /* page background */
  --panel: #1a2230;       /* card background */
  --panel-2: #202a3a;     /* slightly brighter panels */
  --border: rgba(255,255,255,0.08);
  --text: rgba(255,255,255,0.88);
  --muted: rgba(255,255,255,0.65);
  --accent: #f2b233;      /* gold accent */
  --accent-2: #ffd36a;    /* hover */
  --shadow: 0 10px 30px rgba(0,0,0,0.35);
  --radius: 14px;
}

/* ---------- Global background / text ---------- */
html, body {
  background: var(--bg) !important;
  color: var(--text);
}

.mw-parser-output,
.mw-body-content,
#mw-content-text {
  color: var(--text);
}

/* ---------- Links (gold accent, no validator warnings) ---------- */
a {
  color: var(--accent);
  text-decoration: none;
}
a:hover, a:focus {
  color: var(--accent-2);
  text-decoration: underline;
}

/* ---------- Main content “card” ---------- */
/* Timeless usually wraps content in #content and/or .mw-body */
#content, .mw-body, #mw-content-text {
  background: transparent;
}

/* This targets the primary content container and makes it a card.
   If one selector doesn’t apply on your install, another usually will. */
#content {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 18px 20px;
}

/* Improve paragraph readability */
.mw-parser-output {
  line-height: 1.65;
  font-size: 16px;
}
.mw-body-content {
  max-width: 1100px; /* wider, like your forum panels */
}

/* ---------- Headings (forum-like, with gold rule) ---------- */
.mw-parser-output h1,
.mw-parser-output h2,
.mw-parser-output h3 {
  color: rgba(255,255,255,0.92);
  letter-spacing: 0.2px;
}

.mw-parser-output h2 {
  border-bottom: 1px solid var(--border);
  padding-bottom: 8px;
  position: relative;
}

.mw-parser-output h2::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  margin-top: 8px;
  background: var(--accent);
  border-radius: 99px;
}

/* ---------- TOC / Category boxes become cards ---------- */
#toc, .toc, .catlinks {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
}

/* ---------- Tables become “forum panels” ---------- */
.wikitable {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
}

.wikitable th {
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.90);
  font-weight: 600;
}

.wikitable td {
  color: rgba(255,255,255,0.82);
}

.wikitable > * > tr > th,
.wikitable > * > tr > td {
  padding: 10px 12px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.wikitable > * > tr:first-child > th,
.wikitable > * > tr:first-child > td {
  border-top: 0;
}

/* ---------- Code blocks ---------- */
.mw-parser-output pre,
.mw-parser-output .mw-code {
  background: #0c1118;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 12px;
  padding: 12px 14px;
  overflow-x: auto;
}

.mw-parser-output code {
  background: rgba(255,255,255,0.06);
  border-radius: 6px;
  padding: 0.12em 0.35em;
}

/* ---------- Inputs / search / buttons (make them match) ---------- */
input[type="text"],
input[type="search"],
input[type="password"],
textarea,
select {
  background: #0c1118;
  border: 1px solid rgba(255,255,255,0.12);
  color: var(--text);
  border-radius: 10px;
  padding: 8px 10px;
}

input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: rgba(242,178,51,0.65);
  box-shadow: 0 0 0 3px rgba(242,178,51,0.15);
}

/* Buttons used by some MW UI elements */
button,
.mw-ui-button,
input[type="submit"],
input[type="button"] {
  background: var(--accent);
  border: 0;
  color: #141a22;
  border-radius: 10px;
  padding: 8px 12px;
  font-weight: 700;
}

button:hover,
.mw-ui-button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
  background: var(--accent-2);
}

/* ---------- Optional: simple “notice box” classes you can use in pages ---------- */
.mw-parser-output .notice {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin: 12px 0;
}

.mw-parser-output .notice-title {
  font-weight: 700;
  color: rgba(255,255,255,0.92);
  margin-bottom: 6px;
}

/* ===== FINAL OVERRIDE: Seamless TOC wins ===== */
#toc, .toc {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
/* ===== Sidebar cards (Timeless) ===== */
#mw-panel .mw-portlet,
#mw-panel .portlet,
#mw-navigation .mw-portlet,
#mw-navigation .portlet,
.sidebar .mw-portlet,
.sidebar .portlet,
#sidebar .mw-portlet,
#sidebar .portlet {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 16px;
  box-shadow: var(--shadow);
}

/* Sidebar titles */
#mw-panel .mw-portlet h3,
#mw-panel .portlet h3,
#mw-navigation .mw-portlet h3,
#mw-navigation .portlet h3,
.sidebar .mw-portlet h3,
.sidebar .portlet h3,
#sidebar .mw-portlet h3,
#sidebar .portlet h3 {
  color: rgba(255,255,255,0.80);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 10px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

/* Sidebar lists */
#mw-panel .mw-portlet ul,
#mw-panel .portlet ul,
#mw-navigation .mw-portlet ul,
#mw-navigation .portlet ul,
.sidebar .mw-portlet ul,
.sidebar .portlet ul,
#sidebar .mw-portlet ul,
#sidebar .portlet ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Sidebar links */
#mw-panel .mw-portlet li a,
#mw-panel .portlet li a,
#mw-navigation .mw-portlet li a,
#mw-navigation .portlet li a,
.sidebar .mw-portlet li a,
.sidebar .portlet li a,
#sidebar .mw-portlet li a,
#sidebar .portlet li a {
  display: block;
  padding: 8px 10px;
  border-radius: 8px;
  color: rgba(255,255,255,0.76);
  text-decoration: none;
}

#mw-panel .mw-portlet li a:hover,
#mw-panel .portlet li a:hover,
#mw-navigation .mw-portlet li a:hover,
#mw-navigation .portlet li a:hover,
.sidebar .mw-portlet li a:hover,
.sidebar .portlet li a:hover,
#sidebar .mw-portlet li a:hover,
#sidebar .portlet li a:hover {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.95);
}

/* =================================================
   HARD TARGET: Sidebar portlets by canonical IDs
   (works even if Timeless uses a different wrapper)
   ================================================= */

/* Common sidebar portlet IDs */
#p-navigation,
#p-tb,
#p-interaction,
#p-coll-print_export,
#p-wikibase-otherprojects,
#p-lang,
#p-personal,
#p-views,
#p-cactions,
#p-search {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  padding: 12px 14px !important;
  margin: 0 0 16px 0 !important;
  box-shadow: var(--shadow) !important;
}

/* Portlet headings */
#p-navigation h3,
#p-tb h3,
#p-interaction h3,
#p-coll-print_export h3,
#p-wikibase-otherprojects h3,
#p-lang h3 {
  color: rgba(255,255,255,0.80) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 10px 0 !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

/* Lists */
#p-navigation ul,
#p-tb ul,
#p-interaction ul,
#p-coll-print_export ul,
#p-wikibase-otherprojects ul,
#p-lang ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Links */
#p-navigation li a,
#p-tb li a,
#p-interaction li a,
#p-coll-print_export li a,
#p-wikibase-otherprojects li a,
#p-lang li a {
  display: block !important;
  padding: 8px 10px !important;
  border-radius: 8px !important;
  color: rgba(255,255,255,0.76) !important;
  text-decoration: none !important;
}

#p-navigation li a:hover,
#p-tb li a:hover,
#p-interaction li a:hover,
#p-coll-print_export li a:hover,
#p-wikibase-otherprojects li a:hover,
#p-lang li a:hover {
  background: rgba(255,255,255,0.06) !important;
  color: rgba(255,255,255,0.95) !important;
}

/* =================================================
   Make the sidebar column match the dark theme
   ================================================= */

/* The entire left column background */
#mw-panel,
#mw-navigation,
#sidebar,
.sidebar {
  background: transparent;
}

/* Timeless often uses an inner "sheet" behind the sidebar */
#mw-panel::before,
#mw-navigation::before,
#sidebar::before,
.sidebar::before {
  content: none;
}

/* If the sidebar is wrapped in a light container, darken it */
#mw-panel,
#mw-navigation,
#sidebar,
.sidebar,
#mw-panel * {
  /* do NOT blanket recolor everything; keep this minimal */
}

/* Common Timeless layout wrappers that may be light */
#mw-content-wrapper,
#mw-wrapper,
#content-wrapper,
#mw-page-base,
#mw-head-base {
  background: transparent;
}

/* Force the left side "gutter" to match page background */
body,
html {
  background: var(--bg);
}

/* Sidebar logo area (optional) */
#p-logo {
  background: transparent;
}
/* =================================================
   FORCE dark “page chrome” backgrounds (Timeless)
   This targets the common wrapper layers Timeless uses.
   ================================================= */

html, body {
  background-color: var(--bg) !important;
}

/* Common Timeless / MediaWiki wrapper layers that often stay light */
#mw-wrapper,
#mw-content-wrapper,
#mw-page-base,
#mw-head-base,
#mw-panel,
#mw-navigation,
#sidebar,
.sidebar,
.mw-page-container,
.mw-body,
.mw-body-content,
#mw-content-text,
#content {
  background-color: transparent !important;
  background: transparent !important;
}

/* The actual “gutter / canvas” behind side columns */
#mw-wrapper,
#mw-content-wrapper,
.mw-page-container {
  background-color: var(--bg) !important;
}

/* Left & right columns (if they have their own surface color) */
#mw-panel,
#mw-navigation,
#sidebar,
.sidebar {
  background-color: var(--bg) !important;
}

/* Right “page tools” area sometimes lives in these */
#mw-content-container,
#mw-panel-wrapper,
#mw-navigation-wrapper,
#mw-sidebar,
#mw-aside {
  background-color: var(--bg) !important;
  background: transparent !important;
}