Skip to content

feat(app): magnetic snap zones and visual feedback on resize handle drag (#1434) #1612

Open

Description

@jacktrnr

Important

Problem — Dragging the resize handle has no snap feedback. The user can drag to any pixel position but there's no "magnetic" pull toward useful positions (50/50, full, default), no visual indicator of what will happen if they release, and no subtle resistance at snap points. The double-click snap cycle exists but is hidden.

Approach — Add magnetic snap zones to the resize handle drag. When the drag position enters a snap zone (within ~20px of a snap target), the handle visually snaps to the target with a subtle indicator. Releasing inside the zone lands on the exact snap position. The snap targets: 50/50 split, full Preview (Chat collapses), and the default width (330px). A thin line or highlight at each snap position shows briefly during the drag.

Scope — In: snap zones during drag at 50/50, full, and default positions; visual snap indicator (line or highlight); smooth snapping behavior. Out: spring physics, animation on release (that's the transition issue), custom snap positions.

Acceptance Criteria

  • During drag, the handle magnetically snaps to 50/50 split, full Preview, and default (330px) positions when within ~20px
  • A subtle visual indicator (thin vertical line or background highlight) appears at snap positions during drag
  • Releasing inside a snap zone lands on the exact snap position
  • The snap zones have a slight resistance (the handle slows down as it approaches, not just jumps)
  • Snapping to full Preview triggers Chat collapse; snapping back past 200px restores Chat
  • The indicator disappears immediately when the drag exits a snap zone or ends

Reference

Figma's resizable panels: magnetic snap at useful positions. VS Code's sidebar snap at 0 (collapse). macOS window management snap zones.

Source

Sub-issue of #1434. Part of #1430.

Activity

  1. self-assigned this
    on Sep 28, 2026
  2. aarontrowbridge commented on Oct 29, 2026

    @aarontrowbridge
    Contributor

    Blocked on PR #1548 (Chat collapse and flexible split), which is deferred until after 0.4.0. This builds on it, so it's marked hitl to keep the night runner off it until #1548 lands. (0.4.0 cleanup)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

afk-readytriaged clearable by notturnoenhancementNew feature or requesthitlNeeds human review before merge

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions