More languages
More actions
Created page with "<nowiki>{{#css:MyStyles.css}}</nowiki>" |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
/** | |||
* MediaWiki Theme Toggle Button - Simple UI, not setup to be like example design | |||
* | |||
* CSS for light/dark mode toggle with theme variables | |||
* Compatible with MediaWiki styles | |||
*/ | |||
/* Theme variables - Light theme (default) */ | |||
:root[data-theme="light"] { | |||
/* Base colors */ | |||
--mw-color-background: #ffffff; | |||
--mw-color-surface: #f8f9fa; | |||
--mw-color-text-primary: #202122; | |||
--mw-color-text-secondary: #54595d; | |||
--mw-color-border: #c8ccd1; | |||
--mw-color-link: #0645ad; | |||
--mw-color-link-visited: #0b0080; | |||
--mw-color-link-active: #faa700; | |||
/* UI component colors */ | |||
--mw-color-input-bg: #ffffff; | |||
--mw-color-input-border: #a2a9b1; | |||
--mw-color-button-bg: #f8f9fa; | |||
--mw-color-button-text: #202122; | |||
--mw-color-button-border: #a2a9b1; | |||
--mw-color-destructive: #d73333; | |||
--mw-color-progressive: #3366cc; | |||
/* Content colors */ | |||
--mw-color-info-box-bg: #eaecf0; | |||
--mw-color-warning-box-bg: #fee7e6; | |||
--mw-color-success-box-bg: #d5fdf4; | |||
--mw-color-note-box-bg: #eaf3ff; | |||
/* Syntax highlighting */ | |||
--mw-color-code-bg: #f8f9fa; | |||
--mw-color-code-text: #000000; | |||
/* Toggle button specific */ | |||
--mw-toggle-button-bg: #f8f9fa; | |||
--mw-toggle-button-color: #202122; | |||
--mw-toggle-button-border: #a2a9b1; | |||
--mw-toggle-button-hover-bg: #ffffff; | |||
} | |||
/* Dark theme variables */ | |||
:root[data-theme="dark"] { | |||
/* Base colors */ | |||
--mw-color-background: #1f1f1f; | |||
--mw-color-surface: #2a2a2a; | |||
--mw-color-text-primary: #e0e0e0; | |||
--mw-color-text-secondary: #b0b0b0; | |||
--mw-color-border: #555555; | |||
--mw-color-link: #6699ff; | |||
--mw-color-link-visited: #b3ccff; | |||
--mw-color-link-active: #ffcc33; | |||
/* UI component colors */ | |||
--mw-color-input-bg: #2a2a2a; | |||
--mw-color-input-border: #555555; | |||
--mw-color-button-bg: #333333; | |||
--mw-color-button-text: #e0e0e0; | |||
--mw-color-button-border: #555555; | |||
--mw-color-destructive: #ff5555; | |||
--mw-color-progressive: #6699ff; | |||
/* Content colors */ | |||
--mw-color-info-box-bg: #333333; | |||
--mw-color-warning-box-bg: #402020; | |||
--mw-color-success-box-bg: #203020; | |||
--mw-color-note-box-bg: #203040; | |||
/* Syntax highlighting */ | |||
--mw-color-code-bg: #2a2a2a; | |||
--mw-color-code-text: #e0e0e0; | |||
/* Toggle button specific */ | |||
--mw-toggle-button-bg: #333333; | |||
--mw-toggle-button-color: #e0e0e0; | |||
--mw-toggle-button-border: #555555; | |||
--mw-toggle-button-hover-bg: #444444; | |||
} | |||
/* Apply theme variables to MediaWiki elements */ | |||
:root[data-theme] { | |||
/* Transitions for smooth theme switching */ | |||
transition: all 0.3s ease; | |||
} | |||
body, | |||
.mw-body, | |||
#content, | |||
#mw-content-text, | |||
.mw-parser-output { | |||
background-color: var(--mw-color-background); | |||
color: var(--mw-color-text-primary); | |||
transition: background-color 0.3s ease, color 0.3s ease; | |||
} | |||
/* Main content styling */ | |||
#content, | |||
.mw-body, | |||
.mw-body-content { | |||
color: var(--mw-color-text-primary); | |||
} | |||
/* Links */ | |||
a:link { | |||
color: var(--mw-color-link); | |||
} | |||
a:visited { | |||
color: var(--mw-color-link-visited); | |||
} | |||
a:active { | |||
color: var(--mw-color-link-active); | |||
} | |||
/* Headings */ | |||
h1, h2, h3, h4, h5, h6 { | |||
color: var(--mw-color-text-primary); | |||
border-color: var(--mw-color-border); | |||
} | |||
/* Tables */ | |||
table.wikitable { | |||
background-color: var(--mw-color-surface); | |||
color: var(--mw-color-text-primary); | |||
border-color: var(--mw-color-border); | |||
} | |||
table.wikitable > tr > th, | |||
table.wikitable > * > tr > th { | |||
background-color: var(--mw-color-surface); | |||
color: var(--mw-color-text-primary); | |||
border-color: var(--mw-color-border); | |||
} | |||
table.wikitable > tr > td, | |||
table.wikitable > * > tr > td { | |||
background-color: var(--mw-color-background); | |||
color: var(--mw-color-text-primary); | |||
border-color: var(--mw-color-border); | |||
} | |||
/* Infoboxes */ | |||
.infobox, | |||
.mw-highlight, | |||
.notice, | |||
.toccolours, | |||
.messagebox { | |||
background-color: var(--mw-color-surface); | |||
color: var(--mw-color-text-primary); | |||
border-color: var(--mw-color-border); | |||
} | |||
/* Code blocks */ | |||
code, | |||
pre, | |||
.mw-code { | |||
background-color: var(--mw-color-code-bg); | |||
color: var(--mw-color-code-text); | |||
border-color: var(--mw-color-border); | |||
} | |||
/* Navigation elements */ | |||
#mw-head, | |||
#mw-panel, | |||
#p-logo, | |||
.portal, | |||
#mw-navigation { | |||
background-color: var(--mw-color-surface); | |||
color: var(--mw-color-text-primary); | |||
} | |||
/* Theme toggle button styles */ | |||
.theme-toggle-container { | |||
display: inline-block; | |||
margin: 0 10px; | |||
vertical-align: middle; | |||
white-space: nowrap; | |||
} | |||
.theme-toggle-button { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 32px; | |||
height: 32px; | |||
padding: 4px; | |||
border-radius: 50%; | |||
border: 1px solid var(--mw-toggle-button-border); | |||
background-color: var(--mw-toggle-button-bg); | |||
color: var(--mw-toggle-button-color); | |||
cursor: pointer; | |||
transition: all 0.3s ease; | |||
} | |||
.theme-toggle-button:hover { | |||
background-color: var(--mw-toggle-button-hover-bg); | |||
transform: scale(1.05); | |||
} | |||
.theme-toggle-button:focus { | |||
outline: 2px solid var(--mw-color-progressive); | |||
outline-offset: 2px; | |||
} | |||
.theme-toggle-icon { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
} | |||
.theme-toggle-icon svg { | |||
width: 20px; | |||
height: 20px; | |||
} | |||
/* Fixed position toggle for mobile view */ | |||
@media (max-width: 768px) { | |||
.theme-toggle-container { | |||
position: fixed; | |||
bottom: 20px; | |||
right: 20px; | |||
z-index: 100; | |||
margin: 0; | |||
} | |||
.theme-toggle-button { | |||
width: 40px; | |||
height: 40px; | |||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); | |||
} | |||
/* Increase button size for better touch target */ | |||
.theme-toggle-icon svg { | |||
width: 24px; | |||
height: 24px; | |||
} | |||
} | |||
/* Styles for personal tools menu integration */ | |||
#pt-theme-toggle { | |||
display: inline-block; | |||
margin: 0; | |||
padding: 0; | |||
} | |||
#pt-theme-toggle .theme-toggle-button { | |||
width: 28px; | |||
height: 28px; | |||
padding: 2px; | |||
} | |||
/* No JS fallback styles */ | |||
.no-js .theme-toggle-container { | |||
display: none; | |||
} | |||
Latest revision as of 00:38, 23 April 2025
/**
* MediaWiki Theme Toggle Button - Simple UI, not setup to be like example design * * CSS for light/dark mode toggle with theme variables * Compatible with MediaWiki styles */
/* Theme variables - Light theme (default) */
- root[data-theme="light"] {
/* Base colors */ --mw-color-background: #ffffff; --mw-color-surface: #f8f9fa; --mw-color-text-primary: #202122; --mw-color-text-secondary: #54595d; --mw-color-border: #c8ccd1; --mw-color-link: #0645ad; --mw-color-link-visited: #0b0080; --mw-color-link-active: #faa700;
/* UI component colors */ --mw-color-input-bg: #ffffff; --mw-color-input-border: #a2a9b1; --mw-color-button-bg: #f8f9fa; --mw-color-button-text: #202122; --mw-color-button-border: #a2a9b1; --mw-color-destructive: #d73333; --mw-color-progressive: #3366cc;
/* Content colors */ --mw-color-info-box-bg: #eaecf0; --mw-color-warning-box-bg: #fee7e6; --mw-color-success-box-bg: #d5fdf4; --mw-color-note-box-bg: #eaf3ff;
/* Syntax highlighting */ --mw-color-code-bg: #f8f9fa; --mw-color-code-text: #000000;
/* Toggle button specific */ --mw-toggle-button-bg: #f8f9fa; --mw-toggle-button-color: #202122; --mw-toggle-button-border: #a2a9b1; --mw-toggle-button-hover-bg: #ffffff;
}
/* Dark theme variables */
- root[data-theme="dark"] {
/* Base colors */ --mw-color-background: #1f1f1f; --mw-color-surface: #2a2a2a; --mw-color-text-primary: #e0e0e0; --mw-color-text-secondary: #b0b0b0; --mw-color-border: #555555; --mw-color-link: #6699ff; --mw-color-link-visited: #b3ccff; --mw-color-link-active: #ffcc33;
/* UI component colors */ --mw-color-input-bg: #2a2a2a; --mw-color-input-border: #555555; --mw-color-button-bg: #333333; --mw-color-button-text: #e0e0e0; --mw-color-button-border: #555555; --mw-color-destructive: #ff5555; --mw-color-progressive: #6699ff;
/* Content colors */ --mw-color-info-box-bg: #333333; --mw-color-warning-box-bg: #402020; --mw-color-success-box-bg: #203020; --mw-color-note-box-bg: #203040;
/* Syntax highlighting */ --mw-color-code-bg: #2a2a2a; --mw-color-code-text: #e0e0e0;
/* Toggle button specific */ --mw-toggle-button-bg: #333333; --mw-toggle-button-color: #e0e0e0; --mw-toggle-button-border: #555555; --mw-toggle-button-hover-bg: #444444;
}
/* Apply theme variables to MediaWiki elements */
- root[data-theme] {
/* Transitions for smooth theme switching */ transition: all 0.3s ease;
}
body, .mw-body,
- content,
- mw-content-text,
.mw-parser-output {
background-color: var(--mw-color-background); color: var(--mw-color-text-primary); transition: background-color 0.3s ease, color 0.3s ease;
}
/* Main content styling */
- content,
.mw-body, .mw-body-content {
color: var(--mw-color-text-primary);
}
/* Links */ a:link {
color: var(--mw-color-link);
}
a:visited {
color: var(--mw-color-link-visited);
}
a:active {
color: var(--mw-color-link-active);
}
/* Headings */ h1, h2, h3, h4, h5, h6 {
color: var(--mw-color-text-primary); border-color: var(--mw-color-border);
}
/* Tables */ table.wikitable {
background-color: var(--mw-color-surface); color: var(--mw-color-text-primary); border-color: var(--mw-color-border);
}
table.wikitable > tr > th, table.wikitable > * > tr > th {
background-color: var(--mw-color-surface); color: var(--mw-color-text-primary); border-color: var(--mw-color-border);
}
table.wikitable > tr > td, table.wikitable > * > tr > td {
background-color: var(--mw-color-background); color: var(--mw-color-text-primary); border-color: var(--mw-color-border);
}
/* Infoboxes */ .infobox, .mw-highlight, .notice, .toccolours, .messagebox {
background-color: var(--mw-color-surface); color: var(--mw-color-text-primary); border-color: var(--mw-color-border);
}
/* Code blocks */ code, pre, .mw-code {
background-color: var(--mw-color-code-bg); color: var(--mw-color-code-text); border-color: var(--mw-color-border);
}
/* Navigation elements */
- mw-head,
- mw-panel,
- p-logo,
.portal,
- mw-navigation {
background-color: var(--mw-color-surface); color: var(--mw-color-text-primary);
}
/* Theme toggle button styles */ .theme-toggle-container {
display: inline-block; margin: 0 10px; vertical-align: middle; white-space: nowrap;
}
.theme-toggle-button {
display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 4px; border-radius: 50%; border: 1px solid var(--mw-toggle-button-border); background-color: var(--mw-toggle-button-bg); color: var(--mw-toggle-button-color); cursor: pointer; transition: all 0.3s ease;
}
.theme-toggle-button:hover {
background-color: var(--mw-toggle-button-hover-bg); transform: scale(1.05);
}
.theme-toggle-button:focus {
outline: 2px solid var(--mw-color-progressive); outline-offset: 2px;
}
.theme-toggle-icon {
display: flex; align-items: center; justify-content: center;
}
.theme-toggle-icon svg {
width: 20px; height: 20px;
}
/* Fixed position toggle for mobile view */ @media (max-width: 768px) {
.theme-toggle-container {
position: fixed;
bottom: 20px;
right: 20px;
z-index: 100;
margin: 0;
}
.theme-toggle-button {
width: 40px;
height: 40px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
/* Increase button size for better touch target */
.theme-toggle-icon svg {
width: 24px;
height: 24px;
}
}
/* Styles for personal tools menu integration */
- pt-theme-toggle {
display: inline-block; margin: 0; padding: 0;
}
- pt-theme-toggle .theme-toggle-button {
width: 28px; height: 28px; padding: 2px;
}
/* No JS fallback styles */ .no-js .theme-toggle-container {
display: none;
}