diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-03-29 20:44:34 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-03-29 20:44:34 +0300 |
| commit | 101de0ce453615c809d95175532bcb86f816163a (patch) | |
| tree | 1722c86a0d553b72bff1de08289564ad39ce5fa4 /CONFIGURATION.md | |
| parent | bf6b6d779a63d8952d8db0a7de5daa3454984620 (diff) | |
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)
Diffstat (limited to 'CONFIGURATION.md')
| -rw-r--r-- | CONFIGURATION.md | 63 |
1 files changed, 63 insertions, 0 deletions
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 |
