Skip to content

feat: Add shimmer loading skeletons for all data-loading states (Closes #827)#1248

Open
sepulchralvoid666 wants to merge 1 commit into
SolFoundry:mainfrom
sepulchralvoid666:feat/bounty-827-loading-skeletons
Open

feat: Add shimmer loading skeletons for all data-loading states (Closes #827)#1248
sepulchralvoid666 wants to merge 1 commit into
SolFoundry:mainfrom
sepulchralvoid666:feat/bounty-827-loading-skeletons

Conversation

@sepulchralvoid666
Copy link
Copy Markdown

What this does

Adds shimmer loading skeleton components matching the layout of actual content for all data-loading states across the site.

New Component: Skeleton.tsx

  • BountyCardSkeleton — mirrors BountyCard layout (repo, tier, title, tags, reward, meta)
  • BountyDetailSkeleton — mirrors BountyDetail layout (title card, sidebar, submissions)
  • PodiumSkeleton — mirrors PodiumCards layout (3 podium positions with height differences)
  • LeaderboardRowSkeleton — mirrors leaderboard table rows (rank, avatar, name, stats)
  • ProfileBountyRowSkeleton — mirrors profile bounty list rows
  • ProfileStatsSkeleton — mirrors stats grid cards

Pages Updated

  • BountyGrid: Replace flat shimmer boxes with BountyCardSkeleton (6 cards)
  • BountyDetailPage: Replace flat shimmer boxes with BountyDetailSkeleton
  • LeaderboardPage: Replace spinner with PodiumSkeleton + 5 LeaderboardRowSkeleton
  • ProfileDashboard: Replace Loading... text with 4 ProfileBountyRowSkeleton

How it works

  • Uses existing animate-shimmer from tailwind.config.js (gradient sweep animation)
  • ShimmerBlock base component for consistent shimmer styling
  • Added animate-content-appear CSS animation for smooth transition when real content loads

Testing

  1. Throttle network to Slow 3G in DevTools
  2. Navigate between pages and observe skeleton animations
  3. Verify skeletons match the shape of actual content
  4. Verify smooth transition when content appears

Closes #827

Wallet: 2JHa4QQWNV7AGSGsVeX1cwjZtFcmTTomb1TrJmQthoh3

- New Skeleton.tsx component with: BountyCardSkeleton, BountyDetailSkeleton,
  PodiumSkeleton, LeaderboardRowSkeleton, ProfileBountyRowSkeleton, ProfileStatsSkeleton
- BountyGrid: replace flat shimmer boxes with BountyCardSkeleton matching card layout
- BountyDetailPage: replace flat shimmer boxes with BountyDetailSkeleton matching detail layout
- LeaderboardPage: replace spinner with PodiumSkeleton + LeaderboardRowSkeleton
- ProfileDashboard: replace 'Loading...' text with ProfileBountyRowSkeleton
- index.css: add animate-content-appear transition for smooth content fade-in

All skeletons match the shape and layout of their real content counterparts.
Shimmer animation uses existing tailwind animate-shimmer config.
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.

🏭 Bounty T1: Loading Skeleton Animations

1 participant