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) |
22.1 KB | 8.1 KB | — |
| a11y | 25.2 KB | 9.2 KB | +1.1 KB |
| selection | 30.5 KB | 10.5 KB | +2.4 KB |
| data | 35.0 KB | 12.8 KB | +4.6 KB |
| scrollbar | 29.3 KB | 10.1 KB | +2.0 KB |
| sortable | 31.5 KB | 11.0 KB | +2.9 KB |
| groups | 33.5 KB | 11.9 KB | +3.8 KB |
| scale | 35.4 KB | 12.0 KB | +3.9 KB |
| page | 24.5 KB | 8.9 KB | +0.8 KB |
| snapshots | 25.8 KB | 9.4 KB | +1.3 KB |
| transition | 28.9 KB | 9.9 KB | +1.8 KB |
| autosize | 24.5 KB | 9.0 KB | +0.9 KB |
| Layout | |||
| grid | 30.1 KB | 10.9 KB | +2.7 KB |
| table | 41.2 KB | 14.2 KB | +6.1 KB |
| masonry | 32.3 KB | 11.8 KB | +3.7 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.5 KB gzipped bundle — no cost for unused plugins.
// Only createVList + selection are bundled — nothing else
import { createVList, selection } from "vlist";
Measuring #
bun run size