unstale

npm / @glideapps/glide-data-grid

@glideapps/glide-data-grid

What changed in @glideapps/glide-data-grid 4 to 6, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-25.

20 breaking40 new APIs and options10 performance8 behavior and defaults24 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@glideapps/glide-data-grid 644 changes

Breaking changes 5

  • CRA 4 is no longer officially supported and may require extra work; CRA 5 works fine.

    6.0.0release notes

  • Most CSS classes used by GDG are now prefixed to avoid conflicts with commonly used names.

    6.0.0release notes

  • The callback receives a draw callback for painting the standard cell, enabling custom under- and overdrawing; drawCell is now a void method.

    6.0.0release notes

  • The existing line graphKind is renamed to area; the new line chart renders a simple line chart.

    6.0.0release notes

  • The minimap has been removed to reduce package size and maintain the public surface area.

    6.0.0release notes

New APIs and options 16

  • The data grid's copy and paste functionality is exposed for direct developer use.

    6.0.0release notes

  • Dropdown cells can specify label and value independently.

    6.0.0release notes

  • DataEditor can freeze a specified number of trailing rows.

    6.0.0release notes

  • Sparkline charts can hide the x-axis with hideAxis.

    6.0.0release notes

  • UriCell can draw an underscore when hovering over a URI value.

    6.0.0release notes

  • Keybindings can now be remapped rather than only turned off and on.

    6.0.0release notes

  • GridColumn can configure the header menu icon with triangle, dots, or a key from headerIcons.

    6.0.0release notes

  • Allows control over proposed column destinations to prevent reordering into disallowed locations.

    6.0.0release notes

  • UriCell supports click events, for example to open a URL.

    6.0.0release notes

  • Configures the color of the new column resize indicator.

    6.0.0release notes

  • An optional theme property configures rounding radii for checkboxes, bubbles, skeletons, images, buttons, and other rounded elements.

    6.0.0release notes

  • Configures the height of LoadingCell skeletons.

    6.0.0release notes

  • LoadingCell displays skeletons when skeletonWidth is set to a value greater than zero.

    6.0.0release notes

  • Applies randomized variability to LoadingCell skeleton width.

    6.0.0release notes

  • Prevents focus from leaving the grid during caret browsing or when pressing tab.

    6.0.0release notes

  • A new cell provides a basic building block for collapsible and groupable rows.

    6.0.0release notes

Performance 6

  • Damage rendering is 2x faster than the 5.0 series when updating lots of data at once.

    6.0.0release notes

  • Large highlight regions no longer cause excessively slow drawing performance.

    6.0.0release notes

  • Enables an experimental iOS kinetic-scroll framerate boost to maintain a smooth experience.

    6.0.0release notes

  • Mouse hovering no longer causes excessive React rendering.

    6.0.0release notes

  • Safari renders around 2 to 5 times faster on mobile devices.

    6.0.0release notes

  • Search no longer renders eagerly, avoiding the cost when unused.

    6.0.0release notes

Behavior and default changes 6

  • Exports now use a more standard ESM-compliant manner, enabling better tree shaking.

    6.0.0release notes

  • Fill handle behavior and appearance are improved, including controllable selection behavior, FillPattern support, and a larger click region.

    6.0.0release notes

  • Calling getBounds with col and row undefined returns the bounding box of the entire data grid scroll area.

    6.0.0release notes

  • Hover interactions can distinguish blank spots inside the grid from areas outside the grid.

    6.0.0release notes

  • Page up and page down keybindings are now enabled by default.

    6.0.0release notes

  • UriCell uses displayData within cell rendering.

    6.0.0release notes

Fixes and other changes 11

  • The bubble cell editor is horizontally centered to align with cell rendering.

    6.0.0release notes

  • Number, row-id, dropdown, and date-picker cells now use configured padding for measurement.

    6.0.0release notes

  • Copy escaping is fixed for array values.

    6.0.0release notes

  • Fixed a bug that caused getBounds to compute bounds for the wrong cell.

    6.0.0release notes

  • Fixed jittering when using grow columns.

    6.0.0release notes

  • onDelete is now properly called when performing a cut operation.

    6.0.0release notes

  • Issues with paste logic are fixed.

    6.0.0release notes

  • ImageCell and cells package cells now use the standard readonly flag.

    6.0.0release notes

  • Selection and highlight rings at the grid's right or bottom edge are no longer clipped.

    6.0.0release notes

  • Fixed a sparkline chart error for arrays with fewer than three values.

    6.0.0release notes

  • Fixed the text cell editor color in Safari.

    6.0.0release notes

@glideapps/glide-data-grid 527 changes

Breaking changes 8

  • BooleanCell.allowEdit is removed and replaced by BooleanCell.readonly.

    5.0.0release notes

  • The deprecated BooleanCell.showUnchecked API is removed with no replacement.

    5.0.0release notes

  • The deprecated drawCustomCell API is removed and replaced by drawCell.

    5.0.0release notes

  • Consumers must import the grid CSS because the grid no longer uses CSS-in-JS.

    5.0.0release notes

  • The deprecated onColumnResized API is removed and replaced by onColumnResize.

    5.0.0release notes

  • The rightElementSticky prop is replaced by rightElementProps.

    5.0.0release notes

  • The row marker header column now draws a checkbox rather than silently accepting inputs.

    5.0.0release notes

  • The grid theme is no longer provided via ThemeProvider; pass the theme to DataEditor instead.

    5.0.0release notes

New APIs and options 8

  • The cursor can now be set per cell.

    5.0.0release notes

  • The callback now receives the index of the drawn header.

    5.0.0release notes

  • isDraggable can be set to cell or header to allow dragging on just one or the other.

    5.0.0release notes

  • This API configures the right element, including whether it is sticky and whether it grows to consume leftover space.

    5.0.0release notes

  • Vertical and horizontal scroll shadows are available and configurable.

    5.0.0release notes

  • Theme variables are available as CSS variables for custom editors, except for lineHeight.

    5.0.0release notes

  • A new hook provides access to the grid theme in JavaScript.

    5.0.0release notes

  • The validation callback now receives the previous cell to make validation easier.

    5.0.0release notes

Performance 1

Behavior and default changes 1

  • onCellsEdited is always called before onCellEdited, enabling a single edit callback; it also correctly prevents onCellEdited when requested.

    5.0.0release notes

Fixes and other changes 9

  • Auto-sizing columns no longer causes their headers to be truncated.

    5.0.0release notes

  • Context menus can now be correctly cancelled on all operating systems, not just Windows.

    5.0.0release notes

  • Calling getBounds with a cell outside the current range no longer crashes and returns undefined instead.

    5.0.0release notes

  • Setting gridSelection externally now keeps the newly selected selection in view.

    5.0.0release notes

  • Headers no longer emit spurious click events when completing drag operations.

    5.0.0release notes

  • Headers now properly select with touch events.

    5.0.0release notes

  • Copying in Safari no longer beeps the browser.

    5.0.0release notes

  • Trailing row options theme now applies to the trailing row even when it is not sticky.

    5.0.0release notes

  • Value coercion can now return the desired selected range after coercion.

    5.0.0release notes

@glideapps/glide-data-grid 431 changes

Breaking changes 7

  • The wrapper is gone; DataEditor now has optional width and height properties and attempts to self-size when they are unset.

    4.0.0release notes

  • The callback now receives a Rectangle instead of GridSelection, and passing true makes the grid use getCellContent as its default implementation.

    4.0.0release notes

  • Search now requires a getCellsForSelection implementation, including the default true option.

    4.0.0release notes

  • DataEditor accepts an optional height property that acts like the former container sizing behavior.

    4.0.0release notes

  • onDeleteRows is gone and is replaced by onDelete, which receives the current GridSelection and returns a boolean or a new selection.

    4.0.0release notes

  • Selection state is unified into one object; selectedColumns and selectedRows are now part of selection, and current includes cell, range, and rangeStack.

    4.0.0release notes

  • DataEditor accepts an optional width property that acts like the former container sizing behavior.

    4.0.0release notes

New APIs and options 16

  • Column selection can be configured as none, single, or multi; its default is multi.

    4.0.0release notes

  • Controls whether column selections are exclusive or can be mixed with range and row selections.

    4.0.0release notes

  • Custom editors can receive the initial input value when typing begins on a cell.

    4.0.0release notes

  • A className can be passed to directly control the container sizing.

    4.0.0release notes

  • Custom editors can define a deletedValue callback to empty the CustomCell on delete.

    4.0.0release notes

  • Setting fillHandle to true activates a mouse-interactive downfill handle.

    4.0.0release notes

  • Accepts highlight regions to emphasize specific ranges and provide users contextual cell information.

    4.0.0release notes

  • A new property takes flags that enable or disable supported key combinations.

    4.0.0release notes

  • A callback fires whenever a cell is activated, even when that cell does not allow overlays.

    4.0.0release notes

  • The callback receives the current GridSelection and returns whether deletion continues or a replacement selection to delete.

    4.0.0release notes

  • When true, locks the grid to a single scroll axis, which can help on mobile and touch devices.

    4.0.0release notes

  • The glide-data-grid-cells package now includes a range cell.

    4.0.0release notes

  • Range selection can be configured as none, cell, rect, multi-cell, or multi-rect; its default is rect.

    4.0.0release notes

  • Controls whether range selections are exclusive or can be mixed with row and column selections.

    4.0.0release notes

  • Row selection can be configured as none, single, or multi; its default is multi.

    4.0.0release notes

  • Controls whether row selections are exclusive or can be mixed with range and column selections.

    4.0.0release notes

Performance 3

  • Rendering lots of empty text cells receives minor performance improvements.

    4.0.0release notes

  • Image downloads are cancelled more aggressively during rapid scrolling, shortening the delay between stopping and images loading.

    4.0.0release notes

  • The package is now lazy loaded to improve initial load times.

    4.0.0release notes

Behavior and default changes 1

  • The grid improves keybindings, screen reader support, focus behavior, and accessibility-tree output, with no configuration required and no option to disable support.

    4.0.0release notes

Fixes and other changes 4

  • Overlay editors attempt to move back onscreen when forced out; this requires IntersectionObserver.

    4.0.0release notes

  • Fixes an off-by-one error with screen-reader columns.

    4.0.0release notes

  • Shift+enter now correctly moves focus to the cell above.

    4.0.0release notes

  • Prevents an issue with vertical underscroll on mobile devices.

    4.0.0release notes