excalidraw/packages/excalidraw
2025-03-08 12:39:54 +01:00
..
actions chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
components chore: Logging and fixing extremely large scenes (#9225) 2025-03-05 23:06:01 +01:00
context feat: update jotai (#9015) 2025-01-16 16:59:11 +01:00
css chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
data chore: Logging and fixing extremely large scenes (#9225) 2025-03-05 23:06:01 +01:00
element fix: Bound elbow arrow on duplication does not route correctly (#9236) 2025-03-08 12:39:54 +01:00
fonts fix: package env vars (#9221) 2025-03-04 21:45:48 +01:00
hooks chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
locales feat: add action to wrap selected items in a frame (#9005) 2025-01-13 15:03:56 +00:00
renderer chore: Logging and fixing extremely large scenes (#9225) 2025-03-05 23:06:01 +01:00
scene chore: Logging and fixing extremely large scenes (#9225) 2025-03-05 23:06:01 +01:00
subset fix: Comic Shanns issues, new fonts structure (#8641) 2024-10-21 00:11:53 +02:00
tests fix: #8475 Arrow updated on both sides (#8593) 2025-03-04 17:24:39 +01:00
.gitignore docs: add next js with app router example (#7552) 2024-01-24 17:07:54 +05:30
.size-limit.json build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
align.ts fix: align arrows bound to elements excalidraw#8833 (#8998) 2025-01-25 17:00:39 +01:00
analytics.ts feat: subset font glyphs for SVG export (#8384) 2024-08-30 22:26:06 +02:00
animated-trail.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
animation-frame-handler.ts feat: add eraser tool trail (#7511) 2024-01-11 16:10:15 +00:00
appState.ts feat: in canvas links between shapes (#8812) 2024-11-26 18:53:25 +01:00
binaryheap.ts feat: Orthogonal (elbow) arrows for diagramming (#8299) 2024-08-01 18:39:03 +02:00
change.ts feat: image cropping (#8613) 2024-10-21 22:26:52 +02:00
CHANGELOG.md chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
charts.test.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
charts.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
clients.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
clipboard.test.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
clipboard.ts fix: right-click paste for images in clipboard (Issue #8826) (#8845) 2024-12-10 20:10:34 +00:00
colors.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
constants.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
css.d.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
cursor.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
deburr.ts feat: command palette (#7804) 2024-03-28 16:16:32 +00:00
distribute.ts fix: make getBoundTextElement and related helpers pure (#7601) 2024-01-26 11:29:07 +05:30
editor-jotai.ts feat: update jotai (#9015) 2025-01-16 16:59:11 +01:00
emitter.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
env.cjs fix: package env vars (#9221) 2025-03-04 21:45:48 +01:00
errors.ts feat: export scene to e+ on workspace creation/redemption (#8514) 2024-11-04 22:35:45 +00:00
fractionalIndex.ts feat: Elbow arrow segment fixing & positioning (#8952) 2025-01-17 18:07:03 +01:00
frame.test.tsx fix: duplicating/removing frame while children selected (#9079) 2025-02-04 19:23:47 +01:00
frame.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
gesture.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
global.d.ts chore: upgrade to react@19 (#9182) 2025-02-25 19:18:42 +01:00
groups.ts feat: do not delete frame children on frame delete (#9011) 2025-01-14 21:08:25 +01:00
history.ts chore: Refactor and remove scene from elbow arrow generation (#8342) 2024-08-08 14:06:26 +02:00
i18n.ts feat: update jotai (#9015) 2025-01-16 16:59:11 +01:00
index-node.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
index.tsx chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
keys.test.ts fix: undo/redo action for international keyboard layouts (#8649) 2024-10-21 17:08:39 +02:00
keys.ts fix: undo/redo action for international keyboard layouts (#8649) 2024-10-21 17:08:39 +02:00
laser-trails.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
mermaid.test.ts feat: improve mermaid detection on paste (#8287) 2024-07-27 12:36:54 +02:00
mermaid.ts feat: improve mermaid detection on paste (#8287) 2024-07-27 12:36:54 +02:00
package.json fix: React 18 element.ref was accessed error (#9208) 2025-03-02 14:24:50 +01:00
points.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
polyfill.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
pwacompat.d.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
queue.test.ts feat: store library to IndexedDB & support storage adapters (#7655) 2024-03-08 22:29:19 +01:00
queue.ts build: enable consistent type imports eslint rule (#7992) 2024-05-08 14:21:50 +05:30
random.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
react-app-env.d.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
reactUtils.ts fix: decouple react and react-dom imports from utils and make it treeshakeable (#7527) 2024-01-08 21:01:47 +05:30
README.md chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
shapes.tsx chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
snapping.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
store.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
tsconfig.json chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
types.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
utility-types.ts fix: duplicating/removing frame while children selected (#9079) 2025-02-04 19:23:47 +01:00
utils.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
visualdebug.ts chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
vite-env.d.ts refactor: remove unused env variable (#8457) 2024-09-02 00:25:12 +02:00
workers.ts fix: Comic Shanns issues, new fonts structure (#8641) 2024-10-21 00:11:53 +02:00
zindex.ts fix: z-index change by one causes app to freeze (#8314) 2024-08-09 15:26:08 +02:00

Excalidraw

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

Installation

Use npm or yarn to install the package.

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.

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:

<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 example.

Integration

Head over to the docs.

API

Head over to the docs.

Contributing

Head over to the docs.