Работа над ночным режимом

This commit is contained in:
Book Pauk
2023-01-10 20:56:27 +07:00
parent 31481453f5
commit c0aec66f0f
2 changed files with 39 additions and 20 deletions

View File

@@ -44,6 +44,25 @@ class App {
this.uistate = this.$store.state.uistate; this.uistate = this.$store.state.uistate;
this.config = this.$store.state.config; this.config = this.$store.state.config;
//dark mode
let darkMode = null;
this.$root.setDarkMode = (value) => {
if (darkMode !== value) {
const vars = ['--app-bg-color', '--app-text-color'];
let root = document.querySelector(':root');
let cs = getComputedStyle(root);
let mode = (value ? '-dark' : '-light');
for (const v of vars) {
const propValue = cs.getPropertyValue(`${v}${mode}`);
root.style.setProperty(v, propValue);
}
darkMode = value;
}
};
//root route //root route
let cachedRoute = ''; let cachedRoute = '';
let cachedPath = ''; let cachedPath = '';
@@ -55,7 +74,7 @@ class App {
} }
return cachedRoute; return cachedRoute;
} };
this.$router.beforeEach((to, from, next) => { this.$router.beforeEach((to, from, next) => {
//распознавание хоста, если присутствует домен 3-уровня "b.", то разрешена только определенная страница //распознавание хоста, если присутствует домен 3-уровня "b.", то разрешена только определенная страница
@@ -192,22 +211,30 @@ export default vueComponent(App);
</script> </script>
<style scoped> <style scoped>
.app-name {
margin-left: 10px;
margin-top: 10px;
text-align: center;
line-height: 140%;
font-weight: bold;
}
</style> </style>
<style> <style>
:root {
/* current */
--app-bg-color: #fff;
--app-text-color: #000;
/* light */
--app-bg-color-light: #ebe2c9;
--app-text-color-light: #000;
/* dark */
--app-bg-color-dark: #222;
--app-text-color-dark: #bbb;
}
body, html, #app { body, html, #app {
margin: 0; margin: 0;
padding: 0; padding: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
font: normal 12pt ReaderDefault; font: normal 12pt ReaderDefault;
background-color: #333;
} }
.q-notifications__list--top { .q-notifications__list--top {

View File

@@ -142,7 +142,7 @@
</div> </div>
</div> </div>
<div class="col row relative-position main" :class="{dark}"> <div class="col row relative-position main">
<keep-alive> <keep-alive>
<component <component
:is="activePage" :is="activePage"
@@ -473,6 +473,7 @@ class Reader {
//dark mode //dark mode
this.nightModeActive = settings.nightMode; this.nightModeActive = settings.nightMode;
this.$root.setDarkMode(this.nightModeActive);
this.$q.dark.set(this.nightModeActive); this.$q.dark.set(this.nightModeActive);
this.clickControlActive = settings.clickControl; this.clickControlActive = settings.clickControl;
@@ -832,10 +833,6 @@ class Reader {
return this.$store.state.reader.settings; return this.$store.state.reader.settings;
} }
get dark() {
return this.$store.state.reader.settings.nightMode;
}
addAction(pos) { addAction(pos) {
let a = this.actionList; let a = this.actionList;
if (!a.length || a[a.length - 1] != pos) { if (!a.length || a[a.length - 1] != pos) {
@@ -1700,13 +1697,8 @@ export default vueComponent(Reader);
} }
.main { .main {
background-color: #EBE2C9; background-color: var(--app-bg-color);
color: #000; color: var(--app-text-color);
}
.dark {
background-color: #222;
color: #ddd;
} }
.tool-button { .tool-button {