-
style(tui): apply Australis theme to TUI chrome + widgets (v0.4.1)
released this
2026-05-24 13:49:36 -07:00 | 261 commits to main since this releaseRetheme the Textual TUI under the Australis Dark colorscheme
(github.com/lkraven/australis) — Aurora blue/cyan/green primary,
Ice neutrals (#222531 bg, #a9bcc3 fg, #cce7ec highlight), Sea
darks for chrome separators, Dawn accents reserved for terminal-
event labels (red/yellow). 16-color cool-tone palette with medium
contrast.Mechanism: Textual
ThemeAPI. AUSTRALIS_THEME defined at module
scope mapped to semantic tokens (primary/secondary/accent/success/
warning/error/foreground/background/surface/panel) plus a Sea
variables block (au-dark-30..60,au-bright-70/80/white, plus
Aurora bright variants). BothRatatoskrAppandAgentPickerApp
register the theme in__init__and setself.theme = "australis".Per-widget styling via DEFAULT_CSS theme variables (no hex
sprinkled in CSS):#identity→$au-bright-blue(Aurora bright-blue).#pane-name→$au-bright-cyan(current-pane indicator).#hint→$au-dark-60(subtle Ctrl-C state line).#promptborder →$panelunfocused /$primaryfocused
(focus highlight in Aurora blue).#left-columngets aborder-right: solid $panelseparator.#thinking-currentcolor →$au-dark-60(matches demoted style).#transcript+#tools-logbackground →$background.- Agent picker's highlighted ListItem →
$primarybg +
$au-bright-whitefg.
Rich Text styling (where Textual's theme system doesn't apply):
_dim()helper for demoted telemetry now uses explicit
#86929d(Sea dark-60) instead of the terminal-dim filter
"dim". Renders consistently across emulators and stays
anchored to the brand palette.- User-prompt echo (
❯ <content>in transcript) wrapped in
RichTextstyled with#42dcd1(Aurora bright-cyan) — calls
out the operator's voice in the primary palette.
CLI mode (
--send) is unaffected by design — raw stdout has no
theme concept. The retheme is TUI-only.236/236 tests GREEN; ruff clean. Live smoke against personal
Worldtree:app.theme == "australis", all widget colors resolve
to expected Australis hex values (identity →#a4c4ff,
pane-name →#42dcd1, hint →#86929d).One existing test adjusted:
test_worker_phase_demotedpreviously
assertedstyle == "dim"; now asserts non-empty style (the demoted
style is now an explicit Australis hex, not the terminal "dim"
sentinel). Behavior-equivalent — the demotion intent is preserved.Patch bump (v0.4.0 → v0.4.1) per SemVer etiquette: cosmetic
refinement of just-shipped surface, no public-API change.Downloads