Skip to content

Interactive cell UX

Strata 0.3.0 adds five Excel-class interactions to make cell-level work feel native.

Range selection

Drag across cells with the mouse, or hold Shift and arrow to extend. Press Ctrl/Cmd+C to copy the rectangular range to the clipboard as tab-separated values. Range selection is independent of row selection — having both on is fine.

Fill handle

When a range is active, a small dot appears at the bottom-right corner of the focus cell. Drag it to extend the range; on release the grid emits onFillRange({ source, targets, value }). Consumers are responsible for applying the fill — Strata never mutates row data implicitly.

Status bar

Opt in with statusBar. Defaults show row count, selected count, and range stats. To customize:

<DataGrid
statusBar={{
defaults: false,
getSegments: ({ totalRowCount, range, rangeStats }) => [
{ id: 'rows', label: `${totalRowCount.toLocaleString()} rows` },
...(range && rangeStats.sum != null
? [{ id: 'sum', label: `Σ ${rangeStats.sum.toLocaleString()}` }]
: []),
],
}}
/>

Context menu

Opt in with contextMenu or pass a ContextMenuConfig to customize. The getItems(ctx) callback receives the target (cell/row/header) and the current selection/range; return a fresh item list per open.

Auto-size

Double-click a column’s resize handle to fit it to the widest visible cell, or call GridApi.autoSizeColumn(id) / autoSizeAllColumns(). Auto-size is also available from the header context menu by default.