vssvelte-virtual.
svelte-virtual renders fixed-size lists and grids. Svelte Virtual List measures rows automatically and supports Svelte 5 in its stable release.
at a glance.
svelte-virtual provides List and Grid components that render only the visible rows, from an itemCount and a fixed itemSize. Its stable 0.6 release (February 2024) supports Svelte 3 and 4; Svelte 5 support is in the 1.0.0-next prerelease, last published in November 2024. @humanspeak/svelte-virtual-list is a stable Svelte 5 component that measures each row as it renders, loads more data near the end of the list, and scrolls to any index or offset.
side-by-side.
Every surface that matters, compared without spin.
| feature | @humanspeak/svelte-virtual-list | svelte-virtual |
|---|---|---|
| Svelte 5 support | Stable release | Prerelease (1.0.0-next) |
| Dynamic measured heights | yes | Fixed itemSize |
| Grid virtualization | no | yes |
| Horizontal lists | LTR, runtime switchable | yes |
| Sticky rows | no | yes |
| Infinite scroll helpers | yes | User-land pattern |
| Programmatic scroll to index | yes | yes |
| Runtime dependencies | 0 | 0 |
where each shines.
- +Svelte 5-native component API with snippets and TypeScript generics
- +Dynamic height measurement without requiring a size map up front
- +Built-in infinite loading hooks for feed and pagination workflows
- +Imperative scroll method with index and alignment control
- +Vertical and horizontal layouts, including reactive orientation switching
- +SSR-friendly package for SvelteKit apps
- +Zero runtime dependencies and MIT licensed
- +Rows of different heights need no size data up front
- +Svelte 5 support in a stable, maintained release
- +List and Grid components in one package
- +Sticky indices for pinned rows
- +Simple itemCount and itemSize API for uniform rows
- +Scroll-to-index and scroll-to-position methods
where each falls short.
- −Focused on one-dimensional lists, not grids or masonry layouts
- −Horizontal mode is LTR-only in the current release
- −Requires Svelte 5
- −Newer package with a smaller ecosystem than older virtualizer projects
- −Svelte 5 support is only in a prerelease, last published November 2024
- −Every row shares one fixed size; there is no automatic height measurement
- −Infinite loading is wired in application code
the honest call.
Choose svelte-virtual when every row has the same fixed size, or when you need a virtual grid or sticky rows. Choose @humanspeak/svelte-virtual-list for Svelte 5 lists whose rows vary in height, with infinite loading and scroll methods in a stable release.
read more.
Every head-to-head, with the same matrix + pros / cons + verdict format.
TanStack Virtual is a powerful headless virtualizer. Svelte Virtual List is the smaller Svelte-first component.
read comparison ↗virtua is a zero-config multi-framework virtualizer. Svelte Virtual List is narrower and Svelte-specific.
read comparison ↗svelte-tiny-virtual-list is older, tiny, and flexible. Svelte Virtual List is built around Svelte 5 ergonomics.
read comparison ↗svelte-virtuallists offers list and table virtualizers. Svelte Virtual List keeps a smaller one-dimensional component API.
read comparison ↗The legacy Svelte package proved the pattern. Svelte Virtual List modernizes it for Svelte 5.
read comparison ↗The full /compare index — every head-to-head in one place.
browse all ↗svelte virtual list → install in 30 seconds