Skip to content
Zuno UI
Explore components
EXPLORE
Actions
Forms
Layout
Navigation
Data display
Feedback
Overlays
RESOURCES
Components/SaveIndicator

SaveIndicator

Whether the user's work is saved: no changes, pending, saving, saved or failed, as reported by your save call.

No changes

Installation

Run it from the root of a project already set up with zunoui init.

npx zunoui@latest add save-indicator

Dependencies

What add save-indicator installs alongside the component. The CLI skips any you already have in a compatible version.

ZUNO registry

  • @zuno/utils

Examples

2 examples · 1 component
save-indicator
No changesUnsaved changesSaving…Saved at 14:32Couldn't save

States

The five statuses with their default labels.

save-indicator
No changes

Driven by the save request

Typing marks the note dirty; the status follows the request, and a failure offers Retry.

API reference

Forwards props and ref to the container element; it only adds composition utilities.

PropTypeDefault
status

The state of the real save operation; you own the transitions.

"idle" | "dirty" | "saving" | "saved" | "error"—
children

Replaces the default English label: translations or detail like "Saved at 14:32".

ReactNodethe status label

States

The states that apply to this component and their visual treatment.

StateTreatment
idleNo changes: an empty dot, muted.
dirtyUnsaved changes: a warning-colored dot.
savingA spinner (static with reduced motion).
savedA success check; pass children to add the time.
errorAn alert icon and error-colored text; pair it with a Retry action.

Accessibility

A role="status" live region that stays mounted: each change is announced once, politely, without moving focus.

Every state has text; the icon and color only reinforce it. Error also turns the text red.

It reports, it doesn't act: put the Retry button next to it, outside the live region, so the button isn't re-read on every change.

Derive the status from the actual request (pending → saving, resolved → saved, rejected → error). A timer that shows "Saved" without a response is a false promise.

Server-safe: no client JavaScript of its own.