Skip to content
Tom Dringer edited this page Sep 27, 2026 · 2 revisions

Themes

Mado ships with 22 built-in themes derived from the Tailwind CSS colour palette. Each theme controls the window chrome, sidebar, terminal colours, and Starship prompt colours.


Built-in themes

Name Base colour
amber Warm amber
blue Classic blue
cyan Bright cyan
emerald Rich emerald green
fuchsia Vibrant fuchsia
gray Neutral gray (default on first run)
green Natural green
indigo Deep indigo
lime Bright lime
neutral Warm neutral
orange Vivid orange
pink Soft pink
purple Deep purple
red Bold red
rose Muted rose
sky Light sky blue
slate Cool blue-gray
stone Warm stone
teal Ocean teal
violet Soft violet
yellow Bright yellow
zinc Neutral zinc

Set the active theme in ~/.config/mado/config.toml:

theme = "slate"

Changes apply immediately — there is no need to restart.


Creating a custom theme

Custom themes are TOML files placed in ~/.config/mado/themes/. The filename (without .toml) becomes the theme name.

~/.config/mado/themes/my-theme.toml

Then set it in config:

theme = "my-theme"

Theme file structure

A theme file has four sections: [meta], [palette], [ui], [terminal], and optionally [starship].

[meta]

[meta]
name = "my-theme"
dark = true

dark affects how Slint renders certain UI elements. Set to true for dark backgrounds.

[palette]

The palette maps shade numbers to hex colours. Shades run from 50 (lightest) to 950 (darkest), following Tailwind conventions.

[palette]
"50"  = "#f8fafc"
"100" = "#f1f5f9"
"200" = "#e2e8f0"
"300" = "#cbd5e1"
"400" = "#94a3b8"
"500" = "#64748b"
"600" = "#475569"
"700" = "#334155"
"800" = "#1e293b"
"900" = "#0f172a"
"950" = "#020617"

[ui]

The [ui] section maps semantic roles to hex colours. You can use any palette shade or any other hex value.

[ui]
window_bg        = "#0f172a"   # main window background
sidebar_bg       = "#0f172a"   # left/right sidebar background
card_bg          = "#1e293b"   # panel card backgrounds
card_border      = "#334155"   # borders on cards
terminal_area_bg = "#020617"   # background behind terminal panes
pane_bg          = "#0f172a"   # individual pane background
pane_toolbar     = "#1e293b"   # pane header/toolbar strip
focus_border     = "#7aa2f7"   # focused pane border highlight
active_dot       = "#22c55e"   # active indicator dot colour
divider_active   = "#8888cc"   # active divider handle colour
divider_inactive = "#3a3a55"   # inactive divider handle colour
text_primary     = "#f1f5f9"   # primary text colour
text_muted       = "#64748b"   # secondary/muted text colour

[terminal]

Terminal foreground and background, plus the 16 ANSI colours.

[terminal]
foreground = "#cccccc"
background = "#1e2030"

[terminal.ansi]
black          = "#1e2030"
red            = "#f7768e"
green          = "#9ece6a"
yellow         = "#e0af68"
blue           = "#7aa2f7"
magenta        = "#bb9af7"
cyan           = "#7dcfff"
white          = "#c0caf5"
bright_black   = "#464858"
bright_red     = "#ff9eb6"
bright_green   = "#c6f692"
bright_yellow  = "#ffd790"
bright_blue    = "#a2caff"
bright_magenta = "#e3c2ff"
bright_cyan    = "#a5f7ff"
bright_white   = "#e8f2ff"

[starship] (optional)

Controls the colours used in the auto-generated Starship prompt config. Mado writes ~/.config/mado/starship.toml at startup using these values. If the section is omitted, Mado generates a Starship config from the palette.

[starship]
color_fg0    = "#f1f5f9"   # text on all segments
color_bg1    = "#020617"   # time segment background
color_bg3    = "#0f172a"   # docker segment background
color_blue   = "#1e293b"   # language segment background
color_aqua   = "#0f766e"   # git segment background
color_yellow = "#b45309"   # directory segment background
color_orange = "#475569"   # os/user segment background
color_green  = "#22c55e"   # success indicator
color_purple = "#6d28d9"   # vim replace indicator

Starship integration

Enable Starship integration in config.toml:

theme_starship = true

With this enabled, Mado writes a Starship config to ~/.config/mado/starship.toml on launch and sets STARSHIP_CONFIG in every child shell. The prompt colours update automatically when you switch themes.

If you manage your own Starship config, leave theme_starship = false (the default).


Tips

  • Copy a built-in theme file from ~/.config/mado/themes/ as a starting point. Built-in themes ship inside the app bundle.
  • All hex values accept 6-digit #RRGGBB format. 3-digit shorthand and 8-digit #RRGGBBAA are not currently supported.
  • If a key is missing from your custom theme, Mado falls back to the gray built-in defaults for that value.

FAQ

My custom theme isn't being picked up. Check that the file is in ~/.config/mado/themes/ (not a subdirectory) and that theme in config.toml matches the filename without .toml. Mado reloads themes on config save — if the name is correct, save config.toml again to trigger a reload.

I switched themes but the terminal colours didn't change. Terminal colours come from the [terminal] and [terminal.ansi] sections. If those are missing from your custom theme, Mado falls back to gray defaults for the terminal palette. Add the full [terminal] block to your theme file.

Where are the built-in theme files? They ship inside the app bundle. To get a copy to use as a starting point:

cp /Applications/Mado.app/Contents/Resources/themes/slate.toml \
   ~/.config/mado/themes/my-theme.toml

Then edit my-theme.toml and set theme = "my-theme" in config.toml.

Does Mado automatically switch between light and dark themes? Not automatically. You can switch themes manually at any time via config.toml — changes apply instantly.

Can I share my theme? Yes — the .toml file is self-contained. Share it directly or submit a pull request to the mado-themes community repo (coming soon).

My Starship prompt colours don't match the theme. Enable the integration in config.toml:

theme_starship = true

This writes ~/.config/mado/starship.toml and sets STARSHIP_CONFIG in all spawned shells. If you manage your own Starship config, leave this off to avoid conflicts.

Clone this wiki locally