Skip to content
GetUrUI

Thinking Indicators

6 variantsNewPro
.md

Six small indicators for an AI reply that is on its way, from a pixel trail to a hopping graph, each with an optional shimmering status label.

ailoaderthinkingspinnerstatusshimmerpendingstreaming

Pixel trail

pixel-trail.tsx

A lit pixel circles a 3×3 grid and leaves a fading trail while the centre breathes.

$npx shadcn@latest add @geturui-pro/thinking-loaders-pixel-trail
PropTypeDefaultDescription
sizenumber28Width and height of the graphic in px.
labelstring | null"Thinking…"Shimmering text beside the loader. Pass null for the graphic alone (a hidden “Loading” label is kept).
speednumber1Speed multiplier; 2 runs twice as fast.
classNamestring—Extra classes on the status wrapper.

Scanline

scanline.tsx

A glowing scan line sweeps a dot matrix and each row lights as it passes.

$npx shadcn@latest add @geturui-pro/thinking-loaders-scanline
PropTypeDefaultDescription
sizenumber28Width and height of the graphic in px.
labelstring | null"Reading files…"Shimmering text beside the loader. Pass null for the graphic alone (a hidden “Loading” label is kept).
speednumber1Speed multiplier; 2 runs twice as fast.
density3 | 4 | 54Cells per side of the grid.
classNamestring—Extra classes on the status wrapper.

Tile ripple

tile-ripple.tsx

Squares swell and turn in a wave that rolls from one corner to the other.

$npx shadcn@latest add @geturui-pro/thinking-loaders-tile-ripple
PropTypeDefaultDescription
sizenumber28Width and height of the graphic in px.
labelstring | null"Drafting a plan…"Shimmering text beside the loader. Pass null for the graphic alone (a hidden “Loading” label is kept).
speednumber1Speed multiplier; 2 runs twice as fast.
density3 | 4 | 54Cells per side of the grid.
classNamestring—Extra classes on the status wrapper.

Quad lock

quad-lock.tsx

Four tiles spin in from the corners, lock into a square with a pulse, then scatter.

$npx shadcn@latest add @geturui-pro/thinking-loaders-quad-lock
PropTypeDefaultDescription
sizenumber28Width and height of the graphic in px.
labelstring | null"Assembling layout…"Shimmering text beside the loader. Pass null for the graphic alone (a hidden “Loading” label is kept).
speednumber1Speed multiplier; 2 runs twice as fast.
classNamestring—Extra classes on the status wrapper.

Comet rhombus

comet-rhombus.tsx

A comet circles a rhombus outline while the inner rhombus turns the other way.

$npx shadcn@latest add @geturui-pro/thinking-loaders-comet-rhombus
PropTypeDefaultDescription
sizenumber28Width and height of the graphic in px.
labelstring | null"Reasoning…"Shimmering text beside the loader. Pass null for the graphic alone (a hidden “Loading” label is kept).
speednumber1Speed multiplier; 2 runs twice as fast.
classNamestring—Extra classes on the status wrapper.

Graph hop

graph-hop.tsx

A pulse hops along the edges of a small graph and each node flashes as it lands.

$npx shadcn@latest add @geturui-pro/thinking-loaders-graph-hop
PropTypeDefaultDescription
sizenumber28Width and height of the graphic in px.
labelstring | null"Connecting sources…"Shimmering text beside the loader. Pass null for the graphic alone (a hidden “Loading” label is kept).
speednumber1Speed multiplier; 2 runs twice as fast.
classNamestring—Extra classes on the status wrapper.

Install the whole set

Installs every thinking indicators variant at once. Each section above has its own command for a single variant.

Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.

$npx shadcn@latest add @geturui-pro/thinking-loaders

Accessibility

  • Each loader is a role="status" live region; the visible label (or a hidden “Loading”) is what gets announced.
  • The graphics are aria-hidden so screen readers never read individual dots or paths.
  • With reduced motion every loader renders a still frame and the label stops shimmering.

Related