Ryan Di 178eca5828 fix: add frame clipping to new element canvas (#9794) 6 天之前
..
actions d6a934ed19 chore: Remove editingLinearElement (#9771) 1 周之前
components 37ad85cbaf fix: Fix the root cause of `flushSync` flickering (#9791) 1 周之前
context 21ffaf4d76 refactor: auto ordered imports (#9163) 4 月之前
css 95d89a751a refactor: decouple radio button selection from `.buttonList` wrapper (#9528) 2 月之前
data f0458cc216 fix: Mid-point for rounded linears are not precisely centered (#9544) 1 月之前
eraser ca1a4f25e7 feat: Precise hit testing (#9488) 2 月之前
fonts 7e41026812 refactor: export everything from `@excalidraw/element`, don't import from subpaths (#9466) 2 月之前
hooks 3dc54a724a feat: add `onIncrement` API (#9450) 3 月之前
lasso 958597dfaa chore: Refactor doBoundsIntersect (#9657) 1 月之前
locales a7b64f02b3 fix: remove image preview on image insertion (#9626) 1 月之前
renderer 178eca5828 fix: add frame clipping to new element canvas (#9794) 6 天之前
scene a7b64f02b3 fix: remove image preview on image insertion (#9626) 1 月之前
subset 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
tests d6a934ed19 chore: Remove editingLinearElement (#9771) 1 周之前
wysiwyg e46f038132 feat: expose `applyTo` options, don't commit empty text element (#9744) 2 周之前
.gitignore 4f0a2a9593 docs: add next js with app router example (#7552) 1 年之前
.size-limit.json d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 1 年之前
CHANGELOG.md 82b9a6b464 docs: CHANGELOG typos 🙏 (#9250) 4 月之前
README.md 69bc5bdaab chore: post publish docs & examples changes (#9217) 4 月之前
analytics.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
animated-trail.ts a18b139a60 fix: laser pointer trail disappearing on pointerup (#9413) (#9427) 3 月之前
animation-frame-handler.ts 86cfeb714c feat: add eraser tool trail (#7511) 1 年之前
appState.ts d6a934ed19 chore: Remove editingLinearElement (#9771) 1 周之前
charts.test.ts 21ffaf4d76 refactor: auto ordered imports (#9163) 4 月之前
charts.ts 7e41026812 refactor: export everything from `@excalidraw/element`, don't import from subpaths (#9466) 2 月之前
clients.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
clipboard.test.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 1 年之前
clipboard.ts 7e41026812 refactor: export everything from `@excalidraw/element`, don't import from subpaths (#9466) 2 月之前
css.d.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 1 年之前
cursor.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
deburr.ts 550a388b2b feat: command palette (#7804) 1 年之前
editor-jotai.ts 195a743874 feat: switch between basic shapes (#9270) 3 月之前
env.cjs 69bc5bdaab chore: post publish docs & examples changes (#9217) 4 月之前
errors.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
gesture.ts 1ed53b153c build: enable consistent type imports eslint rule (#7992) 1 年之前
global.d.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
history.ts d108053351 feat: various delta improvements (#9571) 1 月之前
i18n.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
index-node.ts 21ffaf4d76 refactor: auto ordered imports (#9163) 4 月之前
index.tsx 678dff25ed fix: ellipsify MainMenu and CommandPalette items (#9743) 3 周之前
laser-trails.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
mermaid.test.ts 2427e622b0 feat: improve mermaid detection on paste (#8287) 1 年之前
mermaid.ts 2427e622b0 feat: improve mermaid detection on paste (#8287) 1 年之前
package.json 258605d1d5 chore: release multiple packages (#9698) 1 月之前
polyfill.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 1 年之前
pwacompat.d.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 1 年之前
react-app-env.d.ts d6cd8b78f1 build: decouple package deps and introduce yarn workspaces (#7415) 1 年之前
reactUtils.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
snapping.ts cb33de25f4 feat: allow a frame to snap to its children (#9795) 6 天之前
tsconfig.json 0cd5a259ae fix: incorrect type imports (#9308) 4 月之前
types.ts d6a934ed19 chore: Remove editingLinearElement (#9771) 1 周之前
vite-env.d.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前
workers.ts 432a46ef9e refactor: separate elements logic into a standalone package (#9285) 4 月之前

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.