The annotation panel on large specs was a known pain point. On specs with more than 200 components, the panel would freeze for 2–4 seconds on first open and scroll sluggishly after that. This release fixes it.
What we changed
We replaced the full DOM render with a virtualized list using a windowing approach: only annotations currently in the viewport (plus a 150px buffer above and below) are rendered in the DOM. As you scroll, annotations are swapped in and out efficiently without layout thrash.
The result is a 3x improvement in initial render time on specs with 200+ components, and smooth 60fps scrolling on specs with up to 1,000 components in our testing.
Benchmark
| Spec size | Before (ms) | After (ms) | Improvement |
|---|---|---|---|
| 50 components | 180 | 160 | ~11% |
| 200 components | 1,840 | 610 | 67% |
| 500 components | 4,200 | 820 | 81% |
No settings changes are needed. The virtualized panel is the default for all users. If you notice any annotation rendering issues (particularly with annotations that rely on dynamic height), please file a support ticket with a spec link.