From d602c8dfca9a08808ef2ecfb3bd155f627b3a715 Mon Sep 17 00:00:00 2001 From: eduard256 Date: Sat, 22 Nov 2025 00:03:54 +0300 Subject: [PATCH] Improve WebUI UX with tooltips, auto-fill and button visibility - Add informational tooltips to all configuration fields - Reorder tabs: Frigate first, then Go2RTC, then URL - Hide Copy/Download buttons on Frigate tab until config is generated - Auto-fill username field with "admin" as default value - Smart pre-fill network address based on server IP (first 3 octets) - Add tooltips for Main Stream, Sub Stream, and all buttons - Improve user guidance throughout the configuration flow --- webui/web/css/main.css | 78 ++++++++++++++ webui/web/index.html | 239 ++++++++++++++++++++++++++++++++++++----- webui/web/js/main.js | 60 ++++++++++- 3 files changed, 348 insertions(+), 29 deletions(-) diff --git a/webui/web/css/main.css b/webui/web/css/main.css index e11ca20..83079ba 100644 --- a/webui/web/css/main.css +++ b/webui/web/css/main.css @@ -774,6 +774,9 @@ body { } .stream-label { + display: flex; + align-items: center; + gap: var(--space-2); font-size: var(--text-xs); font-weight: 600; color: var(--text-tertiary); @@ -1032,6 +1035,81 @@ body { transform: translateY(0); } +/* Button with tooltip wrapper */ +.button-with-tooltip { + position: relative; + width: 100%; +} + +.button-with-tooltip .btn-generate { + display: flex; + align-items: center; + justify-content: center; + gap: var(--space-2); +} + +/* Button with tooltip in secondary-actions */ +.secondary-actions .button-with-tooltip { + flex: 1.2; + width: auto; +} + +.secondary-actions .button-with-tooltip .btn { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + gap: var(--space-2); +} + +.secondary-actions .button-with-tooltip:last-child { + flex: 0.8; +} + +/* Info icon inside button */ +.info-icon-button { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + width: 18px; + height: 18px; + cursor: help; + color: rgba(255, 255, 255, 0.7); + transition: color var(--transition-fast); +} + +.info-icon-button:hover { + color: rgba(255, 255, 255, 1); +} + +.info-icon-button svg { + width: 18px; + height: 18px; +} + +/* Info icon inside outline button */ +.info-icon-button-outline { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + width: 18px; + height: 18px; + cursor: help; + color: var(--text-tertiary); + transition: color var(--transition-fast); +} + +.info-icon-button-outline:hover { + color: var(--purple-primary); +} + +.info-icon-button-outline svg { + width: 18px; + height: 18px; +} + .frigate-output-section { margin-top: var(--space-6); padding-top: var(--space-6); diff --git a/webui/web/index.html b/webui/web/index.html index df4dd7c..21d573d 100644 --- a/webui/web/index.html +++ b/webui/web/index.html @@ -42,7 +42,30 @@
- + @@ -372,13 +396,51 @@
-

Main Stream

+
+ Main Stream + + + + + +
+
Main Stream
+

The primary high-resolution video stream from your camera. This stream is typically used for recording and high-quality viewing.

+
+
Common uses:
+ Recording to disk + Live HD viewing + High-quality playback +
+

Resolution is usually 1080p (1920×1080) or higher. Higher resolution means better quality but requires more bandwidth and storage.

+
+
+