Files
jobtrackingapp/docs/redesign/phase-3/RESPONSIVE_STRATEGY.md
T
2026-09-10 18:15:05 +02:00

5.5 KiB
Raw Blame History

Responsive strategy and density

ARC-13; all PRES contracts, particularly PRES-E07, PRES-E08, PRES-J05, PRES-J07, PRES-W01, PRES-C06–PRES-C10, PRES-M04, PRES-S03, PRES-A01. This is an interaction contract, not screenshots or completed visual validation.

Breakpoints and content

Retain current MUI breakpoints (0, 768, 1024, 1266, 1440) as starting tokens. The existing CV two-pane boundary at 900 has a content reason; do not force it to match global navigation without testing. Mobile shell currently changes below 768. Document these two responsibilities rather than changing every media query at once.

Required viewport samples: 320 CSS px reflow, 390×844 phone, 430 px large phone, 768×1024 portrait tablet, 1024×768 landscape, 1280×800 laptop, 1440×900 desktop, 1920 wide. Also test just below/above 768 and 900. EN/Bokmål, light/dark, long names, missing data, many jobs/custom statuses and multipage CVs matter more than device labels.

Task-specific behavior

Surface Narrow / touch Wider layouts Preservation condition
Navigation Existing modal menu drawer; grouped sections, visible search/bell/account Collapsible sidebar/rail Same destinations and active owner; focus return; no duplicate bottom nav by default
Jobs Structured cards, essential role/company/status/date/action; filter sheet Primary table, optional board Same filters/records/actions; selection never opens row; no functionality removed by density
Board Scrollable grouped columns with explicit status menu and keyboard alternative Same grouping/drag semantics No mandatory drag or hidden custom/Other status
Dashboard Single-column user order; move/hide; no meaningless horizontal resize Discrete spans and supported resize Keep saved desktop sizes when phone ignores them
Job workspace Header wraps; labelled section selector if tabs overflow; actions easy to reach Full page, readable tabs and section content Preserve current section, dirty draft and return context through resize
CV editor Edit/Preview toggle; touch/keyboard reorder controls Editor + scrollable paginated preview No remount/data loss at 900 boundary; preview keyboard scroll works after transition
Dialogs/drawers Long forms full-height with reachable Save/Cancel above virtual keyboard Bounded modal or side panel One modal focus trap; no fixed-height clipping of errors
Commands Full-width dialog, labelled search and grouped list; keyboard doesn't cover selected result Bounded dialog Same command scope, owner clearing and activation behavior
Filters Draft filter sheet with Apply/Cancel; existing committed filters retained on cancel Inline common filters, advanced disclosure Show active filter count, never change result data before intended apply
Charts Short summary + accessible values table, limited visible labels Chart with legend and comparison Same period/denominator; no hover-only values
Correspondence Message/draft panes as stepwise views with clear Back List/detail when usable Unsaved/draft/revision/send attempt unchanged; full content readable
Settings Labelled section select/list and single-column fields Secondary section navigation Save failure retains draft, account/security/provider separation
Admin Label/value rows or labelled horizontal table region, actions explicit Table and aggregate panels No omitted permission/last-admin warnings, no leaked private analytics
Offers One comparison at a time with accessible labelled alternatives Recorded offers side-by-side Same currency/period/source, no invented normalized comparison

A read-only job preview may become full height on phone or be omitted in favor of the full page, subject to validation. Existing full job functionality remains. Stacked tabs or tiny icon-only controls are not acceptable substitutes for navigation.

Comfortable and Compact

NEW-14. Comfortable is default. Density changes row/field spacing and secondary metadata layout, never feature visibility, source semantics or font legibility. Propose table body vertical padding 12 px / 8 px, with sufficient control hit area. Compact on touch must retain at least the same target hit regions as Comfortable; it is not permission to shrink every icon.

Apply to Jobs/company/admin tables and suitable lists first. Do not compress CV document layout, long-form editor text, dialogs or charts globally. Keep a distinct application preference with the existing identity/preference model; scope and migration must be explicit. Old page-size/column preferences and owner-keyed saved filters continue to work.

State, scrolling and validation

Resizing a viewport changes presentation, not component/resource identity. Keep draft text, selected object, filter state, review proposal and save operation. Never keep private state after B02 invalidates the session. Preserve document and page scroll independently; return focus to a meaningful element that is visible in the new mode.

Avoid global overflow hiding as a “fix.” Data tables/boards/doc previews may have labelled intentional internal scroll; the page at 320 CSS px must not require sideways scrolling to reach ordinary actions. Sticky headers/footers and software keyboards must not obscure focused input/error messages.

Each migrated surface needs populated/empty/loading/error/locked/dirty checks and manual keyboard, touch, 200%/400% zoom and screen reader evidence. Browser viewport emulation is useful but does not prove touch usability, virtual keyboard behavior or assistive technology compatibility.