Column Pinning

Keep important columns visible while scrolling wide tables horizontally.

Pin to the left

Set pinned: "left" so the column stays visible while scrolling horizontally.

TypeScript
{
accessor: "id",
label: "ID",
width: 80,
pinned: "left",
}

Pin to the right

Use pinned: "right" for actions or status columns that should stay on the trailing edge.

TypeScript
{
accessor: "actions",
label: "Actions",
width: 120,
pinned: "right",
}

Essential columns

Set essential: true to prevent hide/unpin and keep the column in a fixed leading group within its pin section. See ColumnDef.

TypeScript
{
accessor: "name",
label: "Name",
width: "1fr",
pinned: "left",
essential: true,
}

Save and restore pin layout

Use getPinnedState and applyPinnedState on TableAPI to read and restore left / main / right accessor lists.

TypeScript
// Save
const pinned = tableRef.current?.getPinnedState();
// Restore
await tableRef.current?.applyPinnedState(pinned);

Example

Scroll horizontally — left and right pinned columns stay in place.

Props

Column Pinning Configuration

PropertyRequiredDescriptionExample
ColumnDef.pinned
Optional
Pins the column to the left or right edge so it stays visible during horizontal scroll.
Options:
left
right
ColumnDef.essential
Optional
Locks the column against hide/unpin and keeps it in a fixed leading group within its pin section.