Skip to content

Show current zoom level in a transient HUD when zooming#11539

Open
pigorv wants to merge 1 commit into
warpdotdev:oz-agent/spec-issue-9576from
pigorv:oz-agent/impl-issue-9576
Open

Show current zoom level in a transient HUD when zooming#11539
pigorv wants to merge 1 commit into
warpdotdev:oz-agent/spec-issue-9576from
pigorv:oz-agent/impl-issue-9576

Conversation

@pigorv
Copy link
Copy Markdown

@pigorv pigorv commented May 22, 2026

Description

Adds a transient zoom-level HUD that briefly displays the current UI zoom percentage after a user-initiated zoom action.

What: A new ZoomLevelHud view 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:

  • New ZoomLevelHud (app/src/view_components/zoom_level_hud.rs): a dedicated single-state HUD rather than an extension of DismissibleToastStack, with abort-and-replace dismissal timer logic and theme-aware colors from Appearance.
  • Workspace owns a ViewHandle<ZoomLevelHud> and renders it as a positioned top-centered overlay, gated on FeatureFlag::UIZoom.
  • reset_zoom/adjust_zoom show the resulting (clamped) zoom value via a show_zoom_level_hud helper.

This PR targets the oz-agent/spec-issue-9576 spec branch and contains the implementation for the spec landed there (specs/GH9576/product.md, specs/GH9576/tech.md); tech.md is updated here to reflect implementation decisions.

Linked Issue

#9576

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Screenshots / Videos

Screen.Recording.2026-05-22.at.17.55.26.mov

Testing

Added unit coverage in app/src/workspace/view_test.rs:

  • IncreaseZoom / DecreaseZoom update both the WindowSettings::zoom_level and the HUD state.
  • ResetZoom shows the default zoom value in the HUD.
  • Zoom in at max / zoom out at min show the clamped value.
  • Repeated zoom actions replace the HUD value rather than stacking.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

🤖 Generated with Claude Code

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>
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 22, 2026

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 @cla-bot check to trigger another check.

@github-actions github-actions Bot added the external-contributor Indicates that a PR has been opened by someone outside the Warp team. label May 22, 2026
@pigorv pigorv marked this pull request as ready for review May 22, 2026 14:59
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 22, 2026

@pigorv

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

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pigorv

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

@pigorv
Copy link
Copy Markdown
Author

pigorv commented May 22, 2026

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label May 22, 2026
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 22, 2026

The cla-bot has been summoned, and re-checked this pull request!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed external-contributor Indicates that a PR has been opened by someone outside the Warp team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant