Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Theming

Mosaico ships with three built-in theme families: Catppuccin, Rosé Pine, and Tokyo Night. Each family has multiple flavors that share a common palette and only differ in shading, so the focus borders, monocle border, unfocused borders, and the status bar all stay coordinated.

Configuration

Set the theme name and flavor in config.toml:

[theme]
name = "catppuccin"   # catppuccin, rose-pine, tokyo-night
flavor = "mocha"

Available Themes

Catppuccin

FlavorStyle
latteLight
frappeMedium-dark
macchiatoDark
mochaDarkest (default)

Rosé Pine (name = "rose-pine")

FlavorStyle
mainDark, default
moonSlightly lighter dark
dawnLight

Tokyo Night (name = "tokyo-night")

FlavorStyle
nightDark, default
stormDark with bluish tint
dayLight

Named Colors

When a theme is active, you can use named colors anywhere a color value is expected (borders, bar colors). Each theme family exposes its own palette, plus a small set of common aliases (red, green, blue, yellow) that resolve under every theme so portable configs like focused = "blue" look right regardless of which theme you pick.

Catppuccin (14 accent colors)

NameDescription
rosewaterWarm pink
flamingoSoft pink
pinkPink
mauvePurple
redRed
maroonDark red
peachOrange
yellowYellow
greenGreen
tealTeal
skyLight blue
sapphireBlue
blueVivid blue
lavenderSoft purple

Rosé Pine

NameDescription
loveRed/pink accent (alias red)
goldWarm yellow (alias yellow)
roseSoft pink
pineTeal/blue accent (alias blue)
foamCyan (alias green, teal)
irisPurple (alias mauve, purple, magenta)

Tokyo Night

NameDescription
redRed
orangeOrange
yellowYellow
greenGreen
cyanCyan
tealTeal
blueBlue
purplePurple
magentaMagenta (alias mauve)

These tables list every name each theme has. No theme names its background, surface or text shades: write those as hex values, or leave the setting empty to fall back to its default.

Color Resolution

Colors are resolved in the following order:

  1. Hex value ("#1e1e2e") – used as-is
  2. Named color ("blue") – looked up in the active theme palette
  3. Empty string – falls back to the default for that setting

Existing hex color values in your configuration continue to work unchanged after enabling a theme. Named colors are optional.

Examples

Using named colors in bar.toml:

[colors]
foreground = "lavender"  # a Catppuccin name
accent = "blue"          # a name every theme has

Using named colors for borders in config.toml:

[borders.colors]
focused = "blue"
monocle = "green"

Hot-Reload

Theme changes in config.toml are hot-reloaded. When the theme or its flavor changes, every named color is resolved again against the new palette: the bar’s [colors], each bar widget’s color (such as the red of the paused widget) and the border colors. Colors you leave empty take the new theme’s defaults, and hex colors stay as written. The bar and the borders update without restarting.

A name the new theme does not have, such as Rose Pine’s pine after a switch to Catppuccin, is left as written, so mosaico draws its built-in fallback in its place (for a widget, its fallback text color and no outline), the same as after a restart. To keep a color across theme families, use a name every family has (red, blue, green, yellow) or a hex value.