Show current zoom level in a transient HUD when zooming#11539
Conversation
Implements GH9576: adds a ZoomLevelHud view component that briefly displays the current UI zoom percentage after a user-initiated zoom action (increase/decrease/reset). - New ZoomLevelHud view in view_components, a single-state transient HUD with abort-and-replace dismissal timer. - Workspace owns a ZoomLevelHud handle, renders it as a top-centered positioned overlay gated on FeatureFlag::UIZoom. - reset_zoom/adjust_zoom show the resulting zoom value in the HUD. - view_test.rs coverage for increase, decrease, reset, min/max clamp, and repeated-action replacement. - tech.md updated to reflect implementation decisions. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @pigorv on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment |
|
This PR is not linked to an issue that is marked with Issue-state enforcement details:
To continue, link this PR to a same-repo issue such as Powered by Oz |
There was a problem hiding this comment.
This PR is not linked to an issue that is marked with ready-to-implement.
Issue-state enforcement details:
-
Associated same-repo issues checked: none
-
Required readiness label:
ready-to-implement
To continue, link this PR to a same-repo issue such as Closes #123 in the PR description, and make sure that issue has ready-to-implement.
Powered by Oz
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
Description
Adds a transient zoom-level HUD that briefly displays the current UI zoom percentage after a user-initiated zoom action.
What: A new
ZoomLevelHudview component shows a small, top-centered pill (e.g.110%) for ~1 second whenever the user increases, decreases, or resets the UI zoom. Repeated zoom actions replace the value in place and restart the dismissal timer rather than stacking.Why: Implements GH9576 — Warp already has stepped UI zoom values and actions, but no visible feedback of the resulting zoom level when zooming.
How:
ZoomLevelHud(app/src/view_components/zoom_level_hud.rs): a dedicated single-state HUD rather than an extension ofDismissibleToastStack, with abort-and-replace dismissal timer logic and theme-aware colors fromAppearance.Workspaceowns aViewHandle<ZoomLevelHud>and renders it as a positioned top-centered overlay, gated onFeatureFlag::UIZoom.reset_zoom/adjust_zoomshow the resulting (clamped) zoom value via ashow_zoom_level_hudhelper.This PR targets the
oz-agent/spec-issue-9576spec branch and contains the implementation for the spec landed there (specs/GH9576/product.md,specs/GH9576/tech.md);tech.mdis updated here to reflect implementation decisions.Linked Issue
#9576
ready-to-specorready-to-implement.Screenshots / Videos
Screen.Recording.2026-05-22.at.17.55.26.mov
Testing
Added unit coverage in
app/src/workspace/view_test.rs:IncreaseZoom/DecreaseZoomupdate both theWindowSettings::zoom_leveland the HUD state.ResetZoomshows the default zoom value in the HUD.Agent Mode
🤖 Generated with Claude Code