Skip to content

Spinners reference

TSpinnerKind enumerates 90 built-in spinner styles, ported from Spectre.Console (which ports cli-spinners). Use them with Status, as a Widgets.SpinnerColumn inside Progress, or directly via Widgets.Spinner.

Picking a spinner

pascal
AnsiConsole.Status
  .WithSpinner(TSpinnerKind.Dots)
  .Start('working...', proc);

// or a one-off renderable
AnsiConsole.Write(Widgets.Spinner(TSpinnerKind.Earth));

Unicode vs ASCII

Many spinners use Unicode glyphs. When the active console doesn't support Unicode, a Unicode-only spinner falls back to the simple Line set (-, \, |, /) so the animation still works. ASCII-native spinners (Ascii, Line, Pipe, Binary, Balloon, etc.) keep their own frames regardless.

pascal
Widgets.Spinner(TSpinnerKind.Earth)        // Unicode (default)
Widgets.Spinner(TSpinnerKind.Earth, False) // forces ASCII fallback

The Unicode column below marks which kinds need a Unicode-capable terminal — these are the ones that fall back to Line when unicode=False. ✓ = Unicode required, – = ASCII-safe.

Random spinner

For variety in a long-running CLI, pick one from the well-behaved subset:

pascal
spinner := AnsiConsole.RandomSpinner;

RandomSpinner.Pick excludes wide-emoji spinners that mis-cell on legacy hosts; RandomSpinner.Make(unicode) returns a ready-to-use ISpinner.

Custom spinners

Build one from a list of frames + a per-frame interval (ms):

pascal
custom := Widgets.Spinner(
            TArray<string>.Create('(>    )', '( >   )', '(  >  )',
                                  '(   > )', '(    >)',
                                  '(   < )', '(  <  )', '( <   )', '(<    )'),
            100);

AnsiConsole.Status
  .WithSpinner(custom)
  .Start('working...', proc);

The frame list cycles with wrap-around; intervals shorter than the terminal refresh rate are clamped.

All built-in kinds

Every entry from TSpinnerKind. The Preview column shows a live animation in your browser; if JavaScript is disabled, all frames are shown side by side instead. Kinds are sorted alphabetically — see the declaration order in source/Live/VSoft.AnsiConsole.Live.Spinners.pas if you need that.

