# @excalidraw/excalidraw

> Excalidraw as a React component

Latest version **0.18.1** (published 2026-04-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install @excalidraw/excalidraw
pnpm add @excalidraw/excalidraw
yarn add @excalidraw/excalidraw
bun add @excalidraw/excalidraw
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; high maintenance score; popular repo; extremely popular.

Warnings: low downloads; large bundle; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.18.1 |
| Published | 2026-04-20 |
| First published | 2020-12-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 31 |
| Unpacked size | 44.6 MB |
| Known vulnerabilities | 0 (+4 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 132483 |
| Maintainers | dwelle, maielo |
| Keywords | excalidraw, excalidraw-embed, react, npm, npm excalidraw |

## Links

- npm: https://www.npmjs.com/package/@excalidraw/excalidraw
- Repository: https://github.com/excalidraw/excalidraw
- Homepage: https://github.com/excalidraw/excalidraw/tree/master/packages/excalidraw
- Issues: https://github.com/excalidraw/excalidraw/issues
- npm.io page: https://npm.io/package/@excalidraw/excalidraw

## Dependencies (31)

- [clsx](https://npm.io/package/clsx.md) 1.1.1
- [pako](https://npm.io/package/pako.md) 2.0.3
- [pica](https://npm.io/package/pica.md) 7.1.1
- [sass](https://npm.io/package/sass.md) 1.51.0
- [fuzzy](https://npm.io/package/fuzzy.md) 0.1.3
- [jotai](https://npm.io/package/jotai.md) 2.11.0
- [nanoid](https://npm.io/package/nanoid.md) 3.3.3
- [roughjs](https://npm.io/package/roughjs.md) 4.6.4
- [cross-env](https://npm.io/package/cross-env.md) 7.0.3
- [pwacompat](https://npm.io/package/pwacompat.md) 2.0.17
- [open-color](https://npm.io/package/open-color.md) 1.9.1
- [tunnel-rat](https://npm.io/package/tunnel-rat.md) 0.1.2
- [jotai-scope](https://npm.io/package/jotai-scope.md) 0.7.2
- [png-chunk-text](https://npm.io/package/png-chunk-text.md) 1.0.0
- [lodash.debounce](https://npm.io/package/lodash.debounce.md) 4.0.8
- [lodash.throttle](https://npm.io/package/lodash.throttle.md) 4.1.1
- [points-on-curve](https://npm.io/package/points-on-curve.md) 1.0.1
- [es6-promise-pool](https://npm.io/package/es6-promise-pool.md) 2.5.0
- [perfect-freehand](https://npm.io/package/perfect-freehand.md) 1.2.0
- [browser-fs-access](https://npm.io/package/browser-fs-access.md) 0.29.1
- [image-blob-reduce](https://npm.io/package/image-blob-reduce.md) 3.0.1
- [png-chunks-encode](https://npm.io/package/png-chunks-encode.md) 1.0.0
- [png-chunks-extract](https://npm.io/package/png-chunks-extract.md) 1.0.0
- [fractional-indexing](https://npm.io/package/fractional-indexing.md) 3.2.0
- [@radix-ui/react-tabs](https://npm.io/package/@radix-ui/react-tabs.md) 1.0.2
- [@braintree/sanitize-url](https://npm.io/package/@braintree/sanitize-url.md) 6.0.2
- [@radix-ui/react-popover](https://npm.io/package/@radix-ui/react-popover.md) 1.1.6
- [@excalidraw/laser-pointer](https://npm.io/package/@excalidraw/laser-pointer.md) 1.3.1
- [canvas-roundrect-polyfill](https://npm.io/package/canvas-roundrect-polyfill.md) 0.0.1
- [@excalidraw/random-username](https://npm.io/package/@excalidraw/random-username.md) 1.1.0
- [@excalidraw/mermaid-to-excalidraw](https://npm.io/package/@excalidraw/mermaid-to-excalidraw.md) 2.2.2

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 0.18.1 (latest) — 2026-04-20
- 0.18.0-c0ad61c (next) — 2026-09-16
- 0.5.0-a78d45417 (test) — 2026-04-09
- 0.18.0-a9e2d2348-preview-2 (preview) — 2025-03-06
- 0.18.0-rc.7 (rc) — 2025-02-28
- 0.16.4 (patch-0.16) — 2024-04-17
- 0.17.1 (patch) — 2023-11-28
- 0.10.1 (patch-v-0.10) — 2022-05-31
- 0.18.0-4e758db — 2026-09-14
- 0.18.0-afa3a65 — 2026-09-10
- 0.18.0-2b1c2a9 — 2026-09-07
- 0.18.0-214cd6e — 2026-09-03
- 0.18.0-abeeaeb — 2026-08-11
- 0.18.0-cf212b2 — 2026-08-09
- 0.18.0-4872083 — 2026-08-07
- … 461 more at https://npm.io/package/@excalidraw/excalidraw/versions

## README

# Excalidraw

**Excalidraw** is exported as a component to be directly embedded in your project.

## Installation

Use `npm` or `yarn` to install the package.

```bash
npm install react react-dom @excalidraw/excalidraw
# or
yarn add react react-dom @excalidraw/excalidraw
```

> **Note**: If you don't want to wait for the next stable release and try out the unreleased changes, use `@excalidraw/excalidraw@next`.

#### Self-hosting fonts

By default, Excalidraw will try to download all the used fonts from the [CDN](https://esm.run/@excalidraw/excalidraw/dist/prod).

For self-hosting purposes, you'll have to copy the content of the folder `node_modules/@excalidraw/excalidraw/dist/prod/fonts` to the path where your assets should be served from (i.e. `public/` directory in your project). In that case, you should also set `window.EXCALIDRAW_ASSET_PATH` to the very same path, i.e. `/` in case it's in the root:

```js
<script>window.EXCALIDRAW_ASSET_PATH = "/";</script>
```

### Dimensions of Excalidraw

Excalidraw takes _100%_ of `width` and `height` of the containing block so make sure the container in which you render Excalidraw has non zero dimensions.

## Demo

Go to [CodeSandbox](https://codesandbox.io/p/sandbox/github/excalidraw/excalidraw/tree/master/examples/with-script-in-browser) example.

## Integration

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/integration).

## API

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api).

## Contributing

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/contributing).

---
_Source: https://npm.io/package/@excalidraw/excalidraw · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
