fixed dark mode
This commit is contained in:
+14
-18
@@ -28,40 +28,36 @@ function paintAuth() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const r = document; // alias to keep things smol
|
// theme toggle stuff!
|
||||||
|
const prefersLight = document.defaultView?.matchMedia?.('(prefers-color-scheme: light)').matches === true,
|
||||||
const prefersDark = r.defaultView?.matchMedia?.('(prefers-color-scheme: dark)').matches === true,
|
saved = localStorage.getItem('theme'),
|
||||||
stored = localStorage.getItem('theme'),
|
initial = saved ?? (prefersLight ? 'light' : 'dark');
|
||||||
initial = stored ?? (prefersDark ? 'dark' : 'light');
|
|
||||||
|
|
||||||
const applyTheme = (mode) => {
|
const applyTheme = (mode) => {
|
||||||
const b = r.body;
|
const b = document.body;
|
||||||
b.classList.remove('theme-dark', 'theme-light');
|
b.classList.remove('theme-dark', 'theme-light');
|
||||||
b.classList.add(mode === 'dark' ? 'theme-dark' : 'theme-light');
|
b.classList.add(mode === 'dark' ? 'theme-dark' : 'theme-light');
|
||||||
|
|
||||||
const icon = r.querySelector('#themeToggleIcon'),
|
const icon = document.querySelector('#themeToggleIcon'),
|
||||||
label = r.querySelector('#themeToggleLabel');
|
label = document.querySelector('#themeToggleLabel');
|
||||||
|
|
||||||
if (icon && label) {
|
if (icon && label) {
|
||||||
const dark = mode === 'dark';
|
const isDark = mode === 'dark';
|
||||||
icon.textContent = dark ? '🌙' : '☀️';
|
icon.textContent = isDark ? '🌙' : '☀️';
|
||||||
label.textContent = dark ? 'Dark' : 'Light';
|
label.textContent = isDark ? 'Dark' : 'Light';
|
||||||
}
|
}
|
||||||
|
|
||||||
const btn = r.querySelector('#themeToggle');
|
document.querySelector('#themeToggle')?.setAttribute('aria-pressed', String(mode === 'dark'));
|
||||||
if (btn) btn.setAttribute('aria-pressed', String(mode === 'dark'));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
applyTheme(initial);
|
applyTheme(initial);
|
||||||
|
|
||||||
r.querySelector('#themeToggle')?.addEventListener('click', () => {
|
document.querySelector('#themeToggle')?.addEventListener('click', () => {
|
||||||
const isDark = r.body.classList.contains('theme-dark'),
|
const next = document.body.classList.contains('theme-dark') ? 'light' : 'dark';
|
||||||
next = isDark ? 'light' : 'dark';
|
|
||||||
|
|
||||||
applyTheme(next);
|
applyTheme(next);
|
||||||
try { localStorage.setItem('theme', next); } catch (_) { /* ignore */ }
|
try { localStorage.setItem('theme', next); } catch (_) { /* ignore */ }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (window.matchMedia) {
|
if (window.matchMedia) {
|
||||||
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
||||||
mq.addEventListener?.("change", (e) => {
|
mq.addEventListener?.("change", (e) => {
|
||||||
|
|||||||
@@ -37,14 +37,33 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
body.theme-light {
|
|
||||||
color-scheme: light;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.theme-dark {
|
body.theme-dark {
|
||||||
color-scheme: dark;
|
color-scheme: dark;
|
||||||
|
--bg: #0b1224;
|
||||||
|
--bg-2: #0e1730;
|
||||||
|
--surface: #0f1c3a;
|
||||||
|
--card: #0f1b33;
|
||||||
|
--text: #e7eef9;
|
||||||
|
--muted: #9fb2ce;
|
||||||
|
--border: rgba(255, 255, 255, 0.1);
|
||||||
|
--accent: #7aa2ff;
|
||||||
|
--accent-600: #4f7dff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.theme-light {
|
||||||
|
color-scheme: light;
|
||||||
|
--bg: #f6f8fc;
|
||||||
|
--bg-2: #eef2fb;
|
||||||
|
--surface: #ffffff;
|
||||||
|
--card: #ffffff;
|
||||||
|
--text: #0f172a;
|
||||||
|
--muted: #6b7280;
|
||||||
|
--border: #e5e9f2;
|
||||||
|
--accent: #2563eb;
|
||||||
|
--accent-600: #1e40af;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
|
||||||
|
argocd argocd-application-controller-0 1/1 Running 0 52s 10.244.0.142 minikube <none> <none>
|
||||||
|
argocd argocd-applicationset-controller-54f96997f8-g2gzf 1/1 Running 0 52s 10.244.0.170 minikube <none> <none>
|
||||||
|
argocd argocd-dex-server-798cbff4c7-n4crz 1/1 Running 0 52s 10.244.0.42 minikube <none> <none>
|
||||||
|
argocd argocd-notifications-controller-644f66f7df-xcxxl 1/1 Running 0 52s 10.244.0.86 minikube <none> <none>
|
||||||
|
argocd argocd-redis-6684c6947f-9c4ps 1/1 Running 0 52s 10.244.0.190 minikube <none> <none>
|
||||||
|
argocd argocd-repo-server-6fccc5759b-gp4js 1/1 Running 0 52s 10.244.0.169 minikube <none> <none>
|
||||||
|
argocd argocd-server-64d5fcbd58-p99wl 1/1 Running 0 52s 10.244.0.75 minikube <none> <none>
|
||||||
|
ingress-nginx ingress-nginx-admission-create-xwcms 0/1 Completed 2 2m22s 10.244.0.125 minikube <none> <none>
|
||||||
|
ingress-nginx ingress-nginx-admission-patch-v46s6 0/1 Completed 2 2m22s 10.244.0.133 minikube <none> <none>
|
||||||
|
ingress-nginx ingress-nginx-controller-67c5cb88f-9zlz7 1/1 Running 0 2m22s 10.244.0.201 minikube <none> <none>
|
||||||
|
kube-system cilium-6g8th 1/1 Running 0 2m23s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system cilium-envoy-vz775 1/1 Running 0 2m23s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system cilium-operator-5876b8b787-7225g 1/1 Running 0 2m22s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system coredns-674b8bbfcf-s74qz 1/1 Running 0 101s 10.244.0.113 minikube <none> <none>
|
||||||
|
kube-system etcd-minikube 1/1 Running 0 2m27s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system kube-apiserver-minikube 1/1 Running 0 2m27s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system kube-controller-manager-minikube 1/1 Running 0 2m27s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system kube-ingress-dns-minikube 1/1 Running 0 68s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system kube-proxy-pmxbc 1/1 Running 0 2m23s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system kube-scheduler-minikube 1/1 Running 0 2m28s 192.168.49.2 minikube <none> <none>
|
||||||
|
kube-system storage-provisioner 1/1 Running 1 (113s ago) 2m25s 192.168.49.2 minikube <none> <none>
|
||||||
Reference in New Issue
Block a user