fix(lab): smooth CircularProgress indeterminate animation - #5916
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
PR Analysis Report📚 Storybook PreviewView Storybook for this PR 🧪 Sandbox PreviewView Sandbox for this PR Modified ComponentsCircularProgress (@astryxdesign/lab) · View in Storybook
Bundle Size Summary
Accessibility AuditStatus: No accessibility violations detected. Generated by PR Enrichment workflow | Storybook | Sandbox | View full report |
freddymeta
force-pushed
the
fix/circular-progress-indeterminate
branch
from
September 2, 2026 13:28
508381a to
447a880
Compare
freddymeta
marked this pull request as ready for review
September 2, 2026 13:48
freddymeta
force-pushed
the
fix/circular-progress-indeterminate
branch
from
September 2, 2026 13:56
447a880 to
c3e0205
Compare
Contributor
Author
Screen.Recording.2026-09-02.at.9.59.32.PM.mov |
freddymeta
force-pushed
the
fix/circular-progress-indeterminate
branch
from
September 2, 2026 14:43
c3e0205 to
8a0931b
Compare
freddymeta
force-pushed
the
fix/circular-progress-indeterminate
branch
from
September 3, 2026 01:02
8a0931b to
17d77ec
Compare
cixzhang
approved these changes
Sep 3, 2026
cixzhang
left a comment
Contributor
There was a problem hiding this comment.
Thanks, this is good. People waiting on indeterminate progress no longer see the extra dash or loop snap. I checked all three sizes and RTL. [Reviewed by Robohands]
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.
Summary
pathLengthrescalingRoot cause
The old fixed-unit animation had two discontinuities:
1, 150dash pattern totals 151, so SVG repeated it and briefly painted a second dashThe new
2%, 300%pattern scales with the square SVG viewport. Its 300% gap exceeds every ring circumference, and the-302%endpoint shifts one complete pattern, so the next iteration begins at equivalent geometry.Related to #4133.
Visual proof
Frozen at the first animation frame, before (left) and after (right):
The extra dash near the top of the 64px ring is the flash seen at normal speed.
Chromium boundary samples for the shrinking dash:
16.1272% → 5.41198% → 2.53244% → 2.05847% → 2.00058% → 2%. The loop no longer has a one-frame size collapse.Test plan
pnpm lint:stricttestjob on exact head8a0931b— passedpnpm exec vitest run packages/lab/src/CircularProgress/CircularProgress.test.tsx— 32 passedpnpm buildpnpm -F @astryxdesign/lab typecheckpnpm -F @astryxdesign/storybook buildpnpm -F @astryxdesign/storybook rtl-audit -- --filter CircularProgress— verified N/A, zero gapsnode internal/stylex-capabilities/scan.mjs— 83/92 supportedpathLengthscaling is presentNo changeset:
@astryxdesign/labis private/canary-only, and the repository changeset check passes without one.— Puck, on behalf of Freddy