Make the tool cursor actually change, and stop the dock hiding two tabs - #28
Merged
Conversation
Two faults, both found by looking rather than by reading. The tool cursor did nothing at all. It was set on the timeline viewport, and every surface inside it carries a cursor of its own: a sound says grab, an empty lane says copy, the ruler says ew-resize, a curve says crosshair. A cursor on the parent loses to every one of them, so picking up the blade or the hand changed nothing you could see. Measured across six tools and nine surfaces, all six rows came back identical. I claimed at the time that the pointer says which tool is holding it; it never did, because I set it in one place and never checked it arrived. Each rule names the descendants as well now, which also outranks them. It stops at the viewport rather than covering the whole panel, since that is where these tools act -- the toolbar and the layer names keep their own pointers because they still do their own jobs. Move is deliberately left alone: its cursor is the contextual one each surface already sets, which is both what a selection tool should do and more use than one shape everywhere. Cut and Pen are drawn rather than named. Every standard cursor that suits one suits the other -- both are "put this exact point somewhere", which is crosshair -- so naming them would have given two of the six tools the same pointer and lost the distinction this is for. They are the same shapes as the buttons in the strip, so what is in your hand looks like what you clicked. And alt over the zoom tool now shows zoom-out, since that tool does both jobs off one button and there was otherwise no way to tell which a click would do. Those drawn cursors shipped broken first. Written out plainly, with raw angle brackets and quotes, the browser accepts the declaration and reports it back from getComputedStyle intact, then silently fails to decode the image and falls through to the crosshair after the comma. Nothing says so anywhere. It only came out by building an Image from the computed value to see whether it loaded; percent encoded, both decode. The second fault came out of comparing the built artifact against the design. Six tab names do not fit a 340 pixel column: the strip scrolled sideways with the scrollbar hidden, leaving "Session" and "Palette" 75 pixels past the edge with nothing saying they were there. A tab is how you reach a panel, so two of the six were reachable only by dragging or through the Window menu. That is the same silent overflow the top bar used to have, shipped again somewhere narrower. The strip wraps now: a row of height when the column is narrow, nothing when it is wide, and no width at which something is missing.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Two faults, both found by looking rather than by reading.
The tool cursor did nothing at all
It was set on the timeline viewport, and every surface inside it carries a
cursor of its own — a sound says
grab, an empty lane sayscopy, the rulersays
ew-resize, a curve sayscrosshair. A cursor on the parent loses toevery one of them, so picking up the blade or the hand changed nothing you
could see.
Measured across six tools and nine surfaces, all six rows came back
identical. I claimed in #23 that the pointer says which tool is holding it.
It never did — I set it in one place and never checked it arrived.
Each rule names the descendants now, which also outranks them:
It stops at the viewport rather than covering the whole panel, since that is
where these tools act — the toolbar and the layer names keep their own
pointers because they still do their own jobs. Move is deliberately left
alone: its contextual cursors are both what a selection tool should do and
more use than one shape over everything.
Cut and Pen are drawn rather than named because every standard cursor that
suits one suits the other — both are "put this exact point somewhere", which
is
crosshair— so naming them would have given two of six tools the samepointer and lost exactly the distinction this is for. They are the same shapes
as the buttons in the strip.
Those drawn cursors shipped broken first. Written out plainly, with raw
angle brackets and quotes, the browser accepts the declaration and reports it
back from
getComputedStyleintact, then silently fails to decode the imageand falls through to the crosshair after the comma. Nothing says so anywhere.
It only came out by building an
Imagefrom the computed value to see whetherit loaded. Percent-encoded, both decode as 22×22.
The dock was hiding two tabs
Found by building
mainthe way Vercel does and comparing the artifact againstthe design.
Six tab names do not fit a 340px column. The strip scrolled sideways with the
scrollbar hidden, leaving "Session" and "Palette" 75px past the edge with
nothing saying they were there. A tab is how you reach a panel, so two of the
six were reachable only by dragging or through the Window menu.
That is the same silent overflow the top bar had before #20, shipped again
somewhere narrower. The strip wraps now: a row of height when the column is
narrow, nothing when it is wide, and no width at which something is missing.
Checks
tsc --noEmitclean, 199 tests passing,vite buildclean.Verified in Chromium: the computed cursor over nine surfaces for each of the
six tools (five now distinct, Move contextual by design), both drawn cursors
decoding as real images, alt flipping zoom-in to zoom-out and back, and all
six dock tabs measured as on-screen at 340px.
Generated by Claude Code