feature Request: Add Elastic Over-zoom (Bounce-back) Support for ZoomablePlugin
Is your feature request related to a problem?
Currently, ZoomablePlugin enforces a strict hard limit when the user reaches the minimum or maximum zoom scale. When a user tries to pinch-to-zoom past these boundaries, the scaling simply stops abruptly. This lacks the "fluid" and "organic" feel found in modern photo gallery applications (like Google Photos or iOS Photos), where the UI provides visual feedback that a limit has been reached.
Describe the solution you'd like:
I would like to see an Elastic/Bouncy Over-zoom feature added to ZoomablePlugin.
Behavior: Allow the image to be scaled slightly beyond the min/max constraints while the user’s fingers are still on the screen (active gesture).
Recovery: Once the user releases their fingers, the image should smoothly animate (snap back) to the nearest valid scale limit (e.g., if max is 3.0x and user pulled to 3.5x, it animates back to 3.0x).
Configuration: Ideally, this would be an optional parameter in rememberZoomablePlugin.
Describe alternatives you've considered:
Hard Limits (Current): Functional, but feels "stiff" or broken to the end-user.
Custom Implementation: Attempting to wrap ZoomablePlugin and manually calculating scale offsets, but this often conflicts with the internal gesture state of the plugin, leading to jittery movement.
feature Request: Add Elastic Over-zoom (Bounce-back) Support for ZoomablePlugin
Is your feature request related to a problem?
Currently, ZoomablePlugin enforces a strict hard limit when the user reaches the minimum or maximum zoom scale. When a user tries to pinch-to-zoom past these boundaries, the scaling simply stops abruptly. This lacks the "fluid" and "organic" feel found in modern photo gallery applications (like Google Photos or iOS Photos), where the UI provides visual feedback that a limit has been reached.
Describe the solution you'd like:
I would like to see an Elastic/Bouncy Over-zoom feature added to ZoomablePlugin.
Behavior: Allow the image to be scaled slightly beyond the min/max constraints while the user’s fingers are still on the screen (active gesture).
Recovery: Once the user releases their fingers, the image should smoothly animate (snap back) to the nearest valid scale limit (e.g., if max is 3.0x and user pulled to 3.5x, it animates back to 3.0x).
Configuration: Ideally, this would be an optional parameter in rememberZoomablePlugin.
Describe alternatives you've considered:
Hard Limits (Current): Functional, but feels "stiff" or broken to the end-user.
Custom Implementation: Attempting to wrap ZoomablePlugin and manually calculating scale offsets, but this often conflicts with the internal gesture state of the plugin, leading to jittery movement.