David Luzar 2874f9e48c fix(editor): simplify and fix midpoint highlighting (#10832) 1 day ago
..
actions c1e00c44f5 fix: convert ArrowheadNoneIcon to component matching arrowhead icon pattern (#10789) 1 week ago
components 2874f9e48c fix(editor): simplify and fix midpoint highlighting (#10832) 1 day ago
context 21ffaf4d76 refactor: auto ordered imports (#9163) 11 months ago
css 063533aede feat(packages/excalidraw): support nested dropdown menu (#10749) 2 weeks ago
data 7ea3229e17 fix(editor): Hardened fixed point and bound element parsing in restore (#10816) 2 days ago
eraser d87620b239 fix: Circular reference (#10544) 2 months ago
fonts e95222ed32 fix: add constants and side methods to packages (#10418) 1 month ago
hooks 63e1148280 feat: stop using CSS filters for dark mode (static canvas) (#10578) 1 month ago
lasso d87620b239 fix: Circular reference (#10544) 2 months ago
locales 3a5ef4020d feat(app): add preferences to main menu (#10760) 2 weeks ago
renderer 2874f9e48c fix(editor): simplify and fix midpoint highlighting (#10832) 1 day ago
scene 63e1148280 feat: stop using CSS filters for dark mode (static canvas) (#10578) 1 month ago
subset d080833f4d chore: bump [email protected] (#10431) 2 months ago
tests eb959128ac feat(editor): allow laser-pointing in view mode (#10802) 5 days ago
wysiwyg 063533aede feat(packages/excalidraw): support nested dropdown menu (#10749) 2 weeks ago
.gitignore 4f0a2a9593 docs: add next js with app router example (#7552) 2 years ago
.size-limit.json d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 2 years ago
CHANGELOG.md 82b9a6b464 docs: CHANGELOG typos 🙏 (#9250) 11 months ago
README.md 69bc5bdaab chore: post publish docs & examples changes (#9217) 11 months ago
analytics.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago
animated-trail.ts a18b139a60 fix: laser pointer trail disappearing on pointerup (#9413) (#9427) 10 months ago
animation-frame-handler.ts 86cfeb714c feat: add eraser tool trail (#7511) 2 years ago
appState.ts c141960ada feat: Non-elbow arrow snapping and behavior changes (#9670) 3 months ago
charts.test.ts 21ffaf4d76 refactor: auto ordered imports (#9163) 11 months ago
charts.ts e95222ed32 fix: add constants and side methods to packages (#10418) 1 month ago
clients.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago
clipboard.test.ts b9d27d308e fix: pasting not working in firefox (#9947) 5 months ago
clipboard.ts 54a9826817 fix(editor): copying to clipboard with no ClipboardEvent (#10729) 3 weeks ago
css.d.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 2 years ago
cursor.ts b9a255407f refactor: update SCSS syntax & remove open-color dep (#10633) 1 month ago
deburr.ts 550a388b2b feat: command palette (#7804) 1 year ago
editor-jotai.ts 195a743874 feat: switch between basic shapes (#9270) 10 months ago
env.cjs 69bc5bdaab chore: post publish docs & examples changes (#9217) 11 months ago
errors.ts a0b98a944f feat: TextToDiagram v2 (#10530) 1 month ago
gesture.ts 1ed53b153c build: enable consistent type imports eslint rule (#7992) 1 year ago
global.d.ts d080833f4d chore: bump [email protected] (#10431) 2 months ago
history.ts 2535d73054 feat: apply deltas API (#9869) 6 months ago
i18n.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago
index-node.ts 21ffaf4d76 refactor: auto ordered imports (#9163) 11 months ago
index.tsx f7b537a8b1 feat(packages/excalidraw): export CommandPalette (#10724) 3 weeks ago
laser-trails.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago
mermaid.test.ts 2427e622b0 feat: improve mermaid detection on paste (#8287) 1 year ago
mermaid.ts 2427e622b0 feat: improve mermaid detection on paste (#8287) 1 year ago
package.json 063533aede feat(packages/excalidraw): support nested dropdown menu (#10749) 2 weeks ago
polyfill.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 2 years ago
pwacompat.d.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 2 years ago
react-app-env.d.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 2 years ago
reactUtils.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago
shortcut.ts 8013eb5e16 feat: More prominent keyboard shortcuts in hints (#10057) 4 months ago
snapping.ts d87620b239 fix: Circular reference (#10544) 2 months ago
tsconfig.json 0cd5a259ae fix: incorrect type imports (#9308) 11 months ago
types.ts 2874f9e48c fix(editor): simplify and fix midpoint highlighting (#10832) 1 day ago
vite-env.d.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago
workers.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 11 months ago

README.md

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.