Conversation
chore: sync release v0.6.0 (changelog + version)
insetEndpoints pulls curve endpoints back along their tangents by an arrowhead's base depth (headBaseInset = size * cos(spread)), scaling both insets down on tiny chords so endpoints never cross. buildElbowPath gains per-leg trims computed after the corners, so the mid-rail stays put and a trim can never invert a short final leg. Groundwork for #59.
When a head is drawn, the curve route feeds inset endpoints to routing and path build (so avoid detection matches the rendered shaft) and the elbow route trims its first/last leg. Heads stay anchored at the true socket points, so tips still touch the target edge. Draw-on ordering unchanged.
Math.min for the clamp scale, hoisted hasStartHead/hasEndHead so the shaft inset and head drawing can't desync, and one shared pathDs test helper. Behavior unchanged; suite stays green.
fix: stop the arrow shaft overlapping the arrowhead
Closes the gap where hasStartHead was only ever true via 'both' (#61): curve start inset, start-head socket anchoring, and elbow startTrim.
arrowHeadPath(closed=true) appends Z so the head can be filled (#60).
'solid' closes the head triangle and fills it with the stroke color via rough.js fillStyle 'solid', keeping the hand-drawn look (#60). Default 'line' output is unchanged. Drops the redundant fill='none' clobber in appendDrawable (rough.js already sets it on stroke paths) and tags each segment with its drawable's reveal group for the fade-in that follows.
rough.js emits a head's fill path before its outline strokes, so raw segment order can't drive sequential reveal. segmentFractions gives every segment its revealed fraction: fill paths carry no length in the draw budget and mirror their own head group's stroke fraction, fading in while the outline dash-draws (#60). dashOffsets delegates to it, so stroke timing is unchanged.
…ions Simplify pass: shared anchors()/paths() test helpers (pathDs derives from paths); dashOffsets deleted from src (applyProgress uses segmentFractions directly; its numeric suite now guards segmentFractions via a local offsets helper); segments field typed via DrawSegment; segmentFractions skips group bookkeeping when no fill segment exists (per-frame hot path).
Add integration test proving each solid head fades independently for head:'both' via appendDrawable's real group-id wiring (review finding #1).
New section between obstacle avoidance and the tree reveal: head 'both' with headStyle 'solid' so both filled heads fade in with their outlines. Hardcoded section indexes for the tree and reduced-motion cards shift by one.
feat(render): solid arrowhead style + start-head render coverage
Owner
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.
Proposed release:
v0.7.0Features
Fixes