Skip to content

fix(table): pad headers to table width for center alignment#1009

Open
syf2211 wants to merge 1 commit into
charmbracelet:mainfrom
syf2211:fix/576-table-centering
Open

fix(table): pad headers to table width for center alignment#1009
syf2211 wants to merge 1 commit into
charmbracelet:mainfrom
syf2211:fix/576-table-centering

Conversation

@syf2211

@syf2211 syf2211 commented Jun 26, 2026

Copy link
Copy Markdown

Summary

Pad the table header row to the configured table width so headers align with viewport cell rows when the table is rendered inside a centered lipgloss style.

Motivation

Fixes #576. Between bubbles v1.17.1 and v1.18.0, wrapping a table in lipgloss.Align(Center) could misalign column titles with cell contents. The viewport pads data rows to m.Width(), but headers were only joined to their natural column width. When an outer style centers each line independently, the shorter header line shifts relative to the wider body rows.

Changes

  • Pad the joined header row to m.Width() in headersView() when width is set
  • Enable the previously skipped TestModel_View_CenteredInABox test
  • Add TestModel_View_CenteredWithWideContent regression test matching the issue reproduction
  • Update golden files affected by consistent header width padding

Tests

go test ./table/...
go test ./...

All tests pass.

Notes

This is a minimal alignment fix at the table header layer. Known border-related header/cell width mismatches noted in existing TODOs are unchanged.

When a table is rendered inside a lipgloss style with Align(Center),
headers and cell contents could misalign because viewport rows are padded
to the table width while headers were not.

Pad the joined header row to m.Width() so headers and viewport content
share the same line width before external alignment is applied.

Fixes charmbracelet#576
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.

Table Centering

2 participants