Graph-view UX batch: wheel direction, center-on-node, node header, edge labels#106
Merged
Conversation
…= zoom in) The custom wheelDelta inverted the d3 default, so scrolling up zoomed OUT — the opposite of maps and every other app. Drop the extra *-1 at both zoom setups so scroll-up zooms IN (now consistent with the minimap, which was already correct). camera.spec wheel test updated to use negative deltaY for zoom-in. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rupt) centerOnNode applied the transform via a throwaway d3.zoom() instance, which only set the svg's stored __zoom without firing the bound zoom's handler — so the graph didn't move until the next gesture snapped to the stale __zoom (the deferred, abrupt jump). Apply through zoomBehaviorRef.current (like fitViewToNodes) and use the live scale, so it animates smoothly on click. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oltips - Node type label sat at the header centre (x=0) but the open space is between the single left (gear) button and the two right buttons (expand + grow); move it to the gap midpoint x=-(iconSize+8)/2 so it's visually centred in the gap. - Glyphs (gear ⚙, plus +, expand ⛶) now all use dominant-baseline=central for consistent vertical centring inside their square buttons. - Add native <title> tooltips to all three header buttons (Open details / edit, Add a connection (grow), Expand — read contents & diagram). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… label text) The directional icon's flip used a bare rotate(180), which pivots on the group origin (0,0) — throwing the icon across onto the label text (the overlap) and leaving it upside-down. Rotate around the icon's own centre (x+7, y+7) so it flips in place: the arrow tracks the true edge direction AND stays beside the text with proper spacing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
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.
Dogfooding fixes (graph view), batched:
d3.zoom()so the move was deferred until the next gesture (abrupt jump); now uses the bound zoom behavior + live scale. (fix(mobile): work-item edit modal is a usable full-screen sheet on phones #85)dominant-baseline=central; native<title>tooltips on the gear/grow/expand buttons. (test(mobile): automated mobile-UI audit system (layout / contrast / dialogs) in CI #86)rotate(180)about the group origin → overlapped the label text + upside-down). (chore(web): dedupe SVG glow-filter construction (verified byte-identical) #90)Verified: web typecheck clean; THE GATE smoke 5/5; camera.spec 4/4 (wheel test updated for the flipped direction).
🤖 Generated with Claude Code