Warzone.com Wiki Dark Theme

Inverts light theme to make a dark theme and uses tints/shades when colors have intentional meaning

当前为 2025-04-03 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Warzone.com Wiki Dark Theme
// @namespace   Violentmonkey Scripts
// @match       https://www.warzone.com/wiki/*
// @version     1.0.1
// @author      https://greasyfork.org/en/users/85040-dan-wl-danwl
// @description Inverts light theme to make a dark theme and uses tints/shades when colors have intentional meaning
// @grant       none
// @license     MIT
// ==/UserScript==
(function() {
	// plain inversion is too dark or too bright in some cases
	// so invert then apply [tint (if inverted is dark) or shade (if inverted is light)] 2 from https://www.color-hex.com/color/<hex code>

	const fg = '#e5e5e5';// inverted from #000
	const bg = '#191919';// inverted from #fff
	const bg2 = '#262626'// inverted from #f1f1f1
	const bg3 = '#1d1d1d';// inverted from #fbfbfb
	const bg4 = '#1f1e1d';// inverted from #f8f9fa
	const bg5 = '#2c2a26'// inverted from #eaecf0
	const bg6 = '#212121'// inverted from #f6f6f6

	const style1 = document.createElement('style');
	const style2 = document.createElement('style');
	const style3 = document.createElement('style');
	const style4 = document.createElement('style');
	const style5 = document.createElement('style');

	style1.innerHTML = `/* load.php 410 rules */

.mw-message-box {
	/* shade 6 of https://www.color-hex.com/color/eaecf0 */
	background-color: #757678;

	color: ${fg};

	/* tint 6 of https://www.color-hex.com/color/54595d */
	border-color: #a9acae;
}

.mw-message-box-error {
	/* shade 6 of https://www.color-hex.com/color/fee7e6 */
	background-color: #7f7373;

	/* tint 6 of https://www.color-hex.com/color/b32424 */
	border-color: #591212;
}

.mw-message-box-warning {
	/* shade 6 of https://www.color-hex.com/color/fef6e7 */
	background-color: #7f7b73;

	/* tint 6 of https://www.color-hex.com/color/a66200 */
	border-color: #533100;
}

.mw-message-box-success {
	/* shade 6 of https://www.color-hex.com/color/d5fdf4 */
	background-color: #6a7e7a;

	/* tint 6 of https://www.color-hex.com/color/096450 */
	border-color: #84b1a7;
}

figure[typeof~='mw:File/Thumb'], figure[typeof~='mw:File/Frame'] {
	border-color: #37332e;
	background-color: ${bg4};
}

figure[typeof~='mw:File/Thumb'] > :not(figcaption) .mw-file-element, figure[typeof~='mw:File/Frame'] > :not(figcaption) .mw-file-element {
	border-color: #37332e;
	background-color: ${bg4};
}

figure[typeof~='mw:File/Thumb'] > figcaption, figure[typeof~='mw:File/Frame'] > figcaption {
	border-color: #37332e;
	background-color: ${bg4};
}

.mw-image-border .mw-file-element {
	border-color: ${bg5};
}

.wikitable {
	background-color: ${bg4};
	color: #dfdedd;
	border-color: #5d564e;
}

.wikitable > tr > th, .wikitable > tr > td, .wikitable > * > tr > th, .wikitable > * > tr > td {
	border-color: #5d564e;
}

.wikitable > tr > th, .wikitable > * > tr > th {
	background-color: ${bg5};
	color: #dfdedd;
}

.catlinks {
	background-color: ${bg4};
	border-color: #5d564e;
}

.catlinks li {
	border-color: #5d564e;
}

#mw-content-subtitle, #contentSub2 {
	color: #aba6a2;
}

.usermessage {
	background-color: #010918;
}

a {
	/* tint 6 of https://www.color-hex.com/color/0645ad */
	color: #82a2d6;
}

a:visited {
	/* tint 6 of https://www.color-hex.com/color/0b0080 */
	color: #857fbf;
}

a:active {
	/* tint 6 of https://www.color-hex.com/color/faa700 */
	color: #fcd37f;
}

hr {
	background-color: #5d564e;
}

h1, h2, h3, h4, h5, h6 {
	color: ${fg};
}

.mw-heading1, h1, .mw-heading2, h2 {
	border-bottom-color: #5d564e;
}

pre, code, wm-code {
	background-color: ${bg4};
	color: ${fg};
	border-color: ${bg5};
}

fieldset {
	border-color: #d5b472;
}

textarea {
	border-color: #5d564e;
}

.toc, .toccolours {
	background-color: ${bg4};
	border-color: #5d564e;
}

.tocnumber {
	color: #dfdedd;
}

.toctogglelabel {
	/* same as a using #0645ad */
	color: #82a2d6;
}

.vector-body blockquote {
	border-left-color: ${bg5};
}

body {
	background-color: ${bg5};
}

.mw-body, .parsoid-body {
	background-color: ${bg};
	color: #dfdedd;
}

.mw-body {
	border-color: #582806;
}

#mw-page-base {
	background-color: ${bg3};
	background-image: linear-gradient(to bottom,${bg} 50%,${bg5} 100%);
}

.mw-footer li {
	color: #dfdedd;
}

.vector-menu-dropdown .vector-menu-heading {
	color: #aba6a2;
}

.vector-menu-dropdown .vector-menu-content {
	background-color: ${bg};
	border-color: #5d564e;
	box-shadow:0 1px 1px 0 rgba(255,255,255,0.1);
}

.vector-menu-dropdown .mw-list-item a {
	/* same as a using #0645ad */
	color: #82a2d6;
}

.vector-menu-dropdown .mw-list-item.selected a, .vector-menu-dropdown .mw-list-item.selected a:visited {
	/* tint 6 of https://www.color-hex.com/color/202122 */
	color: #8f9090;
}

.vector-menu-tabs-legacy li {
	background-image:linear-gradient(to top,#883e09 0,#170d07 1px,${bg} 100%);
}

.vector-menu-tabs-legacy li a {
	/* same as a using #0645ad */
	color: #82a2d6;
}

.vector-menu-tabs-legacy .new a, .vector-menu-tabs-legacy .new a:visited {
	/* tint 6 of https://www.color-hex.com/color/ba0000 */
	color: #5d0000;
}

.vector-menu-tabs-legacy .selected {
	background-color: ${bg}
}

.vector-menu-tabs-legacy .selected a, .vector-menu-tabs-legacy .selected a:visited {
	/* tint 6 of https://www.color-hex.com/color/202122 */
	color: #8f9090;
}

.vector-menu-tabs, .vector-menu-tabs a, #mw-head .vector-menu-dropdown .vector-menu-heading {
	background-image: linear-gradient(to bottom,rgba(88,40,1,0) 0,#582806 100%);
}

.vector-legacy-sidebar .vector-menu-portal .vector-menu-heading {
	color: #aba6a2;
	background-image: linear-gradient(to right,rgba(55,51,46,0) 0,#37332e 33%,#37332e 66%,rgba(55,51,46,0) 100%);
}

.vector-legacy-sidebar .vector-menu-portal .vector-menu-content li a {
	/* same as a using #0645ad */
	color: #82a2d6;
}

.vector-legacy-sidebar .vector-menu-portal .vector-menu-content li a:visited {
	/* same as a using #0b0080 */
	color: #857fbf;
}

.vector-search-box-input {
	background-color: rgba(0,0,0,0.5);
	color: ${fg};
	border-color: #5d564e;
}

.vector-search-box-inner:hover .vector-search-box-input {
	border-color: #8d8882;
}

.vector-search-box-input::-webkit-input-placeholder {
	color: #8d8882;
}

.vector-search-box-input:-ms-input-placeholder {
	color: #8d8882;
}

.vector-search-box-input::-moz-placeholder {
	color: #8d8882;
}

.vector-search-box-input::placeholder {
	color: #8d8882;
}

.vector-user-menu-legacy #pt-anonuserpage {
	color: #aba6a2;
}

.mw-body a:not(.image) {
	/* tint 6 of https://www.color-hex.com/color/aaaaaa */
	border-bottom-color: #555555;
}

.firstHeading, .mw-heading2, h2 {
	border-bottom-color: ${fg};
}

blockquote {
	border-left-color: ${fg};
}

.printfooter {
	border-top-color: ${fg};
}

.mw-footer {
	border-top-color: #111;
}

#footer-info li {
	color: #666;
}

#footer-info li a {
	color: #666 !important;
}

#footer-info-lastmod {
	color: ${fg};
}

#footer {
	background-color: ${bg};
	color: ${fg};
	border-top-color: #555;
}`;

	style2.innerHTML = `/* load.php 11 rules */

div.ambox {
	/* orange is FFA500 */
	/* tint 6 of https://www.color-hex.com/color/ffa500 */
	border-color: #ffd27f;

	background-color: ${bg3};
}

div.infobox {
	border-color: ${fg};
	background-color: #202020;
}

div.infobox div.plainlinks a, div.infobox div.plainlinks a:hover {
	color: ${fg};
}

div.infobox hr {
	color: ${fg};
	background-color: ${fg};
}

div.navbox {
	background-color: ${bg2};
	border-color: ${fg};
}

div.navbox div.navbox-header {
	background-color: #212121;
	border-color: ${fg};
}`;

	style3.innerHTML = `/* inline stylesheet 1 10 rules */

.suggestions-special {
	background-color: ${bg};
	border-color: #5d564e;
}

.suggestions-results {
	background-color: ${bg};
	border-color: #5d564e;
}

.suggestions-result {
	color: ${fg};
}

.suggestions-result-current {
	background-color: #d5b472;
	color: ${bg};
}

.suggestions-special .special-label {
	color: #8d8882
}

.suggestions-special .special-query {
	color: ${fg};
}

.suggestions-special .special-hover {
	background-color: #37332e;
}

.suggestions-result-current .special-label, .suggestions-result-current .special-query {
	color: ${bg};
}`;

	style4.innerHTML = `/* inline stylesheet 3 3 rules */

.suggestions a.mw-searchSuggest-link, .suggestions a.mw-searchSuggest-link:hover, .suggestions a.mw-searchSuggest-link:active, .suggestions a.mw-searchSuggest-link:focus {
	color: ${fg};
}

.suggestions-result-current a.mw-searchSuggest-link, .suggestions-result-current a.mw-searchSuggest-link:hover, .suggestions-result-current a.mw-searchSuggest-link:active, .suggestions-result-current a.mw-searchSuggest-link:focus {
	color: ${bg};
}`;

	style5.innerHTML = `/* load.php 1033 rules https://www.warzone.com/wiki/Special:Categories */

.mw-htmlform-ooui .mw-htmlform-matrix tbody tr:nth-child(even) td {
	color: ${bg4};
}

.mw-htmlform-ooui .mw-htmlform-matrix tbody tr:hover td {
	color: ${bg5};
}

.mw-htmlform-invalid-input td.mw-input input {
	/* tint 6 of https://www.color-hex.com/color/d73333 */
	border-color: #eb9999;
}

.mw-datatable {
	border-color: #5d564e;
}

.mw-datatable td, mw-datatable th {
	border-color: #5d564e;
}

.mw-datatable th {
	background-color: #151100;
}

.mw-datatable td {
	background-color: ${bg};
}

.mw-datatable tr:hover td {
	background-color: #150c00;
}

.oo-ui-pendingElement-pending {
	background-color: ${bg5};
	background-image: linear-gradient(135deg,${bg} 25%,transparent 25%,transparent 50%,${bg} 50%,${bg} 75%,transparent 75%,transparent);
}

.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label {
	/* tint 6 of https://www.color-hex.com/color/72777d */
	color: #b8bbbe;
}

.oo-ui-panelLayout-framed {
	border-color: #5d564e;
}

.oo-ui-optionWidget.oo-ui-widget-disabled {
	/* tint 6 of https://www.color-hex.com/color/72777d */
	color: #b8bbbe;
}

.oo-ui-radioSelectWidget:focus [type='radio']:checked + span::before {
	border-color: ${bg};
}

.oo-ui-labelWidget.oo-ui-inline-help {
	color: #aba6a2;
}

.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-error {
	/* shade 6 of https://www.color-hex.com/color/fee7e6 */
	background-color: #7f7373;

	/* tint 6 of https://www.color-hex.com/color/b32424 */
	border-color: #d99191;
}

.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-warning {
	/* shade 6 of https://www.color-hex.com/color/fef6e7 */
	background-color: #7f7b73;

	/* tint 6 of https://www.color-hex.com/color/a66200 */
	border-color: #d2b07f;
}

.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-success {
	/* shade 6 of https://www.color-hex.com/color/d5fdf4 */
	background-color: 6a7e7a;

	/* tint 6 of https://www.color-hex.com/color/096450 */
	border-color: #84b1a7;
}

.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-notice {
	/* shade 6 of https://www.color-hex.com/color/eaecf0 */
	background-color: #757678;

	/* tint 6 of https://www.color-hex.com/color/54595d */
	border-color: #a9acae;
}

.oo-ui-messageWidget.oo-ui-flaggedElement-error:not(.oo-ui-messageWidget-block) {
	/* can be left as #d73333 */
}

.oo-ui-messageWidget.oo-ui-flaggedElement-success:not(.oo-ui-messageWidget-block) {
	/* can be left as #14866d */
}

.oo-ui-popupWidget-popup {
	background-color: ${bg};
	border-color: #5d564e;
	box-shadow:0 2px 2px 0 rgba(255,255,255,0.2);
}

@supports (filter:drop-shadow(0 0 0)) {
	.oo-ui-popupWidget {
		filter: drop-shadow(0 2px 1px rgba(255,255,255,0.3));
	}
}

.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor::before {
	border-bottom-color: #847a6f;
}

.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor::after {
	border-bottom-color: ${bg};
}

.oo-ui-popupWidget-anchored-bottom .oo-ui-popupWidget-anchor::before {
	border-top-color: #5d564e;
}

.oo-ui-popupWidget-anchored-bottom .oo-ui-popupWidget-anchor::after {
	border-top-color: ${bg};
}

.oo-ui-popupWidget-anchored-start .oo-ui-popupWidget-anchor::before {
	border-right-color: #5d564e;
}

.oo-ui-popupWidget-anchored-start .oo-ui-popupWidget-anchor::after {
	border-right-color: ${bg};
}

.oo-ui-popupWidget-anchored-end .oo-ui-popupWidget-anchor::before {
	border-left-color: #5d564e;
}

.oo-ui-popupWidget-anchored-end .oo-ui-popupWidget-anchor::after {
	border-left-color: ${bg};
}

.oo-ui-checkboxInputWidget [type='checkbox'] + span {
	background-color: ${bg};
	border-color: #8d8882;
}

.oo-ui-checkboxInputWidget [type='checkbox']:indeterminate + span::before {
	background-color: ${bg};
}

.oo-ui-checkboxInputWidget [type='checkbox']:disabled + span {
	background-color: #37332e;
	border-color: #37332e;
}

.oo-ui-dropdownInputWidget select {
	border-color: #5d564e;
}

.oo-ui-dropdownInputWidget.oo-ui-widget-enabled {
	background-color: ${bg4};
}

.oo-ui-dropdownInputWidget.oo-ui-widget-enabled:hover {
	background-color: ${bg};
}

.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select {
	color: #dfdedd;
}

.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover {
	color: #bfbdbb;
	border-color: #5d564e;
}

.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:active {
	color: ${fg};
	border-color: #8d8882;
}

.oo-ui-dropdownInputWidget.oo-ui-widget-disabled {
	background-color: ${bg5};
}

.oo-ui-dropdownInputWidget.oo-ui-widget-disabled select {
	color: #8d8882;
	border-color: #37332e;
}

.oo-ui-radioInputWidget [type='radio'] + span {
	background-color: ${bg};
	border-color: #8d8882;
}

.oo-ui-radioInputWidget [type='radio']:disabled + span {
	background-color: #37332e;
	border-color: #37332e;
}

.oo-ui-radioInputWidget [type='radio']:disabled:checked + span {
	background-color: ${bg};
}

.oo-ui-radioInputWidget.oo-ui-widget-enabled [type='radio']:checked:focus + span::before {
	border-color: ${bg};
}

.oo-ui-textInputWidget .oo-ui-inputWidget-input {
	background-color: ${bg};
	color: ${fg};
	border-color: #5d564e;
}

.oo-ui-textInputWidget .oo-ui-pendingElement-pending {
	background-color: ${bg5};
}

.oo-ui-textInputWidget > .oo-ui-labelElement-label {
	color: #8d8882;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input::-webkit-input-placeholder {
	color: #8d8882;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input:-ms-input-placeholder {
	color: #8d8882;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input::-moz-placeholder {
	color: #8d8882;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input::placeholder {
	color: #8d8882;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input[readonly]:not(.oo-ui-pendingElement-pending) {
	background-color: ${bg4};
}

.oo-ui-textInputWidget.oo-ui-widget-enabled:hover .oo-ui-inputWidget-input {
	color: #8d8882;
}

@media screen and (min-width:0) {
	.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea.oo-ui-inputWidget-input:focus {
		/* tint 6 of https://www.color-hex.com/color/b32424 */
		outline-color: #d99191;
	}
}

.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input {
	/* tint 6 of https://www.color-hex.com/color/b32424 */
	border-color: #d99191;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input:hover {
	/* tint 6 of https://www.color-hex.com/color/b32424 */
	border-color: #d99191;
}

.oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input:focus {
	/* tint 6 of https://www.color-hex.com/color/b32424 */
	border-color: #d99191;

	/* tint 6 of https://www.color-hex.com/color/d73333 */
	box-shadow: inset 0 0 0 1px #eb9999;
}

.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-inputWidget-input {
	/* shade 6 of https://www.color-hex.com/color/eaecf0 */
	background-color: #757678;

	/* tint 6 of https://www.color-hex.com/color/72777d */
	-webkit-text-fill-color: #b8bbbe;
	color: #b8bbbe;

	text-shadow: 0 1px 1px ${bg};
	border-color: #37332e;
}

.oo-ui-textInputWidget.oo-ui-widget-disabled > .oo-ui-labelElement-label {
	/* tint 6 of https://www.color-hex.com/color/72777d */
	color: #b8bbbe;

	text-shadow: 0 1px 1px ${bg};
}

.oo-ui-menuSelectWidget {
	background-color: ${bg};
	border-color: #5d564e;
	box-shadow: 0 2px 2px 0 rgba(255,255,255,0.2);
}

.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
	/* shade 6 of https://www.color-hex.com/color/eaecf0 */
	background-color: #757678;

	color: ${fg};
}

.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected, .oo-ui-menuOptionWidget.oo-ui-optionWidget-selected.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted, .oo-ui-menuOptionWidget.oo-ui-optionWidget-pressed.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
	background-color: #150c00;
}

.oo-ui-menuOptionWidget.oo-ui-widget-enabled.oo-ui-optionWidget {
	color: #dfdedd;
}

.oo-ui-menuSectionOptionWidget {
	color: #8d8882;
}

/* 2128 */
/* 2983 onwards should be fine to ignore */
`;

	document.head.appendChild(style1);
	document.head.appendChild(style2);
	document.head.appendChild(style3);
	document.head.appendChild(style4);
	// WIP, user-unfriendly if uncommented
	// document.head.appendChild(style5);
})();