Loading Overlay Component in the Remix Supabase SaaS kit
Learn how to use the Loading Overlay component in the Remix Supabase SaaS kit
The LoadingOverlay component is a versatile UI element designed to display a loading state with a spinner and optional content. It's perfect for indicating background processes or page loads in your application.
Features
- Customizable appearance through CSS classes
- Option for full-page overlay or inline loading indicator
- Spinner animation with customizable styling
- Ability to include additional content or messages
Usage
import { LoadingOverlay } from '@kit/ui/loading-overlay';function MyComponent() { return ( <LoadingOverlay> Loading your content... </LoadingOverlay> );}
Props
The LoadingOverlay component accepts the following props:
children?: React.ReactNode
: Optional content to display below the spinner.className?: string
: Additional CSS classes to apply to the container.spinnerClassName?: string
: CSS classes to apply to the spinner component.fullPage?: boolean
: Whether to display as a full-page overlay. Defaults totrue
.
Examples
Full-page overlay
<LoadingOverlay> Please wait while we load your dashboard...</LoadingOverlay>
Inline loading indicator
<LoadingOverlay fullPage={false} className="h-40"> Fetching results...</LoadingOverlay>
Customized appearance
<LoadingOverlay className="bg-gray-800 text-white" spinnerClassName="text-blue-500"> Processing your request...</LoadingOverlay>
Styling
The LoadingOverlay uses Tailwind CSS for styling. Key classes include:
- Flex layout with centered content:
flex flex-col items-center justify-center
- Space between spinner and content:
space-y-4
- Full-page overlay (when
fullPage
is true):
fixed left-0 top-0 z-[100] h-screen w-screen bg-background
You can further customize the appearance by passing additional classes through the className
and spinnerClassName
props.
Accessibility
When using the LoadingOverlay, consider adding appropriate ARIA attributes to improve accessibility, such as aria-busy="true"
on the parent element that's in a loading state.
Best Practices
- Use full-page overlays sparingly to avoid disrupting user experience.
- Provide clear, concise messages to inform users about what's loading.
- Consider using inline loading indicators for smaller UI elements or partial page updates.
- Ensure sufficient contrast between the overlay and the spinner for visibility.
The LoadingOverlay component provides a simple yet effective way to indicate loading states in your application, enhancing user experience by providing visual feedback during asynchronous operations or content loads.