Skip to main content

Spinner

Spinner is the indeterminate loading indicator.

Use it when the app is working but does not have a meaningful completion fraction yet. This is the right choice for short waits such as opening a panel, checking a server, or refreshing a view where exact progress is unknown.

Example

use fission::prelude::*;

let node = Spinner {
id: WidgetNodeId::explicit("sync_spinner"),
color: None,
animated: true,
}
.build(ctx, view);

Field table

FieldTypeMeaningNotes / default behavior
idWidgetNodeIdStable identity used to drive the dot animations.Required.
colorOption<Color>Dot color override.Defaults to the theme's primary color.
animatedboolWhether the dots should pulse.Defaults to true.

user experience guidance

A spinner says "work is happening" but does not explain how long it will take. That makes it useful for short or uncertain waits, but weaker than a real progress indicator for long-running tasks.

The checked-in widget uses three animated dots. Stable ids matter here just as they do for other animated widgets.

Skeleton, CircularProgress, ProgressBar, and EmptyState.