Repository navigation
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.
| 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.
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"A theme file has four sections: [meta], [palette], [ui], [terminal], and optionally [starship].
[meta]
name = "my-theme"
dark = truedark affects how Slint renders certain UI elements. Set to true for dark backgrounds.
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"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 colourTerminal 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"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 indicatorEnable Starship integration in config.toml:
theme_starship = trueWith 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).
- 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
#RRGGBBformat. 3-digit shorthand and 8-digit#RRGGBBAAare not currently supported. - If a key is missing from your custom theme, Mado falls back to the
graybuilt-in defaults for that value.
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.tomlThen 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 = trueThis 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.
Getting Started
Plugins