Repository navigation
fix(web): make the panel usable on a phone - #215
Merged
Merged
Conversation
- Top bar at <=880px is now brand + account + a menu button; the full grouped nav opens beneath it (CSS-only checkbox, no JS). The old bar scrolled sideways and showed ~2 links at 375px. - `.app` rows are `auto 1fr` on mobile, so short pages no longer get a tall empty band above the bar. - `.m-stack` / `.m-wrap` utilities fold inline-styled filter bars and forms (jobs, users, firewall, nodes, files, stats, services, audit, job detail, hosting detail) instead of pushing controls off-screen. - Inline `code` wraps long paths/JSON (break-word, so table min-content is unchanged on desktop). - devserver honours $PORT so it can run beside another session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- /hostings: row actions stack in their cell and long domains break, so
the table fits 375px without a sideways scroll.
- Touch tap-target rule no longer gives .btn a negative margin (it shoved
stacked row-action buttons out of line in every table).
- .table-wrap bleed matches the <=480px card padding (was -1rem against
0.85rem, every table overshot its card); profile sessions + traffic
card tables use .flush/.flush-b instead of a hard-coded -1.5rem.
- /audit filter grid folds to one column (selects and chips were clipped).
- Page-header children may shrink and their buttons wrap ("Back to
<long domain>" ran off screen on /hostings/transfer and job detail).
- Breadcrumbs wrap, and keep clear of a sticky page-header that painted
over the second line.
- File inputs capped at 100% width; profile email-confirm row wraps.
- Mobile menu hides the desktop active-link edge bar.
- PHP ini grid uses a 10rem track minimum.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ive-fixes-c5505c # Conflicts: # bin/hyperion-web/templates/hostings_detail.html # bin/hyperion-web/tests/devserver.rs
…ive-fixes-c5505c # Conflicts: # bin/hyperion-web/templates/users.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A phone-width (375px) pass over the whole web panel. It is CSS plus small template class additions, with no handler changes. Main changes:
:checked ~ .sidebar-nav, with no JS. The old bar scrolled sideways and showed about two links at 375px..appusesgrid-template-rows: auto 1fron mobile. Before, short pages showed a ~170px empty band above the bar..m-stackutility folds multi-column grids into one column and a new.m-wraplets flex rows wrap. Applied on jobs, users, firewall, nodes, files, stats, services, audit, job detail, hosting detail and profile./hostingsrow actions stack inside their cell and long domains break, so the table fits 375px..btna negative margin. It had shoved stacked row-action buttons out of line in every table on touch devices..table-wrapbleed matches the ≤480px card padding. It was -1rem against 0.85rem, so every table overshot its card..flush/.flush-binstead of a hard-coded -1.5rem./hostings/transferand job detail.code: usesoverflow-wrap: break-word, so long paths and JSON wrap.anywherewas tried first and dropped: it shrinks min-content and squeezed/jobstable cells on desktop.tests/devserver.rshonours$PORT, so it can run alongside another session.Why
On a phone most of the panel was reachable only by a sideways swipe on the top bar. Several pages also pushed controls past the right edge or clipped them inside cards.
Operator-facing change?
Test plan
cargo test -p hyperion-webpasses.cargo test --workspace(not run, since only hyperion-web changed).cargo clippy --workspace --all-targets(not run).cargo fmt -p hyperion-web -- --checkpasses.overflow:hiddenancestor. It covered every page, all 11 hosting-detail tabs and all 10 Settings tabs (with<details>opened), files, Move/Copy, job detail, import and login. The confirm modal and the notification dropdown were checked by eye./hostings,/jobs, Move/Copy.Not verified: profile/role edit pages and the Cmd+K palette. The stub has no profiles or roles to edit, and the palette is keyboard-only. Lists were mostly empty in the stub; one hosting with a long domain was created to exercise detail, files and the tables.
Anti-scope
🤖 Generated with Claude Code