From eb31e86d4f407845c498c92ad6aef5dadde38dcd Mon Sep 17 00:00:00 2001 From: Miguel Angel Simon Sierra Date: Wed, 8 Jul 2026 23:23:28 -0400 Subject: [PATCH] feat(studio): lanes and ruler span the full timeline width at any zoom When the composition is narrower than the panel (zoomed out) the track lanes, ruler bar, and context header now fill the whole timeline instead of stopping at the content width and leaving a flat dark void. Content stays in composition coordinates, so ticks, clips, and the playhead are unaffected. --- packages/studio/src/player/components/TimelineCanvas.tsx | 7 ++++++- .../src/player/components/TimelineLayerGroupHeader.tsx | 6 +++++- packages/studio/src/player/components/TimelineRuler.tsx | 6 ++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/studio/src/player/components/TimelineCanvas.tsx b/packages/studio/src/player/components/TimelineCanvas.tsx index 196678b3f..d5e4f651e 100644 --- a/packages/studio/src/player/components/TimelineCanvas.tsx +++ b/packages/studio/src/player/components/TimelineCanvas.tsx @@ -204,7 +204,12 @@ export const TimelineCanvas = memo(function TimelineCanvas({ draggedClip?.started === true ? (draggedClip.previewStackingReorder?.placement ?? null) : null; return ( -
+ // minWidth:100% makes the lanes and ruler fill the panel when the composition + // is narrower than the viewport (zoomed out); content stays in time coords. +
- {/* Ruler */} + {/* Ruler. The bar fills the full panel width (canvas is min 100% wide); + calc(100% - GUTTER) equals trackContentWidth when zoomed in and extends + past the content when zoomed out. Ticks stay at composition coordinates. */}