Remove light theme; complete color/spacing/radius design tokens; section styles.css (v0.13.0)

This commit is contained in:
marvin
2026-09-17 20:58:27 -04:00
parent 43ba59b302
commit b72afdcee3
8 changed files with 763 additions and 178 deletions
+1 -14
View File
@@ -1,5 +1,5 @@
// ============================================================================
// app.js -- core client application: state, API helper, theme, dashboard,
// app.js -- core client application: state, API helper, dashboard,
// Hosted Sites & Proxy Hosts rendering, routing between views, dialogs (create/
// edit/icon/user/account/MFA), and every event listener for those areas. The
// remaining views (Streaming, Redirects, Access Lists, Administration panels)
@@ -19,19 +19,6 @@ const proxyAccessLabel = document.querySelector("#proxy-form [name=accessListId]
const settingsAccessLabel = document.querySelector("#settings-access-list")?.closest("label"); const settingsTlsLabel = document.querySelector("#settings-form [name=tls]")?.closest("label"); if (settingsAccessLabel && settingsTlsLabel) settingsTlsLabel.before(settingsAccessLabel);
document.querySelector("#settings-advanced [name=accessListId]")?.closest("label")?.remove();
// --- Theme (light/dark/system) -------------------------------------------------
const systemTheme = window.matchMedia("(prefers-color-scheme: dark)");
function applyTheme(preference) {
const effective = preference === "system" ? (systemTheme.matches ? "dark" : "light") : preference;
document.documentElement.dataset.theme = effective;
document.querySelector('meta[name="theme-color"]').content = effective === "dark" ? "#08101d" : "#f3f6fa";
}
const savedTheme = localStorage.getItem("webserver-theme") || "system";
$("#theme-select").value = savedTheme; applyTheme(savedTheme);
$("#theme-select").addEventListener("change", event => { localStorage.setItem("webserver-theme", event.target.value); applyTheme(event.target.value); });
systemTheme.addEventListener("change", () => { if ($("#theme-select").value === "system") applyTheme("system"); });
// --- API helper ------------------------------------------------------------------
async function api(url, options = {}) {