๐ผ React library to support easy zoom, pan, pinch on various html dom elements like <img> and <div>
TypeScript
1,950
452 commits
updated Oct 2, 2026
Super fast and light react npm package for zooming, panning and pinching html elements in easy way
If your application depends on react-zoom-pan-pinch, I offer paid support to help you resolve issues quickly and avoid blocking releases.
Do you like this library? Here is what else I build and maintain.
npm install --save react-zoom-pan-pinch
or
yarn add react-zoom-pan-pinch
import React, { Component } from "react";
import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";
const Example = () => {
return (
<TransformWrapper>
<TransformComponent>
<img src="image.jpg" alt="test" />
</TransformComponent>
</TransformWrapper>
);
};
or
import {
TransformWrapper,
TransformComponent,
useControls,
} from "react-zoom-pan-pinch";
const Controls = () => {
const { zoomIn, zoomOut, resetTransform } = useControls();
return (
<div className="tools">
<button type="button" onClick={() => zoomIn()}>
+
</button>
<button type="button" onClick={() => zoomOut()}>
-
</button>
<button type="button" onClick={() => resetTransform()}>
x
</button>
</div>
);
};
const Example = () => {
return (
<TransformWrapper
initialScale={1}
initialPositionX={200}
initialPositionY={100}
>
<Controls />
<TransformComponent>
<img src="image.jpg" alt="test" />
<div>Example text</div>
</TransformComponent>
</TransformWrapper>
);
};
If you're using this library in production, I offer paid support:
Plans start at $400/month.
๐ฉ Contact: maciekpyrc@gmail.com
MIT ยฉ prc5
892 followers ยท starred Mar 2025
167 followers ยท starred Jul 2020
145 followers ยท starred Jan 2025
229 followers ยท starred Feb 2026
๐ผ React library to support easy zoom, pan, pinch on various html dom elements like <img> and <div>
TypeScript
1,950
452 commits
updated Oct 2, 2026
Super fast and light react npm package for zooming, panning and pinching html elements in easy way
If your application depends on react-zoom-pan-pinch, I offer paid support to help you resolve issues quickly and avoid blocking releases.
Do you like this library? Here is what else I build and maintain.
npm install --save react-zoom-pan-pinch
or
yarn add react-zoom-pan-pinch
import React, { Component } from "react";
import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";
const Example = () => {
return (
<TransformWrapper>
<TransformComponent>
<img src="image.jpg" alt="test" />
</TransformComponent>
</TransformWrapper>
);
};
or
import {
TransformWrapper,
TransformComponent,
useControls,
} from "react-zoom-pan-pinch";
const Controls = () => {
const { zoomIn, zoomOut, resetTransform } = useControls();
return (
<div className="tools">
<button type="button" onClick={() => zoomIn()}>
+
</button>
<button type="button" onClick={() => zoomOut()}>
-
</button>
<button type="button" onClick={() => resetTransform()}>
x
</button>
</div>
);
};
const Example = () => {
return (
<TransformWrapper
initialScale={1}
initialPositionX={200}
initialPositionY={100}
>
<Controls />
<TransformComponent>
<img src="image.jpg" alt="test" />
<div>Example text</div>
</TransformComponent>
</TransformWrapper>
);
};
If you're using this library in production, I offer paid support:
Plans start at $400/month.
๐ฉ Contact: maciekpyrc@gmail.com
MIT ยฉ prc5
892 followers ยท starred Mar 2025
167 followers ยท starred Jul 2020
145 followers ยท starred Jan 2025
229 followers ยท starred Feb 2026