Skip to content

fix(theme): draw the data grid header and selection in the theme's colors - #3837

Merged
datlechin merged 2 commits into
mainfrom
fix/grid-theme-colors
Oct 25, 2026
Merged

datlechin merged 2 commits into
mainfrom
fix/grid-theme-colors

Conversation

@datlechin

@datlechin datlechin commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Themes color the data grid header, selection, inactive selection, selected text and active-cell border again: dataGrid.headerBackground, headerText, selection, inactiveSelection, selectionText and focusBorder are back, with their values in the 14 bundled themes, the Theme Editor's Selection section and the VS Code import mapping. refactor(data-grid)!: rebuild the macOS data grid on one model and native AppKit #3833 retired them and is unreleased, so no schema bump.
  • One drawing path: every reader draws the resolved slot, and an unset slot resolves to its system color. The six slots have no derived or paired fallback, and ThemeFileFormat.retiredKeys is gone.
  • AppKit's header cell paints its own opaque band and takes a title's color only from the title's attributes (measured on macOS 27). ThemeTableHeaderCell paints the band, divider and bottom line, then leaves the title and sort arrow to AppKit's interior drawing; ThemeTableHeaderView styles each title before a draw and bolds the highlighted column, which AppKit's highlight pass did.
  • On macOS 26 and later the header sits in the scroll pocket's vibrant banner, which blended any band lighter; ThemeTableHeaderView turns vibrancy off (measured with lldb on the running grid).
  • Grid: the row selection, the selected text, the active-cell border and the edit field border read the slots. The Query Plan and Users & Roles outlines get the themed header and draw the theme's selection.
  • ER diagram node headers and selection, the Query Plan diagram's selected step and dashboard tile titles read their slots again.
  • Changelog: drops refactor(data-grid)!: rebuild the macOS data grid on one model and native AppKit #3833's two fragments that announced the retirement; 3837.changed.md notes that a theme's missing header and selected text colors now take the system's.
  • Tests changed on purpose: the theme, chrome, header, ER and Query Plan theme suites now pin the themed header and selection; the retired-key file format tests are replaced by ones that load the six keys.
Before After
Before, Catppuccin Mocha After, Catppuccin Mocha
Before, Catppuccin Latte After, Catppuccin Latte

Test plan

  • Unit plan: 26,617 tests pass.
  • Package: TableProThemeTests 157 pass.
  • Probes on macOS 27.0.1: what an NSTableHeaderCell paints and its 16 pt interior band, which title attributes AppKit honors, the copied filler cell, the highlight pass, and the header's vibrancy inside NSScrollPocket.

Docs: TableProApp/docs#127

@datlechin
datlechin enabled auto-merge (squash) October 25, 2026 19:53
@datlechin
datlechin merged commit 7dad9d4 into main Oct 25, 2026
9 checks passed
@datlechin
datlechin deleted the fix/grid-theme-colors branch October 26, 2026 19:18
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