Sprite and flair transitions
The flair pack (led-ticker-flair) ships two categories of transition: homage sprite-trails — pixel-art characters that cross the panel — and text-effect transitions that manipulate the outgoing content itself. Both are referenced by their namespaced slug, e.g. transition = "pokeball.forward" or transition = "flair.spinout".
Homage transitions (flair pack)
Section titled “Homage transitions (flair pack)”The four homage families — nyancat, pokeball, pacman, and sailor_moon — ship together in the led-ticker-flair package (one install, four entry points, each with .forward, .reverse, and .alternating variants).
Install
Section titled “Install”Add one line to config/requirements-plugins.txt (copied from config/requirements-plugins.example.txt):
led-ticker-flairOne install registers all four families. See Plugins for the install flow.
A bare transition = "nyancat" (the pre-plugin spelling) raises a config-load error pointing at the namespaced nyancat.forward slug — the namespaced form is what the flair pack registers.
Nyan Cat (nyancat)
Section titled “Nyan Cat (nyancat)”Nyan Cat flies across the panel with a rainbow trail. Auto-activates a hi-res webp sprite on scaled signs (see Hires below).
| Type string | Direction |
|---|---|
nyancat.forward | Left → right |
nyancat.reverse | Right → left |
nyancat.alternating | Alternates each swap |

Pokéball (pokeball)
Section titled “Pokéball (pokeball)”A Pokéball rolls across with a run-cycle sprite chasing. show_pikachu / show_pokeball toggle the sprite elements. Auto-activates a hi-res sprite on scaled signs (see Hires below). Also ships the :pokeball.ball: emoji.
| Type string | Direction |
|---|---|
pokeball.forward | Left → right |
pokeball.reverse | Right → left |
pokeball.alternating | Alternates each swap |


Pac-Man (pacman)
Section titled “Pac-Man (pacman)”Pac-Man chases three scared ghosts with a chomping animation. Keeps its 8-bit look at all scales.
| Type string | Direction |
|---|---|
pacman.forward | Left → right |
pacman.reverse | Right → left |
pacman.alternating | Alternates each swap |

Sailor Moon (sailor_moon)
Section titled “Sailor Moon (sailor_moon)”The Moon Stick wand sweeps across with a sparkle trail. Keeps its 8-bit look at all scales.
| Type string | Direction |
|---|---|
sailor_moon.forward | Left → right |
sailor_moon.reverse | Right → left |
sailor_moon.alternating | Alternates each swap |

Reference
Section titled “Reference”nyancat.forward and pokeball.forward auto-activate hi-res sprites whenever the canvas is at default_scale > 1 — that is, any big / scaled sign (see Display), typically a bigsign-style build. The hi-res variants are noticeably more detailed and read better at distance:
- nyancat — animated webp Nyan Cat sprite at native physical resolution
- pokeball — rolling pokeball with animated run-cycle sprite
The sailor_moon and pacman families keep their 8-bit look at all scales — the chunky aesthetic is part of the design.
Other plugin sprites
Section titled “Other plugin sprites”The rolling-baseball family (baseball.roll, baseball.roll_reverse, baseball.roll_alternating) ships with the baseball package in the led-ticker-plugins monorepo, alongside that package’s MLB widgets and :baseball.ball: emoji. Install it via config/requirements-plugins.txt (see Plugins) to use it.
Text-effect transitions (flair pack)
Section titled “Text-effect transitions (flair pack)”flair.spinout (flair >= 0.3.0, core >= 4.6)
Section titled “flair.spinout (flair >= 0.3.0, core >= 4.6)”flair.spinout spins the outgoing widget’s content out of view — starting at rest, then accelerating — before cutting to the incoming widget. Unlike a sprite trail, nothing crosses the panel; the content itself rotates and disappears. Transition duration follows [transitions] duration (default 0.5 s; sprite-style durations of 1.0–1.5 s look best for a full revolution or two).

Install
Section titled “Install”flair.spinout is part of the same led-ticker-flair package as the homage sprite-trails:
led-ticker-flairOne install registers all flair transitions and animations. See Plugins for the install flow.
Minimal config
Section titled “Minimal config”Minimal
[transitions]default = "flair.spinout"duration = 1.0
[[playlist.section]]mode = "slideshow"hold_time = 3.0
[[playlist.section.widget]]type = "message"text = "SPIN OUT"center = truefont_color = [0, 220, 255]
[[playlist.section]]mode = "slideshow"hold_time = 2.5
[[playlist.section.widget]]type = "message"text = "AND CUT"center = truefont_color = [80, 255, 80]| Knob | Default | Notes |
|---|---|---|
revolutions | 2 | Integer >= 1. Full turns before the content disappears. |
direction | "cw" | "cw" (clockwise) or "ccw" (counter-clockwise). |
Set knobs via an inline table on [transitions] default or on the section’s transition field:
[transitions]default = {type = "flair.spinout", revolutions = 1, direction = "ccw"}duration = 1.0Behavior notes
Section titled “Behavior notes”- Background color holds. The outgoing section’s
bg_colorfills the panel for the entire spin duration — the background never flashes or drops to black mid-transition. - Scrolled text spins from its parked position. If the outgoing widget had been scrolling,
flair.spinoutpicks up at the position where the text stopped (the sameoutgoing_scroll_poscontinuity used by the push family). - Colors freeze during the spin. Animated
font_colorproviders (rainbow,color_cycle,shimmer) are paused for the outgoing widget while it spins, consistent with how transitions pause frame-aware effects in general. - Pairs with
flair.propeller. Useflair.spinoutas the inter-widget or between-sections transition alongsideanimation = "flair.propeller"onmessagewidgets for a full spin-in / spin-out cycle. See flair.propeller → Pairing with flair.spinout.