MediaWiki:Vector-darkmode.less: Difference between revisions

From RuneRealm Wiki
Jump to navigation Jump to search
Content added Content deleted
(Created page with "/* ------------------------------------------------------------------------------ This is the root LESS file that is parsed to produce MediaWiki:Vector-darkmode.css. Previously compiled via subpages at Special:PrefixIndex/MediaWiki:Vector-darkmode.less/, now adjusted via CSS Variables. To update MediaWiki:Vector-darkmode.css from here, users with the appropriate permissions can click the "Update CSS" button found to the left of the edit butto...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 50: Line 50:


// == CSS Variables ==
// == CSS Variables ==
--body-background-image: url('filepath://Old_School_RuneScape_Wiki_background_darkmode.jpg');
--body-background-image: url('/images/rss/background_dark.jpg');
--body-background-color: @dark-body;
--body-background-color: @dark-body;
--body-main: @dark-page;
--body-main: @dark-page;

Latest revision as of 11:12, 18 October 2024

/* ------------------------------------------------------------------------------

  This is the root LESS file that is parsed to produce MediaWiki:Vector-darkmode.css.
  Previously compiled via subpages at Special:PrefixIndex/MediaWiki:Vector-darkmode.less/,
  now adjusted via CSS Variables.
  To update MediaWiki:Vector-darkmode.css from here, users with the appropriate
  permissions can click the "Update CSS" button found to the left of the edit button.
  ------------------------------------------------------------------------------ */

/* --------------------

         COLORS
  -------------------- */

@dark-body: @black-pearl; @dark-page: @big-stone; // page bg color @dark-links: @portage; // link color @red-links: lighten( @flamingo, 10% ); @dark-links-escape : escape("@{dark-links}"); // For use in SVGs @dark-text: lighten( @portage, 15% ); @dark-text-escape: escape("@{dark-text}"); // For use in SVGs

@dark-wikitable-header: @cloud-burst; @dark-wikitable-background: @pickled-bluewood; @dark-wikitable-background-lighter: lighten(@dark-wikitable-background, 4%); // Used on hover effect @dark-wikitable-background-darker: darken(@dark-wikitable-background, 20%); @dark-wikitable-border: @big-stone;

@dark-button: #617ebc;

@dir: 'MediaWiki:Vector-darkmode.less'; @common: 'MediaWiki:Common.less';

// Variables: Colours, shadows, etc. @import '@{common}/variables.less'; // Mixins @import '@{common}/mixins.less';

// style browser default forms; :has() is relatively new - shouldnt pose a problem // targetting html otherwise page scrollbar wouldnt be affected html:has(body.wgl-theme-dark) { color-scheme: dark; }

/* The following imports are nested inside body.wgl-theme-dark for good reason.

* Please do not change this. It is needed for "hot loading" darkmode when the
* user tries to switch to it. */

body.wgl-theme-dark { // fallback as the above wont work on firefox color-scheme: dark;

// == CSS Variables == --body-background-image: url('/images/rss/background_dark.jpg'); --body-background-color: @dark-body; --body-main: @dark-page;

--body-light: @pickled-bluewood; --body-mid: @cloud-burst; --body-dark: @cloud-burst; --body-border: @waikawa-grey;

--link-color: @dark-links; --background-link-color: var(--link-color); --redlink-color: @red-links; --text-color: @dark-text; --background-text-color: @dark-text; --byline-color: desaturate( darken(@dark-text, 22%), 47% ); --subtle-color: var(--byline-color);

--search-box: var(--body-light);

// /highlight.less --admin-blue: #0087ff; --bearcat-green: #00ff55; --awb-purple: #f319ff;

--sidebar: @waikawa-grey; --button-background: @dark-button; --button-dark: @dark-button; --button-border: @dark-button; --button-light: @dark-button;

// /wikitables.less --wikitable-header-bg: @dark-wikitable-header; --wikitable-border: @dark-wikitable-border; --wikitable-bg: @dark-wikitable-background; --wikitable-bg-lighter: @dark-wikitable-background-lighter; --wikitable-color: var(--text-color); --wikitable-alternating-bg: saturate( darken( @dark-wikitable-background, 3% ), 3% ); --table-na-background: fade( @black, 20 ); --table-na-color: var(--subtle-color); --table-yes-background: @san-felix; --table-yes-color: @caper; --table-no-background: @mocaccino; --table-no-color: @apricot-peach; --table-maybe-background: @cinnamon; --table-maybe-color: @golden; --droptable-text-color: @white; --droptable-text-color: @white; --droptable-always-background: @venice-blue; --droptable-common-background: @la-palma; --droptable-uncommon-background: @olive; --droptable-rare-background: @korma; --droptable-veryrare-background: @old-brick; --droptable-random-background: @cannon-pink;

// /ooui.less --ooui-text: @dark-text; @ooui-interface: @cloud-burst; --ooui-interface: @ooui-interface; --ooui-interface-border: lighten( @ooui-interface, 8% ); --ooui-window-background: rgba(25,25,25,0.6); @ooui-input: lighten( @pickled-bluewood, 4% ); --ooui-input: @ooui-input; @ooui-input-border: lighten( @ooui-input, 8% ); --ooui-input-border: @ooui-input-border; --ooui-input-border--hover: lighten( @ooui-input-border, 8% ); @ooui-normal: @pickled-bluewood; --ooui-normal: @ooui-normal; --ooui-normal--hover: lighten( @ooui-normal, 4% ); --ooui-normal-border: lighten( @ooui-normal, 8% ); @ooui-progressive: @dark-button; --ooui-progressive: @ooui-progressive; --ooui-progressive--hover: lighten(@ooui-progressive, 10%); --ooui-accent: var(--link-color); --ooui-disabled: desaturate( lighten( @ooui-normal, 32% ), 16%); --ooui-disabled-border: desaturate( lighten( @ooui-normal, 32% ), 16%); --ooui-disabled-text: var(--ooui-text); --ooui-pending-background-image: repeating-linear-gradient(-45deg, var(--search-box), var(--search-box) 20px, var(--body-main) 20px, var(--body-main) 30px);

--tile-border-color: var(--body-border); --tile-background-color: var(--body-light); --tile-link-button-color: var(--body-mid); --tile-link-button-highlight-color: #2a3956; --tile-dark-color: @white; --tile-dark-bg: #5d6773; --tile-dark-link-color: #ccc; --tile-dark-byline-color: rgba(255, 255, 255, 0.7); --tile-dark-header-color: @white;

--documentation-background: var(--body-light); --documentation-border: var(--sidebar); --documentation-link-color: var(--link-color); --documentation-headers-color: var(--text-color); --documentation-header-background: var(--body-dark); --documentation-subheader-background: darken( @dark-wikitable-header, 2% );

--base-text-color: var(--text-color); --base-heading-color: var(--text-color); --base-heading-border: var(--sidebar); --mainpage-recent-updates-description-color: var(--text-color);

// switch mid/light --thumb-bg: var(--body-mid); --thumb-caption-bg: var(--body-light);

--diff-context-border-color: var(--body-mid); --diff-context-background: var(--body-mid); --diff-addedline-background: #438ab5; --diff-addedline-border-color: #438ab5; --diff-addedline-color: @white; --diff-deletedline-background: #379541; --diff-deletedline-border-color: #379541; --diff-deletedline-color: @white; --diff-inline-deletedline: @old-brick; --errorbox-bg: @mocaccino; --errorbox-border: @old-brick; --warningbox-bg: var(--errorbox-bg); --warningbox-border: var(--errorbox-border); --successbox-bg: @san-felix; --successbox-border: @la-palma;

.mboxvar(obsolete, #464646, #333, #ddd, #bbb); .mboxvar(info, var(--messagebox-obsolete-background), var(--messagebox-obsolete-border), var(--messagebox-obsolete-color), var(--messagebox-obsolete-link-color)); .mboxvar(action, #45697d, #2d5266, var(--text-color), #b8d5e5); .mboxvar(warn, #95271b, #6b130a, #f8ebe9, #e8b8b3); .mboxvar(safe, #1b8408, #126802, #e9f6e7, #c1e0bb); .mboxvar(disambig, var(--messagebox-obsolete-background), var(--messagebox-obsolete-border), var(--messagebox-obsolete-color), var(--messagebox-obsolete-link-color));

--mw-code-background-color: @cloud-burst;

// common /tabber.less --tabber-tab-bg: var(--body-light); --tabber-tab-border-color: var(--body-border); --tabber-active-tab-bg: var(--body-light); --tabber-active-tab-color: var(--text-color); --tabber-active-tab-hover-bg: var(--body-light); --tabber-active-tab-hover-border-color: var(--body-border); --tabber-active-tab-hover-color: var(--text-color); --tabber-active-tab-border-hider-color: var(--body-light); --tabber-inactive-tab-bg: var(--body-mid); --tabber-inactive-tab-border-color: var(--body-border); --tabber-inactive-tab-color: var(--text-color); --tabber-inactive-tab-hover-bg: var(--body-light); --tabber-inactive-tab-hover-border-color: var(--body-border);

--scribuntoconsole-input: @curious-blue; --scibuntoconsole-print: @supernova; --scribuntoconsole-error: @flamingo; --scribuntoconsole-message: @lima; --scribuntoconsole-tabcomplete: @medium-purple; --scribuntoconsole-clear: @flamingo;

// common /templates.less --blockquote-color: var(--text-color); --coins-color: @lima; --coins-pos-color: @curious-blue; --coins-neg-color: @flamingo; --questdetails-header-background: var(--body-dark); --questdetails-header-background-alt: var(--body-dark); --fact-text-color: @curious-blue; --production-selected-background: @la-palma; --production-selected-color: @white; --wikipedia-border: var(--body-border); --wikipedia-background: var(--body-light); --keypress-background: var(--body-light); --keypress-border: var(--body-border); --keypress-color: var(--text-color);

// common /poll.less --ajaxpoll-background: var(--body-light); --ajaxpoll-text-color: var(--base-text-color); --ajaxpoll-answerbar-background: var(--body-mid); --ajaxpoll-answerbar-border: var(--body-border);

// common /specials.less --rc-negative-color: @flamingo; --rc-positive-color: @lima; --filter-black-to-link: invert(63%) sepia(67%) saturate(242%) hue-rotate(182deg) brightness(93%) contrast(94%);

// common /transcripts.less --transcript-border-color: @waikawa-grey; --transcript-border-hover-color: lighten( @waikawa-grey, 15% ); --transcript-strikethrough-color: @white;

// vector /navbox.less --navbox-background: var(--body-light); --navbox-border: var(--body-main); --navbox-title-background: var(--body-dark); --navbox-footer-background: var(--navbox-title-background); --navbox-group-title-background: var(--navbox-title-background);

// vector /infobox.less --infobox-bg: var(--body-light); --infobox-border: var(--body-border); --infobox-header: var(--body-dark); --infobox-subheader: var(--body-mid); --infobox-text-color: var(--text-color); --infobox-room-poh-color: @river-bed;

// vector /sourceeditor.less --sourceeditor-input-background: var(--body-mid); --sourceeditor-background: var(--body-light); --sourceeditor-background-secondary: var(--body-mid); --sourceeditor-border: var(--body-main); --codemirror-gutter-background: var(--body-light);

// vector /toc.less --toc-bg: var(--body-light); --toc-title-bg: var(--body-dark); --toc-border-color: var(--body-border); --toc-list-border-color: var(--body-border);

// vector /vectortabs.less --vector-tab-background: @cloud-burst; --vector-tab-background--hover: lighten( @cloud-burst, 4% ); --vector-tab-link-color: var(--background-link-color);

// gadget-highlighttable.css --lighttable-bg-hover: @la-palma; --lighttable-bg-active: @san-felix; --lighttable-link-color: @caper;

--personal-links-bg: rgba(7, 16, 34, 0.75);

// trailblazer region highlight --tbz-unlocked-background: repeating-linear-gradient(-45deg, #315d30 0 20px, #13421e 20px 30px); --tbz-unlocked-border-color: #00e417;

--tbz-locked-background-color: #8a2525; --tbz-locked-border-color: #b32828;

--tbz-partial-unlock-background: #5a5a5a; --tbz-partial-unlock-border-color: #13421e;

// SVG clutter --echo-icon-moon-bg-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg height='21' viewBox='0 0 21 21' width='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m8.85464918.37900488c-1.91149353 1.51069427-3.13816124 3.84973402-3.13816124 6.47527736 0 4.55564936 3.69308349 8.24873286 8.24873286 8.24873286 2.5815709 0 4.8861545-1.1859235 6.3986798-3.0426994-.8206378 4.7389755-4.9523867 8.343122-9.9259291 8.343122-5.56375572 0-10.07407088-4.5103151-10.07407088-10.0740709 0-5.02506013 3.67919933-9.19079725 8.49074856-9.95036192z' fill='@{dark-text-escape}' fill-rule='evenodd'/%3E%3C/svg%3E"); --echo-icon-person-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='13.836' viewBox='0 0 12 13.836'%3E%3Cpath fill='@{dark-text-escape}' d='M1.938,6.656c-1.32,1.485-1.47,3.15-0.97,4.25c0.323,0.707,0.78,1.127,1.313,1.375 c0.496,0.229,1.074,0.273,1.658,0.282c0.023,0,0.04,0.03,0.062,0.03h4.187c0.61,0,1.225-0.125,1.75-0.405 c0.527-0.28,0.961-0.718,1.188-1.376c0.335-0.964,0.175-2.529-1.094-4.03C9.094,7.954,7.68,8.719,6.065,8.719 c-1.677,0-3.182-0.812-4.125-2.063H1.938z'/%3E%3Cpath fill='@{dark-text-escape}' d='M6.063,0c-1.89,0-3.595,1.674-3.594,3.563C2.467,5.45,4.173,7.155,6.06,7.155 c1.89,0,3.564-1.705,3.563-3.593C9.625,1.673,7.95,0,6.063,0L6.063,0z'/%3E%3C/svg%3E"); --echo-icon-bell-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E bell %3C/title%3E%3Cpath fill='@{dark-text-escape}' d='M16 7a5.38 5.38 0 0 0-4.46-4.85C11.6 1.46 11.53 0 10 0S8.4 1.46 8.46 2.15A5.38 5.38 0 0 0 4 7v6l-2 2v1h16v-1l-2-2zm-6 13a3 3 0 0 0 3-3H7a3 3 0 0 0 3 3z'/%3E%3C/svg%3E"); --echo-icon-tray-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E tray %3C/title%3E%3Cpath fill='@{dark-text-escape}' d='M17 1H3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm0 12h-4l-1 2H8l-1-2H3V3h14z'/%3E%3C/svg%3E"); --echo-icon-cog-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E settings %3C/title%3E%3Cg transform='translate(10 10)'%3E%3Cpath fill='@{dark-text-escape}' id='a' d='M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3'/%3E%3Cuse xlink:href='%23a' transform='rotate(45)'/%3E%3Cuse xlink:href='%23a' transform='rotate(90)'/%3E%3Cuse xlink:href='%23a' transform='rotate(135)'/%3E%3C/g%3E%3Cpath fill='@{dark-text-escape}' d='M10 2.5a7.5 7.5 0 0 0 0 15 7.5 7.5 0 0 0 0-15v4a3.5 3.5 0 0 1 0 7 3.5 3.5 0 0 1 0-7'/%3E%3C/svg%3E%0A"); --echo-icon-fullscreen-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E fullscreen %3C/title%3E%3Cg fill='@{dark-text-escape}'%3E%3Cpath d='M1 1v6h2V3h4V1zm2 12H1v6h6v-2H3zm14 4h-4v2h6v-6h-2zm0-16h-4v2h4v4h2V1z'/%3E%3C/g%3E%3Cscript xmlns=/%3E%3C/svg%3E"); --echo-icon-exitFullscreen-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E exit fullscreen %3C/title%3E%3Cg fill='@{dark-text-escape}'%3E%3Cpath d='M7 7V1H5v4H1v2zM5 19h2v-6H1v2h4zm10-4h4v-2h-6v6h2zm0-8h4V5h-4V1h-2v6z'/%3E%3C/g%3E%3Cscript xmlns=/%3E%3C/svg%3E");

--searchbutton-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='@{dark-links-escape}' d='M12.2 13.6a7 7 0 1 1 1.4-1.4l5.4 5.4-1.4 1.4zM3 8a5 5 0 1 0 10 0A5 5 0 0 0 3 8z'/%3E%3C/svg%3E"); --arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M11.05 3.996l-.965-1.053-4.035 3.86-3.947-3.86L1.05 3.996l5 5 5-5' fill='@{dark-text-escape}'/%3E%3C/svg%3E"); --watch-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='transparent' stroke='@{dark-links-escape}' stroke-width='.8' d='m8.1 1.1 2.2 4.5 4.8.7-3.5 3.4.9 4.8L8 12.2l-4.3 2.3.8-4.8L1 6.3l4.8-.7z'/%3E%3C/svg%3E%0A"); --unwatch-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='@{dark-links-escape}' stroke='@{dark-links-escape}' stroke-width='.8' d='m8.1 1.1 2.2 4.5 4.8.7-3.5 3.4.9 4.8L8 12.2l-4.3 2.3.8-4.8L1 6.3l4.8-.7z'/%3E%3C/svg%3E%0A"); --external-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='@{dark-links-escape}' d='M6 1h5v5L8.86 3.85 4.7 8 4 7.3l4.15-4.16L6 1Z M2 3h2v1H2v6h6V8h1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z'/%3E%3C/svg%3E"); --ul-list-style-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='13'%3E%3Ccircle cx='2.5' cy='9' r='2.5' fill='@{dark-text-escape}'/%3E%3C/svg%3E");

// prob need to be removed: because of the specificity added by nesting, it can override and add background etc when // not expected. a good example is `.vector-search-box-input` where it adds border both to input and search icon // maybe worth relying on `color-scheme` instead but without the `:has()` in its selector //input, select, textarea { background: var(--body-light); border: 1px solid var(--body-border); color: var(--text-color); }

// == Syntax highlighter imports == // Editors @codehighlight-background: var(--mw-code-background-color); @import '@{dir}/codehighlight.less'; // Code highlight @code-bg: @cloud-burst; @gutter-bg: @pickled-bluewood; @gutter-text: @dark-text; @import '@{dir}/aceeditor.less'; // ace editor (for css, js, lua, etc.) @codemirror-background: @cloud-burst; @codemirror-text-color: @dark-text; @codemirror-selection-color: @portage; @codemirror-bracket-matcher-background: @dark-wikitable-background; @import '@{dir}/darksyntax.less'; // CodeMirror aka source editor syntax

// ==== Misc ==== // mainly stuff that may need to be changed via vars instead

.oo-ui-iconElement-icon:not(.oo-ui-image-destructive, .oo-ui-image-warning, .oo-ui-image-progressive, .oo-ui-checkboxInputWidget-checkIcon, .oo-ui-image-invert, .mw-no-invert), .oo-ui-indicatorElement-indicator, .mwe-math-element img, .mw-ui-icon:before, .cdx-button__icon, .popups-icon, .soft-redirect > div:nth-child(1) img { filter: invert(1) hue-rotate(180deg); // hue-rotate to preserve color if possible; not very accurate tho }

.client-js & .sortable:not(.jquery-tablesorter) > * > tr:first-child > th:not(.unsortable), .jquery-tablesorter th.headerSort { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='9' viewBox='0 0 21 9'%3E%3Cg fill='@{dark-text-escape}'%3E%3Cpath d='M14.5 5l-4 4-4-4zM14.5 4l-4-4-4 4z'/%3E%3C/g%3E%3C/svg%3E"); }

.jquery-tablesorter { th.headerSortUp { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='4' viewBox='0 0 21 4'%3E%3Cg fill='@{dark-text-escape}'%3E%3Cpath d='M6.5 4l4-4 4 4z'/%3E%3C/g%3E%3C/svg%3E"); }

th.headerSortDown { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='4' viewBox='0 0 21 4'%3E%3Cg fill='@{dark-text-escape}'%3E%3Cpath d='M14.5 0l-4 4-4-4z'/%3E%3C/g%3E%3C/svg%3E"); } } }