Skip to content

Make scroll-wheel zoom update the design preview scale #3626

Description

@AmyShang-alt

Summary

Scroll-wheel zoom over the design preview does not update the preview scale at all. The validation was originally checking zoom direction, but the current failure is more basic: wheel-up and Control+wheel-up both leave the preview at 100%.

Expected

Open a design preview at 100% zoom, scroll the wheel upward over the preview, and see the preview scale increase above 100% within one second. Wheel-down should decrease the scale. The toolbar zoom label and preview transform should reflect the new value.

Observed

On the seeded HTML design preview, the toolbar started at 100% with the preview frame measuring 812 x 673 px and transform scale 1. After a wheel-up gesture over the preview, the toolbar still read 100%, the frame still measured 812 x 673 px, and the transform still read scale 1. Holding Control while scrolling upward also left the preview at 100%.

This means the inverted-zoom symptom did not reproduce because wheel zoom did not respond at all.

User impact

Users cannot use scroll-wheel zoom to enlarge or shrink the design preview. The promised direction cannot be correct when the wheel gesture leaves the preview unchanged.

Evidence

  • 01-before-wheel-up.webp - Before wheel-up: preview is at 100% baseline scale.
  • 02-after-wheel-up.webp - After wheel-up: preview remains at 100%, unchanged.

Local code notes

  • apps/web/src/components/FileViewer.tsx has zoom state, previewScale = zoom / 100, and a shared zoom dropdown for file and live artifact previews.
  • The preview CSS uses --preview-scale / --preview-user-scale to size and transform the frame.
  • A local search found no onWheel handler in FileViewer.tsx that updates preview zoom from wheel input.
  • Existing tests cover the shared zoom dropdown and preview scale layout helpers, but not wheel-driven preview zoom.

Auto-surfaced from local release validation; verified against local code paths before filing.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions