# Hugo module and AlpineJS wrapper for panzoom

**URL:** <https://discourse.gohugo.io/t/hugo-module-and-alpinejs-wrapper-for-panzoom/57311>\
**Category:** Announcements\
**Created:** [June 29, 2026, 10:33am UTC](https://discourse.gohugo.io/t/hugo-module-and-alpinejs-wrapper-for-panzoom/57311 "2026-06-29T10:33:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bep](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/bep/32/3332_2.png) [@bep](https://discourse.gohugo.io/u/bep)\
**Post date:** [June 29, 2026, 10:33am UTC](https://discourse.gohugo.io/t/hugo-module-and-alpinejs-wrapper-for-panzoom/57311/1 "2026-06-29T10:33:23Z")

</div>

Added to [GitHub - gohugoio/hugo-mod-alpinejs: Hugo Modules for AlpineJS + plugins + alpine-ajax · GitHub](https://github.com/gohugoio/hugo-mod-alpinejs)

Panning and zooming isn’t practical to implement yourself in JavaScript (it’s very hard to get right, especially on mobile). I have done some research and testing and concluded that panzoom ([GitHub - anvaka/panzoom: Universal pan and zoom library (DOM, SVG, Custom) · GitHub](https://github.com/anvaka/panzoom)) is currently the best option.

A simple running demo can be found here: [hugo-mod-alpinejs](https://deploy-preview-2--hugo-mod-alpinejs.netlify.app/#panzoom1)
