Detect dark theme via css variable (#17800)

* detect dark theme via css variable
* minor refactor, add documentation

If your custom theme is considered a dark theme, set the global css variable `--is-dark-theme` to `true`.
This allows gitea to adjust the Monaco code editor's theme accordingly.
This commit is contained in:
ThetaDev 2021-11-25 08:14:48 +01:00 committed by GitHub
parent e0f81b4ef4
commit af901a4ca9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 7 deletions

View file

@ -337,6 +337,9 @@ Community themes are listed in [gitea/awesome-gitea#themes](https://gitea.com/gi
The `arc-green` theme source can be found [here](https://github.com/go-gitea/gitea/blob/main/web_src/less/themes/theme-arc-green.less). The `arc-green` theme source can be found [here](https://github.com/go-gitea/gitea/blob/main/web_src/less/themes/theme-arc-green.less).
If your custom theme is considered a dark theme, set the global css variable `--is-dark-theme` to `true`.
This allows gitea to adjust the Monaco code editor's theme accordingly.
## Customizing fonts ## Customizing fonts
Fonts can be customized using CSS variables: Fonts can be customized using CSS variables:

View file

@ -26,13 +26,8 @@ export function isObject(obj) {
// returns whether a dark theme is enabled // returns whether a dark theme is enabled
export function isDarkTheme() { export function isDarkTheme() {
if (document.documentElement.classList.contains('theme-auto')) { const style = window.getComputedStyle(document.documentElement);
return window.matchMedia('(prefers-color-scheme: dark)').matches; return style.getPropertyValue('--is-dark-theme').trim().toLowerCase() === 'true';
}
if (document.documentElement.classList.contains('theme-arc-green')) {
return true;
}
return false;
} }
// removes duplicate elements in an array // removes duplicate elements in an array

View file

@ -1,6 +1,7 @@
@import "../chroma/dark.less"; @import "../chroma/dark.less";
:root { :root {
--is-dark-theme: true;
--color-primary: #87ab63; --color-primary: #87ab63;
--color-primary-dark-1: #93b373; --color-primary-dark-1: #93b373;
--color-primary-dark-2: #9fbc82; --color-primary-dark-2: #9fbc82;