virtua
- A zero-config, fast and small (~3kB) virtual list (and grid) component for React, Vue, Solid, and Svelte.
- Designed to provide the best performance without configuration while handling real-world challenges like dynamic size measurement, scroll position adjustment, iOS support, etc.
- Goals include:
- Zero-config virtualization
- Fast performance (optimized CPU usage, reduced layout recalculations, minimized visual jumps)
- Small bundle size (~3kB gzipped per component, tree-shakeable)
- Flexibility (supports fixed/dynamic sizes, horizontal/reverse scrolling, RTL, mobile, infinite scrolling, DnD, keyboard navigation, etc.)
- Framework agnostic (supports React, Vue, Solid, and Svelte)
Key Features
- Vertical and horizontal scrolling
- Dynamic list and item sizes
- Reverse scroll (including iOS Safari support)
- Infinite scroll (including bi-directional)
- Scroll restoration
- Smooth scrolling
- SSR support
- Svelte support (requires Svelte ≥ 5.0)
- React Server Components (RSC) compatibility
Comparison with Alternatives
- Smaller bundle size (~3kB vs competitors like react-virtuoso, react-window, etc.)
- More features out-of-the-box (reverse scroll, dynamic sizing, RTL support, etc.)
- Better framework coverage (includes Svelte, unlike many alternatives)
Documentation & Demos
- Live Demo fa-solid fa-up-right-from-square
- API Reference fa-solid fa-up-right-from-square
- Storybook Examples fa-solid fa-up-right-from-square
Target Audience
- Developers needing high-performance virtualization for large lists/grids
- Projects using React, Vue, Solid, or Svelte
- Teams prioritizing minimal bundle size and zero-config usability
infinite-scrollperformancereactreact-componentvirtualizationvirtualizedwindowingvirtual-scrollscrollingvueheadlessuisolidtabular-datasveltevirtual-list
Author
Featured Stories
No featured articles here. Navigate to an article, then pick the Feature on menu button