From 101de0ce453615c809d95175532bcb86f816163a Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sun, 29 Mar 2026 20:44:34 +0300 Subject: refactor: two-section sidebar with agent detail panel, theme system with 9 built-in themes sidebar layout: - top section: workspace list with accent bar, git branch, state dots - bottom section: agent detail panel sorted by urgency with braille spinners - active workspace always highlighted (subtle bg in terminal mode, brighter in nav) - palette-driven colors throughout (no hardcoded colors in ui.rs) theme system: - 9 built-in themes: catppuccin (default), tokyo-night, dracula, nord, gruvbox, one-dark, solarized, kanagawa, rose-pine - config: theme.name selects base, theme.custom overrides individual tokens - 15 color tokens: accent, surface0/1, overlay0/1, text, subtext0, mauve, green, yellow, red, blue, teal, peach - legacy ui.accent still works for backward compatibility infrastructure: - Palette struct on AppState, ready for future theme system extensions - git_branch() reads .git/HEAD for branch detection - PaneDetail struct with urgency sorting for agent panel - spinner_tick counter for braille animation (~8fps on 60fps render loop) --- CONFIGURATION.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'CONFIGURATION.md') diff --git a/CONFIGURATION.md b/CONFIGURATION.md index dee645e2..b754cf36 100644 --- a/CONFIGURATION.md +++ b/CONFIGURATION.md @@ -76,6 +76,69 @@ toggle_sidebar = "b" | `resize_mode` | `r` | enter or leave resize mode | | `toggle_sidebar` | `b` | collapse or expand the sidebar | +## theme + +herdr ships with 9 built-in color themes. set one in config: + +```toml +[theme] +name = "tokyo-night" +``` + +### built-in themes + +| name | description | +|------|-------------| +| `catppuccin` | soft pastel mocha palette (default) | +| `tokyo-night` | blue-purple aesthetic | +| `dracula` | purple/pink/green classic | +| `nord` | frosty scandinavian blues | +| `gruvbox` | warm retro browns/oranges | +| `one-dark` | atom's beloved palette | +| `solarized` | ethan schoonover's classic | +| `kanagawa` | hokusai-inspired | +| `rose-pine` | muted, elegant | + +theme names are flexible: `tokyo-night`, `tokyonight`, and `tokyo_night` all work. + +### custom overrides + +override individual color tokens on top of any base theme: + +```toml +[theme] +name = "dracula" + +[theme.custom] +accent = "#f5c2e7" +red = "rgb(255, 85, 85)" +green = "#a6e3a1" +``` + +all tokens are optional — only set what you want to change. + +### available tokens + +| token | used for | +|-------|----------| +| `accent` | highlights, active borders, navigation UI | +| `surface0` | selected item background | +| `surface1` | hover/active backgrounds | +| `surface_dim` | active workspace background, separators | +| `overlay0` | muted text, secondary info | +| `overlay1` | slightly brighter secondary text | +| `text` | primary text | +| `subtext0` | workspace names, dimmed labels | +| `mauve` | git branch names, special labels | +| `green` | idle/done states | +| `yellow` | busy/running states | +| `red` | waiting/needs attention states | +| `blue` | unseen notifications | +| `teal` | done notification accents | +| `peach` | interrupted/warning states | + +tokens accept the same color formats as `accent`: hex (`#rrggbb`), named colors, or `rgb(r,g,b)`. + ## ui ```toml -- cgit v1.2.3