diff --git a/console/atest-ui/src/App.vue b/console/atest-ui/src/App.vue
index 53a0a155..96f1b5bc 100644
--- a/console/atest-ui/src/App.vue
+++ b/console/atest-ui/src/App.vue
@@ -15,8 +15,16 @@ import { DefaultResponseProcess } from './views/net'
import { useI18n } from 'vue-i18n'
import ClientMonitor from 'skywalking-client-js';
+import setTheme from './theme'
+
const { t } = useI18n()
+
+function switchAppMode()
+{
+ setTheme(appMode.value)
+}
+
interface Tree {
id: string
label: string
@@ -116,6 +124,7 @@ interface Store {
}
const stores = ref([] as Store[])
+const appMode = ref(false)
function loadStores() {
const requestOptions = {
method: 'POST',
@@ -298,6 +307,10 @@ watch(viewName, (val) => {
+
+
+
+
@@ -460,6 +473,7 @@ nav {
margin-top: 2rem;
}
+
nav a.router-link-exact-active {
color: var(--color-text);
}
diff --git a/console/atest-ui/src/assets/base.css b/console/atest-ui/src/assets/base.css
index 88f96329..cd2cf499 100644
--- a/console/atest-ui/src/assets/base.css
+++ b/console/atest-ui/src/assets/base.css
@@ -36,20 +36,6 @@
--section-gap: 160px;
}
-@media (prefers-color-scheme: dark) {
- :root {
- --color-background: var(--vt-c-black);
- --color-background-soft: var(--vt-c-black-soft);
- --color-background-mute: var(--vt-c-black-mute);
-
- --color-border: var(--vt-c-divider-dark-2);
- --color-border-hover: var(--vt-c-divider-dark-1);
-
- --color-heading: var(--vt-c-text-dark-1);
- --color-text: var(--vt-c-text-dark-2);
- }
-}
-
*,
*::before,
*::after {
diff --git a/console/atest-ui/src/theme.ts b/console/atest-ui/src/theme.ts
new file mode 100644
index 00000000..766c73c2
--- /dev/null
+++ b/console/atest-ui/src/theme.ts
@@ -0,0 +1,27 @@
+const lightTheme: { [k: string]: string } = {
+ '--color-background': 'var(--vt-c-white)',
+ '--color-background-soft': 'var(--vt-c-white-soft)',
+ '--color-background-mute': 'var(--vt-c-white-mute)',
+ '--color-border': 'var(--vt-c-divider-light-2)',
+ '--color-border-hover': 'var(--vt-c-divider-light-1)',
+ '--color-heading': 'var(--vt-c-text-light-1)',
+ '--color-text': 'var(--vt-c-text-light-1)'
+}
+
+const darkTheme: { [k: string]: string } = {
+ '--color-background': 'var(--vt-c-black)',
+ '--color-background-soft': 'var(--vt-c-black-soft)',
+ '--color-background-mute': 'var(--vt-c-black-mute)',
+ '--color-border': 'var(--vt-c-divider-dark-2)',
+ '--color-border-hover': 'var(--vt-c-divider-dark-1)',
+ '--color-heading': 'var(--vt-c-text-dark-1)',
+ '--color-text': 'var(--vt-c-text-dark-2)'
+}
+
+
+export default function setTheme(darkMode: boolean) {
+ const theme = darkMode ? darkTheme : lightTheme
+ Object.keys(theme).forEach((key) => {
+ document.documentElement.style.setProperty(key, theme[key])
+ })
+}