Skip to content

Themes

Every renderer looks up semantic tokens rather than hard-coding colours, so a single [theme] preset = "..." line repaints the whole splash.

splashboard ships with six presets: one signature palette (default) and five community staples.

presetmotif
default"Splash" — sunrise over deep ocean. Coral hero, cyan-teal accents, navy ground.
tokyo_nightcool blue-purple, low-saturation.
nordarctic blue-gray, muted accents.
draculadark purple, vibrant neon accents.
gruvbox_darkwarm earth, retro yellow hero.
catppuccin_mochapastel on dark mauve.
# $HOME/.splashboard/settings.toml
[theme]
preset = "tokyo_night"

Omitting preset (or setting it to "default") gives the Splash signature palette.

Any key listed below in [theme] wins over the preset value. Unknown keys are ignored, so adding a new preset or typo never invalidates an existing config.

[theme]
preset = "nord"
panel_title = "#ff0088" # override one token
status_ok = "green" # named colours work too

Accepted colour forms:

  • "#rrggbb" hex.
  • Named colours: "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white", and their "dark_*" / "light_*" variants.
  • "reset" — see below.

The "reset" escape hatch (light terminals)

Section titled “The "reset" escape hatch (light terminals)”

splashboard presets are tuned for dark terminals — every preset ships a dark bg. On a light terminal, that background clashes with the rest of your prompt.

"reset" falls back to Color::Reset for that slot only — i.e. the terminal's own default. Users on light terminals typically want:

[theme]
preset = "default" # or your preference
bg = "reset" # inherit terminal bg
bg_subtle = "reset"
text = "reset" # inherit terminal fg
panel_border = "reset"

This keeps the accent tokens (panel_title, status_*, palettes) from the preset so the splash still reads cohesively, but drops the heavy background paint.

Single-colour tokens:

tokenpurpose
bgviewport background.
bg_subtleheader / footer / callout bands (bg = "subtle").
textprimary body text.
text_secondarysecondary text (timeline details).
text_dimchrome text (timeline dates, placeholders).
panel_borderpanel border.
panel_titlepanel title (the palette's hero accent).
status_okhealthy / passing status.
status_warndegraded / warning status.
status_errorfailing / error status.
accent_todaycalendar "today" marker.
accent_eventcalendar event marker, default scatter dot.

Multi-colour palettes (TOML arrays):

tokenpurpose
palette_seriesseries colours cycled by chart_pie / chart_line / chart_scatter.
palette_heatmap5-step intensity ramp for grid_heatmap.

Array override example:

[theme]
preset = "default"
palette_series = ["#f7768e", "#7aa2f7", "#9ece6a", "#e0af68"]
palette_heatmap = ["#111", "#333", "#666", "#999", "#fff"]

Every renderer's reference page lists the tokens it reads. The list is generated from ColorKey declarations in the renderer itself, so it can't drift from what the code actually uses.