Skip to content

Mobile polish pass — graph, editor, header on small viewports #32

@unforced

Description

@unforced

Why

Lens renders on mobile but wasn't designed for it. Several rough edges bite on phone:

  • Full-vault graph is nearly unusable (zoom/pan fighting the page scroll)
  • Note editor's side-by-side preview doesn't fit; needs a toggle or stacked layout
  • Header gets crowded with vault switcher + theme toggle + sync indicator + install prompt
  • /capture works well on mobile actually — keep that, don't regress

Scope

  • Header: collapse on narrow widths to a hamburger menu; top bar keeps the most essential control (sync status dot) always visible
  • Editor (/new, /notes/:id/edit): stacked "edit | preview" tabs on narrow widths instead of side-by-side split
  • Full-vault graph: add a "fit to screen" button; prevent document scroll when touching inside the canvas; increase node hit target
  • Neighborhood graph: already small enough, mostly fine — confirm it doesn't cause layout jumps
  • List views: the existing filter row wraps awkwardly on narrow screens — audit and tighten
  • Safe-area insets: respect env(safe-area-inset-*) on installed iOS PWAs so content doesn't hide under the home indicator / notch

Testing

  • Verify on actual iPhone Safari (via Tailscale HTTPS URL)
  • Verify on iPhone installed PWA (same URL, Add to Home Screen)
  • Verify on Android Chrome
  • Check landscape + portrait
  • Chrome DevTools mobile emulation as a fast first-pass

Out of scope

  • Native-feel gestures (swipe to archive, etc.) — those are a separate deeper arc
  • Mobile-only features (pull-to-refresh) — case by case, probably not universally wanted
  • Redesigning anything — this is "make existing features work well on phone," not a UX rewrite

Priority

Low-mid. Do after the content-oriented v0.3 work lands, since each new feature will need its own mobile review anyway.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions