GitHub - clientIO/joint: A proven SVG-based JavaScript diagramming library powering exceptional UIs (original) (raw)

JointJS - JavaScript diagramming library powering exceptional UIs

Build Status Total Discussion NPM Version NPM License

JointJS is a tested and proven JavaScript/Typescript diagramming library that helps developers and companies of any size build visual and No-Code/Low-Code applications faster and with confidence. It’s a flexible tool from which a wide range of UIs can be created (interactive diagramming applications, drawing tools, data visualizations, UIs for monitoring systems, and many more). It can become the foundational layer of your next application and help you bring your idea to market in days, not months or years.

Use Cases

Further information, examples and documentation can be found at jointjs.com.

πŸ”’ Get started with tutorials.

πŸ’‘ To ask a question, share feedback, or engage in a discussion with other community members, visit our GitHub discussions.

πŸ–ŠοΈ More examples are available on CodePen.

πŸ“– Check out our mind-map documentation.

Features

Supported browsers

Development Environment

If you want to work on JointJS locally, use the following guidelines to get started.

Dependencies

Make sure you have the following dependencies installed on your system:

Make sure that you are using Yarn version >= 2.0.0, so that you have access to Yarn workspace ranges functionality. If you are using Volta, it will automatically read this restriction from package.json.

Setup

Clone this git repository:

git clone https://github.com/clientIO/joint.git

Navigate to the joint directory:

Install all dependencies:

Generate distribution files from the source code:

You are now ready to browse our example applications, which combine functionality from multiple JointJS packages:

Refer to each application's README.md file for additional instructions.

You can also browse the demo applications of our JointJS Core package:

cd packages/joint-core/demo

Most demos can be run by simply opening the index.html file in your browser. Some demos have additional instructions, which you can find in their respective README.md files.

Tests

To run all tests:

To run only the server-side tests:

To run only the client-side tests:

To run only TypeScript tests:

Lint

To check for linting errors in src and types directories:

To auto fix errors, run eslint for src and types directories:

Code Coverage Reports

To output a code coverage report in HTML:

To output a code coverage report in lcov format:

yarn run test-coverage-lcov

The output for all unit tests will be saved in the packages/joint-core/coverage directory.

Contributors

License

The JointJS library is licensed under the Mozilla Public License 2.0.

Copyright Β© 2013-2025 client IO