Arrow icon
See all demos

MindMap

The MindMap demo shows a diagram used to visually organize information into a hierarchy and display the relationships between them. This demo is written in JavaScript, but can be easily integrated with TypeScript, React, Vue, Angular, Svelte, or LightningJS. The source code of this demo is available as part of the JointJS+ license.
Demo instructions
Use the keyboard to navigate the diagram, edit text or images by tapping on elements, and change the color of links and borders.

Made with JointJS+

The source code of this demo is available as part of the JointJS+ commercial license. Don't have a license yet? Start a trial and use the source code of this and many other demos for free, with no obligations, for 30 days.

Compatible with:

ReactAngularVueSvelteHTML5Salesforce Lightning

Made with JointJS+

All features required to build this demo are included in the commercial JointJS+ package. Don't have a license yet? Start a trial and build professional applications with ease.

Compatible with:

ReactAngularVueSvelteHTML5Salesforce Lightning

Made with JointJS

The source code of this demo is available in the JointJS open-source library which helps developers create simple visual applications in less time.

Compatible with:

ReactAngularVueSvelteHTML5Salesforce Lightning

Made with JointJS

All features required to build this demo application are included in our open-source library, JointJS. Download the package and create basic visual applications in no time.

Compatible with:

ReactAngularVueSvelteHTML5Salesforce Lightning

What is a mind map and how to develop one using JointJS+?

A mind map is a visual tool that organizes information, ideas, and concepts in a hierarchical manner. It starts with a central idea represented by a node and branches out into subtopics. Mind maps use text, colors, symbols, and images to represent ideas and their relationships. They provide a holistic view of information, aiding in understanding complex concepts, brainstorming, and establishing connections.

Mind maps are flexible tools used for organizing thoughts, planning projects, and capturing brainstorming sessions. They visually explore ideas, identify key concepts, and establish connections. Mind maps stimulate creative thinking, enhance memory retention, and improve information recall. They break down complex information into manageable components, facilitating better understanding and analysis.

JointJS+ offers JavaScript and TypeScript developers a lot of options for developing mind maps that work flawlessly and look stunning. The library provides intuitive plugins that include interactions like drag-and-drop, zooming, layout algorithms for automatic organization and much more.

In this demo we utilized number of plugins to speed up the development, plugins such as:

  • PaperScroller - manages scrolling, panning, centering, and auto-resizing of content
  • Keyboard - plugin that gives you an option to create keyboard shortcuts
  • TreeLayout and TreeLayoutView - essential plugins for the application, responsible for precise positioning of elements to create visually appealing mind map
  • Selection - element selection, moving the selection and manipulating the selection
  • CommandManager - keeps track of changes in a graph to give you an option to undo/redo them
  • Toolbar - add tools in your application, either use prebuilt or define your own

The mind map demo application above is written in TypeScript and can be easily integrated with a wide range of web application frameworks such as React, Angular, Vue, Svelte, or Lightning. To check its source code, start a free 30-day trial of JointJS+.

Integration

Interested in creating mind map applications with React, Vue, Angular, Svelte, or Lightning? Look no further! JointJS+ effortlessly integrates with these popular web application frameworks, making it a breeze to incorporate mind maps into your projects. With JointJS+ being framework-agnostic, you can seamlessly leverage its power within your preferred framework. The demo application for mind maps, along with other JointJS and JointJS+ demos, is designed to provide maximum flexibility, ensuring smooth integration with your chosen framework. 

We have prepared specific examples for the most popular JavaScript frameworks, demonstrating the implementation of our CommandManager plugin. These examples serve as valuable resources, providing guidance on seamlessly integrating and utilizing the power of the plugin in your chosen framework.

TypeScript mind map

Do you like TypeScript? We do too! Our JointJS+ mind map demo application is already built with TypeScript, providing you with perks of advanced language features and static typing from the start. Comprehensive type definitions are readily available, streamlining your mind map development and ensuring a robust and type-safe journey. All you have to do is, start a free 30-day trial of JointJS+, to check out the source code!

React mind map

Using JointJS+ in combination with React couldn’t be easier. By leveraging React's component-based architecture and efficient rendering, developers can easily build reusable mind map components that adapt dynamically to user interactions and updates. This enables an intuitive and interactive platform for visualizing and organizing ideas effectively. As mentioned earlier, here's an example of initializing CommandManager in a React application.

-- CODE language-js --
import { useRef } from 'react';
import
{ dia } from '@clientio/rappid';

