Skip to content

webroot UI: unified design system, mobile-first chrome, frameless FPV control cockpit (100% drop-in) - #517

Open
camAtGitHub wants to merge 2 commits into
kercre123:mainfrom
camAtGitHub:web_ui_ai_gen
Open

camAtGitHub wants to merge 2 commits into
kercre123:mainfrom
camAtGitHub:web_ui_ai_gen

Conversation

@camAtGitHub

Copy link
Copy Markdown

Summary

Drop-in refresh of the wire-pod webroot UI so hub, setup, initial, SDK index, settings, and Vector Control share one modern dark theme—mobile-first, with a frameless FPV-style control cockpit on phone landscape—while remaining a 100% drop-in file replacement for existing installs.

Visual language and patterns are taken from the already-shipped control and settings pages and rolled out consistently across the rest of the webroot. No server, API, or robot-behavior changes: replace the webroot files, keep the same paths, IDs, form fields, and handlers.


For users (what you get)

One consistent look

  • Dark shell, teal accents, clearer cards/buttons, sticky headers
  • Touch-friendly controls (~44px targets) and safe-area support (notches / home indicators)
  • Same flows you already know—just easier on a phone or tablet

Mobile priority

  • Built around phone portrait and landscape first, then desktop
  • Hub / setup / settings tool docks that center when tabs fit, scroll when they don’t, with edge fades so you can tell there’s more to swipe
  • Short landscape heights compact the chrome so content still fits

Vector Control cockpit

  • Portrait: camera feed + drive D-pad + head/lift paddles, “Take control” toggle, camera HUD
  • Landscape FPV (phone): 100% frameless full-screen camera—chrome and option cards hide; translucent control overlays sit over the stream (drive left, paddles right)
  • Desktop: wide camera + control column; keyboard help (?) for WASD / lift / head when using a mouse and keyboard
  • Clear Say Text hints when control isn’t taken yet

Install / upgrade

  • 100% drop-in file compatibility: replace the existing webroot HTML/CSS/JS assets with this tree
  • No config migration, no new endpoints, no renamed form fields or query params
  • Existing bookmarks and links (/, /setup.html, /sdkapp/settings.html?serial=…, /sdkapp/control.html?serial=…, etc.) keep working

For maintainers (what changed under the hood)

Drop-in contract (hard guarantee)

Frozen Unchanged
Routes / page paths /, index, initial, setup, sdkapp/*
APIs /api/*, /api-ble/*, /api-ssh/*, /api-chipper/*, /api-sdk/*, /cam-stream
DOM contracts element ids, form names, radio ID strings, onclick targets
Assets /assets/*, existing font faces used by UI settings

This is a presentation + CSS architecture change (plus small shared dock helpers), not a behavior rewrite of control/settings JS.

CSS architecture

  • webroot/css/style.css — shared design system (tokens, shell, dock, cards, forms, battery, shared responsive)
  • webroot/css/control.css — control cockpit only (camera, D-pad, paddles, HUD, desktop grid, landscape FPV); linked only from control.html
  • Large inline styles extracted from control/settings into the shared sheets; legacy wing.css removed
  • Design tokens preserve JS-facing vars (e.g. --fg-color for ui.js / settings icon rail)

Product-facing UI work (holistic)

  1. Site-wide visual alignment — hub, setup, initial, and SDK index match the control/settings look and responsive behavior
  2. Shared dock UX — fits vs overflow, edge fade, mobile peek, narrow-desktop scroll to last tabs
  3. Hub — settings-style tool dock, hero/CTA polish, multi-icon active state, collapse robots CTA when a section opens
  4. Setup — classic Wire-Pod Setup hero, gutters, face → home, labeled server-settings dock
  5. Control cockpit — touch deck, frameless FPV landscape overlay mode, desktop keyboard help dialog, Say Text lock/hint wiring and layout polish

Explicit non-goals

  • No redesign of robot/SDK functionality
  • No backend or protocol changes
  • No forced dependency upgrades for operators beyond shipping these static files

Test plan

Smoke (users / manual)

  • Phone portrait: hub + setup + settings readable; dock usable
  • Phone landscape (short): chrome compact; control enters frameless FPV (full-bleed cam + overlay pads)
  • Desktop: control dual-column cockpit; ? keyboard help; touch-only chrome still fine if window is narrow

** Maintainers**

  • BLE / setup / initial wizards still hit the same endpoints
  • Settings dock + section toggles still driven by existing settings.js classes/IDs
  • Control: take control, camera stream, D-pad 8-way, paddles, say text, upload/audio, keyboard controls
  • Drop-in check: copy webroot over a stock tree; open known URLs with ?serial= without editing Go or config

Notes

Safe visual upgrade for people already running wire-pod: replace files, refresh the browser, same product—better on mobile, and much better as a phone-held FPV controller for Vector.

Images

wirepod-UI-0 wirepod-UI-2
Additional screenshots below: wirepod-UI-1 wirepod-UI-3 wirepod-UI-4 wirepod-UI-5 wirepod-UI-6-desktop wirepod-UI-7-desktop wirepod-UI-8-desktop

Drop-in visual refresh of the wire-pod webroot so hub, setup, initial,
SDK index, settings, and Vector Control share one dark design system.
Mobile-first (phone portrait/landscape, then desktop). 100% file
drop-in: same paths, element IDs, form fields, handlers, and APIs.

- Extract shared styles to css/style.css; control cockpit to
  css/control.css (control.html only); remove wing.css and large
  inline style blocks from control/settings
- Frameless FPV landscape control: full-bleed camera, translucent
  drive pad + head/lift overlays, safe-area insets
- Touch cockpit (D-pad, paddles, HUD, take-control); desktop grid
  and keyboard help (?); Say Text lock hints when not in control
- Shared tool docks (fits/overflow, edge fade, mobile peek);
  hub/setup hero and CTA polish; preserve JS-facing CSS tokens
@toastertido

Copy link
Copy Markdown

If your going to create an entire UI using AI, at least disclose it in your PR.

@camAtGitHub

Copy link
Copy Markdown
Author

AI was used in creating this UI.
Thanks for all your hard work with wirepod btw.

@AshMartian

Copy link
Copy Markdown
Contributor

If your going to create an entire UI using AI, at least disclose it in your PR.

Why is this a problem and not the expectation at this point?

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants