Skip to content
led-ticker

countup widget

The countup widget is a message with date arithmetic baked in. Every draw it renders <text>: <N> where N is the number of days from countup_date to today. The count is recomputed on each draw, so it rolls to the next value at midnight without restarting the process.

Minimal example

[[playlist.section.widget]]
type = "countup"
text = "Days since launch"
countup_date = 2024-01-01

If countup_date is still in the future, the widget does not display and a warning is emitted at config load, along the lines of:

countup_date 2027-01-01 is in the future — this countup won't display until then (did you mean a countdown?)

Once the date arrives the widget shows 0 and counts up from there. To count down to a future date, see countdown.

Option Type Default Description
text string required Label shown before the day count, e.g. "Days since launch" renders as "Days since launch: 42".
countup_date date required Start date in TOML date syntax: 2024-01-01. The day count is recomputed on every draw so the value updates at midnight without restarting the process. Widget does not display until this date arrives.
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 a hires font name.
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 "rainbow" | "color_cycle" | "lightbulbs" | [r,g,b] | {style="...", ...} none Perimeter border ring — five styles (rainbow chase, color cycle, constant, bands, lightbulbs); see /concepts/borders/.
padding int 6 Horizontal padding (logical pixels) added when text scrolls.
timezone IANA name | none system local Timezone for computing the day count and the show/hide boundary, e.g. "America/New_York". Uses stdlib zoneinfo — no extra dependencies. Defaults to the sign's local date.

Set the content string with text =.

[[playlist.section.widget]]
type = "countup"
text = "Days Open"
countup_date = 2024-03-15
font_color = [255, 140, 0]
[[playlist.section.widget]]
type = "countup"
text = "Days Strong"
countup_date = 2023-01-01
font_color = "rainbow"
[[playlist.section.widget]]
type = "countup"
text = "Days Running"
countup_date = 2023-06-01
font_color = [255, 255, 255]
border = "rainbow"

For full details on font_color, border, center, padding, and bg_color, see the color providers and borders concept pages — the knobs work identically to countdown.

animation = "typewriter" is rejected on countup — it’s only supported on message, gif, and image. For dynamic color, use font_color = "rainbow" or a gradient.