generated from Seekra/repository-template
Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98a5d9de84
|
||
|
|
55164c3b2f
|
||
|
|
b245aa4a39
|
||
|
|
5b93f547f3
|
||
|
|
3e30e85354
|
||
|
|
f4d8952c54
|
||
|
|
2206b9952b
|
+26
-7
@@ -18,21 +18,40 @@ limitations under the License.
|
|||||||
import Navbar from './features/nav/components/Navbar.vue';
|
import Navbar from './features/nav/components/Navbar.vue';
|
||||||
import Footer from './features/footer/components/Footer.vue';
|
import Footer from './features/footer/components/Footer.vue';
|
||||||
|
|
||||||
|
import { updatePageTitle } from './router';
|
||||||
import { useColorScheme } from './features/colorScheme/composables/useColorScheme';
|
import { useColorScheme } from './features/colorScheme/composables/useColorScheme';
|
||||||
import { ref, provide, watch } from 'vue';
|
import { ref, provide, watch, watchEffect } from 'vue';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
const { getColorScheme, updateColorScheme } = useColorScheme();
|
const { getColorScheme, updateColorScheme } = useColorScheme();
|
||||||
const colorScheme = ref(getColorScheme());
|
const colorScheme = ref(getColorScheme());
|
||||||
provide('colorScheme', colorScheme);
|
provide('colorScheme', colorScheme);
|
||||||
watch(colorScheme, val => updateColorScheme(val))
|
watch(colorScheme, (newValue) => {
|
||||||
|
updateColorScheme(newValue);
|
||||||
|
document.body.style.setProperty(colorScheme, {
|
||||||
|
auto: 'normal',
|
||||||
|
dark: 'dark',
|
||||||
|
light: 'light'
|
||||||
|
});
|
||||||
|
if (newValue === 'dark') {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
} else {
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
}
|
||||||
|
if (newValue === 'auto') {
|
||||||
|
document.body.classList.add('color-scheme-auto');
|
||||||
|
} else {
|
||||||
|
document.body.classList.remove('color-scheme-auto');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
watchEffect(() => updatePageTitle(route));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div id="app-wrapper">
|
||||||
:style="{ colorScheme: colorScheme === 'auto' ? 'normal' : (colorScheme === 'dark' ? 'dark' : 'light')}"
|
|
||||||
:class="{ dark: colorScheme === 'dark', 'color-scheme-auto': colorScheme === 'auto' }"
|
|
||||||
id="app-wrapper"
|
|
||||||
>
|
|
||||||
<Navbar />
|
<Navbar />
|
||||||
|
|
||||||
<router-view class="main-content" />
|
<router-view class="main-content" />
|
||||||
|
|||||||
+5
-6
@@ -59,18 +59,17 @@ const router = createRouter({
|
|||||||
routes
|
routes
|
||||||
});
|
});
|
||||||
|
|
||||||
// set page title
|
export const updatePageTitle = function updatePageTitle (route) {
|
||||||
router.afterEach(to => {
|
|
||||||
const title =
|
const title =
|
||||||
typeof to.meta.title === 'function'
|
typeof route.meta.title === 'function'
|
||||||
? to.meta.title(to)
|
? route.meta.title(route)
|
||||||
: to.meta.title;
|
: route.meta.title;
|
||||||
|
|
||||||
if (title) {
|
if (title) {
|
||||||
document.title = `${title} - Seekra`;
|
document.title = `${title} - Seekra`;
|
||||||
} else {
|
} else {
|
||||||
document.title = 'Seekra';
|
document.title = 'Seekra';
|
||||||
};
|
};
|
||||||
});
|
};
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
@@ -15,6 +15,8 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
background-color: var(--light-bg);
|
||||||
|
color: var(--dark);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#app-wrapper {
|
body {
|
||||||
--primary-color-l-8: oklch(0.897 0.202 260);
|
--primary-color-l-8: oklch(0.897 0.202 260);
|
||||||
--primary-color-l-7: oklch(0.847 0.202 260);
|
--primary-color-l-7: oklch(0.847 0.202 260);
|
||||||
--primary-color-l-6: oklch(0.797 0.202 260);
|
--primary-color-l-6: oklch(0.797 0.202 260);
|
||||||
@@ -87,7 +87,7 @@ limitations under the License.
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
#app-wrapper.color-scheme-auto {
|
body.color-scheme-auto {
|
||||||
--dark-l-8: var(--white-d-8);
|
--dark-l-8: var(--white-d-8);
|
||||||
--dark-l-7: var(--white-d-7);
|
--dark-l-7: var(--white-d-7);
|
||||||
--dark-l-6: var(--white-d-6);
|
--dark-l-6: var(--white-d-6);
|
||||||
@@ -121,7 +121,7 @@ limitations under the License.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#app-wrapper.dark {
|
body.dark {
|
||||||
--dark-l-8: var(--white-d-8);
|
--dark-l-8: var(--white-d-8);
|
||||||
--dark-l-7: var(--white-d-7);
|
--dark-l-7: var(--white-d-7);
|
||||||
--dark-l-6: var(--white-d-6);
|
--dark-l-6: var(--white-d-6);
|
||||||
|
|||||||
Reference in New Issue
Block a user