From c852e624e90eb9d96b507236d633ec0578b56962 Mon Sep 17 00:00:00 2001 From: Ziad-I <68874104+Ziad-I@users.noreply.github.com> Date: Sat, 20 Jul 2024 15:35:06 +0300 Subject: [PATCH] add theme switching for tables page --- .../bim/data/webui/static/css/index.css | 17 +++++++++- .../bim/data/webui/static/js/index.js | 34 +++++++++++++++++++ .../bim/data/webui/templates/index.html | 8 +++++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/data/webui/static/css/index.css b/src/blenderbim/blenderbim/bim/data/webui/static/css/index.css index 0a1e41737b..7a480b42c8 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/static/css/index.css +++ b/src/blenderbim/blenderbim/bim/data/webui/static/css/index.css @@ -6,9 +6,11 @@ --padding-small: 0.125rem; --padding-medium: 1rem; --font-size-large: 1.2rem; + --logo-height: 2.5rem; } :root.dark { + color-scheme: dark; --bg-color: #252525; --text-color: #e0e0e0; --nav-bg-color: #121212; @@ -19,6 +21,7 @@ } :root.light { + color-scheme: light; --bg-color: #ffffff; --text-color: #000000; --nav-bg-color: #f8f8f8; @@ -69,7 +72,7 @@ nav { nav .logo { margin-left: var(--margin-large); - height: 2.5rem; + height: var(--logo-height); } nav ul { @@ -103,6 +106,18 @@ nav ul li a.active { display: none; } +#toggle-theme { + border: none; + background: none; + cursor: pointer; + font-size: var(--font-size-large); + margin-right: var(--margin-medium); +} + +#toggle-theme:focus { + outline: none; +} + /* ------------ Overwriting Tabulator CSS rules ------------ */ :root.light .tabulator-header, diff --git a/src/blenderbim/blenderbim/bim/data/webui/static/js/index.js b/src/blenderbim/blenderbim/bim/data/webui/static/js/index.js index 2cc94b2f80..0d4db42480 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/static/js/index.js +++ b/src/blenderbim/blenderbim/bim/data/webui/static/js/index.js @@ -5,6 +5,12 @@ let socket; // Document ready function $(document).ready(function () { + var systemTheme = window.matchMedia("(prefers-color-scheme: light)").matches + ? "light" + : "dark"; + var theme = localStorage.getItem("theme") || systemTheme; + setTheme(theme); + connectSocket(); }); @@ -240,3 +246,31 @@ function compareHeaders(headers1, headers2) { } return true; } + +function setTheme(theme) { + var stylesheet = $("#tabulator-stylesheet"); + if (theme === "light") { + stylesheet.attr( + "href", + "https://unpkg.com/tabulator-tables/dist/css/tabulator_site.min.css" + ); + $("html").removeClass("dark").addClass("light"); + $("#toggle-theme").html(''); + } else { + stylesheet.attr( + "href", + "https://unpkg.com/tabulator-tables/dist/css/tabulator_site_dark.min.css" + ); + $("html").removeClass("light").addClass("dark"); + $("#toggle-theme").html(''); + } + localStorage.setItem("theme", theme); +} + +function toggleTheme() { + if ($("html").hasClass("dark")) { + setTheme("light"); + } else { + setTheme("dark"); + } +} diff --git a/src/blenderbim/blenderbim/bim/data/webui/templates/index.html b/src/blenderbim/blenderbim/bim/data/webui/templates/index.html index 88a4306cda..e948b4c4be 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/templates/index.html +++ b/src/blenderbim/blenderbim/bim/data/webui/templates/index.html @@ -7,8 +7,13 @@ +