Repository navigation
feat(todo-dock): sweep the working step and drop per-row chrome - #1729
Merged
Merged
Conversation
The expanded checklist read as a stack of bordered status squares, so the list competed with the task text for attention and the running step was no easier to find than any other row. Replace the mark with a bare glyph and let a single light band, painted into the running step's own text, carry "this is working now". Nothing else in the dock moves: no capsule, no row fill, no step numbers, and the existing bordered panel stays the surface. The sweep appears on exactly one string at a time. While collapsed it rides the header's current-item line, because that is where the running step is shown; while expanded it moves to the row and the header goes quiet. The list stays mounted behind the disclosure, so without that gate the same text would sweep twice. Both gradient stops are existing text tokens, so each theme keeps its own contrast, and a reduced-motion user gets flat primary ink instead of a band frozen mid-sweep. Band geometry is what makes the loop hold: a 200% image sliding from 100% to 0% keeps the visible window inside the image at every frame, so it neither drops out nor restarts visibly.
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.
Why
The expanded session checklist read as a stack of bordered status squares, so
the list competed with the task text for attention and the running step was no
easier to find than any other row.
What changed
a bordered 16px box. Completed strike-through, cancelled muting, and the
in-progress weight/colour are unchanged.
the text with
-webkit-background-clip: text, so no row changes shape, gainsa fill, or reserves space for it. This is now the dock's only motion.
current-item line (that is where the running step is shown); while expanded it
moves to the row and the header goes quiet. The list stays mounted behind the
disclosure, so without that gate the same text would sweep twice.
prefers-reduced-motionuser gets flat primary inkinstead of a band frozen mid-sweep, rather than
animation: nonealone.and the i18n keys are all unchanged.
Band geometry is what makes the loop hold: a 200% image sliding
100% → 0%keeps the visible window inside the image at every frame, so it neither drops
out nor restarts visibly. Both gradient stops are existing
--ds-text-*tokens,so each theme keeps its own contrast and a contributed theme can still move
them.
Verification
tsc -p apps/desktop/tsconfig.json --noEmit— 0 errors.apps/desktop/test/todo-dock-rendering.test.mjs,todo-events.test.mjs,todo-recovery.test.mjs— 8/8 pass. The rendering test asserts exactly oneshimmer in the collapsed markup, that it sits on the header's current-item
line, and that the marker keeps no border/radius; the CSS test asserts the
clip, the 200% geometry, the keyframe, and the reduced-motion fallback.
scripts/check-style-tokens.mjs,style-surface-tokensoncomposer.css,check-architecture.mjs,check-agent-policy-sync.mjs,biome lint,docs/scripts/check-locales.mjs,docs/scripts/check-docs.mjs— all pass.apps/desktopsuite still reports its pre-existing platform failures(macOS codesign/stapler, remote-host supervisor, Windows path fixtures); the
same files fail identically on a clean
origin/maintree, and none of themtouch todo.
Specs synced:
docs/spec/04-ux/08-component-spec.md§11.3a (and its zh-CNmirror),
docs/spec/06-delivery/04-e2e-test-plan.md(and mirror), ADR 0312.