export const MindmapHistoryManager
= ({ graph }) => {
  const
history = useRef(
    new
dia.CommandManager({
      
graph: graph.current
    
})
  
);

  const undo
= () => history.current.undo();
  const redo
= () => history.current.redo();

  return
(
    
<div>
      <button onClick={undo}>undo</button>
      <button onClick={redo}>redo</button>
    </div>
  
);
}

🔗 Interested in a step-by-step guide on how to integrate JointJS+ with your React application? Follow our tutorial on React and JointJS+ integration. For more examples, check out our Github repository.

Vue mind map

JointJS+ also integrates smoothly with Vue, a flexible and reactive framework. With Vue's declarative syntax and component-based approach, developers can effortlessly incorporate mind maps into Vue applications. This integration enables developers to create interactive and responsive interfaces, fostering efficient visualization and organization of ideas within mind maps. As discussed previously, presented below is an illustration of how to initialize CommandManager in a Vue application.

-- CODE language-js --
<script setup>
import
{ dia } from '@clientio/rappid';

const
props = defineProps(['graph']);
const
history = new dia.CommandManager({
  
graph: props.graph
});

const undo
= () => history.undo();
const redo
= () => history.redo();
</script>

<template>
  <div>
    <button @click="undo">undo</button>
    <button @click="redo">redo</button>
  </div>
</template>

🔗 Interested in a step-by-step guide on how to integrate JointJS+ with your Vue application? Follow our tutorial on Vue and JointJS+ integration. For more examples, check out our Github repository.

Angular mind map

For Angular fans out there, JointJS+ offers effortless integration for building mind map applications. By using Angular's extensive framework and robust features, developers can create dynamic and data-driven mind map applications. This integration ensures precise visualization of ideas and promotes enhanced collaboration and productivity among teams. As noted earlier, provided here is an example of integrating CommandManager into an Angular application.

-- CODE language-js --
import { OnInit, Component, Input } from '@angular/core';
import { dia } from '@clientio/rappid';

@Component({
   selector: 'mindmap-history-manager',
   template: `
     <div>
       <button (click)="undo()">undo</button>
       <button (click)="redo()">redo</button>
     </div>
    `
})

export class MindmapHistoryManager implements OnInit {
   @Input() graph;

   private history;

   undo() {
       this.history.undo();
   }

   redo() {
       this.history.redo();
   }

   public ngOnInit() {
       this.history = new dia.CommandManager({
           graph: this.graph
       })
   }
}

🔗 Interested in a step-by-step guide on how to integrate JointJS+ into your Angular application? Follow our tutorial on Angular and JointJS+ integration. For more examples, check out our Github repository.

Svelte mind map

JointJS+ seamlessly integrates with Svelte, celebrated for its lightweight and reactive nature. By leveraging Svelte's compiler-based approach, developers can effortlessly craft visually captivating and interactive mind map applications. The straightforward incorporation of JointJS+ with Svelte empowers developers to design high-performance and responsive mind maps with ease. As mentioned earlier, shown below is a demonstration of setting up CommandManager within a Svelte application.

-- CODE language-js --
<script>
  import { dia } from '@clientio/rappid/rappid.js';

  export let graph;
  let history = new dia.CommandManager({
    
graph,
  
});

  function undo() {
    history.undo();
  }

  function redo() {
    history.redo();
  }
</script>

<div>
  <button on:click={undo}>undo</button>
  <button on:click={redo}>redo</button>
</div>

🔗 Interested in a step-by-step guide on how to integrate JointJS+ into your Svelte application? Follow our tutorial on Svelte and JointJS+ integration. For more examples, check out our Github repository.

Salesforce Lightning mind map

For developers exploring the Salesforce Lightning framework, seamless integration with JointJS+ is at your fingertips. The powerful and user-centric Salesforce Lightning framework works perfectly with JointJS+, enabling developers to create cutting-edge mind map solutions effortlessly. By harnessing the capabilities of the Salesforce Lightning framework in combination with JointJS+, developers can unlock enhanced efficiency and interactivity in their mind map applications.

🔗 Interested in a step-by-step guide on how to integrate JointJS+ into your Lightning application? Follow our tutorial on Lightning and JointJS+ integration.

Ready to take the next step?

Modern development is not about building everything from scratch. The JointJS team equips you with plenty of ready-to-use demo apps that can serve as a boilerplate and radically reduce your development time. Start a free 30-day JointJS+ trial, get fully typed source code of the mind map application, and go from zero to a fully functional app in no time.

Speed up your development with a powerful library