Skip to content

message widget

The message widget displays static text. It’s the most-used widget — most LED signs are 80% messages with a sprinkling of data widgets.

message with font_color = 'rainbow'
message with font_color = 'rainbow'

Minimal example

[[playlist.section.widget]]
type = "message"
text = "Hello, world!"

Message Widget Options

Option Type Default Description
text string required The text to display. Inline :slug: emoji are rendered as pixel art.
font string "6x12" BDF font name (e.g., "5x8", "6x12") or hires font (e.g., "Inter-Bold").
font_size int (BDF cell height) Real-pixel font size for hires fonts. Required if font is hires.
font_threshold int 0–255 128 Rasterization threshold for hires fonts. Lower = thicker glyphs.
font_color RGB list / string / table [255, 255, 0] Constant [r,g,b], "rainbow", "color_cycle", "random", or {style="gradient", from=[...], to=[...]}.
bg_color RGB list none Background fill color. Painted across the full panel before text.
border string / table none "rainbow", [r,g,b] constant, or {style="rainbow", thickness=N, speed=N, char_offset=N}.
animation string none "typewriter" for character-by-character reveal.
frames_per_char int 3 Typewriter speed: 50 ms × N per character.
padding int 6 Horizontal padding (in logical pixels) when scrolling.
text_y_offset int 0 Vertical text nudge in logical rows. Negative = up.

Static text with brand color:

[[playlist.section.widget]]
type = "message"
text = "Aerial for Everybody"
font_color = [189, 169, 234] # brand lavender

Inline emoji:

[[playlist.section.widget]]
type = "message"
text = ":taco: Taco Tuesday!"

Typewriter effect with rainbow text:

[[playlist.section.widget]]
type = "message"
text = "Now Enrolling"
font_color = "rainbow"
animation = "typewriter"