PACKAGE · CHARTS

@joint/core

JavaScript diagramming library

WEEKLY DOWNLOADS 53.8K
STARS 5.4K
FORKS 893
OPEN ISSUES 55
GZIP SIZE 139.1 kB
UNPACKED SIZE 6.2 MB
DEPENDENCIES 0
LAST UPDATED 2mo ago
DOWNLOAD TRENDS

@joint/core downloads · last 12 months

Download trends for @joint/core1 download series from Oct 2025 to Sep 2026. Use left and right arrow keys to inspect monthly values.054.5K109.0K163.4K217.9KOct 2025JanAprJulSep 2026
@joint/core
ABOUT @JOINT/CORE

@joint/core is a JavaScript library designed for creating interactive diagrams and visual applications. It addresses the complexity of rendering and managing intricate graphical elements within a web environment, allowing developers to build sophisticated interfaces for data visualization, workflow management, and diagram editing without starting from scratch. The library provides a structured approach to defining shapes, links, and layouts, simplifying the process of building rich, interactive graphical experiences.

This library's core philosophy centers on providing a flexible yet opinionated framework for visual application development. It aims to empower developers with a set of tools that facilitate the creation of both low-code and no-code environments, enabling users to design and manipulate diagrams through an intuitive interface. The primary audience includes developers building custom charting tools, process modeling applications, or any scenario requiring dynamic, user-editable visual representations.

Key API patterns in @joint/core revolve around its robust model-view separation. Developers define `element` and `link` models that represent the data, which are then rendered by the `Paper` view. Features like `joint.shapes.standard` provide pre-built graphical elements, while `Graph` manages the collection of elements and links. Event handling is facilitated through methods like `graph.on()` and `paper.on()`, enabling real-time interaction and updates.

Integration points for @joint/core are broad, leveraging its framework-agnostic nature. It can be seamlessly embedded within various JavaScript frameworks like React, Angular, or Vue by mounting the `Paper` view to a DOM element. Its SVG rendering capabilities also make it suitable for integration with static site generators or server-side rendering approaches where interactive elements are later hydrated on the client.

The library boasts a mature codebase with extensive features, but this comes with a notable bundle size of 139.1 kB (gzipped). While optimizations are possible, developers should be mindful of this size when integrating into performance-sensitive applications or environments with strict loading constraints. The package offers significant power for diagramming tasks, justifying its footprint for complex visual applications.

A potential limitation to consider is the learning curve associated with its comprehensive API and conceptual model. For developers requiring only basic SVG rendering or simple node-based visualizations without complex interactivity, a lighter-weight charting library or a more direct SVG manipulation approach might be more suitable. Its extensive feature set is geared towards deep customization and complex diagramming workflows.

WHEN TO USE
  • When building complex, interactive flowcharts or organizational charts with custom node shapes and link styles.
  • For applications requiring a visual editor to create and manipulate graphs, such as business process modeling tools.
  • When integrating a diagramming component into a React, Angular, or Vue application via its view/model architecture.
  • To enable low-code or no-code environments where users can visually design and configure application logic or data structures.
  • For data visualization scenarios that demand more than static charts, including user interaction for exploration and editing.
  • When developing tools that require programmatic control over element positioning, layout algorithms, and link routing.
WHEN NOT TO USE
  • If you only need to display static charts or simple graphs without user interaction; a dedicated charting library would be more appropriate and lighter.
  • When a very small bundle size is a critical requirement, and the full feature set of @joint/core is not utilized.
  • For basic SVG rendering tasks where direct DOM manipulation or a simpler SVG library suffices.
  • If your application's visual needs are limited to simple shapes and basic connectivity without advanced layout or editing features.
  • When building applications primarily targeting older browsers that may not fully support modern SVG features or JavaScript APIs used by the library.

CORRECTIONS

Spot wrong data here?

A short note helps us fix it.

Anonymous · No account · No email back

COMPARISONS 7
@joint/core vs recharts ★ 27.6K · 57.6M/wk @joint/core vs @progress/kendo-react-charts ★ 240 · 36.1K/wk @joint/core vs echarts ★ 67.4K · 5.3M/wk @joint/core vs d3 ★ 113.8K · 20.9M/wk @joint/core vs @visx/visx ★ 21.1K · 97.3K/wk @joint/core vs chart.js ★ 67.7K · 12.6M/wk @joint/core vs @nivo/core ★ 14.1K · 1.6M/wk