Skip to content

fest chain TUI: adopt consistent Lipgloss styling and improve terminal UX #199

Description

@obey-agent

Summary

The fest chain TUI / chain visualization should use the same Lipgloss styling and terminal-UX polish as the rest of fest's TUIs. fest already depends on the Charm stack (charmbracelet/lipgloss, bubbletea, bubbles), and surfaces like the explore TUI (internal/tui/explore/) use it; the chain view should match that standard.

Why (enhancement)

The chain logic in internal/chain/ (resolve / graph / discovery / validate / write) is rendering-agnostic and carries no styling, which is correct for a data layer. The gap is on the presentation side: the chain visualization does not yet match the styled, polished presentation used elsewhere in fest. Consistent styling makes chained-festival relationships easier to read and keeps the CLI visually coherent.

Proposed scope

  • Apply consistent Lipgloss styling to the chain view: colors, borders, spacing, and a clear visual hierarchy for chain nodes/edges and statuses.
  • Improve terminal UX: responsive layout to terminal width, standard keybindings plus a visible help line, clear selection/focus state, and graceful rendering for deep or wide chains.
  • Reuse the shared TUI theme/style conventions already used by the other fest TUIs rather than introducing a parallel styling path.

Acceptance

  • The chain TUI is visually consistent with fest's other TUIs (same theme and styling primitives).
  • Chain relationships and statuses are clearly legible; navigation and a help line are present.
  • No regression to the chain data/logic in internal/chain/.

Pointers

  • Chain logic: internal/chain/
  • Existing styled TUIs to align with: internal/tui/ (e.g. internal/tui/explore/ already renders chains with Lipgloss)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions