MediaWiki:Gadget-darkmode.css
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.
/**
* RemiliaWiki Dark Mode Styles
* Add to: MediaWiki:Gadget-darkmode.css
* Skin: Vector Legacy
*/
/* ==========================================================================
CSS VARIABLES
========================================================================== */
:root {
/* Light mode (default) */
--bg-body: #f6f6f6;
--bg-content: #ffffff;
--bg-secondary: #f8f9fa;
--bg-tertiary: #eaecf0;
--text-primary: #202122;
--text-secondary: #54595d;
--text-muted: #72777d;
--border-color: #a2a9b1;
--border-subtle: #c8ccd1;
--border-faint: #eaecf0;
--link-color: #0645ad;
--link-visited: #0b0080;
--link-new: #d33;
--link-external: #36b;
--accent-primary: #36c;
--accent-progressive: #36c;
--accent-destructive: #d33;
/* Tables */
--table-header-bg: #eaecf0;
--table-row-alt: #f8f9fa;
/* Infobox */
--infobox-bg: #f8f9fa;
--infobox-header: #c8ccd1;
/* TOC */
--toc-bg: #f8f9fa;
/* Code */
--code-bg: #f8f9fa;
--code-border: #eaecf0;
/* Diffs */
--diff-added-bg: #d8ecde;
--diff-added-border: #a3d3b3;
--diff-deleted-bg: #feeaea;
--diff-deleted-border: #f8b4b4;
--diff-context-bg: #f8f9fa;
/* Notices */
--notice-bg: #eaf3ff;
--notice-border: #36c;
--warning-bg: #fef6e7;
--warning-border: #fc3;
/* Headings */
--heading-color: #202122;
}
[data-theme="dark"] {
/* Dark mode overrides - edith.reisen inspired high-contrast */
--bg-body: #000000;
--bg-content: #0a0a0a;
--bg-secondary: #111111;
--bg-tertiary: #1a1a1a;
--text-primary: #ffffff;
--text-secondary: #b0b0b0;
--text-muted: #808080;
--border-color: #333333;
--border-subtle: #252525;
--border-faint: #1a1a1a;
/* Orange accent links (edith.reisen style) */
--link-color: #ff6600;
--link-visited: #cc5500;
--link-new: #ff4444;
--link-external: #ff8833;
--accent-primary: #ff6600;
--accent-progressive: #ff6600;
--accent-destructive: #ff6b6b;
/* Tables */
--table-header-bg: #1a1a1a;
--table-row-alt: #111111;
/* Infobox */
--infobox-bg: #111111;
--infobox-header: #1a1a1a;
/* TOC */
--toc-bg: #111111;
/* Code - blue background like edith.reisen */
--code-bg: #000066;
--code-border: #0000aa;
/* Diffs */
--diff-added-bg: #0a1f0a;
--diff-added-border: #1a4020;
--diff-deleted-bg: #1f0a0a;
--diff-deleted-border: #401a1a;
--diff-context-bg: #111111;
/* Notices */
--notice-bg: #0a1a2a;
--notice-border: #ff6600;
--warning-bg: #2a1a0a;
--warning-border: #ff6600;
/* Orange headings (edith.reisen style) */
--heading-color: #ff6600;
}
/* ==========================================================================
DARK MODE TOGGLE
========================================================================== */
#pt-darkmode a {
font-family: "Segoe UI Symbol", "Noto Sans Symbols", "Apple Symbols", sans-serif;
font-size: 1.1em;
}
/* ==========================================================================
CORE LAYOUT - VECTOR LEGACY
========================================================================== */
[data-theme="dark"] body {
background: var(--bg-body);
color: var(--text-primary);
}
[data-theme="dark"] #content {
background: var(--bg-content);
color: var(--text-primary);
border-color: var(--border-color);
}
[data-theme="dark"] #mw-page-base {
background: linear-gradient(to bottom, var(--bg-content) 50%, var(--bg-body) 100%);
background-image: linear-gradient(to bottom, var(--bg-content) 50%, var(--bg-body) 100%);
background-position: bottom left;
height: 5em;
}
[data-theme="dark"] #mw-head-base {
background: linear-gradient(to bottom, var(--bg-content) 50%, var(--bg-body) 100%);
background-image: linear-gradient(to bottom, var(--bg-content) 50%, var(--bg-body) 100%);
border-bottom: 1px solid var(--accent-primary);
}
[data-theme="dark"] #mw-panel {
background: var(--bg-body);
}
[data-theme="dark"] #mw-panel .vector-menu-portal {
background: transparent;
}
[data-theme="dark"] .vector-legacy-sidebar {
background: var(--bg-body);
}
[data-theme="dark"] .vector-legacy-sidebar .vector-menu-portal {
background: transparent;
}
[data-theme="dark"] .vector-legacy-sidebar .vector-menu-content {
background: transparent;
}
[data-theme="dark"] #mw-panel .vector-menu-content {
background: transparent;
}
[data-theme="dark"] #mw-navigation {
background: var(--bg-body);
}
[data-theme="dark"] #footer {
background: var(--bg-body);
border-top-color: var(--border-color);
color: var(--text-secondary);
}
[data-theme="dark"] #footer ul li {
color: var(--text-muted);
}
[data-theme="dark"] #footer ul li a {
color: var(--text-secondary);
}
[data-theme="dark"] #footer-info-viewcount {
color: var(--accent-primary);
}
[data-theme="dark"] #left-navigation,
[data-theme="dark"] #right-navigation {
background: transparent;
}
/* Tabs - Vector Legacy Style (Dark Translation) */
/* Using exact measurements from vector-legacy-skin.css reference */
/* Tab container */
[data-theme="dark"] .vector-menu-tabs-legacy,
[data-theme="dark"] .vector-menu-tabs {
background-position: left bottom;
float: left;
height: 2.5em;
padding-left: 1px;
}
[data-theme="dark"] .vector-menu-tabs-legacy ul,
[data-theme="dark"] .vector-menu-tabs ul {
float: left;
height: 100%;
list-style: none;
margin: 0;
padding: 0;
}
/* Individual tab - gradient from orange line at bottom to dark at top */
[data-theme="dark"] .vector-menu-tabs-legacy li,
[data-theme="dark"] .vector-menu-tabs li {
background-image: linear-gradient(to top, var(--accent-primary) 0, #1a1a1a 1px, var(--bg-content) 100%);
background-position: left bottom;
background-repeat: repeat-x;
float: left;
display: block;
height: 100%;
margin: 0;
padding: 0;
line-height: 1.125em;
white-space: nowrap;
}
/* Tab links */
[data-theme="dark"] .vector-menu-tabs-legacy li a,
[data-theme="dark"] .vector-menu-tabs li a {
background-position: right bottom;
color: var(--text-muted);
box-sizing: border-box;
display: block;
float: left;
height: 3.07692308em;
position: relative;
padding-top: 1.25em;
padding-left: 8px;
padding-right: 8px;
font-size: 0.8125em;
cursor: pointer;
}
/* Selected tab - solid content background */
[data-theme="dark"] .vector-menu-tabs-legacy .selected,
[data-theme="dark"] .vector-menu-tabs .selected {
background: var(--bg-content);
}
[data-theme="dark"] .vector-menu-tabs-legacy .selected a,
[data-theme="dark"] .vector-menu-tabs-legacy .selected a:visited,
[data-theme="dark"] .vector-menu-tabs .selected a,
[data-theme="dark"] .vector-menu-tabs .selected a:visited {
color: var(--accent-primary);
text-decoration: none;
}
/* Orange underline gradient on tabs */
[data-theme="dark"] .vector-menu-tabs,
[data-theme="dark"] .vector-menu-tabs a,
[data-theme="dark"] #mw-head .vector-menu-dropdown .vector-menu-heading {
background-image: linear-gradient(to bottom, rgba(255, 102, 0, 0) 0, var(--accent-primary) 100%);
background-repeat: no-repeat;
background-size: 1px 100%;
}
/* New (red) links in tabs */
[data-theme="dark"] .vector-menu-tabs li.new a,
[data-theme="dark"] .vector-menu-tabs-legacy li.new a {
color: var(--link-new);
}
/* Dropdown menu heading gradient */
[data-theme="dark"] #mw-head .vector-menu-dropdown .vector-menu-heading {
background-image: linear-gradient(to bottom, rgba(255, 102, 0, 0) 0, var(--accent-primary) 100%);
background-repeat: no-repeat;
background-size: 1px 100%;
background-position: right bottom;
}
/* ==========================================================================
NAVIGATION & MENUS
========================================================================== */
[data-theme="dark"] .vector-menu-portal .vector-menu-heading {
color: var(--text-secondary);
/* Match Vector Legacy gradient underline - translated to dark */
background-image: linear-gradient(to right, rgba(51, 51, 51, 0) 0, #333 33%, #333 66%, rgba(51, 51, 51, 0) 100%);
background-position: center bottom;
background-repeat: no-repeat;
background-size: 100% 1px;
}
[data-theme="dark"] .vector-menu-portal .vector-menu-content li a {
color: var(--link-color);
}
[data-theme="dark"] .vector-menu-portal .vector-menu-content li a:visited {
color: var(--link-visited);
}
/* Hide watchlist text (show only star icon) */
[data-theme="dark"] #ca-unwatch span,
[data-theme="dark"] #ca-watch span {
color: transparent;
font-size: 0;
line-height: 0;
}
[data-theme="dark"] #simpleSearch {
background: var(--bg-secondary);
border-color: var(--border-color);
border-radius: 0;
}
[data-theme="dark"] #simpleSearch input {
color: var(--text-primary);
background: transparent;
}
[data-theme="dark"] #simpleSearch #searchButton,
[data-theme="dark"] #simpleSearch #mw-searchButton {
filter: invert(1);
opacity: 0.7;
}
/* Suggestions / Search Results */
[data-theme="dark"] .suggestions {
background-color: var(--bg-content);
border-color: var(--border-color);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}
[data-theme="dark"] .suggestions-results {
background-color: var(--bg-content);
}
[data-theme="dark"] .suggestions-result {
color: var(--text-secondary);
}
[data-theme="dark"] .suggestions-result-current {
background-color: var(--bg-tertiary);
color: var(--accent-primary);
}
[data-theme="dark"] .suggestions-special {
background-color: var(--bg-secondary);
color: var(--accent-primary);
border-top-color: var(--border-color);
}
/* Personal menu */
[data-theme="dark"] #p-personal li a {
color: var(--link-color);
}
/* Dropdown menus */
[data-theme="dark"] .vector-menu-content {
background: var(--bg-content);
border-color: var(--border-color);
}
[data-theme="dark"] .vector-menu-content li a {
color: var(--link-color);
}
[data-theme="dark"] .vector-menu-content li a:hover {
background: var(--bg-secondary);
}
/* ==========================================================================
LINKS
========================================================================== */
[data-theme="dark"] a {
color: var(--link-color);
}
[data-theme="dark"] a:visited {
color: var(--link-visited);
}
[data-theme="dark"] a.new {
color: var(--link-new);
}
[data-theme="dark"] a.external {
color: var(--link-external);
}
[data-theme="dark"] #mw-content-text a.external {
color: var(--link-external);
}
/* ==========================================================================
HEADINGS
========================================================================== */
[data-theme="dark"] #firstHeading,
[data-theme="dark"] .firstHeading,
[data-theme="dark"] .mw-headline,
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4 {
color: var(--heading-color);
}
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
color: var(--text-primary);
}
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
border-color: var(--border-color);
}
/* Heading underlines - matches Vector Legacy border-bottom on h1/h2 */
[data-theme="dark"] .mw-body-content h1,
[data-theme="dark"] .mw-body-content h2,
[data-theme="dark"] .mw-body-content .mw-heading1,
[data-theme="dark"] .mw-body-content .mw-heading2 {
border-bottom-color: var(--border-color);
}
/* ==========================================================================
TABLE OF CONTENTS
========================================================================== */
[data-theme="dark"] #toc,
[data-theme="dark"] .toc {
background: var(--toc-bg);
border-color: var(--border-color);
}
[data-theme="dark"] #toc h2,
[data-theme="dark"] .toc h2 {
color: var(--text-primary);
}
[data-theme="dark"] #toc ul li a,
[data-theme="dark"] .toc ul li a {
color: var(--link-color);
}
[data-theme="dark"] .tocnumber {
color: var(--text-secondary);
}
/* ==========================================================================
TABLES
========================================================================== */
[data-theme="dark"] table {
color: var(--text-primary);
}
[data-theme="dark"] table.wikitable {
background: var(--bg-content);
border-color: var(--border-color);
}
[data-theme="dark"] table.wikitable>tr>th,
[data-theme="dark"] table.wikitable>*>tr>th {
background: var(--table-header-bg);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] table.wikitable>tr>td,
[data-theme="dark"] table.wikitable>*>tr>td {
border-color: var(--border-color);
}
[data-theme="dark"] table.wikitable>tr:nth-child(even)>td,
[data-theme="dark"] table.wikitable>*>tr:nth-child(even)>td {
background: var(--table-row-alt);
}
/* Sortable tables */
[data-theme="dark"] table.sortable th {
background: var(--table-header-bg);
}
/* ==========================================================================
INFOBOXES
========================================================================== */
[data-theme="dark"] .infobox {
background: var(--infobox-bg);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .infobox th {
background: var(--infobox-header);
color: var(--text-primary);
}
[data-theme="dark"] .infobox td {
border-color: var(--border-subtle);
}
[data-theme="dark"] .infobox-header,
[data-theme="dark"] .infobox-above {
background: #ff6600;
color: #000;
}
/* ==========================================================================
NAVBOXES
========================================================================== */
[data-theme="dark"] .navbox {
background-color: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .navbox-title {
background-color: #3a3a3a;
color: var(--text-primary);
}
[data-theme="dark"] .navbox-above,
[data-theme="dark"] .navbox-below {
background-color: #2d2d2d;
color: var(--text-primary);
}
[data-theme="dark"] .navbox-group {
background-color: #2d2d2d;
color: var(--text-primary);
}
[data-theme="dark"] .navbox-subheader {
background-color: #333;
color: var(--text-primary);
}
[data-theme="dark"] .navbox-list {
border-left-color: var(--bg-secondary);
color: var(--text-secondary);
}
[data-theme="dark"] .navbox tr:nth-child(even) .navbox-list {
background-color: #1a1a1a;
}
[data-theme="dark"] .navbox tr:nth-child(odd) .navbox-list {
background-color: var(--bg-secondary);
}
[data-theme="dark"] .navbox a {
color: var(--link-color);
}
[data-theme="dark"] .navbox a:visited {
color: var(--link-visited);
}
/* ==========================================================================
CODE & PREFORMATTED TEXT
========================================================================== */
[data-theme="dark"] pre,
[data-theme="dark"] code,
[data-theme="dark"] .mw-code {
background: var(--code-bg);
border-color: var(--code-border);
color: var(--text-primary);
}
[data-theme="dark"] pre {
border: 1px solid var(--code-border);
}
/* ==========================================================================
SYNTAXHIGHLIGHT EXTENSION
========================================================================== */
[data-theme="dark"] .mw-highlight {
background: var(--code-bg);
border-color: var(--code-border);
}
[data-theme="dark"] .mw-highlight pre {
background: var(--code-bg);
color: var(--text-primary);
}
/* Pygments dark theme overrides */
[data-theme="dark"] .mw-highlight .c,
[data-theme="dark"] .mw-highlight .ch,
[data-theme="dark"] .mw-highlight .cm,
[data-theme="dark"] .mw-highlight .cpf,
[data-theme="dark"] .mw-highlight .c1,
[data-theme="dark"] .mw-highlight .cs {
color: #6a9955;
}
/* Comments */
[data-theme="dark"] .mw-highlight .k,
[data-theme="dark"] .mw-highlight .kc,
[data-theme="dark"] .mw-highlight .kd,
[data-theme="dark"] .mw-highlight .kn,
[data-theme="dark"] .mw-highlight .kp,
[data-theme="dark"] .mw-highlight .kr,
[data-theme="dark"] .mw-highlight .kt {
color: #569cd6;
}
/* Keywords */
[data-theme="dark"] .mw-highlight .s,
[data-theme="dark"] .mw-highlight .sa,
[data-theme="dark"] .mw-highlight .sb,
[data-theme="dark"] .mw-highlight .sc,
[data-theme="dark"] .mw-highlight .dl,
[data-theme="dark"] .mw-highlight .sd,
[data-theme="dark"] .mw-highlight .s2,
[data-theme="dark"] .mw-highlight .se,
[data-theme="dark"] .mw-highlight .sh,
[data-theme="dark"] .mw-highlight .si,
[data-theme="dark"] .mw-highlight .sx,
[data-theme="dark"] .mw-highlight .sr,
[data-theme="dark"] .mw-highlight .s1,
[data-theme="dark"] .mw-highlight .ss {
color: #ce9178;
}
/* Strings */
[data-theme="dark"] .mw-highlight .m,
[data-theme="dark"] .mw-highlight .mb,
[data-theme="dark"] .mw-highlight .mf,
[data-theme="dark"] .mw-highlight .mh,
[data-theme="dark"] .mw-highlight .mi,
[data-theme="dark"] .mw-highlight .mo,
[data-theme="dark"] .mw-highlight .il {
color: #b5cea8;
}
/* Numbers */
[data-theme="dark"] .mw-highlight .n {
color: #dcdcaa;
}
/* Names */
[data-theme="dark"] .mw-highlight .na {
color: #9cdcfe;
}
/* Name.Attribute */
[data-theme="dark"] .mw-highlight .nb {
color: #dcdcaa;
}
/* Name.Builtin */
[data-theme="dark"] .mw-highlight .nc {
color: #4ec9b0;
}
/* Name.Class */
[data-theme="dark"] .mw-highlight .nf {
color: #dcdcaa;
}
/* Name.Function */
[data-theme="dark"] .mw-highlight .nn {
color: #4ec9b0;
}
/* Name.Namespace */
[data-theme="dark"] .mw-highlight .nv {
color: #9cdcfe;
}
/* Name.Variable */
[data-theme="dark"] .mw-highlight .o,
[data-theme="dark"] .mw-highlight .ow {
color: #d4d4d4;
}
/* Operators */
[data-theme="dark"] .mw-highlight .p {
color: #d4d4d4;
}
/* Punctuation */
[data-theme="dark"] .mw-highlight .cp {
color: #c586c0;
}
/* Comment.Preproc */
[data-theme="dark"] .mw-highlight .err {
color: #f44747;
}
/* Error */
/* Line numbers */
[data-theme="dark"] .mw-highlight .linenos {
color: var(--text-muted);
background: var(--bg-tertiary);
border-right-color: var(--border-subtle);
}
/* ==========================================================================
DIFF VIEWS
========================================================================== */
[data-theme="dark"] table.diff {
background: var(--bg-content);
color: var(--text-primary);
}
[data-theme="dark"] td.diff-context {
background: var(--diff-context-bg);
color: var(--text-primary);
}
[data-theme="dark"] td.diff-addedline {
background: var(--diff-added-bg);
border-color: var(--diff-added-border);
}
[data-theme="dark"] td.diff-addedline .diffchange {
background: #1a5028;
}
[data-theme="dark"] td.diff-deletedline {
background: var(--diff-deleted-bg);
border-color: var(--diff-deleted-border);
}
[data-theme="dark"] td.diff-deletedline .diffchange {
background: #5c1f24;
}
[data-theme="dark"] td.diff-marker {
color: var(--text-secondary);
}
[data-theme="dark"] .diff-ntitle,
[data-theme="dark"] .diff-otitle {
background: var(--bg-secondary);
color: var(--text-primary);
}
/* ==========================================================================
VISUALEDITOR
========================================================================== */
[data-theme="dark"] .ve-ui-surface {
background: var(--bg-content);
color: var(--text-primary);
}
[data-theme="dark"] .ve-ce-documentNode {
background: var(--bg-content);
}
[data-theme="dark"] .ve-ui-toolbar {
background: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .ve-ui-toolbar-bar {
background: var(--bg-secondary);
}
[data-theme="dark"] .oo-ui-toolbar-tools {
background: var(--bg-secondary);
}
[data-theme="dark"] .oo-ui-toolbar-bar {
background: var(--bg-secondary);
border-color: var(--border-color);
}
/* OOUI Widgets */
[data-theme="dark"] .oo-ui-widget {
color: var(--text-primary);
}
[data-theme="dark"] .oo-ui-buttonElement-framed.oo-ui-widget-enabled>.oo-ui-buttonElement-button {
background: var(--bg-secondary);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .oo-ui-buttonElement-framed.oo-ui-widget-enabled>.oo-ui-buttonElement-button:hover {
background: var(--bg-tertiary);
}
[data-theme="dark"] .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive>.oo-ui-buttonElement-button {
background: var(--accent-progressive);
border-color: var(--accent-progressive);
}
[data-theme="dark"] .oo-ui-textInputWidget input,
[data-theme="dark"] .oo-ui-textInputWidget textarea {
background: var(--bg-secondary);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .oo-ui-menuSelectWidget {
background: var(--bg-content);
border-color: var(--border-color);
}
[data-theme="dark"] .oo-ui-menuOptionWidget {
color: var(--text-primary);
}
[data-theme="dark"] .oo-ui-menuOptionWidget:hover {
background: var(--bg-secondary);
}
[data-theme="dark"] .oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
background: var(--bg-tertiary);
}
/* Dialog windows */
[data-theme="dark"] .oo-ui-window-frame {
background: var(--bg-content);
}
[data-theme="dark"] .oo-ui-dialog-content {
background: var(--bg-content);
}
[data-theme="dark"] .oo-ui-processDialog-navigation {
background: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .oo-ui-processDialog-title {
color: var(--text-primary);
}
/* VE panels and inspectors */
[data-theme="dark"] .ve-ui-mwSaveDialog-summary textarea {
background: var(--bg-secondary);
color: var(--text-primary);
}
[data-theme="dark"] .ve-ui-mwSaveDialog-options {
background: var(--bg-secondary);
border-color: var(--border-color);
}
/* ==========================================================================
FORMS & INPUTS
========================================================================== */
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
background: var(--bg-secondary);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus {
border-color: var(--accent-primary);
}
[data-theme="dark"] input[type="submit"],
[data-theme="dark"] button {
background: var(--bg-tertiary);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] input[type="submit"]:hover,
[data-theme="dark"] button:hover {
background: var(--border-color);
}
[data-theme="dark"] fieldset {
border-color: var(--border-color);
}
[data-theme="dark"] legend {
color: var(--text-primary);
}
/* ==========================================================================
NOTICES & MESSAGE BOXES
========================================================================== */
[data-theme="dark"] .mw-message-box {
background: var(--notice-bg);
border-color: var(--notice-border);
color: var(--text-primary);
}
[data-theme="dark"] .mw-message-box-warning {
background: var(--warning-bg);
border-color: var(--warning-border);
}
[data-theme="dark"] .warningbox {
background: var(--warning-bg);
border-color: var(--warning-border);
}
[data-theme="dark"] .errorbox {
background: var(--diff-deleted-bg);
border-color: var(--diff-deleted-border);
}
[data-theme="dark"] .successbox {
background: var(--diff-added-bg);
border-color: var(--diff-added-border);
}
/* Site notices */
[data-theme="dark"] #siteNotice {
background: var(--bg-secondary);
border-color: var(--border-color);
}
/* Category links */
[data-theme="dark"] #catlinks {
background: var(--bg-secondary);
border-color: var(--border-color);
}
/* ==========================================================================
IMAGES
========================================================================== */
/* Subtle treatment for images on dark backgrounds */
[data-theme="dark"] #mw-content-text img {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.4);
}
/* Remove shadow from interface images */
/* === IMAGES & THUMBNAILS === */
[data-theme="dark"] img {
opacity: 0.9;
transition: opacity 0.2s;
}
[data-theme="dark"] img:hover {
opacity: 1;
}
[data-theme="dark"] .thumbinner {
background-color: var(--bg-secondary);
border: 1px solid var(--border-color);
}
[data-theme="dark"] .thumbcaption {
color: var(--text-muted);
}
[data-theme="dark"] .magnify a {
filter: invert(1);
opacity: 0.7;
}
/* Remove shadow from interface images & Invert Icons */
[data-theme="dark"] #mw-head img,
[data-theme="dark"] #mw-panel img {
box-shadow: none;
}
/* Invert standard icons (CheckUser, Echo, Edit toolbar) to white */
[data-theme="dark"] .oo-ui-iconElement-icon,
[data-theme="dark"] .mw-ui-icon,
[data-theme="dark"] .tool-button .icon {
filter: invert(1) hue-rotate(180deg);
}
/* Re-invert icons that were already correct or part of specific widgets that handle them */
/* [data-theme="dark"] .oo-ui-icon-check,
[data-theme="dark"] .mw-ui-icon-flush-left {
} */
/* Notification Bell Specifics */
[data-theme="dark"] #pt-notifications-alert .mw-echo-notifications-badge,
[data-theme="dark"] #pt-notifications-notice .mw-echo-notifications-badge {
filter: invert(1);
opacity: 0.8;
}
[data-theme="dark"] #pt-notifications-alert .mw-echo-notifications-badge:hover,
[data-theme="dark"] #pt-notifications-notice .mw-echo-notifications-badge:hover {
opacity: 1;
}
/* Thumbnails */
[data-theme="dark"] .thumb {
border-color: var(--border-subtle);
background: var(--bg-secondary);
}
[data-theme="dark"] .thumbinner {
background: var(--bg-secondary);
border-color: var(--border-subtle);
}
[data-theme="dark"] .thumbcaption {
color: var(--text-secondary);
}
/* Galleries */
[data-theme="dark"] .gallery .gallerybox {
background: var(--bg-secondary);
}
[data-theme="dark"] .gallery .gallerytext {
color: var(--text-secondary);
}
/* Math - invert black formulas */
[data-theme="dark"] img.mwe-math-fallback-image-inline,
[data-theme="dark"] img.mwe-math-fallback-image-display {
filter: invert(0.88) hue-rotate(180deg);
}
/* Optional class for diagrams that should be inverted */
[data-theme="dark"] .dark-invert {
filter: invert(1) hue-rotate(180deg);
}
/* ==========================================================================
SPECIAL PAGES
========================================================================== */
/* Recent changes */
[data-theme="dark"] .mw-changeslist-line-inner {
color: var(--text-primary);
}
[data-theme="dark"] .mw-plusminus-pos {
color: #4ade80;
}
[data-theme="dark"] .mw-plusminus-neg {
color: #f87171;
}
[data-theme="dark"] .mw-plusminus-null {
color: var(--text-muted);
}
/* Watchlist */
[data-theme="dark"] .mw-changeslist-watchlist {
background: var(--bg-content);
}
/* History */
[data-theme="dark"] #pagehistory li {
border-color: var(--border-faint);
}
[data-theme="dark"] #pagehistory li.selected {
background: var(--bg-secondary);
}
/* Preferences */
[data-theme="dark"] .mw-prefs-buttons {
background: var(--bg-secondary);
}
[data-theme="dark"] .oo-ui-panelLayout-framed {
background: var(--bg-content);
border-color: var(--border-color);
}
/* ==========================================================================
MISC ELEMENTS
========================================================================== */
[data-theme="dark"] hr {
border-color: var(--border-subtle);
}
[data-theme="dark"] blockquote {
border-left-color: var(--border-color);
color: var(--text-secondary);
}
[data-theme="dark"] dt {
color: var(--text-primary);
}
[data-theme="dark"] dd {
color: var(--text-secondary);
}
/* Edit section links */
[data-theme="dark"] .mw-editsection a {
color: var(--link-color);
}
/* Hatnotes */
[data-theme="dark"] .hatnote {
color: var(--text-secondary);
}
/* Scroll shadows for overflowing content */
[data-theme="dark"] .mw-parser-output .scrollable-table {
background: linear-gradient(to right,
var(--bg-content) 30%,
transparent);
}
/* ==========================================================================
CITATION TEMPLATES (REMILIAWIKI SPECIFIC)
========================================================================== */
[data-theme="dark"] .reference {
color: var(--text-secondary);
}
[data-theme="dark"] .references {
color: var(--text-primary);
}
[data-theme="dark"] .citation {
color: var(--text-primary);
}
/* ==========================================================================
TABBERNEUE EXTENSION
========================================================================== */
[data-theme="dark"] .tabber {
background: var(--bg-content);
}
[data-theme="dark"] .tabber__header {
background: var(--bg-secondary);
border-bottom-color: var(--border-color);
}
[data-theme="dark"] .tabber__tabs {
background: var(--bg-secondary);
}
[data-theme="dark"] .tabber__tab {
color: var(--text-primary);
background: transparent;
}
[data-theme="dark"] .tabber__tab:hover {
background: var(--bg-tertiary);
}
[data-theme="dark"] .tabber__tab[aria-selected="true"],
[data-theme="dark"] .tabber__tab--active {
color: var(--heading-color);
background: var(--bg-content);
}
[data-theme="dark"] .tabber__indicator {
background: var(--heading-color);
}
[data-theme="dark"] .tabber__panel {
background: var(--bg-content);
color: var(--text-primary);
}
/* Tabber navigation arrows */
[data-theme="dark"] .tabber__header__prev,
[data-theme="dark"] .tabber__header__next {
background: var(--bg-secondary);
color: var(--text-primary);
}
[data-theme="dark"] .tabber__header__prev:hover,
[data-theme="dark"] .tabber__header__next:hover {
background: var(--bg-tertiary);
}
/* ==========================================================================
CARGO EXTENSION
========================================================================== */
/* Cargo tables */
[data-theme="dark"] .cargoDynamicTable {
background: var(--bg-content);
color: var(--text-primary);
}
[data-theme="dark"] .cargoDynamicTable th {
background: var(--table-header-bg);
color: var(--text-primary);
border-color: var(--border-color);
}
[data-theme="dark"] .cargoDynamicTable td {
border-color: var(--border-color);
}
[data-theme="dark"] .cargoDynamicTable tr:nth-child(even) td {
background: var(--table-row-alt);
}
/* Cargo drilldown */
[data-theme="dark"] .drilldown-filters {
background: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .drilldown-filter {
background: var(--bg-tertiary);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .drilldown-filter a {
color: var(--link-color);
}
[data-theme="dark"] .drilldown-filter-values {
background: var(--bg-content);
}
[data-theme="dark"] .drilldown-parent-tables {
background: var(--bg-secondary);
}
/* Cargo query results */
[data-theme="dark"] .cargoQueryResults {
background: var(--bg-content);
color: var(--text-primary);
}
/* ==========================================================================
ECHO NOTIFICATIONS
========================================================================== */
[data-theme="dark"] .mw-echo-ui-notificationItemWidget {
background: var(--bg-content);
border-color: var(--border-color);
}
[data-theme="dark"] .mw-echo-ui-notificationItemWidget:hover {
background: var(--bg-secondary);
}
[data-theme="dark"] .mw-echo-ui-notificationItemWidget-content-message-header {
color: var(--text-primary);
}
[data-theme="dark"] .mw-echo-ui-notificationItemWidget-content-message-body {
color: var(--text-secondary);
}
[data-theme="dark"] .oo-ui-popupWidget-popup {
background: var(--bg-content);
border-color: var(--border-color);
}
[data-theme="dark"] .mw-echo-ui-notificationBadgeButtonPopupWidget-popup {
background: var(--bg-content);
}
[data-theme="dark"] .mw-echo-ui-notificationsWidget {
background: var(--bg-content);
}
/* ==========================================================================
LOADING INDICATOR
========================================================================== */
[data-theme="dark"] .mw-spinner {
filter: invert(1);
}
/* ==========================================================================
PRINT SAFETY
========================================================================== */
@media print {
:root {
--bg-body: #fff !important;
--bg-content: #fff !important;
--text-primary: #000 !important;
--text-secondary: #333 !important;
--link-color: #000 !important;
--heading-color: #000 !important;
}
#pt-darkmode {
display: none;
}
img {
filter: none !important;
box-shadow: none !important;
}
}
/* Transitions only after page load (class added by JS) */
.darkmode-transitions,
.darkmode-transitions #content,
.darkmode-transitions #mw-panel,
.darkmode-transitions a {
transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
/* ==========================================================================
RECENT CHANGES FILTERS (ADVANCED UI)
========================================================================== */
/* Main Container */
[data-theme="dark"] .mw-rcfilters-ui-filterWrapperWidget-top {
background: var(--bg-content);
}
[data-theme="dark"] .mw-rcfilters-ui-table-placeholder {
background: var(--bg-content);
color: var(--text-secondary);
}
/* Search/Tag Input Widget */
[data-theme="dark"] .mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled {
background: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title {
color: var(--text-primary);
}
[data-theme="dark"] .mw-rcfilters-ui-filterTagMultiselectWidget-views-select-widget.oo-ui-widget-enabled {
background: transparent;
}
/* Tokens/Tags */
[data-theme="dark"] .oo-ui-tagItemWidget-fixed {
background: var(--bg-tertiary);
border-color: var(--border-subtle);
color: var(--text-primary);
}
[data-theme="dark"] .oo-ui-tagItemWidget-fixed:hover {
background: var(--bg-content);
border-color: var(--accent-primary);
}
/* Dropdown Menus */
[data-theme="dark"] .mw-rcfilters-ui-filterMenuHeaderWidget-header {
background: var(--bg-tertiary);
color: var(--text-primary);
border-bottom-color: var(--border-color);
}
[data-theme="dark"] .mw-rcfilters-ui-itemMenuOptionWidget {
color: var(--text-primary);
}
[data-theme="dark"] .mw-rcfilters-ui-itemMenuOptionWidget:hover {
background-color: var(--bg-secondary);
}
[data-theme="dark"] .mw-rcfilters-ui-itemMenuOptionWidget-label-title {
color: var(--text-primary);
}
[data-theme="dark"] .mw-rcfilters-ui-itemMenuOptionWidget-label-desc {
color: var(--text-secondary);
}
/* Highlights */
[data-theme="dark"] .mw-rcfilters-ui-cell {
border-color: var(--border-subtle);
}
/* Saved Queries & Limits Buttons */
[data-theme="dark"] .mw-rcfilters-ui-changesLimitAndDateButtonWidget .oo-ui-buttonElement-button {
color: var(--link-color);
}
/* RC Legend */
[data-theme="dark"] .mw-changeslist-legend {
background-color: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .mw-changeslist-legend dt {
color: var(--text-primary);
}
[data-theme="dark"] .mw-changeslist-legend dd {
color: var(--text-secondary);
}
/* ==========================================================================
EXTENSION: POPUPS (HOVERCARDS)
========================================================================== */
[data-theme="dark"] .mwe-popups {
background: var(--bg-content);
color: var(--text-primary);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}
/* Arrow (tricky usually, using pseudo-elements) */
[data-theme="dark"] .mwe-popups.mwe-popups-image-tri::after,
[data-theme="dark"] .mwe-popups.mwe-popups-no-image-tri::after {
border-bottom-color: var(--bg-content);
/* Identify direction and adjust if needed */
}
[data-theme="dark"] .mwe-popups .mwe-popups-extract {
color: var(--text-primary);
}
[data-theme="dark"] .mwe-popups .mwe-popups-container {
background: var(--bg-content);
}
[data-theme="dark"] .mwe-popups svg {
filter: invert(1);
opacity: 0.7;
}
/* ==========================================================================
GENERIC EXTENSION SUPPORT
========================================================================== */
/* CheckUser */
[data-theme="dark"] .checkuser-show {
background-color: var(--bg-secondary);
border-color: var(--border-color);
color: var(--text-primary);
}
/* PageForms */
[data-theme="dark"] .spf-form {
background: var(--bg-content);
}
/* Generic UI overrides for unstyled extensions */
[data-theme="dark"] .ui-widget-content {
background: var(--bg-content);
color: var(--text-primary);
border-color: var(--border-color);
}
/* ==========================================================================
EDITOR & CODEMIRROR
========================================================================== */
/* Standard Textarea (Fallback) */
[data-theme="dark"] #wpTextbox1,
[data-theme="dark"] .mw-editfont-monospace {
background-color: var(--code-bg);
color: var(--text-primary);
border-color: var(--border-color);
}
/* CodeMirror Container */
[data-theme="dark"] .CodeMirror {
background-color: var(--code-bg);
color: var(--text-primary);
border-color: var(--border-color);
}
[data-theme="dark"] .CodeMirror-gutters {
background-color: var(--bg-tertiary);
border-right: 1px solid var(--border-subtle);
}
[data-theme="dark"] .CodeMirror-linenumber {
color: var(--text-muted);
}
[data-theme="dark"] .CodeMirror-cursor {
border-left: 1px solid var(--text-primary);
}
[data-theme="dark"] .CodeMirror-selected {
background: #264f78 !important;
/* VS Code visual selection */
}
/* CodeMirror Syntax Highlighting (Matches Pygments/VS Code Dark+) */
[data-theme="dark"] span.cm-comment {
color: #6a9955;
}
[data-theme="dark"] span.cm-keyword,
[data-theme="dark"] span.cm-variable-2,
/* MW Templates */
[data-theme="dark"] span.cm-variable-3 {
color: #569cd6;
}
[data-theme="dark"] span.cm-string {
color: #ce9178;
}
[data-theme="dark"] span.cm-tag {
color: #569cd6;
}
[data-theme="dark"] span.cm-attribute {
color: #9cdcfe;
}
[data-theme="dark"] span.cm-link {
color: #ce9178;
text-decoration: none;
}
[data-theme="dark"] span.cm-error {
color: #f44747;
}
[data-theme="dark"] span.cm-url {
color: #ce9178;
}
[data-theme="dark"] span.cm-table-row,
[data-theme="dark"] span.cm-table-cell {
color: #dcdcaa;
}
/* WikiEditor Toolbar */
[data-theme="dark"] .wikiEditor-ui-toolbar {
background-color: var(--bg-secondary);
border-color: var(--border-color);
}
[data-theme="dark"] .wikiEditor-ui-toolbar .group .tool-select .label {
color: var(--text-primary);
}
[data-theme="dark"] .wikiEditor-ui-toolbar .group .tool-select .options {
background-color: var(--bg-content);
border-color: var(--border-color);
}
/* Edit Options Area */
[data-theme="dark"] .editOptions {
background-color: var(--bg-secondary);
border-color: var(--border-color);
padding: 10px;
}
[data-theme="dark"] .mw-editTools {
background-color: var(--bg-content);
border-color: var(--border-color);
}