/ Docs

Plugin Overview #

vlist v2 ships 14 plugins. Each plugin is tree-shaken — only what you import is bundled.

Base (createVList only): 7.8 KB gzipped.

Quick Reference #

Plugin Import Gzipped Delta Description
a11y a11y() +1.1 KB Baseline keyboard nav + single-select
selection selection() +2.4 KB Single/multi selection + keyboard nav
data data() +4.7 KB Async data loading + pagination
scrollbar scrollbar() +2.0 KB Custom scrollbar UI
sortable sortable() +2.9 KB Drag-and-drop reordering
groups groups() +3.7 KB Grouped lists with sticky headers
scale scale() +3.9 KB 1M+ items via scroll compression
page page() +0.8 KB Document/window scroll mode
snapshots snapshots() +1.3 KB Scroll save/restore
transition transition() +1.8 KB FLIP-based enter/exit animations
autosize autosize() +0.7 KB Dynamic item measurement
Layout
grid grid() +2.1 KB 2D grid layout
table table() +5.8 KB Virtualized data table
masonry masonry() +3.5 KB Pinterest-style layout

Usage #

import { createVList, grid, selection, scrollbar } from "vlist";

const list = createVList(config, [
  grid({ columns: 3 }),
  selection({ mode: "multiple" }),
  scrollbar(),
]);

Plugins are passed as the second argument to createVList. Order in the array does not matter — priorities are fixed internally per plugin.

Compatibility #

Not all plugins can be combined. Layout plugins are mutually exclusive, and some plugins only support flat lists.

grid masonry table scale transition sortable
grid
masonry
table
scale
transition
sortable

All combinations not listed above are ✅ compatible.

Incompatibility reasons:

  • grid + masonry / grid + table / masonry + table — only one layout plugin can be active at a time.
  • transition + grid/table/masonry — transition uses FLIP animations designed for flat lists only.
  • sortable + grid/masonry/table/scale — drag-and-drop reordering requires a flat, fixed-height list.

Priority Order #

Plugins run in a fixed internal priority order (lower number = runs earlier). You do not need to think about this — it is handled automatically regardless of the order you pass plugins to createVList.