Skip to content
Glint UI

Spinner

The indeterminate busy indicator — an arc that turns, announcing itself politely.

Usage

import { Spinner } from "@glint/components/spinner.slint";
import { Tokens } from "@glint/theme/tokens.slint";
export component AppWindow inherits Window {
width: 560px;
height: 200px;
background: Tokens.color-background;
VerticalLayout {
alignment: center;
padding: 24px;
Spinner {
size: 20px;
}
}
}

Spinner displays a continuously rotating indeterminate loading indicator.

Examples

Sizing and thickness

Scale size and customize thickness to fit compact button contexts or large centered loading screens.

Color tints

Customize tint with semantic tokens.

API Reference

Properties

PropertyTypeDefaultDescription
sizein length16pxSide length of the square arc.
tintin colorTokens.color-muted-foregroundArc color; defaults to the muted foreground token.
thicknessin lengthroot.size / 8Arc stroke thickness. Proportional by default, so a spinner scaled up for a card does not end up drawing a hairline: 2px at the default size.
periodin duration1sTime for one full turn.
rotationout angleno defaultThe arc's current rotation. Public so a host can drive matching motion from the same phase — and so a test can watch the arc actually move.

Accessibility

  • Progress indicator role. Spinner announces as accessible-role: progress-indicator.
  • Polite live region. Configured with accessible-live-region: AccessibleLiveness.polite and defaults to the accessible label "Loading".