feat(web): fade the sketch chrome in with the entry glide - #109
Open
petergstfsn wants to merge 1 commit into
Open
feat(web): fade the sketch chrome in with the entry glide#109petergstfsn wants to merge 1 commit into
petergstfsn wants to merge 1 commit into
Conversation
The sketch rail and palette were the only sketch-mode chrome with no entrance: they snapped to full opacity on the first frame while the camera flew head-on for 800 ms, out of step with the tool card beside them, which already fades. Both now fade over --dur-base with the shared ease, the rail carrying the same 6px lift the tool card uses and the palette fading only, having no transform of its own to preserve. Enter-only, matching that card. A fade-out needs the element to outlive React's unmount, and the rail's props come from interaction.session, which is gone the moment the session ends — so an exit means holding a stale session past the cleanup, the pattern the interaction audit deliberately left undone for the gizmo exit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
openzcad | d7759a6 | Aug 27 2026, 04:38 PM |
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.
Increment 4.2 of the sketch-flow & camera plan. CSS only — 36 lines, based on
main, independent of #108.What the measurement showed
The plan entry said "toolbar crossfade in the top bar", but driving the app showed the top bar doesn't swap on sketch entry at all. What actually happens: the sketch rail and palette were the only sketch-mode chrome with no entrance animation. They snapped to full opacity on frame one while the camera glided head-on for 800 ms — out of step both with that camera move and with the "Editing Sketch" tool card beside them, which already fades in via
tool-card-in.The change
Both now fade over
--dur-base(200 ms) with--ease-out:.sketch-rail— newsketch-chrome-in, carrying the same 6 px lifttool-card-inuses (itstranslateX(-50%)centring is preserved through the keyframe, so it does not jump sideways)..sketch-palette—sketch-palette-in, fade only: it is right-anchored with no transform to preserve.[data-reduced-motion='true']override the tool card has, on top of the globalprefers-reduced-motioncollapse intokens.css.Enter-only, on purpose
Matching the tool card. A fade-out needs the element to outlive React's unmount, and the rail's props come from
interaction.session, which is gone the instant the session ends — so an exit animation means holding a stale session past the effect cleanup. That is the same pattern the interaction-feel audit deliberately left undone for the gizmo exit, and I would rather not introduce it inside a polish change. Recorded in the plan with that reasoning rather than left implicit.Verification
pnpm typecheck✓ ·pnpm lint0 errors ·pnpm test:web748 passedmodeling+workspace-polishe2e locally: 49 passed (Playwright waits for element stability, so a new 200 ms entrance was the plausible source of timing shifts — there were none)🤖 Generated with Claude Code