JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 118
  • Score
    100M100P100Q94123F
  • License MIT

High-performance React virtualization library with dynamic sizing, bidirectional scrolling, and accessibility

Package Exports

  • react-virtual-renderer
  • react-virtual-renderer/accessibility
  • react-virtual-renderer/performance

Readme

React Virtual Renderer

High-performance React virtualization library for large lists, grids, tables, infinite scrolling, dynamic heights, and masonry layouts.

A modern alternative to react-window and react-virtualized with built-in accessibility, dynamic sizing, and TypeScript support.

npm version downloads bundle size license


Why React Virtual Renderer?

Rendering thousands of DOM nodes can severely impact performance.

React Virtual Renderer only renders visible items, allowing your application to handle:

  • 10,000+ rows
  • Infinite scrolling
  • Dynamic item heights
  • Large tables
  • Chat applications
  • Product catalogs
  • Masonry layouts

while maintaining smooth scrolling and low memory usage.


Features

Performance

  • Virtualized Lists
  • Virtualized Grids
  • Infinite Scrolling
  • Dynamic Heights
  • Variable Item Sizes
  • Overscan Optimization
  • Scroll Position Restoration

Developer Experience

  • TypeScript First
  • Tree Shakeable
  • Lightweight Bundle
  • Zero Dependencies
  • React 18 & React 19 Support

Accessibility

  • WCAG 2.1 AA Friendly
  • Keyboard Navigation
  • ARIA Support
  • Screen Reader Compatible

Layouts

  • List
  • Grid
  • Masonry
  • Feed Layout

Installation

npm install react-virtual-renderer

or

yarn add react-virtual-renderer

Quick Start

import { VirtualList } from "react-virtual-renderer";

const items = Array.from({ length: 10000 }, (_, index) => ({
  id: index,
  name: `Item ${index}`,
}));

export default function App() {
  return (
    <VirtualList
      items={items}
      height={600}
      renderItem={({ item }) => <div style={{ padding: 12 }}>{item.name}</div>}
    />
  );
}

Common Use Cases

  • Chat Applications
  • Messaging Systems
  • Activity Feeds
  • Social Networks
  • Infinite Scroll Lists
  • Data Tables
  • Admin Dashboards
  • Product Catalogs
  • E-commerce Grids
  • Analytics Dashboards

Comparison

Feature React Virtual Renderer react-window react-virtualized
Dynamic Heights ⚠️ ⚠️
Infinite Scroll ⚠️
Masonry Layout ⚠️
Accessibility ⚠️
TypeScript ⚠️ ⚠️
Lightweight
React 19 Ready ⚠️ ⚠️

Roadmap

v1.x

  • Virtual Lists
  • Virtual Grids
  • Infinite Scroll
  • Dynamic Heights
  • Accessibility

v2.x

  • Masonry Layouts
  • Waterfall Layouts
  • Advanced Grid System

v3.x

  • Visual Debugger
  • Performance Inspector
  • Analytics Dashboard

Documentation

  • Getting Started
  • API Reference
  • Accessibility Guide
  • Performance Guide
  • Examples

License

MIT