ImageImageImage
TanStack
Virtual v3v3
AlphaTry TanStack MCP
Log In
StartRC
StartRC
Router
Router
Query
Query
Table
Table
DBbeta
DBbeta
AIalpha
AIalpha
Formnew
Formnew
Virtual
Virtual
Pacerbeta
Pacerbeta
Storealpha
Storealpha
Devtoolsalpha
Devtoolsalpha
More Libraries
More Libraries
FeedBeta
FeedBeta
Maintainers
Maintainers
Partners
Partners
Showcase
Showcase
Blog
Blog
LearnNEW
LearnNEW
Support
Support
Stats
Stats
Discord
Discord
Merch
Merch
GitHub
GitHub
Ethos
Ethos
Tenets
Tenets
Brand Guide
Brand Guide
Docs
CodeRabbitCodeRabbit
CloudflareCloudflare
AG GridAG Grid
NetlifyNetlify
NeonNeon
WorkOSWorkOS
ClerkClerk
ConvexConvex
ElectricElectric
PowerSyncPowerSync
SentrySentry
PrismaPrisma
StrapiStrapi
UnkeyUnkey
UI.dev
CodeRabbitCodeRabbit
CloudflareCloudflare
AG GridAG Grid
NetlifyNetlify
NeonNeon
WorkOSWorkOS
ClerkClerk
ConvexConvex
ElectricElectric
PowerSyncPowerSync
SentrySentry
PrismaPrisma
StrapiStrapi
UnkeyUnkey
UI.dev
Menu
  • Home
  • Frameworks
  • Contributors
  • GitHub
  • Discord
Getting Started
  • Introduction
  • Installation
  • React Virtual
Core APIs
  • Virtualizer
  • VirtualItem
Examples
  • Fixed
  • Variable
  • Dynamic
  • Padding
  • Sticky
  • Infinite Scroll
  • Smooth Scroll
  • Table
  • Window
Menu
  • Home
  • Frameworks
  • Contributors
  • GitHub
  • Discord
Getting Started
  • Introduction
  • Installation
  • React Virtual
Core APIs
  • Virtualizer
  • VirtualItem
Examples
  • Fixed
  • Variable
  • Dynamic
  • Padding
  • Sticky
  • Infinite Scroll
  • Smooth Scroll
  • Table
  • Window

    TanStackVirtual

    Headless UI for Virtualizing Large Element Lists

    Virtualize only the visible content for massive scrollable DOM nodes at 60FPS in TS/JS, React, Vue, Solid, Svelte, Lit & Angular while retaining 100% control over markup and styles.

    Get Started
    902,410,951
    NPM Downloads
    6,632
    Stars on Github
    130
    Contributors on GitHub
    356,904
    Dependents on GitHub
    Learn about TanStack AdsHide Ads
    Just a quick look...
    import { useVirtualizer } from '@tanstack/react-virtual'
    
    const rowVirtualizer = useVirtualizer({
      count: 1000,
      getScrollElement: () => parentRef.current,
      estimateSize: () => 36,
    })
    // Map virtual rows to your UI

    Designed for zero design

    Headless Virtualization means you're always in control of your markup, styles and components. Go design and implement the most beautiful UI you can dream up and let us take care of the hard parts.

    Big Power, Small Package

    Don't be fooled by the small bundle size. TanStack Virtual uses every byte to deliver powerful performance. After all, 60FPS is table stakes these days and we refuse to sacrifice anything for that 🧈-y smooth UX.

    Maximum Composability

    With a single function/hook, you'll get limitless virtualization for vertical, horizontal, and grid-style layouts. The API is tiny (literally 1 function), but its composability is not.

    Loved by Developers

    See what teams are saying

    "We chose TanStack Virtual for our virtualization needs - it handles our massive lists without breaking a sweat."

    Evan Bacon
    @Baconbrix · Expo

    "TanStack Virtual is the answer when you need to render thousands of rows without destroying performance. Headless, flexible, and just works."

    Developer Review
    Community ·

    "For anyone dealing with large datasets in React, TanStack Virtual is a must. The row virtualizer alone saved our app."

    Community Developer
    GitHub Discussion ·

    "We chose TanStack Virtual for our virtualization needs - it handles our massive lists without breaking a sweat."

    Evan Bacon
    @Baconbrix · Expo

    "TanStack Virtual is the answer when you need to render thousands of rows without destroying performance. Headless, flexible, and just works."

    Developer Review
    Community ·

    "For anyone dealing with large datasets in React, TanStack Virtual is a must. The row virtualizer alone saved our app."

    Community Developer
    GitHub Discussion ·

    Framework Agnostic & Feature Rich

    Lightweight (10 - 15kb) Tree-Shaking Headless Vertical/Column Virtualization Horizontal/Row Virtualization Grid Virtualization Window-Scrolling Fixed Sizing Variable Sizing Dynamic/Measured Sizing Scrolling Utilities Sticky Items

    Take it for a spin!

    With just a few divs and some inline styles, you're already well on your way to creating an extremely powerful virtualization experience.

    Maintainers

    Tanner Linsley
    Damian Pieczynski
    View All Maintainers →

    Partners

    CodeRabbitCodeRabbit
    CloudflareCloudflare
    AG GridAG Grid
    NetlifyNetlify
    WorkOSWorkOS
    NeonNeon
    ClerkClerk
    ConvexConvex
    ElectricElectric
    SentrySentry
    PowerSyncPowerSync
    PrismaPrisma
    StrapiStrapi
    UnkeyUnkey
    UI.dev
    Nozzle.io
    Virtual You?
    We're looking for TanStack Virtual Partners to join our mission! Partner with us to push the boundaries of TanStack Virtual and build amazing things together.
    Let's chat
    View Previous Partners →

    Sponsors

    Become a Sponsor
    Learn about TanStack AdsHide Ads
    Wow, you've come a long way!
    Only one thing left to do...
    Get Started!
    Blog
    @Tan_Stack on X.com
    @TannerLinsley on X.com
    GitHub
    Youtube
    Nozzle.io - Keyword Rank Tracker
    Ethos
    Tenets
    Privacy Policy
    Terms of Service
    © 2026 TanStack LLC
    Advertisement