# gridcn > gridcn is an editable, composable data grid for the shadcn/ui ecosystem (React + TypeScript). Real DOM cells, shadcn styling, windowed row and column rendering, virtualized to ~1M rows. MIT licensed. - **Getting Started** - [Introduction](https://gridcn.vercel.app/docs.md): An editable, composable data grid for the shadcn ecosystem. - [Installation](https://gridcn.vercel.app/docs/installation.md): Install the core grid from the @gridcn registry. No npm package. - [Quick start](https://gridcn.vercel.app/docs/quick-start.md): An editable grid in a few lines, with zero state wiring. - [Playground](https://gridcn.vercel.app/docs/playground.md): Every add-on composed in one grid, with independent toggles for the features that don't fit a single embed. - **Features** - [Editing & cell types](https://gridcn.vercel.app/docs/editing-cell-types.md): How editing works, the built-in cell types, and how to add your own. - [Build your own cell type](https://gridcn.vercel.app/docs/custom-cell-types.md): The CellType contract, a keypoint checklist distilled from every lesson the built-in types learned the hard way, and a full worked currency example. - [Overlay plugins](https://gridcn.vercel.app/docs/overlay-plugins.md): The overlay-plugin seam. Paint your own state into the grid's overlay layer, with zero core knowledge of what you're painting. - [Selection & keyboard](https://gridcn.vercel.app/docs/selection-keyboard.md): Range selection, mouse gestures, and the full keyboard shortcut reference. - [Row operations](https://gridcn.vercel.app/docs/row-operations.md): Insert, duplicate, and delete rows through props, keyboard shortcuts, and the context menu. - [Streaming updates](https://gridcn.vercel.app/docs/streaming-updates.md): Push live values into cells by row id, without a full data replacement. - [Accessibility](https://gridcn.vercel.app/docs/accessibility.md): The WAI-ARIA grid model, roving tabindex, live regions, the honest test matrix, and known gaps. - [Clipboard](https://gridcn.vercel.app/docs/clipboard.md): Native copy/cut/paste with spreadsheet-compatible TSV and HTML formats. - [Columns](https://gridcn.vercel.app/docs/columns.md): Resize, reorder, pin, and show/hide columns. - [Styling & theming](https://gridcn.vercel.app/docs/styling-theming.md): shadcn tokens, the data-attribute contract, density, and i18n via labels. - [i18n](https://gridcn.vercel.app/docs/i18n.md): Translate every user-facing string via the typed labels object. No i18n library required. - [Performance](https://gridcn.vercel.app/docs/performance.md): 100,000 rows, instant rendering, zero blank cells while scrolling. - [Virtualization](https://gridcn.vercel.app/docs/virtualization.md): Row and column windowing: what renders, what stays fixed, and what you get for free. - **Add-ons** - [Fill handle](https://gridcn.vercel.app/docs/fill-handle.md): Drag to tile a selection, with series inference for numeric and text runs. - [Pinned rows](https://gridcn.vercel.app/docs/pinned-rows.md): Sticky top/bottom row bands (e.g. a totals row) via the same sticky machinery as the header. - [Multiplayer presence](https://gridcn.vercel.app/docs/multiplayer-presence.md): Paint remote users' selections into the grid with zero core re-renders. - [Undo & redo](https://gridcn.vercel.app/docs/undo-redo.md): Op-based, id-keyed history that survives sort and filter. - [Sorting, filtering & search](https://gridcn.vercel.app/docs/sorting-filtering-search.md): Client-side multi-column sort, per-column filters, and quick search with match navigation. - [Import & export](https://gridcn.vercel.app/docs/import-export.md): xlsx and CSV, in and out, mapped through your cell types. - [URL state](https://gridcn.vercel.app/docs/url-state.md): Sync sort, filter, search, and pagination to the URL via nuqs. - [Lazy loading](https://gridcn.vercel.app/docs/lazy-loading.md): Fetch row windows on demand for datasets too large (or too expensive) to load up front. - [Pagination](https://gridcn.vercel.app/docs/pagination.md): Explicit, bookmarkable pages with a bounded per-request payload. - **Reference** - [Events & state](https://gridcn.vercel.app/docs/events-state.md): Every callback the grid fires, what it's for, and how it's shaped. - [API reference](https://gridcn.vercel.app/docs/api-reference.md): DataGrid, DataGridProvider, ColumnDef, and the CellType contract. - [Recipes](https://gridcn.vercel.app/docs/recipes.md): Server round-trips, TanStack Query, react-hook-form dialogs, and more. - [Project status & compatibility](https://gridcn.vercel.app/docs/project-status.md): Version, changelog discipline, browser and framework support, and how to update installed code. Install via the shadcn CLI: ```bash npx shadcn add @gridcn/data-grid ``` ## Registry - [Registry index](https://gridcn.vercel.app/r/registry.json): All items (core, add-ons, demos) in the shadcn registry schema. - [Core: data-grid](https://gridcn.vercel.app/r/data-grid.json): The grid itself; add-ons include data-grid-history, data-grid-fill, data-grid-io, data-grid-lazy. ## Optional - [Project status](https://gridcn.vercel.app/docs/project-status.md): Scope, decisions, open questions. - [GitHub](https://github.com/DammersCode/gridcn): Source code, issues.