Source-verified skills for the Charm terminal stack: Bubble Tea v2, Bubbles v2, Lip Gloss v2, Huh v2, Log v2, Glamour v2, plus the gum and vhs CLIs.
99
98%
Does it follow best practices?
Impact
100%
1.02xAverage score across 9 eval scenarios
Passed
No findings from the security scan
A scrolling, selectable grid. Return to the main skill for the shared component contract and focus rules.
For a static rendering use lipgloss/table instead. The complete program is
examples/charmed-bubbles/table/main.go:
// examples/charmed-bubbles/table/main.go
t := table.New(
table.WithColumns([]table.Column{{Title: "Project", Width: 12}, {Title: "Status", Width: 10}}),
table.WithRows([]table.Row{{"site", "ready"}, {"api", "building"}}),
table.WithFocused(true),
table.WithHeight(7),
)
s := table.DefaultStyles()
s.Header = s.Header.Bold(true).BorderStyle(lipgloss.NormalBorder()).BorderBottom(true)
s.Selected = s.Selected.Foreground(lipgloss.Color("229")).Background(lipgloss.Color("57"))
t.SetStyles(s)
row := m.table.SelectedRow() // table.Row is []string
m.table.HelpView() // rendered key helpSetRows, SetColumns, SetCursor, MoveUp(n), MoveDown(n),
GotoTop, GotoBottom, Focus, Blur, SetWidth, SetHeight.
FromValues(csv, sep) loads rows from delimited text. An unfocused table
ignores keys.