Skip to content

Commit 5112610

Browse files
authored
Merge pull request #2026 from UlrichB22/darkmode
Feature: Add dark theme as per system settings
2 parents e111430 + 8b4bf2e commit 5112610

File tree

1 file changed

+255
-0
lines changed

1 file changed

+255
-0
lines changed

src/moin/themes/topside/static/css/theme.css

Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,258 @@ ul.moin-breadcrumb li ul.moin-alias li { display: block; padding: 2px 10px; }
190190
div.moin-table-of-contents { box-shadow: none }
191191
a[href]:after { content: none; } /* Firefox prints urls after anchor text by default */
192192
}
193+
194+
/* Dark Mode Theme Support */
195+
@media (prefers-color-scheme: dark) {
196+
:root {
197+
/* colors used for text and borders */
198+
--primary: #E8E6E3; /* primary text color */
199+
--inverse: #1A1A1A; /* inverse text color */
200+
--disabled: #8C8C8C; /* text color for disabled, missing, ACL default rules */
201+
--muted: #B8B8B8; /* subdued text, meta data search hits, default, footer info, default ACL rules */
202+
--error: #FF6B6B; /* syntax error messages generated by converters */
203+
--suggestions: #FFB84D; /* search suggestions */
204+
--alert: #FF4444; /* alert messages including flash, load draft */
205+
--hilite: #6495ED; /* mouseover contenttype, user setting change* */
206+
--comment: #9E9E9E; /* text color of visible comments */
207+
--shadow-color: #000000;
208+
209+
--link: #6495ED; /* links, link separators, bookmark links */
210+
--link-visited: #8A7FFF; /* visited links */
211+
--link-hover: #80B3FF; /* mouseover links */
212+
--link-active: #4A7FFF; /* mousedown over links */
213+
--overlay: #6495ED; /* border and text linking to transcluded item */
214+
215+
--border: #4A6B8A; /* border color used on tables, heading underline, warnings, errors, horizontal rule background, TOC, user settings, history */
216+
--border-button: #5A7FA0; /* button borders */
217+
--border-button-hover: #80A0C0; /* highlight mouseover action on buttons */
218+
--border-disabled: #5A5A5A; /* nonexistent img and object */
219+
--border-popup: #5A7FA0; /* global index popup */
220+
--border-code: #4A5A6A; /* border color for user defined block with class of code, solid, dashed, dotted */
221+
--border-footnotes: #606060; /* border color for start of footnotes */
222+
--border-style: 1px solid #4A6B8A;
223+
224+
/* background colors */
225+
--bg-primary: #1E1E1E; /* main background color */
226+
--bg-inverse: #4169E1; /* selected initial within global index */
227+
--bg-popup-header: #2A3F5F; /* global index popup header */
228+
--bg-selected: #2A3544; /* selected tab or mouseover action on user settings and global index */
229+
--bg-close: #CC0000; /* close button on global index popup */
230+
--bg-tabs: #252830; /* unselected user settings tabs */
231+
232+
--bg-zebra: #2A2A2A; /* zebra tables, revision navigation on show, highlight, and meta views */
233+
--bg-heading: #2A4A6A; /* table headings and footers, captions, history and ACL report headings */
234+
235+
--jfu-progress: #2A4A6A; /* jfu progress bar */
236+
--jfu-failed: #4A2A2A; /* jfu progress bar for failed upload*/
237+
238+
--bg-trans-hover: #2A3A4A; /* mouseover effect on transclusion corners */
239+
240+
--bg-disabled: #3A3A3A; /* disabled text, preformated text comment */
241+
--bg-code: #252830; /* pre and code blocks, default ACLs */
242+
243+
--bg-error: #2A2A3A; /* syntax error messages generated by converters */
244+
--bg-message: #3A2A2A; /* flash and load draft messages */
245+
--bg-comment: #3A3A1A; /* user defined comments, hidden/shown by user settings or action {{{#!wiki solid comment... */
246+
--bg-hilite: #3A3A1A; /* searched text hits generated by highlight converter */
247+
248+
--bg-button: #3A5A7A; /* button background */
249+
--bg-button-active: #2A4A6A; /* active button background (mouse left click) */
250+
251+
--bg-diff: #3A3A3A; /* diff line number */
252+
--bg-diff-added: #1A3A1A; /* diff highlight block containing added text */
253+
--bg-diff-added-text: #2A5A2A; /* diff highlight added text within a changed block of text */
254+
--bg-diff-removed: #3A3A1A; /* diff highlight block containing removed text */
255+
--bg-diff-removed-text: #4A4A2A; /* diff highlight removed text within a changed block of text */
256+
--bg-diff-hilite: #3A3A1A; /* javascript highlight changed block of text after click on diff view line number */
257+
258+
/* red, green, blue, yellow, gray, and orange are documented for use by editors */
259+
--bg-user-red: #4A2A2A; /* user defined background color {{{#!wiki red... */
260+
--bg-user-green: #2A4A2A; /* user defined background color {{{#!wiki green... */
261+
--bg-user-blue: #2A2A4A; /* user defined background color {{{#!wiki blue... */
262+
--bg-user-yellow: #4A4A2A; /* user defined background color {{{#!wiki yellow... */
263+
--bg-user-orange: #4A3A2A; /* user defined background color {{{#!wiki orange... */
264+
--bg-user-grey: #2A2A2A; /* user defined background color {{{#!wiki grey... */
265+
--bg-user-gray: #2A2A2A; /* user defined background color {{{#!wiki gray... */
266+
267+
/* MonthCalendar macro colors */
268+
--cal-text: #D0D0D0; /* calendar link text color */
269+
--border-cal: #3A3A3A; /* calendar border style and color */
270+
--bg-cal-header: #2A2A4A; /* header background */
271+
--bg-cal-emptyday: #2A2A2A; /* empty days background */
272+
--bg-cal-usedday: #4A3A2A; /* used day background */
273+
--bg-cal-weekend: #3A2A2A; /* weekend background */
274+
--bg-cal-today: #2A3A2A; /* todays background */
275+
--bg-cal-invalidday: #222222; /* invalid days background */
276+
}
277+
278+
body {
279+
background-color: var(--bg-primary);
280+
color: var(--primary);
281+
}
282+
283+
#moin-header {
284+
background-color: #2A2A2A;
285+
border-bottom: 1px solid #3A3A3A;
286+
}
287+
288+
#moin-footer {
289+
background-color: #2A2A2A;
290+
background-position-y: bottom;
291+
color: #B8B8B8;
292+
}
293+
294+
.moin-sitename {
295+
color: #E8E6E3;
296+
}
297+
298+
a {
299+
color: #6495ED;
300+
}
301+
302+
a:hover {
303+
color: #80B3FF;
304+
}
305+
306+
/* Adjust form inputs for better visibility in dark mode */
307+
input[type="text"],
308+
input[type="password"],
309+
input[type="email"],
310+
input[type="search"],
311+
textarea,
312+
select {
313+
background-color: #2A2A2A;
314+
color: #E8E6E3;
315+
border-color: #4A6B8A;
316+
}
317+
318+
input[type="text"]:focus,
319+
input[type="password"]:focus,
320+
input[type="email"]:focus,
321+
input[type="search"]:focus,
322+
textarea:focus,
323+
select:focus {
324+
background-color: #303030;
325+
border-color: #6495ED;
326+
outline: 1px solid #6495ED;
327+
}
328+
329+
#moin-searchform,
330+
#moin-long-searchform > p > input {
331+
background-color: #2A2A2A;
332+
border-color: #4A6B8A;
333+
color: #E8E6E3;
334+
}
335+
336+
.moin-search-query {
337+
background-color: #2A2A2A;
338+
color: #E8E6E3;
339+
}
340+
341+
#moin-search-submit {
342+
filter: invert(1) hue-rotate(180deg);
343+
}
344+
345+
#popup {
346+
background-color: #2A2A2A;
347+
border-color: #4A6B8A;
348+
}
349+
350+
.popup-header {
351+
background-color: #2A4A6A;
352+
color: #E8E6E3;
353+
}
354+
355+
ul.moin-breadcrumb li ul.moin-alias {
356+
background-color: #2A3544;
357+
border-color: #5A7FA0;
358+
}
359+
360+
/* Sidebar styling for dark mode */
361+
@media (min-width: 1025px) {
362+
#moin-sidebar {
363+
background-color: #252525;
364+
border-right: 1px solid #3A3A3A;
365+
}
366+
}
367+
368+
/* Better contrast for navigation items */
369+
#moin-username,
370+
#moin-navibar,
371+
.moin-breadcrumb,
372+
.moin-custom-panel,
373+
.moin-itemviews {
374+
color: #E8E6E3;
375+
}
376+
377+
#moin-username li a,
378+
#moin-navibar li a,
379+
.moin-breadcrumb li a {
380+
color: #6495ED;
381+
}
382+
383+
#moin-username li a:hover,
384+
#moin-navibar li a:hover,
385+
.moin-breadcrumb li a:hover {
386+
color: #80B3FF;
387+
}
388+
389+
/* Reduce brightness of images to be easier on the eyes at night */
390+
img:not([class*="logo"]) {
391+
opacity: 0.85;
392+
transition: opacity 0.3s ease;
393+
}
394+
395+
img:not([class*="logo"]):hover {
396+
opacity: 1;
397+
}
398+
399+
/* Code blocks with better contrast */
400+
pre,
401+
code {
402+
background-color: #252830;
403+
color: #E8E6E3;
404+
border-color: #4A5A6A;
405+
}
406+
407+
/* Tables in dark mode */
408+
table {
409+
border-color: #4A6B8A;
410+
}
411+
412+
th,
413+
td {
414+
border-color: #4A6B8A;
415+
}
416+
417+
/* Horizontal rules */
418+
hr {
419+
border-color: #4A6B8A;
420+
opacity: 0.3;
421+
}
422+
423+
/* Scrollbar styling for WebKit browsers (Chrome, Safari, Edge) */
424+
::-webkit-scrollbar {
425+
width: 12px;
426+
height: 12px;
427+
}
428+
429+
::-webkit-scrollbar-track {
430+
background: #1E1E1E;
431+
}
432+
433+
::-webkit-scrollbar-thumb {
434+
background: #4A4A4A;
435+
border-radius: 6px;
436+
}
437+
438+
::-webkit-scrollbar-thumb:hover {
439+
background: #5A5A5A;
440+
}
441+
442+
/* Firefox scrollbar styling */
443+
* {
444+
scrollbar-width: thin;
445+
scrollbar-color: #4A4A4A #1E1E1E;
446+
}
447+
}

0 commit comments

Comments
 (0)