Skip to content

[Frontend] Animated Loading Spinners & Global Overlays#313

Open
armorbreak001 wants to merge 1 commit intoGalactiGuild:mainfrom
armorbreak001:bounty/288-loading-spinners
Open

[Frontend] Animated Loading Spinners & Global Overlays#313
armorbreak001 wants to merge 1 commit intoGalactiGuild:mainfrom
armorbreak001:bounty/288-loading-spinners

Conversation

@armorbreak001
Copy link
Copy Markdown

Fixes #288

Changes

  • Spinner.tsx: New <Spinner size="md" color="text-violet-400" /> component
    • Props: size (sm=16px, md=24px, lg=32px), color (Tailwind text color class)
    • SVG-based spinner (crisp on Retina displays, no CSS transform blur)
    • Uses Tailwind's animate-spin utility for smooth rotation
  • LoadingOverlay.tsx: New <LoadingOverlay isOpen={true} /> component
    • Framer Motion AnimatePresence — fade in/out on mount/unmount
    • Fixed-positioned semi-transparent dark backdrop (bg-black/60 backdrop-blur-sm)
    • Centers the Spinner with optional label text below
    • Sets aria-busy="true" + role="progressbar" for accessibility
    • Locks all interactions when open (z-index 50, full viewport)

Acceptance Criteria Met

  • Create <Spinner /> accepting size (sm, md, lg) and color props
  • Create <LoadingOverlay isOpen={true} /> with absolute-positioned semi-transparent dark backdrop + centered Spinner
  • Use SVGs instead of heavy CSS transformations (Retina-crisp)

How to Verify

  1. Import: import { Spinner, LoadingOverlay } from '@/components/ui'
  2. Render <Spinner size="lg" color="text-cyan-500" /> → animated spinner
  3. Wrap in state: <LoadingOverlay isOpen={isLoading} label="Submitting..." /> → overlay fades in with spinner

- Add Spinner component with size (sm/md/lg/xl) and color props
- Uses Lucide Loader2 SVG with Tailwind animate-spin for crisp Retina rendering
- Add LoadingOverlay for full-screen backdrop with spinner + optional label
- Add PageSpinner for inline/page-level loading states
- All components exported from UI index
@armorbreak001 armorbreak001 force-pushed the bounty/288-loading-spinners branch from cd371a2 to fea9463 Compare April 14, 2026 13:02
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.

[Frontend] Animated Loading Spinners & Global Overlays

1 participant