ef-timeline

Full timeline editor with tracks, playhead, ruler, and zoom.

Renders a multi-track timeline for the target composition. Includes a time ruler, per-element track rows, a draggable playhead, and built-in playback and zoom controls. Zoom state is persisted to localStorage keyed by the root timegroup ID.

Interactive example

Use show-* attributes to control which panels are visible:

html
<!-- Timeline with all panels -->
<ef-timeline target="my-canvas" show-ruler show-hierarchy show-playback-controls show-zoom-controls></ef-timeline>

<!-- Ruler and playhead only -->
<ef-timeline target="my-canvas" show-ruler show-playhead></ef-timeline>

Keyboard shortcuts (when focused):

ef-timeline does not itself expose a track part — the per-row clip lives on the nested ef-timeline-row element it renders internally:

css
ef-timeline::part(scrub-overlay) { pointer-events: auto; }
ef-timeline-row::part(track) { background: #1a1a2e; border-radius: 4px; }

Attributes

5 of 5

follow-playhead

React prop
followPlayhead
Type
boolean
Default
true
Description
Auto-scrolls the timeline to keep the playhead visible during active playback.

hierarchy-width

React prop
labelWidth
Type
number
Default
160
Description
Width of the layer hierarchy panel in pixels.

pixels-per-second

React prop
pixelsPerSecond
Type
number
Default
100
Description
Zoom level — pixels rendered per second of composition time.

row-height

React prop
rowHeight
Type
number
Default
28
Description
Height of each track row in pixels.

target

React prop
target
Type
string
Default
""
Description
ID of the target element this component controls or reads from.

CSS Parts