Virtual scrollingWeb Worker offloadColumnar encodingServer-side dataServer-side grouping & exportRows pushed by the serverPaginationNumbered page buttonsInfinite scrollTransactionsAsync transactionsCell span / mergeColumn spanSortingAutomatic columnsCustom sort orderSort by magnitudeClick cycle per columnLarge integers (BigInt)Row animationReorder after sortingCalculated columnsColumns your users calculateResizingReorderingPinningAuto-size, fit & flexVisibility & chooserRename columns in the gridBands (multi-level headers)Wrapped header textFilter rowHeader filter popupQuick searchFilter panel barRelative date filtersYour own filter UIFind without filteringExternal filterYour own filter operatorsMulti filterFilter builderGrouping (one level)Group panelGroup columnSticky group headersMulti-level groupingGroup summariesEdit a group totalMaster-detailTree dataFooter column totalsTotals row placementCustom aggregationSelection statisticsRow selectionFocused rowDeferred selectionUnselectable rowsRange selectionColumn selection from the headerCell focus & keyboardCopyFill handleClipboard callbacksCut & pasteCell editingParse and write valuesCell formulasBatch editingRow editingForm editingPopup editingValidationPermissionsCustom editors & lookupsCRUD handlersUndo / redoCSV exportExcel exportFormulas & links in exportsPDF exportStyled exportImport wizardThemes & palettesDensityCards on narrow screensLocalizationTooltipsRow numbersCell flashPinned rowsPin rows from the menuRow drag & dropSparklinesCell notesPrint layoutAligned gridsLoading & empty overlaysStatus barSide bar & tool panelsYour own side bar panelsChart data hookChart panelChart API, events & saved chartsBox plotWaterfall, funnel, treemap, heatmap & rangeScatter & bubble chartsChart titles, labels & legendStacked & 100% chartsCross-filter & zoomChart exportEventsImperative APIGrid state for AI modelsSaved viewsContext menusSSR & bundlers

Cards on narrow screens

Free

Below a width you choose, each row becomes a card — a title, then labelled fields — with a sort control in place of the headers. Same grid underneath: sort, filter, select and scroll a million rows.

Try it: Cards at every width here — in an app they appear below 600 px. Pick a column in Sort by, flip the arrow, use the search box: it is the same grid.

Read the guide →

Loading DataGrid…

About this DataGrid demo: Cards on narrow screens

Below a width you choose, each row becomes a card — a title, then labelled fields — with a sort control in place of the headers. Same grid underneath: sort, filter, select and scroll a million rows.

Cards on narrow screens is in the free Community edition (@kanunilabs/datagrid-react or @kanunilabs/datagrid): no licence key, no watermark, commercial use included. The grid above is the real component, not a recording — change it and the result is what your users get.

Guide: Cards on narrow screens →

More in Presentation

  • Themes & palettes — Six themes, six palettes, light and dark.
  • Density — Compact, normal and comfortable row heights.
  • Localization — Twelve languages, and your own strings.
  • Tooltips — Automatic on truncated text, or your own rich content; open on hover, on keyboard focus or a tap, and let the pointer rest on them.
  • Row numbers — A numbered column that renumbers after sort and filter.
  • Print layout — Every row on paper, not just the rendered window.