The best image/video annotation tool ever. Check out the demo here. Or the code sandbox here.

Usage no npm install needed!

<script type="module">
  import reactImageAnnotate from '';


React Image Annotate

npm version

The best image/video annotation tool ever. Check out the demo here. Or the code sandbox here.

Sponsors sponsorship image


  • Simple input/output format
  • Bounding Box, Point and Polygon Annotation
  • Zooming, Scaling, Panning
  • Multiple Images
  • Cursor Crosshair

Screenshot of Annotator


npm install react-image-annotate

import React from "react";
import ReactImageAnnotate from "react-image-annotate";

const App = () => (
    regionClsList={["Alpha", "Beta", "Charlie", "Delta"]}
    regionTagList={["tag1", "tag2", "tag3"]}
        src: "",
        name: "Image 1",
        regions: []

export default App;

To get the proper fonts, make sure to import the Inter UI or Roboto font, the following line added to a css file should suffice.

@import url("");


All of the following properties can be defined on the Annotator...

Prop Type (* = required) Description Default
taskDescription *string Markdown description for what to do in the image.
allowedArea { x: number, y: number, w: number, h: number } Area that is available for annotation. Entire image.
regionTagList Array<string> Allowed "tags" (mutually inclusive classifications) for regions.
regionClsList Array<string> Allowed "classes" (mutually exclusive classifications) for regions.
imageTagList Array<string> Allowed tags for entire image.
imageClsList Array<string> Allowed classes for entire image.
enabledTools Array<string> Tools allowed to be used. e.g. "select", "create-point", "create-box", "create-polygon" Everything.
showTags boolean Show tags and allow tags on regions. true
selectedImage string URL of initially selected image.
images Array<Image> Array of images to load into annotator
showPointDistances boolean Show distances between points. false
pointDistancePrecision number Precision on displayed points (e.g. 3 => 0.123)
onExit MainLayoutState => any Called when "Save" is called.
RegionEditLabel Node React Node overriding the form to update the region (see RegionLabel)



This project uses react-storybook. To begin developing run the following commands in the cloned repo.

  1. yarn install
  2. yarn storybook

A browser tab will automatically open with the project components.

See more details in the contributing guidelines.


Consult these icon repositories: