Appica UIUI 1.0.0

Loader

An indicator that shows a loading state.

Usage

Loader is an indeterminate progress indicator — it conveys "working on it" without a percentage. It comes in two shapes via variant: bar (a track with a sweeping fill, the default) and dots (three dots flowing left to right). Both read a little more like progress than a Spinner, so they suit section- and status-level waits.

Like the spinner, it's sized by font-size — set a text-* class (or inherit 1em) to scale it — and currentColor makes it match the surrounding text instead of the primary accent. It renders a role="status" element labelled "Loading".

Use Loader for "this area is loading", inline status text, and "load more" buttons. For a compact spinner inside a small button or icon button, reach for Spinner instead.

Examples

Variants

Two shapes: bar (a sweeping track) and dots (a flowing trio). Both loop indefinitely and honour prefers-reduced-motion by holding a static frame.

Sizing

The loader scales with font-size, so a text-* utility resizes it — there's no size prop. Its width/height ratio is fixed, so it grows proportionally.

Color

By default the loader uses the primary accent (with a soft track on the bar). Add currentColor and it adopts the surrounding text color instead.

Load more

A "load more" button that shows the dots loader while the next page fetches. currentColor matches the button text.

Section loading

Drive a panel from your own loading state — show a centred loader while data is in flight, then swap in the content. The Refresh button re-runs it.

Inline status

Set currentColor and drop a loader straight into a line of text — sized in em, it sits on the baseline next to a "syncing…" or "uploading…" message and takes the text's color.

RTL

Every Appica UI component supports right-to-left layouts out of the box. Set the dir attribute on a container (commonly your <html> element) so CSS logical properties resolve correctly, and wrap your tree in DirectionProvider so direction-aware behavior follows the same direction.

Beside text, the loader sits on the correct side under RTL since it follows the inline flow. For setup details and caveats, see the RTL guide.

جارٍ مزامنة تغييراتكجارٍ رفع 3 ملفات

API reference

Loader renders a single <span role="status"> and forwards ref, className, and any other span attributes.

Accessibility

  • The loader is a role="status" live region with a default aria-label="Loading"; pass a more specific label (e.g. "Uploading files") when it helps.
  • When a loader replaces a section's content, keep one labelled status in the region rather than several, so screen readers announce a single "loading" state.
  • A loader sitting beside text that already states the status can be marked aria-hidden to avoid a duplicate announcement.
  • The animation is replaced by a static frame when the user prefers reduced motion.

© 2026 Appica UI. A free component library, crafted by the Appica team.