User:Volker E. (WMF)/dark-mode.css#L-21

/* WikimediaUI Dark Mode

*

* Wikimedia Design Team 2019-2021

* Original authors:

* - Volker E.

* - Alex Hollender

* - MusikAnimal

* - Carolyn Li-Madeo

* - Jdlrobson

*

* Last updated: 2021-04-20

*

*/

@media screen {

/* Switch to dark mode */

/* Inspired by MusikAnimal */

  1. pt-darkmode a:before {

/* Moon icon */

content: '\263E';

display: inline-block;

padding: 0 2px;

}

/* Switch to default mode */

.client-dark-mode #pt-darkmode a:before {

/* Sun icon */

content: '\2600';

font-weight: bold;

}

/* Would be nice if it were that easy. Will have to find opposite color for invert filter to make it dark

.client-dark-mode {

background-color: #000;

}

  • /

/* Filter needs to reside on `html`: `html.client-dark-mode`, see https://phabricator.wikimedia.org/T221425#5153917 */

.client-dark-mode,

/* All other selectors have `filter` double-applied to turn back to “normal” by inheritance */

.client-dark-mode img,

.client-dark-mode video,

.client-dark-mode svg,

.client-dark-mode iframe,

.client-dark-mode .mw-no-invert,

.client-dark-mode .mwe-math-element,

.client-dark-mode .wvui-typeahead-suggestion__thumbnail,

/* Extensions */

.client-dark-mode .cx-slitem__image,

.client-dark-mode .mw-mmv-overlay,

.client-dark-mode .mw-mmv-pre-image,

.client-dark-mode .mw-kartographer-map,

.client-dark-mode .mw-kartographer-mapDialog-map,

.client-dark-mode .ext-related-articles-card-list .ext-related-articles-card-thumb {

filter: invert( 1 ) hue-rotate( 180deg );

}

/* Reset overrides */

.client-dark-mode .skin-vector .mw-logo-wordmark,

.client-dark-mode .skin-vector .mw-logo-tagline,

.client-dark-mode .wvui-icon svg {

filter: none;

}

/* Backgrounds */

.client-dark-mode table,

.client-dark-mode table.ambox-content,

.client-dark-mode table.toccolours,

.client-dark-mode .mw-notification,

.client-dark-mode .mwe-popups,

.client-dark-mode .infobox,

.client-dark-mode .toc,

.client-dark-mode .thumbinner,

.client-dark-mode .wikitable,

.client-dark-mode .cbnnr-main,

.client-dark-mode .cx-callout,

.client-dark-mode #simpleSearch,

.client-dark-mode #simpleSearch #searchInput,

.client-dark-mode #siteNotice #centralNotice .cnotice {

background-color: #ddd;

}

/* Borders */

.client-dark-mode body,

.client-dark-mode h1,

.client-dark-mode h2,

.client-dark-mode h3,

.client-dark-mode h4,

.client-dark-mode h5,

.client-dark-mode h6,

.client-dark-mode table.ambox-content,

.client-dark-mode table.toccolours,

.client-dark-mode .mw-notification,

.client-dark-mode .infobox,

.client-dark-mode .toc,

.client-dark-mode .thumbinner,

.client-dark-mode #mw-head,

.client-dark-mode #mw-panel,

.client-dark-mode #content.mw-body,

.client-dark-mode #simpleSearch,

.client-dark-mode #simpleSearch #searchInput,

.client-dark-mode #siteNotice #centralNotice .cnotice {

border-color: #cdcbc8;

}

/* Links */

/* Links: normal */

.client-dark-mode a,

.client-dark-mode .vector-menu-tabs li a,

/* Backwards compatible VectorTabs, deprecated in MW v1.35. */

.client-dark-mode .vectorTabs li a,

.client-dark-mode .toctogglelabel,

.client-dark-mode .mw-parser-output a.external,

.client-dark-mode .mw-parser-output a.extiw,

.client-dark-mode .mw-parser-output a.extiw:active,

.client-dark-mode #mw-panel .portal .body li a {

/* color: #69f; Proposal below for level AA conformance, see also https://phabricator.wikimedia.org/T233266

`#36c` is transformed by :root `filter` to be closer to chosen `#69f`. */

color: #36c;

}

/* Links: visited */

.client-dark-mode a:visited,

.client-dark-mode .mw-parser-output a.extiw:visited,

.client-dark-mode #mw-panel .portal .body li a:visited {

/* color: #709bbd; Proposal below uses to-be-standardized color from https://phabricator.wikimedia.org/T213778 */

color: #6b4ba1;

}

/* Links: red */

.client-dark-mode a.new,

.client-dark-mode .vector-menu-tabs li.new a,

.client-dark-mode .vectorTabs li.new a {

color: #ff6e6e;

}

/* ::: Special Element Treatments ::: */

/* Image thumbnails */

.client-dark-mode .thumbimage {

border: 0;

}

/* Content image (thumbnail) SVGs */

/* `*not( .mbox-image )` exception doesn't work for unclear reasons */

.client-dark-mode .image img[ src*='svg' ],

.client-dark-mode img[ src*='Wiktionary-logo'] {

background-color: #fff;

border-radius: 1px;

}

/* Dealing with false positives from selector above */

.client-dark-mode .mw-echo-ui-notificationItemWidget-icon img[ src*='svg' ],

.client-dark-mode .mbox-image .image img[ src*='svg' ],

/* Vote symbols on Talk pages */

.client-dark-mode .image img[ alt^="Symbol" ] {

background-color: transparent;

}

/* Page previews */

.client-dark-mode .mwe-popups {

box-shadow: 0 30px 90px -20px rgba( 0, 0, 0, 0.3 ), 0 0 1px #000;

}

.client-dark-mode .mwe-popups .mwe-popups-extract[ dir='ltr' ]:after {

background-image: -webkit-linear-gradient( 90deg, rgba( 221, 221, 221, 0 ), #ddd 50% );

background-image: -moz-linear-gradient( 90deg, rgba( 221, 221, 221, 0 ), #ddd 50% );

background-image: linear-gradient( 90deg, rgba( 221, 221, 221, 0 ), #ddd 50% );

}

.client-dark-mode .mwe-popups.flipped-y:after,

.client-dark-mode .mwe-popups.flipped-x-y:after {

border-top: 11px solid #ddd;

}

.client-dark-mode .mwe-popups.mwe-popups-no-image-pointer:after {

border-bottom: 11px solid #ddd;

}

/* Contributions menu */

.client-dark-mode .cx-callout-1:after {

border-bottom-color: #ddd;

}

/* ::: Skin specific rules ::: */

/* Wikipedia globe fix */

.skin-vector #p-logo.mw-no-invert,

.skin-timeless #p-logo.mw-no-invert {

position: absolute;

top: 0;

height: 112px;

overflow: hidden;

}

/* Timeless globe fix */

.skin-timeless #mw-site-navigation {

position: relative;

}

.skin-timeless #p-logo.mw-no-invert {

left: 1em;

height: 124px;

}

/* Mobile Wikipedia logo mobile header */

.client-dark-mode .branding-box img {

filter: brightness( 0 );

}

}