
Skill
column-visibility
manage column visibility in TanStack Table
Description
Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.
SKILL.md
This skill builds on core and table-features. Visibility state changes visibility-aware models; it never removes the column definition.
Setup
import { columnVisibilityFeature, tableFeatures } from '@tanstack/table-core'
export const features = tableFeatures({ columnVisibilityFeature })
export const initialState = { columnVisibility: { internalId: false } }
Core Patterns
const headers = table.getHeaderGroups()
const cells = row.getVisibleCells()
const toggles = table
.getAllLeafColumns()
.filter((column) => column.getCanHide())
Use all-column APIs for controls and visible APIs for rendered table content.
Common Mistakes
HIGH Rendering hidden cells anyway
Wrong: row.getAllCells().map(renderCell)
Correct: row.getVisibleCells().map(renderCell)
All-cell APIs intentionally include hidden columns.
Source: docs/framework/react/guide/column-visibility.md#column-visibility-aware-table-apis
HIGH Treating absence as hidden
Wrong: const hidden = !columnVisibility[column.id]
Correct: const hidden = columnVisibility[column.id] === false
Only explicit false hides a column; an absent entry is visible.
Source: packages/table-core/src/features/column-visibility/columnVisibilityFeature.ts
MEDIUM Treating enableHiding as visibility
Wrong: helper.accessor('id', { enableHiding: false })
Correct: const initialState = { columnVisibility: { id: false } }
enableHiding controls whether hiding is allowed; visibility belongs in table state.
Source: packages/table-core/src/features/column-visibility/columnVisibilityFeature.types.ts
API Discovery
Inspect node_modules/@tanstack/table-core/dist/features/column-visibility/ for visibility-aware table, row, and column APIs.
More skills from the table repository
View all 30 skillsaggregation
perform data aggregation in TanStack Table
Jul 26Data AnalysisFrontendTanStackapi-not-found
diagnose TanStack Table API errors
Jul 26DebuggingFrontendTanStackcell-selection
select rectangular cell ranges in tables
Jul 26Data AnalysisTanStackUI Componentsclient-vs-server
manage TanStack Table data pipelines
Jul 26Data PipelineFrontendPerformanceTanStackcolumn-faceting
build faceted filter UIs
Jul 26Data VisualizationFrontendTanStackcolumn-filtering
implement column filtering in TanStack Table
Jul 26Data AnalysisFrontendTanStack
More from TanStack
View publishercolumn-ordering
manage TanStack Table column ordering
table
Jul 26FrontendTanStackUI Componentscolumn-pinning
configure column pinning in TanStack Table
table
Jul 26CSSFrontendTanStackUI Componentscolumn-resizing
implement column resizing in TanStack Table
table
Jul 26FrontendTanStackUI Componentscolumn-sizing
configure column sizing in TanStack Table
table
Jul 26CSSFrontendTanStackUI Componentscore
build data grids with TanStack Table
table
Jul 26Data AnalysisFrontendUI Components