Future Feature Ideas & Improvements
A backlog of enhancements to the canvas timeline base, beyond the features already implemented.
Effort tags: S small, M medium,
L large.
Rendering & performance
Visible-only / incremental stacking
Stacking currently runs over all items on each pan/zoom. Cache row assignments and recompute only on
data change or when new items enter the viewport.
Effort: L · Unblocks 100k+ at 60fps
Spatial index (interval tree / bucketed)
Replace the linear visible-item scan and hit-test with an interval index keyed on time, plus a per-row
index for O(log n) hit-testing.
Effort: L
OffscreenCanvas + worker rendering
Move stacking and tile rendering to a worker via
OffscreenCanvas to keep the main thread free
during heavy interaction.
Effort: L
Layer caching / dirty rectangles
Cache the static background+grid+labels layer and only repaint item/overlay layers on interaction.
Effort: M
Interaction
Multi-touch pinch-zoom & momentum pan
Pointer-events-based pinch zoom and inertial panning for touch/trackpad.
Effort: M
Rubber-band multi-select
Drag a selection box on empty space to select all items inside it.
Effort: M
Snap-to-item / magnetic edges when dragging
Snap an item's edge to neighboring item edges or the current-time line while moving/resizing.
Effort: S
Keyboard navigation & focus
Arrow-key item traversal, Enter to open, Esc to deselect, drawn focus ring — also the basis for a11y.
Effort: M
Visualization
Item clustering at low zoom
Collapse dense item clusters into a single "+N" glyph when zoomed out; expand on zoom-in. Pairs well with
the minimap density histogram already computed.
Effort: M
Dependency arrows between items
Draw Gantt-style finish-to-start arrows from item relationships.
Effort: M
Per-item progress fill & milestones
A progress fraction rendered as a partial fill; diamond milestone markers (a richer
point type).
Effort: S
Background time regions / shading
Non-interactive background bands (weekends, business hours, SLA windows) behind all groups — a
type:'background' analogue.
Effort: S
Configurable fonts, icons & sprite atlas
Per-item leading icon drawn from a sprite atlas; configurable font stack and per-group fonts.
Effort: M
Data & integration
Windowed/virtualized data source
A formal data-source interface that fetches only the visible time window (pairs with the higher-risk
async-pagination feature) with prefetch and LRU eviction.
Effort: L
Export to PNG/SVG & print
toDataURL() export of the current view, plus an SVG path for crisp print/report embedding.
Effort: M
Server-driven "timeline views"
Persist filter + text-mapping + theme + window as a shareable view document (extends the higher-risk
saveable-view feature).
Effort: M
Platform & quality
TypeScript types & documented public API
Ship
.d.ts, promote underscore-prefixed capabilities to a stable public surface, semver the API.
Effort: M
Accessibility mirror
Off-screen DOM list reflecting items/groups for screen readers and as a no-canvas fallback.
Effort: L
Playwright visual + interaction CI
Headless-browser screenshot diffs and interaction tests, plus a performance regression gate on the stress test.
Effort: M
Theme tokens & system prefers-color-scheme
Expose theme as overridable design tokens and auto-pick light/dark from the OS setting.
Effort: S
← Risks · Back to demos