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) |
27.4 KB | 9.8 KB | — |
| a11y | 30.5 KB | 10.9 KB | +1.1 KB |
| selection | 36.6 KB | 12.5 KB | +2.7 KB |
| data | 41.1 KB | 14.6 KB | +4.8 KB |
| scrollbar | 34.5 KB | 11.8 KB | +2.0 KB |
| sortable | 36.8 KB | 12.8 KB | +3.0 KB |
| groups | 43.3 KB | 15.1 KB | +5.3 KB |
| scale | {{size:scale:min}} KB | {{size:scale:gz}} KB | +{{size:scale:delta}} KB |
| page | 29.8 KB | 10.6 KB | +0.8 KB |
| snapshots | 30.7 KB | 10.9 KB | +1.1 KB |
| transition | 34.2 KB | 11.6 KB | +1.8 KB |
| autosize | 29.8 KB | 10.7 KB | +0.8 KB |
| Layout | |||
| grid | 34.4 KB | 12.2 KB | +2.4 KB |
| table | 45.7 KB | 15.6 KB | +5.8 KB |
| masonry | 38.5 KB | 13.8 KB | +4.0 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 12.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