From fe5736905eccea39b07824d0eed96ec20c5d10bc Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Tue, 3 Feb 2026 09:51:09 +0300 Subject: [PATCH 01/15] feat: redesign web UI with theme toggle and improved styling --- www/config.html | 8 +- www/index.html | 769 +++++++++++++++++++++++++++++++++++++++++++++--- www/main.js | 456 ++++++++++++++++++++++++---- 3 files changed, 1129 insertions(+), 104 deletions(-) diff --git a/www/config.html b/www/config.html index 026b5beb..83c44c7b 100644 --- a/www/config.html +++ b/www/config.html @@ -116,8 +116,12 @@ ensureYamlLanguage(); - const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; - monaco.editor.setTheme(prefersDark ? 'vs-dark' : 'vs'); + const getTheme = () => document.documentElement.getAttribute('data-theme') === 'light' ? 'vs' : 'vs-dark'; + monaco.editor.setTheme(getTheme()); + + window.addEventListener('themeChanged', () => { + monaco.editor.setTheme(getTheme()); + }); const editor = monaco.editor.create(container, { language: 'yaml', diff --git a/www/index.html b/www/index.html index 69126e6f..ab70563a 100644 --- a/www/index.html +++ b/www/index.html @@ -4,65 +4,729 @@ go2rtc + + + - +
+
+ +
+
-
- - modes - - - - +
+
+ +
+ Modes: + + + + +
+
+ +
+ + + + + + + + + + +
+ + StatusActions
+
+ +
- - - - - - - - - - -
onlinecommands
-
@@ -123,7 +126,9 @@ } document.getElementById('homekit').addEventListener('click', async ev => { - ev.target.nextElementSibling.style.display = 'grid'; + const div = ev.target.nextElementSibling; + if (div.style.display === 'grid') { div.style.display = 'none'; return; } + div.style.display = 'grid'; await reloadHomeKit(); }); @@ -168,7 +173,9 @@ @@ -180,7 +187,9 @@ @@ -192,7 +201,9 @@ @@ -211,7 +222,8 @@ @@ -243,7 +257,9 @@ @@ -259,7 +275,9 @@ @@ -433,7 +457,11 @@ From 92eaaddceff6c90d2b48a53ee077002981db9c8f Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Tue, 3 Feb 2026 12:38:43 +0300 Subject: [PATCH 05/15] style(config): update styles for main and config sections in HTML --- www/config.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/www/config.html b/www/config.html index 83c44c7b..090ae21b 100644 --- a/www/config.html +++ b/www/config.html @@ -9,10 +9,16 @@ height: 100%; } + main { + flex: 0 0 auto; + padding: 10px 0; + } + #config { flex: 1 1 auto; - border-top: 1px solid #ccc; + border-top: 1px solid var(--border-color); min-height: 300px; + overflow: hidden; } @@ -1177,8 +1183,6 @@ }; const layout = () => { - const top = container.getBoundingClientRect().top; - container.style.height = `${Math.max(200, window.innerHeight - top)}px`; editor.layout(); }; window.addEventListener('resize', layout); From 3b33ffe2e263b9c897425c72b935e6500331762f Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Tue, 3 Feb 2026 13:18:58 +0300 Subject: [PATCH 06/15] webui: link to docs --- www/index.html | 15 ++++++++++++++- www/main.js | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/www/index.html b/www/index.html index 0cb3aea7..7dd1cb0c 100644 --- a/www/index.html +++ b/www/index.html @@ -189,6 +189,17 @@ box-shadow: var(--glow-cyan); } + .docs-link { + font-size: 11px; + padding: 4px 10px; + opacity: 0.6; + margin-left: auto; + } + + .docs-link:hover { + opacity: 1; + } + /* Main content */ main { padding: 40px 0; @@ -600,13 +611,15 @@
/ - info + info / - probe + probe / network ` + diff --git a/www/info.html b/www/info.html new file mode 100644 index 00000000..47d0708d --- /dev/null +++ b/www/info.html @@ -0,0 +1,615 @@ + + + + + + Stream Info - go2rtc + + + + + + + +
+
+ +
+
+ +
+
+ ← Back to Streams + + + +
+
+
+
Loading stream information...
+
+
+
+
+ + + + + diff --git a/www/probe.html b/www/probe.html new file mode 100644 index 00000000..7158ed03 --- /dev/null +++ b/www/probe.html @@ -0,0 +1,618 @@ + + + + + + Stream Probe - go2rtc + + + + + + + +
+
+ +
+
+ +
+
+ ← Back to Streams + + + +
+
+
+
Probing stream (video=all, audio=all, microphone)...
+
+
+
+
+ + + + + From e37da9a05650fd18f12b4a206acfcfde839f013b Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Wed, 4 Feb 2026 05:28:12 +0300 Subject: [PATCH 13/15] style: update theme toggle styles to remove borders and animations --- www/index.html | 5 +---- www/info.html | 5 +---- www/main.js | 5 +---- www/probe.html | 5 +---- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/www/index.html b/www/index.html index 4be19893..7e1524a2 100644 --- a/www/index.html +++ b/www/index.html @@ -622,7 +622,7 @@ .theme-toggle { width: 48px; height: 48px; - border: 1px solid var(--border-color); + border: none; border-radius: 6px; background: var(--bg-card); color: var(--accent-cyan); @@ -631,15 +631,12 @@ align-items: center; justify-content: center; font-size: 20px; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); margin-left: auto; } .theme-toggle:hover { background: var(--accent-cyan); color: var(--bg-primary); - box-shadow: var(--glow-cyan); - transform: rotate(180deg); } diff --git a/www/info.html b/www/info.html index 47d0708d..fcbee7c4 100644 --- a/www/info.html +++ b/www/info.html @@ -201,7 +201,7 @@ .theme-toggle { width: 48px; height: 48px; - border: 1px solid var(--border-color); + border: none; border-radius: 6px; background: var(--bg-card); color: var(--accent-cyan); @@ -210,15 +210,12 @@ align-items: center; justify-content: center; font-size: 20px; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); margin-left: auto; } .theme-toggle:hover { background: var(--accent-cyan); color: var(--bg-primary); - box-shadow: var(--glow-cyan); - transform: rotate(180deg); } main { diff --git a/www/main.js b/www/main.js index 633de9ea..7c78f87d 100644 --- a/www/main.js +++ b/www/main.js @@ -418,7 +418,7 @@ if (!document.querySelector('.logo')) { .theme-toggle { width: 48px; height: 48px; - border: 1px solid var(--border-color); + border: none; border-radius: 6px; background: var(--bg-card); color: var(--accent-cyan); @@ -427,15 +427,12 @@ if (!document.querySelector('.logo')) { align-items: center; justify-content: center; font-size: 20px; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); margin-left: auto; } .theme-toggle:hover { background: var(--accent-cyan); color: var(--bg-primary); - box-shadow: var(--glow-cyan); - transform: rotate(180deg); } `; diff --git a/www/probe.html b/www/probe.html index 7158ed03..12a7dd34 100644 --- a/www/probe.html +++ b/www/probe.html @@ -201,7 +201,7 @@ .theme-toggle { width: 48px; height: 48px; - border: 1px solid var(--border-color); + border: none; border-radius: 6px; background: var(--bg-card); color: var(--accent-cyan); @@ -210,15 +210,12 @@ align-items: center; justify-content: center; font-size: 20px; - transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); margin-left: auto; } .theme-toggle:hover { background: var(--accent-cyan); color: var(--bg-primary); - box-shadow: var(--glow-cyan); - transform: rotate(180deg); } main { From 1b06558140c937926ab9acb3e6b8ef7f3b4e929d Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Wed, 4 Feb 2026 06:04:05 +0300 Subject: [PATCH 14/15] feat(styles): add external stylesheet for consistent theming and layout --- www/index.html | 314 +--------------------------------- www/info.html | 258 +--------------------------- www/links.html | 67 ++------ www/main.js | 437 +---------------------------------------------- www/probe.html | 258 +--------------------------- www/static.go | 1 + www/styles.css | 447 +++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 473 insertions(+), 1309 deletions(-) create mode 100644 www/styles.css diff --git a/www/index.html b/www/index.html index 7e1524a2..b57938e4 100644 --- a/www/index.html +++ b/www/index.html @@ -7,205 +7,9 @@ + diff --git a/www/info.html b/www/info.html index fcbee7c4..3e26180a 100644 --- a/www/info.html +++ b/www/info.html @@ -7,220 +7,9 @@ + -`; - document.body.innerHTML = `
diff --git a/www/probe.html b/www/probe.html index 12a7dd34..0de60172 100644 --- a/www/probe.html +++ b/www/probe.html @@ -7,220 +7,9 @@ +