Guide for customizing padz CLI output using templates and stylesheets. Use when working on padz rendering, modifying how pads are displayed, changing colors/styles, editing Jinja templates, or working with the outstanding crate integration. Covers the three-layer styling architecture, template syntax, and the compile-time embedding system.
43:T13e7,
Padz uses the outstanding crate for terminal rendering. Output is controlled by:
src/styles/default.yaml) - Colors and text decorationsrc/cli/templates/*.jinja) - Layout and structureBoth are embedded at compile time via outstanding's macros.
┌─────────────────────────────────────────────────────────────┐
│ render.rs │
│ create_renderer() → Renderer with theme + templates │
├─────────────────────────────────────────────────────────────┤
│ styles.rs │ templates.rs │
│ embed_styles!("src/styles")│ embed_templates!("src/cli/ │
│ → DEFAULT_THEME │ templates") → TEMPLATES │
├─────────────────────────────────────────────────────────────┤
│ src/styles/default.yaml │ src/cli/templates/*.jinja │
└─────────────────────────────────────────────────────────────┘
Styles use a three-layer architecture:
_)Concrete colors - the raw building blocks:
_primary:
light: { fg: black }
dark: { fg: white }
_gold:
light: { fg: [196, 140, 0] }
dark: { fg: [255, 214, 10] }
_)Semantic aliases for visual consistency:
_secondary: _gray
_accent: _gold
_danger: _red
Template-facing names - what templates actually use: