Bundle Size #
All measurements are for ESM output with minification enabled. Gzipped delta is the cost of adding that plugin on top of the base bundle.
Size Table #
| Plugin | Minified | Gzipped | Delta |
|---|---|---|---|
Base (createVList) |
21.5 KB | 7.8 KB | — |
| a11y | 24.5 KB | 8.9 KB | +1.1 KB |
| selection | 29.8 KB | 10.2 KB | +2.4 KB |
| async | {{size:async:min}} KB | {{size:async:gz}} KB | +{{size:async:delta}} KB |
| scrollbar | 28.7 KB | 9.8 KB | +2.0 KB |
| sortable | 30.9 KB | 10.7 KB | +2.9 KB |
| groups | 32.8 KB | 11.5 KB | +3.7 KB |
| scale | 34.7 KB | 11.7 KB | +3.9 KB |
| page | 23.9 KB | 8.6 KB | +0.8 KB |
| snapshots | 25.1 KB | 9.1 KB | +1.3 KB |
| transition | 28.2 KB | 9.6 KB | +1.8 KB |
| autosize | 23.4 KB | 8.5 KB | +0.7 KB |
| Layout | |||
| grid | 27.5 KB | 9.9 KB | +2.1 KB |
| table | 39.7 KB | 13.6 KB | +5.8 KB |
| masonry | 31.2 KB | 11.4 KB | +3.5 KB |
Tree-Shaking #
Only imported plugins are bundled. Dead code elimination has been verified for all 13 plugins.
Example: importing only createVList + selection produces a 10.2 KB gzipped bundle — no cost for unused plugins.
// Only createVList + selection are bundled — nothing else
import { createVList, selection } from "vlist";
Measuring #
bun run size