excalidraw/packages/excalidraw
Mursaleen Nisar e1bb59fb8f
All checks were successful
Tests / test (push) Successful in 4m50s
chore: Use isDevEnv() and isTestEnv() (#9264)
Signed-off-by: Mark Tolmacs <mark@lazycat.hu>
Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
2025-03-24 19:44:00 +01:00
..
actions fix: Refactor and merge duplication and binding (#9246) 2025-03-23 18:39:33 +01:00
components chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
context refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
css chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
data chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
element chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
fonts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
hooks refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
locales feat: add action to wrap selected items in a frame (#9005) 2025-01-13 15:03:56 +00:00
renderer fix: Refactor and merge duplication and binding (#9246) 2025-03-23 18:39:33 +01:00
scene chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
subset refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
tests fix: Refactor and merge duplication and binding (#9246) 2025-03-23 18:39:33 +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 refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
analytics.ts chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
animated-trail.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
animation-frame-handler.ts feat: add eraser tool trail (#7511) 2024-01-11 16:10:15 +00:00
appState.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
binaryheap.ts feat: Orthogonal (elbow) arrows for diagramming (#8299) 2024-08-01 18:39:03 +02:00
change.ts chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
CHANGELOG.md docs: CHANGELOG typos 🙏 (#9250) 2025-03-11 23:18:15 +01:00
charts.test.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
charts.ts chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
clients.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +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: Refactor and merge duplication and binding (#9246) 2025-03-23 18:39:33 +01:00
colors.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
constants.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
css.d.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
cursor.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
deburr.ts feat: command palette (#7804) 2024-03-28 16:16:32 +00:00
distribute.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
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 chore: post publish docs & examples changes (#9217) 2025-03-11 13:02:59 +01:00
errors.ts feat: export scene to e+ on workspace creation/redemption (#8514) 2024-11-04 22:35:45 +00:00
fractionalIndex.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
frame.test.tsx refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
frame.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +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 fix: Refactor and merge duplication and binding (#9246) 2025-03-23 18:39:33 +01:00
history.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
i18n.ts chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
index-node.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
index.tsx refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
keys.test.ts fix: undo/redo action for international keyboard layouts (#8649) 2024-10-21 17:08:39 +02:00
keys.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
laser-trails.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
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 refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
random.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
react-app-env.d.ts build: decouple package deps and introduce yarn workspaces (#7415) 2023-12-12 11:32:51 +05:30
reactUtils.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
README.md chore: post publish docs & examples changes (#9217) 2025-03-11 13:02:59 +01:00
shapes.tsx refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
snapping.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
store.ts chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
tsconfig.json chore: release @excalidraw/excalidraw@18.0.0 🎉 (#9127) 2025-02-28 16:49:09 +01:00
types.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
utility-types.ts fix: duplicating/removing frame while children selected (#9079) 2025-02-04 19:23:47 +01:00
utils.ts chore: Use isDevEnv() and isTestEnv() (#9264) 2025-03-24 19:44:00 +01:00
visualdebug.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01:00
vite-env.d.ts chore: post publish docs & examples changes (#9217) 2025-03-11 13:02:59 +01:00
workers.ts fix: Comic Shanns issues, new fonts structure (#8641) 2024-10-21 00:11:53 +02:00
zindex.ts refactor: auto ordered imports (#9163) 2025-03-12 15:23:31 +01: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.