Skip to content

feat(web): motion polish for skeletons, route progress, rolling numbers, and submit morph - #995

Merged
IbrahimIjai merged 4 commits into
SO4-Markets:mainfrom
fortezzalaboratory:motion-skeleton-route-rolling-submit
Oct 19, 2026
Merged

IbrahimIjai merged 4 commits into
SO4-Markets:mainfrom
fortezzalaboratory:motion-skeleton-route-rolling-submit

Conversation

@fortezzalaboratory

Copy link
Copy Markdown
Contributor

What

Adds motion polish for skeletons, route navigation, live position numbers, and the place-order button, all built on the existing motion tokens in globals.css.

Issues Resolved

Closes #874
Closes #875
Closes #876
Closes #879

Changes

#874 - [Motion] Rolling-digit number animation

Adds a RollingNumber primitive that slides each digit on a transform-only odometer strip, and a rolling prop on Numeric. Applied to mark price and PnL in the positions table. Layout is unchanged because digits are fixed-width 1ch columns.

#875 - [Motion] Shimmer skeletons and content crossfade

Replaces animate-pulse in Skeleton with a transform-only sweep on ::before, using a new skeleton-sweep keyframe. The sweep is disabled under reduced motion, both the OS setting and the in-app data-reduced-motion flag. Assumption: the crossfade from skeleton to content is left to each call site, since the skeleton component cannot know when its content loads.

#876 - [Motion] Route pending indicator

Adds a thin RouteProgressBar at the top of the viewport driven by useRouterState().isLoading. It animates transform and opacity only, and is aria-hidden and pointer-events-none.

#879 - [Motion] Submit button state morph

In the confirmation dialog, the confirm button crossfades between its label and a spinner inside one grid cell, so the width does not jump. Assumption: the spinner-to-check step is not included, because the dialog closes on success and there is no visible check state to morph into.

Not verified

  • The repo commit gate (bun lint, bun typecheck, bun run check:tokens, bun run test, bun run build) was not run. Please check it in CI.
  • No before/after screen recordings are attached. The acceptance criteria require them.
  • Only tokens that exist on main are used (--duration-base, --duration-slow, --ease-in-out, --ease-out).

@drips-wave

drips-wave Bot commented Oct 18, 2026

Copy link
Copy Markdown

@fortezzalaboratory Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@vercel

vercel Bot commented Oct 18, 2026

Copy link
Copy Markdown

@fortezzalaboratory is attempting to deploy a commit to the Ijai's projects Team on Vercel.

A member of the Team first needs to authorize it.

@IbrahimIjai
IbrahimIjai merged commit aa9e4e7 into SO4-Markets:main Oct 19, 2026
2 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants