HubaHuba

Custom Themes

How to create and share custom themes for Huba.

You can create custom themes by adding JSON files to the ~/.huba/themes/ directory. The filename (without the .json extension) becomes the theme name.

Setting Up

Create the themes directory if it doesn't exist:

mkdir -p ~/.huba/themes

Creating a Theme

Create a new JSON file in ~/.huba/themes/, for example ~/.huba/themes/my-theme.json. Each theme file must contain all fields — partial themes are rejected.

{
  "border": {
    "default": "#3A3A3A",
    "focused": "#D77757"
  },
  "status": {
    "blocked":    { "id": "#E06C75", "icon": "#E06C75", "title": "#E06C75" },
    "pending":    { "id": "#ABB2BF", "icon": "#ABB2BF", "title": "#ABB2BF" },
    "inProgress": { "id": "#61AFEF", "icon": "#61AFEF", "title": "#61AFEF" },
    "completed":  { "id": "#98C379", "icon": "#98C379", "title": "#98C379" }
  },
  "colors": {
    "primary": "#ABB2BF",
    "secondary": "#5C6370",
    "tertiary": "#4B5263",
    "date": "#D19A66",
    "hint": "#5C6370",
    "accent": "#C678DD"
  },
  "surface": {
    "background": "#282C34",
    "selection": "#3E4451",
    "scrollbarTrack": "#2C313A",
    "scrollbarThumb": "#4B5263"
  },
  "progress": {
    "blocked": "#E06C75",
    "pending": "#ABB2BF",
    "inProgress": "#61AFEF",
    "completed": "#98C379"
  },
  "markdown": {
    "heading": "#E5C07B",
    "list": "#C678DD",
    "code": "#98C379",
    "default": "#ABB2BF"
  }
}

Schema Reference

SectionDescription
borderPanel border colors for unfocused and focused states
statusColors for each task status — ID number, icon, and title text
colorsGeneral UI colors — text, dates, hints, accents
surfaceBackground, selection highlight, and scrollbar appearance
progressProgress bar segment colors per task status
markdownColors for markdown rendering in task detail view

Using Your Theme

Restart Huba to pick up new or modified theme files.

Custom themes appear after built-in themes in the cycle order. Press w / Shift+W to cycle to your theme.

Invalid theme files are skipped with a warning.

Sharing Themes

If you've created a theme you'd like to share with the community, consider opening a pull request to the Huba GitHub repository to include it as a built-in theme.

On this page