Skip to content

feat(tui): overhaul the --gui table layout, theme, and interactions#236

Merged
anistark merged 1 commit into
mainfrom
update/tui
Jul 15, 2026
Merged

feat(tui): overhaul the --gui table layout, theme, and interactions#236
anistark merged 1 commit into
mainfrom
update/tui

Conversation

@anistark

Copy link
Copy Markdown
Owner

The Name column vanished entirely on real projects: one long license expression (aws-lc-sys is 131 chars) drove a Min constraint past the terminal width and the layout solver collapsed the Length-constrained Name column to zero. Column widths are now capped, include their header text, and Name shrinks last, so every column survives down to 80 cols and long values get a proper ellipsis.

Looks like this now:

feluda-tui-after

The rest is a visual and interaction rework on top of that fix:

  • rows are 1 line instead of 4, so a 45-line terminal shows 42 packages instead of 10
  • dark glassmorphic theme: pure black background with subtle zebra rows, slate chrome with a blue accent; red only means something now (restrictive, incompatible), and the Restrictive column reads Yes/No in color instead of true/false
  • title bar with project license, package count, restrictive count, active sort, and the running version; the scrollbar gets its own gutter instead of drawing over the last column
  • footer is one line of key hints, with the full reference behind a ? help popup
  • sort mode highlights the actual column header under the cursor instead of the old [>Name<] footer widget
  • Enter opens a package details card: colored status chips (compatibility against the project license, OSI verdict, restrictiveness), the full untruncated license expression, how many other packages share the same license, and the package position in the current view
  • popups imitate glassmorphism instead of clearing to a solid block: an 80% scrim fades everything behind the modal toward black, and the card frosts the cells underneath toward a slate tint with a lighter sheen at the top edge, so the table shimmers through like translucent glass without competing with the card's text
feluda-tui-card

The Name column vanished entirely on real projects: one long license expression (aws-lc-sys is 131 chars) drove a Min constraint past the terminal width and the layout solver collapsed the Length-constrained Name column to zero. Column widths are now capped, include their header text, and Name shrinks last, so every column survives down to 80 cols and long values get a proper `…` ellipsis.

The rest is a visual and interaction rework on top of that fix:

- rows are 1 line instead of 4, so a 45-line terminal shows 42 packages instead of 10
- dark glassmorphic theme: pure black background with subtle zebra rows, slate chrome with a blue accent; red only means something now (restrictive, incompatible), and the Restrictive column reads Yes/No in color instead of true/false
- title bar with project license, package count, restrictive count, active sort, and the running version; the scrollbar gets its own gutter instead of drawing over the last column
- footer is one line of key hints, with the full reference behind a `?` help popup
- sort mode highlights the actual column header under the cursor instead of the old `[>Name<]` footer widget
- Enter opens a package details card: colored status chips (compatibility against the project license, OSI verdict, restrictiveness), the full untruncated license expression, how many other packages share the same license, and the package position in the current view
- popups imitate glassmorphism instead of clearing to a solid block: an 80% scrim fades everything behind the modal toward black, and the card frosts the cells underneath toward a slate tint with a lighter sheen at the top edge, so the table shimmers through like translucent glass without competing with the card's text
@anistark
anistark merged commit 6b51c54 into main Jul 15, 2026
3 checks passed
@anistark
anistark deleted the update/tui branch July 15, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant