[MERGED] Mobile UI redesign: card-first layouts for all 15 views #12
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hex/zeno-rmm!12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/mobile-ui-redesign"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds a mobile-first CSS/layout layer underneath the existing desktop density (VSA10/Pulseway-inspired: card-first, bottom-sheet, swipe-friendly) without touching desktop layout or removing any functionality.
Commits
feat(spa): shared mobile-viewport helper + mobileMode plumbing to all views— lib/mobile.svelte.ts wraps the existing isMobileViewport() (900px/pointer:coarse) rule in a single shared matchMedia listener; mobileMode now flows to every view, not just TopNav+Devices.feat(spa): global mobile CSS token layer— --z-mobile-* tokens (pad, card-gap, touch target, bottom-nav height, sheet radius) + global @media (max-width: 900px) scaffolding.feat(spa): mobile bottom navigation— Dashboard/Devices/Alerts/Patching + More sheet, auto-hides behind full-screen windows/inspector.feat(spa): Dashboard mobile-first layout— KPI 2-col grid, 1-col section grid, table→card-row swap for Attention/Risk/Activity panels.feat(spa): Alerts, Patching, Software mobile-first layouts— card-per-row for Alerts and the primary Patching/Software tables; Devices.svelte was already fully mobile-built from prior work.feat(spa): Audit, Users, AgentUpdates, Sites mobile-first layouts— card-per-row; Sites' two tables were sitting inoverflow: hiddencontainers that would have clipped columns, so card lists were a correctness fix, not just polish.feat(spa): Settings mobile-first layout— 1-col form grid, full-width inputs, sticky save bar.feat(spa): Automation, AutomationScripts, AutomationEditor mobile-first— card lists + the actual bug in the workflow editor:.details-col/.builder-colhad fixed 330px/380px min-widths that alone exceeded a 375-430px viewport. Turns out this isn't a graph canvas (no canvas/svg/drag/pan/zoom in the code) so no wizard rewrite was needed — just stacking the two columns.Deviations from the original brief (with reasons)
isMobileViewport()(900px + pointer:coarse) and one existing@media (max-width: 900px)in DeviceInspector.svelte. 768px would have created a 768–900px dead zone where some components think mobile and others don't.<table>markup instead of getting full card rewrites. Both already sit in.table-shell { overflow-x: auto }containers, so they scroll independently instead of clipping data — lower-traffic admin views, disclosed scope trade-off for time budget.Verification
npm run check: 0 errors on every commit (pre-existing warning count unchanged except new files following existing house patterns, e.g.<article role="button">matching Devices.svelte's own convention).npm run build: succeeds on every commit; new CSS confirmed additive via targeted greps againstdist/spa.css(e.g. new--z-mobile-*tokens and@mediablock landed without touching existing selectors).cargo fmt --check: clean (SPA-only change, no.rsfiles touched — no CI agent rebuild needed).Do not merge — branch is for review.
Automation.svelte: KPI strip goes 2-col, toolbar/tabs wrap and hit 44px touch targets, workflows table becomes a card list (status dot, name, trigger, context link, last/next run, Run/Edit/Clone/Enable/Delete actions). Patch-policies and Runs sub-tables keep native <table> markup — both already sit in `.table-shell { overflow-x: auto }` containers so they scroll independently instead of clipping data; same disclosed trade-off as Patching's lower-traffic tabs. AutomationScripts.svelte: script list becomes a mobile card list; the create/edit modal was already `width: min(560px, 92vw)` with stacked labels, so it needed no changes. AutomationEditor.svelte ("the workflow graph builder"): turns out this is not a freeform 2D canvas — no <canvas>/<svg>/drag/pan/zoom code exists. It's a vertical chain of step cards (trigger → actions/ conditions), which is already close to wizard-shaped. The actual mobile bug was `.details-col`/`.builder-col`'s fixed 330px/380px min-widths inside a flex-wrap row: builder-col's min-width alone exceeds a 375-430px viewport, forcing horizontal scroll. Fixed by stacking editor-cols to 1 column and dropping those min-widths on mobile; if/else branches also stack instead of sitting side-by-side. No wizard rewrite needed — the brief's "switch to a vertical wizard" concern was based on a misdiagnosis of this component as a graph canvas.Mobile UI redesign: card-first layouts for all 15 viewsto [MERGED] Mobile UI redesign: card-first layouts for all 15 viewsPull request closed