ef-filmstrip
Thumbnail navigation strip for a timegroup.
Renders a scrollable strip of thumbnails across the duration of a timegroup. Clicking a thumbnail seeks to that time.
<ef-timegroup id="demo" mode="sequence" class="w-[1920px] h-[1080px] bg-slate-900">
<ef-timegroup mode="fixed" duration="2s" class="absolute w-full h-full bg-indigo-900 flex items-center justify-center">
<ef-text class="text-white text-7xl font-bold">A</ef-text>
</ef-timegroup>
<ef-timegroup mode="fixed" duration="2s" class="absolute w-full h-full bg-rose-900 flex items-center justify-center">
<ef-text class="text-white text-7xl font-bold">B</ef-text>
</ef-timegroup>
<ef-timegroup mode="fixed" duration="2s" class="absolute w-full h-full bg-emerald-900 flex items-center justify-center">
<ef-text class="text-white text-7xl font-bold">C</ef-text>
</ef-timegroup>
</ef-timegroup>
<div class="fs-chrome">
<ef-controls target="demo" class="fs-controls">
<ef-toggle-play>
<button slot="play" class="fs-btn">▶</button>
<button slot="pause" class="fs-btn">⏸</button>
</ef-toggle-play>
<ef-scrubber class="fs-scrubber"></ef-scrubber>
<ef-time-display style="font-variant-numeric:tabular-nums;font-size:12px;opacity:0.6;padding-right:8px"></ef-time-display>
</ef-controls>
<div class="fs-filmstrip-row">
<ef-filmstrip
target="demo"
class="fs-strip"
pixels-per-ms="0.04"
hide-playhead="false"
></ef-filmstrip>
</div>
</div>
<style>
.fs-chrome { border-top: 1px solid rgba(255,255,255,0.08); }
.fs-controls {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
.fs-filmstrip-row { padding: 8px 0; }
.fs-strip { display: block; width: 100%; height: 52px; }
.fs-btn { cursor: pointer; padding: 4px 10px; font-size: 13px; }
.fs-scrubber { flex: 1; }
</style>