npm / pixi-viewport
pixi-viewport
What changed in pixi-viewport 7, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.
9 breaking1 deprecations10 new APIs and options1 performance3 behavior and defaults1 tooling14 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initpixi-viewport 739 changes
Breaking changes 9
removeOnInterrupt also stops animation on wheel events.
Built-in plugins always run in their default order, regardless of the order in which they are added. User plugins still go at the end unless an index is passed.
Calling clamp() without options no longer clamps.
Setting bottom to false means that side is not clamped; it is no longer treated as 0.
Setting left to false means that side is not clamped; it is no longer treated as 0.
Setting right to false means that side is not clamped; it is no longer treated as 0.
Setting top to false means that side is not clamped; it is no longer treated as 0.
Adds scrolling when the mouse is near screen edges, with speed measured in screen pixels per second.
With passiveWheel false, stopping a wheel event from reaching the viewport also prevents the page from scrolling.
Deprecations 1
mouseEdges() is deprecated and remains unchanged.
New APIs and options 10
Setting keepAspectRatio to false clamps one axis at a time, enabling zooming along a single axis.
When true, one-finger touch drags are ignored so the page can scroll.
The event type is exported.
Accepts an optional Rectangle to write results into.
The mouse-edge-start event is emitted.
The event type is exported.
When true, wheel events bubbling from other elements, such as HTML overlays, are ignored.
Enables faster trackpad pinch zooming without changing mouse wheel zooming.
Controls trackpad pinch zoom speed; the default of 1 keeps the current speed.
The event type is exported.
Performance 1
The default hit area no longer allocates a new object every frame.
Behavior and default changes 3
An exports map makes Node imports load the ES module build and share the application's copy of pixi.js; deep imports continue to work.
The UMD build uses the PIXI global.
A pixi object inside the viewport can stop propagation of its wheel event to prevent viewport zooming.
Tooling 1
Type declarations use .js import extensions, which works with moduleResolution NodeNext.
Fixes and other changes 14
Dragging a viewport with no parent, such as one passed straight to renderer.render(viewport), no longer drifts away from the pointer.
Pinching a viewport with no parent no longer runs away to an enormous scale.
Wheel zoom on a viewport with no parent now stays around the pointer.
Clamping now stops deceleration at the edge and re-clamps when only the screen size changes.
Decelerate removes its event listeners when removed.
The screen field reports the pointer's screen position.
The screen field reports the pointer's screen position.
Following works with nested targets, acceleration no longer exceeds speed, and following a destroyed target stops instead of throwing repeatedly.
The mouse-edge-end event is emitted, including when the plugin is paused or removed while scrolling.
Negative scale no longer breaks input.
Using time 0 no longer throws.
Touches left without a pointerup are cleared when a new gesture starts.
Wheel removes its event listeners when removed.
With wheelZoom false, an unused plain wheel event no longer blocks page scrolling when passiveWheel is false.