You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenGridX is a premium, high-performance React DataGrid engine designed to break the "Pay-to-Play" model in the React ecosystem. It provides a pure-custom, zero-dependency alternative to enterprise grids like MUI X DataGrid Pro and AG Grid, offering advanced features for free.
👉 Live Demo & Docs — Interactive showcase with full API documentation
🛠️ Getting Started
Installation
npm install @opencorestack/opengridx
import{DataGrid}from'@opencorestack/opengridx';
Styles: The CSS is bundled as a separate file (opengridx.css) alongside the JS. It is imported automatically via the package barrel in most setups.
However, if your grid appears unstyled (Vite, Next.js App Router, or SSR environments sometimes skip side-effect CSS auto-detection), add this explicit import once — typically in your app's root file (main.tsx / layout.tsx):
High-Performance Virtualization: Custom-built engine handling 100,000+ rows at 60fps.
Advanced Layouts: Native support for Row & Column Spanning, Grouping, and Tree Data.
Data Orchestration: 11+ filter operators, multi-column sorting, and robust pagination.
Zero UI Dependencies: 100% vanilla CSS (BEM) and pure React/TypeScript logic.
Skeleton Loader: Built-in animated loading states with smart column detection.
Fully Customizable: Slots system for replacing any component (pagination, overlays, toolbar).
Export Functionality: Built-in CSV, Excel, JSON, and Print export.
Clipboard: Ctrl+C / Cmd+C copies selected rows as TSV for Excel/Sheets.
Accessibility: WCAG 2.1 AA — full ARIA roles and keyboard navigation.
Theming: CSS variable API with 5 built-in themes + custom theme support.
Column & Row Reordering: Drag-and-drop column reordering and row reordering.
Inline Cell Editing: Full inline editing with processRowUpdate validation.
State Persistence: Save and restore grid state (sort, filter, columns) via useGridStateStorage.
AI-Native Integration: Shipped with raw lib/ source and docs/ inside the npm package, allowing AI agents (Cursor, Copilot, Windsurf) to flawlessly implement features by "seeing" the internal logic.
🤖 AI-Powered Implementation
OpenGridX is built for the era of AI-native development. When you install @opencorestack/opengridx, we include the full raw source code and markdown documentation in your node_modules.
This means that Cursor, GitHub Copilot, Windsurf, and other AI agents can read the actual implementation patterns and docs to accurately help you build complex features like server-side tree data or pivot tables without guessing.
Tip for Cursor/Copilot users: If your AI is struggling, tell it to "Read the docs and source in ./node_modules/@opencorestack/opengridx/docs" for instant context.
📐 API Reference
Core Props
Prop
Type
Default
Description
rows
GridRowModel[]
—
Required. Array of data rows.
columns
GridColDef[]
—
Required. Column definitions.
height
number | string
500
Grid height in pixels or CSS string (e.g. '100%').
autoHeight
boolean
false
Expands grid height to fit all rows.
loading
boolean
false
Shows skeleton loader when true.
density
'compact' | 'standard' | 'comfortable'
'standard'
Visual row density.
checkboxSelection
boolean
false
Enables checkbox column for row selection.
pagination
boolean
false
Enables client-side pagination.
paginationModel
{ page: number; pageSize: number }
—
Controlled pagination state.
onPaginationModelChange
(model) => void
—
Fires on page or page size change.
pageSizeOptions
number[]
[10, 25, 50]
Available page size options.
getRowId
(row) => GridRowId
row.id
Custom row ID accessor.
rowHeight
number
52
Row height in pixels.
headerHeight
number
56
Header height in pixels.
noRowsLabel
string
—
Custom empty-state message.
className
string
—
Custom CSS class on the grid container.
style
React.CSSProperties
—
Custom inline styles on the grid container.
Column Definitions (GridColDef)
Property
Type
Default
Description
field
string
—
Required. Must match the row object key.
headerName
string
—
Header label text.
description
string
—
Tooltip on header hover.
width
number | string
100
Fixed width in px.
flex
number
—
Flex-grow weight — fills remaining space. Cannot be combined with width.
Most React grids gatekeep essential features like Row Grouping, Excel Export, and Master-Detail behind expensive annual licenses. OpenGridX provides these premium capabilities out-of-the-box, with full source-code control and no external UI dependencies.