NameFramesIntervalUnicodePreview
Aesthetic880 ms▰▱▱▱▱▱▱▰▱▱▱▱▱▱ ▰▰▱▱▱▱▱ ▰▰▰▱▱▱▱ ▰▰▰▰▱▱▱ ▰▰▰▰▰▱▱ ▰▰▰▰▰▰▱ ▰▰▰▰▰▰▰ ▰▱▱▱▱▱▱
Arc6100 ms◜ ◠ ◝ ◞ ◡ ◟
Arrow8100 ms← ↖ ↑ ↗ → ↘ ↓ ↙
Arrow2880 ms⬆️ ⬆️ ↗️ ➡️ ↘️ ⬇️ ↙️ ⬅️ ↖️
Arrow36120 ms▹▹▹▹▹▹▹▹▹▹ ▸▹▹▹▹ ▹▸▹▹▹ ▹▹▸▹▹ ▹▹▹▸▹ ▹▹▹▹▸
Ascii8100 ms-- \ | / - \ | /
Balloon7140 ms . o O @ *
Balloon27120 ms.. o O ° O o .
BetaWave780 msρββββββρββββββ βρβββββ ββρββββ βββρβββ ββββρββ βββββρβ ββββββρ
Binary1080 ms010010010010 001100 100101 111010 111101 010111 101011 111000 110011 110101
BluePulse5100 ms🔹 🔹 🔷 🔵 🔵 🔷
Bounce4120 ms⠁ ⠂ ⠄ ⠂
BouncingBall1080 ms( ● )( ● ) ( ● ) ( ● ) ( ● ) ( ●) ( ● ) ( ● ) ( ● ) ( ● ) (● )
BouncingBar1680 ms[ ][ ] [= ] [== ] [=== ] [====] [ ===] [ ==] [ =] [ ] [ =] [ ==] [ ===] [====] [=== ] [== ] [= ]
BoxBounce4120 ms▖ ▘ ▝ ▗
BoxBounce24100 ms▌ ▀ ▐ ▄
Christmas2400 ms🌲🌲 🎄
Circle3120 ms◡ ⊙ ◠
CircleHalves450 ms◐ ◓ ◑ ◒
CircleQuarters4120 ms◴ ◷ ◶ ◵
Clock12100 ms🕛 🕛 🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚
Default8100 ms⣷ ⣯ ⣟ ⡿ ⢿ ⣻ ⣽ ⣾
Dots1080 ms⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
Dots10780 ms⢄ ⢂ ⢁ ⡁ ⡈ ⡐ ⡠
Dots118100 ms⠁ ⠂ ⠄ ⡀ ⢀ ⠠ ⠐ ⠈
Dots125680 ms⢀⠀⢀⠀ ⡀⠀ ⠄⠀ ⢂⠀ ⡂⠀ ⠅⠀ ⢃⠀ ⡃⠀ ⠍⠀ ⢋⠀ ⡋⠀ ⠍⠁ ⢋⠁ ⡋⠁ ⠍⠉ ⠋⠉ ⠋⠉ ⠉⠙ ⠉⠙ ⠉⠩ ⠈⢙ ⠈⡙ ⢈⠩ ⡀⢙ ⠄⡙ ⢂⠩ ⡂⢘ ⠅⡘ ⢃⠨ ⡃⢐ ⠍⡐ ⢋⠠ ⡋⢀ ⠍⡁ ⢋⠁ ⡋⠁ ⠍⠉ ⠋⠉ ⠋⠉ ⠉⠙ ⠉⠙ ⠉⠩ ⠈⢙ ⠈⡙ ⠈⠩ ⠀⢙ ⠀⡙ ⠀⠩ ⠀⢘ ⠀⡘ ⠀⠨ ⠀⢐ ⠀⡐ ⠀⠠ ⠀⢀ ⠀⡀
Dots13880 ms⣼ ⣹ ⢻ ⠿ ⡟ ⣏ ⣧ ⣶
Dots141280 ms⠉⠉⠉⠉ ⠈⠙ ⠀⠹ ⠀⢸ ⠀⣰ ⢀⣠ ⣀⣀ ⣄⡀ ⣆⠀ ⡇⠀ ⠏⠀ ⠋⠁
Dots2880 ms⣾ ⣽ ⣻ ⢿ ⡿ ⣟ ⣯ ⣷
Dots31080 ms⠋ ⠙ ⠚ ⠞ ⠖ ⠦ ⠴ ⠲ ⠳ ⠓
Dots41480 ms⠄ ⠆ ⠇ ⠋ ⠙ ⠸ ⠰ ⠠ ⠰ ⠸ ⠙ ⠋ ⠇ ⠆
Dots51780 ms⠋ ⠙ ⠚ ⠒ ⠂ ⠂ ⠒ ⠲ ⠴ ⠦ ⠖ ⠒ ⠐ ⠐ ⠒ ⠓ ⠋
Dots62480 ms⠁ ⠉ ⠙ ⠚ ⠒ ⠂ ⠂ ⠒ ⠲ ⠴ ⠤ ⠄ ⠄ ⠤ ⠴ ⠲ ⠒ ⠂ ⠂ ⠒ ⠚ ⠙ ⠉ ⠁
Dots72480 ms⠈ ⠉ ⠋ ⠓ ⠒ ⠐ ⠐ ⠒ ⠖ ⠦ ⠤ ⠠ ⠠ ⠤ ⠦ ⠖ ⠒ ⠐ ⠐ ⠒ ⠓ ⠋ ⠉ ⠈
Dots82980 ms⠁ ⠁ ⠉ ⠙ ⠚ ⠒ ⠂ ⠂ ⠒ ⠲ ⠴ ⠤ ⠄ ⠄ ⠤ ⠠ ⠠ ⠤ ⠦ ⠖ ⠒ ⠐ ⠐ ⠒ ⠓ ⠋ ⠉ ⠈ ⠈
Dots8Bit25680 ms⠀ ⠁ ⠂ ⠃ ⠄ ⠅ ⠆ ⠇ ⡀ ⡁ ⡂ ⡃ ⡄ ⡅ ⡆ ⡇ ⠈ ⠉ ⠊ ⠋ ⠌ ⠍ ⠎ ⠏ ⡈ ⡉ ⡊ ⡋ ⡌ ⡍ ⡎ ⡏ ⠐ ⠑ ⠒ ⠓ ⠔ ⠕ ⠖ ⠗ ⡐ ⡑ ⡒ ⡓ ⡔ ⡕ ⡖ ⡗ ⠘ ⠙ ⠚ ⠛ ⠜ ⠝ ⠞ ⠟ ⡘ ⡙ ⡚ ⡛ ⡜ ⡝ ⡞ ⡟ ⠠ ⠡ ⠢ ⠣ ⠤ ⠥ ⠦ ⠧ ⡠ ⡡ ⡢ ⡣ ⡤ ⡥ ⡦ ⡧ ⠨ ⠩ ⠪ ⠫ ⠬ ⠭ ⠮ ⠯ ⡨ ⡩ ⡪ ⡫ ⡬ ⡭ ⡮ ⡯ ⠰ ⠱ ⠲ ⠳ ⠴ ⠵ ⠶ ⠷ ⡰ ⡱ ⡲ ⡳ ⡴ ⡵ ⡶ ⡷ ⠸ ⠹ ⠺ ⠻ ⠼ ⠽ ⠾ ⠿ ⡸ ⡹ ⡺ ⡻ ⡼ ⡽ ⡾ ⡿ ⢀ ⢁ ⢂ ⢃ ⢄ ⢅ ⢆ ⢇ ⣀ ⣁ ⣂ ⣃ ⣄ ⣅ ⣆ ⣇ ⢈ ⢉ ⢊ ⢋ ⢌ ⢍ ⢎ ⢏ ⣈ ⣉ ⣊ ⣋ ⣌ ⣍ ⣎ ⣏ ⢐ ⢑ ⢒ ⢓ ⢔ ⢕ ⢖ ⢗ ⣐ ⣑ ⣒ ⣓ ⣔ ⣕ ⣖ ⣗ ⢘ ⢙ ⢚ ⢛ ⢜ ⢝ ⢞ ⢟ ⣘ ⣙ ⣚ ⣛ ⣜ ⣝ ⣞ ⣟ ⢠ ⢡ ⢢ ⢣ ⢤ ⢥ ⢦ ⢧ ⣠ ⣡ ⣢ ⣣ ⣤ ⣥ ⣦ ⣧ ⢨ ⢩ ⢪ ⢫ ⢬ ⢭ ⢮ ⢯ ⣨ ⣩ ⣪ ⣫ ⣬ ⣭ ⣮ ⣯ ⢰ ⢱ ⢲ ⢳ ⢴ ⢵ ⢶ ⢷ ⣰ ⣱ ⣲ ⣳ ⣴ ⣵ ⣶ ⣷ ⢸ ⢹ ⢺ ⢻ ⢼ ⢽ ⢾ ⢿ ⣸ ⣹ ⣺ ⣻ ⣼ ⣽ ⣾ ⣿
Dots9880 ms⢹ ⢺ ⢼ ⣸ ⣇ ⡧ ⡗ ⡏
DotsCircle880 ms⢎ ⠎⠁ ⠊⠑ ⠈⠱ ⡱ ⢀⡰ ⢄⡠ ⢆⡀
Dqpb4100 msdd q p b
DwarfFortress13380 ms ██████£££ ██████£££ ☺██████£££ ☺██████£££ ☺▓█████£££ ☺▓█████£££ ☺▒█████£££ ☺▒█████£££ ☺░█████£££ ☺░█████£££ ☺ █████£££ ☺█████£££ ☺█████£££ ☺▓████£££ ☺▓████£££ ☺▒████£££ ☺▒████£££ ☺░████£££ ☺░████£££ ☺ ████£££ ☺████£££ ☺████£££ ☺▓███£££ ☺▓███£££ ☺▒███£££ ☺▒███£££ ☺░███£££ ☺░███£££ ☺ ███£££ ☺███£££ ☺███£££ ☺▓██£££ ☺▓██£££ ☺▒██£££ ☺▒██£££ ☺░██£££ ☺░██£££ ☺ ██£££ ☺██£££ ☺██£££ ☺▓█£££ ☺▓█£££ ☺▒█£££ ☺▒█£££ ☺░█£££ ☺░█£££ ☺ █£££ ☺█£££ ☺█£££ ☺▓£££ ☺▓£££ ☺▒£££ ☺▒£££ ☺░£££ ☺░£££ ☺ £££ ☺£££ ☺£££ ☺▓££ ☺▓££ ☺▒££ ☺▒££ ☺░££ ☺░££ ☺ ££ ☺££ ☺££ ☺▓£ ☺▓£ ☺▒£ ☺▒£ ☺░£ ☺░£ ☺ £ ☺£ ☺£ ☺▓ ☺▓ ☺▒ ☺▒ ☺░ ☺░ ☺ ☺ & ☺ ☼& ☺ ☼ & ☺☼ & ☺☼ & ‼ & ☺ & ‼ & ☺ & ‼ & ☺ & ‼ & & & & ░ & ▒ & ▓ & £ & ░£ & ▒£ & ▓£ & ££ & ░££ & ▒££ & ▓££ & £££ ░£££ ▒£££ ▓£££ █£££ ░█£££ ▒█£££ ▓█£££ ██£££ ░██£££ ▒██£££ ▓██£££ ███£££ ░███£££ ▒███£££ ▓███£££ ████£££ ░████£££ ▒████£££ ▓████£££ █████£££ ░█████£££ ▒█████£££ ▓█████£££ ██████£££ ██████£££
Earth3180 ms🌍 🌍 🌎 🌏
FingerDance6160 ms🤘 🤘 🤟 🖖 ✋ 🤚 👆
FistBump780 ms🤜    🤛 🤜    🤛 🤜    🤛 🤜    🤛  🤜  🤛    🤜🤛    🤜✨🤛   🤜 ✨ 🤛 
Flip1270 ms__ _ _ - ` ` ' ´ - _ _ _
Grenade1480 ms، ، ′ ´ ‾ ⸌ ⸊ | ⁎ ⁕ ෴ ⁓
GrowHorizontal12120 ms▏ ▎ ▍ ▌ ▋ ▊ ▉ ▊ ▋ ▌ ▍ ▎
GrowVertical10120 ms▁ ▃ ▄ ▅ ▆ ▇ ▆ ▅ ▄ ▃
Hamburger3100 ms☱ ☲ ☴
Hearts5100 ms💛 💛 💙 💜 💚 ❤️
Layer3150 ms-- = ≡
Line4130 ms-- \ | /
Line26100 ms⠂ - – — – -
Material9217 ms█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ███████▁▁▁▁▁▁▁▁▁▁▁▁▁ ████████▁▁▁▁▁▁▁▁▁▁▁▁ █████████▁▁▁▁▁▁▁▁▁▁▁ █████████▁▁▁▁▁▁▁▁▁▁▁ ██████████▁▁▁▁▁▁▁▁▁▁ ███████████▁▁▁▁▁▁▁▁▁ █████████████▁▁▁▁▁▁▁ ██████████████▁▁▁▁▁▁ ██████████████▁▁▁▁▁▁ ▁██████████████▁▁▁▁▁ ▁██████████████▁▁▁▁▁ ▁██████████████▁▁▁▁▁ ▁▁██████████████▁▁▁▁ ▁▁▁██████████████▁▁▁ ▁▁▁▁█████████████▁▁▁ ▁▁▁▁██████████████▁▁ ▁▁▁▁██████████████▁▁ ▁▁▁▁▁██████████████▁ ▁▁▁▁▁██████████████▁ ▁▁▁▁▁██████████████▁ ▁▁▁▁▁▁██████████████ ▁▁▁▁▁▁██████████████ ▁▁▁▁▁▁▁█████████████ ▁▁▁▁▁▁▁█████████████ ▁▁▁▁▁▁▁▁████████████ ▁▁▁▁▁▁▁▁████████████ ▁▁▁▁▁▁▁▁▁███████████ ▁▁▁▁▁▁▁▁▁███████████ ▁▁▁▁▁▁▁▁▁▁██████████ ▁▁▁▁▁▁▁▁▁▁██████████ ▁▁▁▁▁▁▁▁▁▁▁▁████████ ▁▁▁▁▁▁▁▁▁▁▁▁▁███████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████ █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████ ██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███ ██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███ ███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███ ████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██ █████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ █████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ██████▁▁▁▁▁▁▁▁▁▁▁▁▁█ ████████▁▁▁▁▁▁▁▁▁▁▁▁ █████████▁▁▁▁▁▁▁▁▁▁▁ █████████▁▁▁▁▁▁▁▁▁▁▁ █████████▁▁▁▁▁▁▁▁▁▁▁ █████████▁▁▁▁▁▁▁▁▁▁▁ ███████████▁▁▁▁▁▁▁▁▁ ████████████▁▁▁▁▁▁▁▁ ████████████▁▁▁▁▁▁▁▁ ██████████████▁▁▁▁▁▁ ██████████████▁▁▁▁▁▁ ▁██████████████▁▁▁▁▁ ▁██████████████▁▁▁▁▁ ▁▁▁█████████████▁▁▁▁ ▁▁▁▁▁████████████▁▁▁ ▁▁▁▁▁████████████▁▁▁ ▁▁▁▁▁▁███████████▁▁▁ ▁▁▁▁▁▁▁▁█████████▁▁▁ ▁▁▁▁▁▁▁▁█████████▁▁▁ ▁▁▁▁▁▁▁▁▁█████████▁▁ ▁▁▁▁▁▁▁▁▁█████████▁▁ ▁▁▁▁▁▁▁▁▁▁█████████▁ ▁▁▁▁▁▁▁▁▁▁▁████████▁ ▁▁▁▁▁▁▁▁▁▁▁████████▁ ▁▁▁▁▁▁▁▁▁▁▁▁███████▁ ▁▁▁▁▁▁▁▁▁▁▁▁███████▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁███████ ▁▁▁▁▁▁▁▁▁▁▁▁▁███████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
Mindblown14160 ms😐 😐 😐 😮 😮 😦 😦 😧 😧 🤯 💥 ✨      
Monkey4300 ms🙈 🙈 🙈 🙉 🙊
Moon880 ms🌑 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘
Noise3100 ms▓ ▒ ░
OrangeBluePulse10100 ms🔸 🔸 🔶 🟠 🟠 🔶 🔹 🔷 🔵 🔵 🔷
OrangePulse5100 ms🔸 🔸 🔶 🟠 🟠 🔶
Pipe8100 ms┤ ┘ ┴ └ ├ ┌ ┬ ┐
Point5125 ms∙∙∙∙∙∙ ●∙∙ ∙●∙ ∙∙● ∙∙∙
Pong3080 ms▐⠂ ▌▐⠂ ▌ ▐⠈ ▌ ▐ ⠂ ▌ ▐ ⠠ ▌ ▐ ⡀ ▌ ▐ ⠠ ▌ ▐ ⠂ ▌ ▐ ⠈ ▌ ▐ ⠂ ▌ ▐ ⠠ ▌ ▐ ⡀ ▌ ▐ ⠠ ▌ ▐ ⠂ ▌ ▐ ⠈ ▌ ▐ ⠂▌ ▐ ⠠▌ ▐ ⡀▌ ▐ ⠠ ▌ ▐ ⠂ ▌ ▐ ⠈ ▌ ▐ ⠂ ▌ ▐ ⠠ ▌ ▐ ⡀ ▌ ▐ ⠠ ▌ ▐ ⠂ ▌ ▐ ⠈ ▌ ▐ ⠂ ▌ ▐ ⠠ ▌ ▐ ⡀ ▌ ▐⠠ ▌
Runner2140 ms🚶 🚶 🏃
Sand3580 ms⠁ ⠂ ⠄ ⡀ ⡈ ⡐ ⡠ ⣀ ⣁ ⣂ ⣄ ⣌ ⣔ ⣤ ⣥ ⣦ ⣮ ⣶ ⣷ ⣿ ⡿ ⠿ ⢟ ⠟ ⡛ ⠛ ⠫ ⢋ ⠋ ⠍ ⡉ ⠉ ⠑ ⠡ ⢁
Shark26120 ms▐|\____________▌▐|\____________▌ ▐_|\___________▌ ▐__|\__________▌ ▐___|\_________▌ ▐____|\________▌ ▐_____|\_______▌ ▐______|\______▌ ▐_______|\_____▌ ▐________|\____▌ ▐_________|\___▌ ▐__________|\__▌ ▐___________|\_▌ ▐____________|\▌ ▐____________/|▌ ▐___________/|_▌ ▐__________/|__▌ ▐_________/|___▌ ▐________/|____▌ ▐_______/|_____▌ ▐______/|______▌ ▐_____/|_______▌ ▐____/|________▌ ▐___/|_________▌ ▐__/|__________▌ ▐_/|___________▌ ▐/|____________▌
SimpleDots4400 ms. . .. ...
SimpleDotsScrolling6200 ms. . .. ... .. .
Smiley2200 ms😄 😄 😝
SoccerHeader1280 ms 🧑⚽️ 🧑 🧑⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑 🧑 ⚽️ 🧑
Speaker4160 ms🔈 🔈 🔉 🔊 🔉
SquareCorners4180 ms◰ ◳ ◲ ◱
Squish2100 ms╫ ╪
Star670 ms✶ ✸ ✹ ✺ ✹ ✷
Star2380 ms++ x *
TimeTravel12100 ms🕛 🕛 🕚 🕙 🕘 🕗 🕖 🕕 🕔 🕓 🕒 🕑 🕐
Toggle2250 ms⊶ ⊷
Toggle103100 ms㊂ ㊀ ㊁
Toggle11250 ms⧇ ⧆
Toggle122120 ms☗ ☖
Toggle13380 ms== * -
Toggle2280 ms▫ ▪
Toggle32120 ms□ ■
Toggle44100 ms■ □ ▪ ▫
Toggle52100 ms▮ ▯
Toggle62300 msဝ ၀
Toggle7280 ms⦾ ⦿
Toggle82100 ms◍ ◌
Toggle92100 ms◉ ◎
Triangle450 ms◢ ◣ ◤ ◥
Weather23100 ms☀️ ☀️ ☀️ ☀️ 🌤 ⛅️ 🌥 ☁️ 🌧 🌨 🌧 🌨 🌧 🌨 ⛈ 🌨 🌧 🌨 ☁️ 🌥 ⛅️ 🌤 ☀️ ☀️

API reference

  • TSpinnerKind — the full enum.
  • Widgets.Spinner(kind) — build an ISpinner from a kind.
  • Widgets.Spinner(kind, unicode) — explicit Unicode handling.
  • Widgets.Spinner(frames, intervalMs) — custom frame list.
  • AnsiConsole.RandomSpinner — random pick from the safe subset.
  • ISpinner — interface (Frames, Frame(index), IntervalMs).

See also

  • Status — primary consumer.
  • ProgressSpinnerColumn uses these too.

Released under the MIT License.