Virtual whiteboard for sketching hand-drawn like diagrams
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Marcel Mraz ee30225062
feat: subset font glyphs for SVG export (#8384)
1 year ago
..
actions feat: subset font glyphs for SVG export (#8384) 1 year ago
components feat: subset font glyphs for SVG export (#8384) 1 year ago
context build: enable consistent type imports eslint rule (#7992) 2 years ago
css fix: fixed copy to clipboard button (#8426) 1 year ago
data perf: improve new element drawing (#8340) 1 year ago
element feat: enable panning/zoom while in wysiwyg (#8437) 1 year ago
fonts feat: subset font glyphs for SVG export (#8384) 1 year ago
hooks feat: subset font glyphs for SVG export (#8384) 1 year ago
locales fix: fixed copy to clipboard button (#8426) 1 year ago
renderer perf: improve new element drawing (#8340) 1 year ago
scene feat: subset font glyphs for SVG export (#8384) 1 year ago
tests perf: improve new element drawing (#8340) 1 year ago
.gitignore
.size-limit.json
CHANGELOG.md feat: Stats popup style tweaks (#8361) 1 year ago
README.md
align.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
analytics.ts feat: subset font glyphs for SVG export (#8384) 1 year ago
animated-trail.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
animation-frame-handler.ts
appState.ts perf: improve new element drawing (#8340) 1 year ago
binaryheap.ts feat: Orthogonal (elbow) arrows for diagramming (#8299) 1 year ago
change.ts chore: Refactor and remove scene from elbow arrow generation (#8342) 1 year ago
charts.test.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
charts.ts feat: Orthogonal (elbow) arrows for diagramming (#8299) 1 year ago
clients.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
clipboard.test.ts
clipboard.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
colors.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
constants.ts feat: enable panning/zoom while in wysiwyg (#8437) 1 year ago
css.d.ts
cursor.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
deburr.ts feat: command palette (#7804) 2 years ago
distribute.ts fix: make getBoundTextElement and related helpers pure (#7601) 2 years ago
emitter.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
env.cjs
errors.ts feat: fractional indexing (#7359) 2 years ago
fractionalIndex.ts fix: throttle fractional indices validation (#8306) 1 year ago
frame.test.tsx chore: bump `@testing-library/react` `12.1.5` -> `16.0.0` (#8322) 1 year ago
frame.ts feat: remove automatic frame naming (#8302) 1 year ago
ga.ts
gadirections.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
galines.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
gapoints.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
gatransforms.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
gesture.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
global.d.ts feat: multiple fonts fallbacks (#8286) 1 year ago
groups.ts feat: editable element stats (#6382) 2 years ago
history.ts chore: Refactor and remove scene from elbow arrow generation (#8342) 1 year ago
i18n.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
index-node.ts
index.tsx feat: rewrite d2c to not require token (#8269) 1 year ago
jotai.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
keys.ts feat: command palette (#7804) 2 years ago
laser-trails.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
math.test.ts feat: Orthogonal (elbow) arrows for diagramming (#8299) 1 year ago
math.ts feat: split `gridSize` from enabled state & support custom `gridStep` (#8364) 1 year ago
mermaid.test.ts feat: improve mermaid detection on paste (#8287) 1 year ago
mermaid.ts feat: improve mermaid detection on paste (#8287) 1 year ago
package.json feat: subset font glyphs for SVG export (#8384) 1 year ago
points.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
polyfill.ts
pwacompat.d.ts
queue.test.ts feat: store library to IndexedDB & support storage adapters (#7655) 2 years ago
queue.ts build: enable consistent type imports eslint rule (#7992) 2 years ago
random.ts
react-app-env.d.ts
reactUtils.ts
shapes.tsx fix: linear elements not selected on pointer up from hitting its bound text (#8285) 1 year ago
snapping.ts fix: object snapping not working (#8381) 1 year ago
store.ts docs: fix `updateScene` `storeAction` default tsdoc & document types (#8048) 2 years ago
tsconfig.json
types.ts perf: improve new element drawing (#8340) 1 year ago
utility-types.ts feat: store library to IndexedDB & support storage adapters (#7655) 2 years ago
utils.ts feat: rewrite d2c to not require token (#8269) 1 year ago
visualdebug.ts feat: Visual debugger (#8344) 1 year ago
vite-env.d.ts fix: log allowed events (#8224) 1 year ago
zindex.ts fix: z-index change by one causes app to freeze (#8314) 1 year ago

README.md

Excalidraw

Excalidraw is exported as a component to directly embed in your projects.

Installation

You can use npm

npm install react react-dom @excalidraw/excalidraw

or via yarn

yarn add react react-dom @excalidraw/excalidraw

After installation you will see a folder excalidraw-assets and excalidraw-assets-dev in dist directory which contains the assets needed for this app in prod and dev mode respectively.

Move the folder excalidraw-assets and excalidraw-assets-dev to the path where your assets are served.

By default it will try to load the files from https://unpkg.com/@excalidraw/excalidraw/dist/

If you want to load assets from a different path you can set a variable window.EXCALIDRAW_ASSET_PATH depending on environment (for example if you have different URL's for dev and prod) to the url from where you want to load the assets.

Note

If you don't want to wait for the next stable release and try out the unreleased changes you can use @excalidraw/excalidraw@next.

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

Try here.

Integration

Head over to the docs

API

Head over to the docs

Contributing

Head over to the docs