Transitions
A transition runs between widgets in slideshow mode (and between sections regardless
of mode). Global defaults live in [transitions]; each section can override them.
The four families
Section titled “The four families”| Family | What it looks like | Best for |
|---|---|---|
| Push | Old slides off, new slides in from the opposite side | General purpose, news-ticker feel |
| Wipe | Sweep line erases content, leaves new in its wake | Clean / professional |
| Sprite / flair | Pixel-art character (Pac-Man, Nyan Cat, Pokéball, …) crosses the panel; or text itself spins out (flair.spinout) | Fun / themed |
| Special | Cut, dissolve, color flash, split, scroll | Variety, ambient |
Which to use
Section titled “Which to use”| Tone | Default (between widgets) | Between sections |
|---|---|---|
| Minimal | cut or wipe_left | cut |
| Playful | pokeball.alternating or nyancat.alternating (plugin) | pokeball.alternating |
| Info-dense | push_up | dissolve |
| Branded-pro | wipe_alternating (with transition_color from the brand palette) | dissolve |
Global settings ([transitions])
Section titled “Global settings ([transitions])”These apply everywhere unless a section overrides them:
| Field | Default | Notes |
|---|---|---|
default | "cut" | Fallback inter-widget transition for every section |
between_sections | "cut" | Falls back to default (which is cut unless you change it) — sets the entry transition when a section doesn’t set its own |
duration | 0.5 | Transition duration in seconds. 0.3–1.5 is typical; sprite trails want 1.0–2.0 |
easing | "linear" | linear / ease_out / ease_in_out |
Both default and between_sections accept an inline table for extra knobs:
between_sections = { type = "wipe_left", duration = 0.8, easing = "ease_out" }.
Per-section overrides ([[playlist.section]])
Section titled “Per-section overrides ([[playlist.section]])”Each section has three transition slots, all accepting a bare string or inline table:
| Field | What it controls | Precedence |
|---|---|---|
transition | Both entry and inter-widget (the shortcut) | Overrides default / between_sections for both slots |
entry_transition | How this section enters (inter-section boundary) | Highest priority for entry — overrides transition |
widget_transition | Swaps between widgets within this section | Highest priority for inter-widget — overrides transition |
The transition shortcut: writing transition = "pokeball.forward" on a section sets that transition for both the entry and inter-widget swaps. This is usually what you want for single-widget sections. For multi-widget sections use entry_transition + widget_transition to control the two slots independently.
Full precedence chains:
- Entry:
entry_transition→transition(if explicitly set) →[transitions] between_sections - Inter-widget:
widget_transition→transition(if explicitly set) →[transitions] default
Additional per-section knobs (apply on top of transition):
transition_duration: override the duration (seconds)transition_color: RGB list — sweep color for wipe family and color_flashtransition_colors: list of RGB lists — color pool forwipe_alternating/wipe_randomshow_pikachu/show_pokeball: toggle sprite elements on thepokeballfamily (ships in the flair pack)