Skip to content

LoadingState

Standardized loading indicator for panels, sections, and pages

In Panel

Usage

tsx
import { LoadingState } from '@tryvienna/ui'

<LoadingState label="Loading workstreams..." />

Examples

Default

Default
tsx
<LoadingState label="Loading workstreams..." />

With Description

With Description
tsx
<LoadingState label="Loading data" description="This may take a moment" />

Inline

Inline
tsx
<LoadingState variant="inline" label="Saving..." />

In Panel

In Panel
tsx
<div className="w-80 h-64 border border-border rounded-lg bg-background flex flex-col">
  <div className="px-4 py-3 border-b border-border">
    <span className="text-sm font-medium">Panel Title</span>
  </div>
  <LoadingState label="Loading content..." />
</div>

Spinner Sizes

Spinner Sizes
tsx
<div className="flex flex-col gap-8">
  <LoadingState spinnerSize="xs" label="Extra small" variant="inline" />
  <LoadingState spinnerSize="sm" label="Small" variant="inline" />
  <LoadingState spinnerSize="md" label="Medium" variant="inline" />
  <LoadingState spinnerSize="lg" label="Large" variant="inline" />
  <LoadingState spinnerSize="xl" label="Extra large" variant="inline" />
</div>

API Reference

LoadingState

PropTypeDefaultDescription
variant'inline' | 'centered' | 'fullscreen'-Layout variant
labelstring-Primary label shown next to/below spinner
descriptionstring-Secondary description
spinnerSizeSpinnerProps['size']-Spinner size (passed to Spinner component)
spinnerVariantSpinnerProps['variant']-Spinner color variant (passed to Spinner component)

Data Attributes

Componentdata-slot
LoadingState"loading-state"