Skip to content

feat: cross-fade RecipientLoading skeleton into populated list (Closes #1285) - #1353

Open
waterWang wants to merge 1 commit into
Fluxora-Org:mainfrom
waterWang:feat/recipient-loading-crossfade-1285
Open

feat: cross-fade RecipientLoading skeleton into populated list (Closes #1285)#1353
waterWang wants to merge 1 commit into
Fluxora-Org:mainfrom
waterWang:feat/recipient-loading-crossfade-1285

Conversation

@waterWang

Copy link
Copy Markdown

Summary

Adds a CSS cross-fade transition when RecipientLoading (skeleton) resolves into the populated RecipientStreams list, replacing the current abrupt hard cut with a smooth visual transition.

Changes

src/components/skeleton.css

  • Added @keyframes content-fade-in that transitions opacity from 0 to 1
  • Added .content-fade-in utility class using --transition-base (200ms ease-out)
  • Respects prefers-reduced-motion: no animation, instant swap

src/components/RecipientLoading.tsx

  • Added content-fade-in class to the skeleton wrapper for smooth appearance

src/components/recipient/RecipientStreams.tsx

  • Added content-fade-in class to the populated content wrapper

Accessibility

  • WCAG 2.1 AA compliant: prefers-reduced-motion disables the animation
  • Animation does not delay the populated list becoming interactive/focusable
  • Uses existing --transition-base design token, no new hardcoded durations

Testing

  • RecipientStreams.test.tsx: 7/7 tests passing
  • Visual: brief 200ms opacity fade-in on content mount

Add a CSS content-fade-in animation that transitions the skeleton
(RecipientLoading) into the populated RecipientStreams list.

- Uses --transition-base (200ms ease-out) for the fade duration
- Respects prefers-reduced-motion: no animation, instant swap
- Applies to both RecipientLoading and RecipientStreams content
- Does not delay the populated list becoming interactive

Closes Fluxora-Org#1285
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant