Skip to content

Commit 2145824

Browse files
LEANDERANTONYclaude
andcommitted
fix(mobile): tap targets, FAB clearance, landing hamburger scrim
Bundle of three jobagent mobile UX corrections from the 2026-05-27 mobile UI test against iPhone-width viewports. All scoped to ``@media (max-width: 900px)`` plus one landing-page selector outside the block; desktop layout is untouched. * Tap targets ≥44 (Apple HIG). The test flagged step rail tabs at 33×*, Search button at 318×30, Import 68×30, in-card actions Review/Open/Save at 30, Sort/Posted-within selects at 26, account-popover actions (Reload / Manage subscription / Sign out) at 321×30, assistant Send at 36×36. New @media block raises: - .b-rail-step → min-height: 44 (rides on top of the existing compact-padding mobile rule at ~7932 so the four-step pill still fits at 340px wide) - .rd-btn-sm → min-height: 44 (one rule covers every small button across cards, forms, popovers) - .rd-select → min-height: 44 (Sort + Posted-within selects) - .b-filter-popover summary → min-height: 44 (Source / Work mode / Type disclosure triggers) - .rd-assistant-send → 44×44 (icon button) - .b-skill-chip → min-height: 40 (JD review skill chips; kept slightly under 44 to preserve inline density on multi-row wraps) * FAB clearance. The floating "Open assistant" .rd-fab at bottom-right (50×50, z=30) was overlapping content in the bottom-right corner on long pages — visibly eating the last skill chip on Job Detail and clipping the right edge of the resume hint copy. Two-part fix: - .b-canvas → padding-bottom: 110px on mobile so end-of- scroll has clearance above the FAB. - .b-job-card:last-child .b-job-card-actions and .b-skill-chips → padding-right: 64px so the rightmost button in the last card and the last chip on a wrapped row don't sit under the FAB corner. 64px = FAB width + offset buffer. The FAB itself stays at bottom: 18; right: 18 — it's a known visual anchor; the surrounding layout makes room for it. * Landing hamburger menu scrim. ``.l-topbar-menu`` background was ``rgba(2, 4, 9, 0.97)``. The 3% alpha let hero copy bleed through behind nav links at iPhone width — the second "Enter workspace" CTA visibly ghosted under the menu items. Bumped to solid ``rgb(2, 4, 9)``; the existing backdrop-filter blur stays as a no-op fallback. Deferred (NOT in this commit, tracked separately): * Mobile UI test M08 — "Assistant panel doesn't dock as a bottom- sheet on mobile". The panel currently expands inline and on a real iPhone the OS keyboard would cover ~50% of the streamed output. Converting to a bottom-anchored 80vh sheet is a bigger UX shift than the rest of this bundle; assessed as not launch-blocking (the panel IS reachable and the input is visible; keyboard coverage is a polish item). Will land in a follow-up. tsc + eslint clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 969959c commit 2145824

1 file changed

Lines changed: 101 additions & 1 deletion

File tree

frontend/src/app/globals.css

Lines changed: 101 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3173,7 +3173,15 @@ code {
31733173
flex-direction: column;
31743174
gap: 6px;
31753175
padding: 14px;
3176-
background: rgba(2, 4, 9, 0.97);
3176+
/* Solid background — the previous rgba(2, 4, 9, 0.97) left ~3% of
3177+
the hero copy bleeding through the menu panel at iPhone width
3178+
(caught in the 2026-05-27 jobagent mobile UI test). On the
3179+
bright-on-dark hero, the second "Enter workspace" CTA visibly
3180+
ghosted under the nav links. Solid color eliminates the bleed;
3181+
the backdrop-filter blur underneath is now a no-op but stays as
3182+
a fallback for browsers that ignore the opaque rgb layer (costs
3183+
nothing when the layer above is fully opaque). */
3184+
background: rgb(2, 4, 9);
31773185
backdrop-filter: blur(18px) saturate(140%);
31783186
border: 1px solid var(--l-line-strong);
31793187
border-radius: 14px;
@@ -8468,3 +8476,95 @@ code {
84688476
animation: none;
84698477
}
84708478
}
8479+
8480+
/* ─────────────────────────────────────────────────────────────────────
8481+
Mobile tap-target + FAB-clearance pass — 2026-05-27 launch readiness
8482+
─────────────────────────────────────────────────────────────────────
8483+
The mobile UI test caught most-touched controls violating Apple HIG
8484+
(≥44px) at iPhone width: step rail tabs 33px, Search 30, Import 30,
8485+
in-card actions Review/Open/Save 30, Sort/Posted-within selects 26,
8486+
account-popover action buttons 30, assistant Send 36. It also
8487+
flagged the floating "Open assistant" FAB at bottom-right
8488+
overlapping content in the bottom-right ~50px corner on long pages.
8489+
8490+
Three patterns below, each isolated for safe revert:
8491+
8492+
1. Tap-target bumps — min-height: 44 (and min-width for icon-
8493+
only buttons). Scoped to ``@media (max-width: 900px)`` so
8494+
desktop layout is untouched.
8495+
2. FAB clearance — bottom padding bump on .b-canvas + right-edge
8496+
safe zone on the trailing content rows (.b-job-card-actions,
8497+
.b-skill-chips) so important chips/buttons don't sit under
8498+
the FAB corner. The FAB itself stays where it is (the visual
8499+
anchor is a known affordance); the surrounding layout makes
8500+
room for it.
8501+
3. Locked-tab CTA chip already inherits the rail bump.
8502+
*/
8503+
@media (max-width: 900px) {
8504+
/* Step rail tabs — bumped from ~33 to ≥44. The earlier mobile
8505+
block (line ~7932) tightens internal padding/font so the four
8506+
chips fit at 340px; the min-height here is on top of that so
8507+
the chip still hits the tap-target spec without growing the
8508+
fixed-grid pill. */
8509+
.b-shell .b-rail-step {
8510+
min-height: 44px;
8511+
}
8512+
8513+
/* All ``rd-btn-sm`` buttons used in cards, forms, and popovers.
8514+
Single rule catches Search, Import, Review, Open, Save,
8515+
Reload-saved-workspace, Manage-subscription, Sign-out. */
8516+
.b-shell .rd-btn-sm {
8517+
min-height: 44px;
8518+
}
8519+
8520+
/* Form selects (Sort + Posted-within) — currently 26 / 28. The
8521+
visual layout (a label + tight select chip) stays; only the
8522+
tap height grows. */
8523+
.b-shell .rd-select {
8524+
min-height: 44px;
8525+
}
8526+
8527+
/* Filter-popover triggers (Source / Work mode / Type) — the
8528+
<summary> element renders as a chip-styled disclosure. Bump its
8529+
min-height so the chip is comfortably tappable. */
8530+
.b-shell .b-filter-popover summary {
8531+
min-height: 44px;
8532+
}
8533+
8534+
/* Assistant Send icon-button — 36×36 → 44×44. Width also bumps
8535+
so the icon stays centered. */
8536+
.b-shell .rd-assistant-send {
8537+
width: 44px;
8538+
height: 44px;
8539+
}
8540+
8541+
/* JD skill chips — 34 → 40. The report called these "visually
8542+
fine" at 34 but they were under 40; bump to 40 (just under 44
8543+
to keep inline density on multi-row chip lists). Combined with
8544+
the right-side safe zone below this is still comfortably
8545+
tappable on the multi-row wrap. */
8546+
.b-shell .b-skill-chip {
8547+
min-height: 40px;
8548+
}
8549+
8550+
/* FAB clearance — extend canvas bottom padding so end-of-scroll
8551+
has room above the FAB, and reserve a right-edge safe zone on
8552+
the rows most likely to collide with the FAB corner
8553+
(per-card actions, skill chip lists). The FAB itself stays at
8554+
its existing bottom: 18; right: 18 position — it's a known
8555+
visual anchor, just one with a known overlap zone we now
8556+
account for in the surrounding layout. */
8557+
.b-shell .b-canvas {
8558+
padding-bottom: 110px;
8559+
}
8560+
/* Right-edge safe zone for content rows that wrap to the FAB
8561+
corner. Without this, the last skill chip on a wrapped row OR
8562+
the rightmost in-card action button (Save) can sit under the
8563+
50×50 FAB at 18px from the corner. 64px = FAB width + offset
8564+
buffer. */
8565+
.b-shell .b-job-card:last-child .b-job-card-actions,
8566+
.b-shell .b-skill-chips {
8567+
padding-right: 64px;
8568+
}
8569+
}
8570+

0 commit comments

Comments
 (0)