mind_map_flutter 1.0.1 copy "mind_map_flutter: ^1.0.1" to clipboard
mind_map_flutter: ^1.0.1 copied to clipboard

A powerful, feature-rich mind mapping library for Flutter. Create interactive, customizable mind maps with drag-and-drop, undo/redo, themes, and export to PNG/JSON.

[Mind Map Demo]

Mind Map Flutter #

pub package

A Flutter mind map library for building interactive, editable mind maps with themes, history, and export support.

Language: English | 简体中文

Features #

  • Editable tree nodes with drag-and-drop reorganization
  • Rich node styling: text color, background, font, tags, icons, hyperlinks, images
  • Arrows and summaries for cross-branch relationships and grouping
  • Undo/redo history and clipboard copy/paste
  • Focus mode, zoom/pan, fit-to-view, and center-on-node
  • JSON / PNG export
  • Built-in light and dark themes, plus custom themes
  • i18n for built-in labels (MindMapLocale.auto/zh/en)
  • Cross-platform Flutter support (Android, iOS, Web, Windows, macOS, Linux)

Installation #

dependencies:
  mind_map_flutter: <latest-version>
flutter pub get

Quick Start #

import 'package:flutter/material.dart';
import 'package:mind_map_flutter/mind_map_flutter.dart';

void main() {
  runApp(const MaterialApp(home: MindMapPage()));
}

class MindMapPage extends StatelessWidget {
  const MindMapPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Mind Map')),
      body: MindMapWidget(
        initialData: MindMapData(
          nodeData: NodeData.create(
            topic: 'Central Topic',
            children: [
              NodeData.create(topic: 'Branch A'),
              NodeData.create(topic: 'Branch B'),
            ],
          ),
          theme: MindMapTheme.light,
        ),
      ),
    );
  }
}

Controller Usage #

late final MindMapController controller;

@override
void initState() {
  super.initState();
  controller = MindMapController(
    initialData: MindMapData(
      nodeData: NodeData.create(topic: 'Project'),
      theme: MindMapTheme.light,
    ),
    config: const MindMapConfig(
      allowUndo: true,
      enableKeyboardShortcuts: true,
      enableContextMenu: true,
      enableDragDrop: true,
      minScale: 0.1,
      maxScale: 5.0,
      maxHistorySize: 50,
      locale: MindMapLocale.auto,
    ),
  );

  controller.eventStream.listen((event) {
    if (event is FinishEditEvent) {
      debugPrint('Edited: ${event.nodeId} -> ${event.newTopic}');
    }
  });
}

More Examples #

Add and update nodes #

final rootId = controller.getData().nodeData.id;

controller.addChildNode(rootId, topic: 'Todo');
final newNodeId = controller.getSelectedNodeIds().first;

controller.updateNodeTopic(newNodeId, 'This Week');
controller.addSiblingNode(newNodeId, topic: 'Next Week');
controller.centerOnNode(newNodeId);

Export JSON and PNG #

import 'dart:io';

final jsonText = controller.exportToJson();
await File('mind_map.json').writeAsString(jsonText);

final pngBytes = await controller.exportToPng(pixelRatio: 2.0);
await File('mind_map.png').writeAsBytes(pngBytes);

Note: exportToPng() should be called after MindMapWidget is mounted and painted.

Acknowledgements #

This project was written entirely with AI assistance.

Special thanks to:

  • Codex
  • Kiro
  • Claude Code
  • Mind Elixir
2
likes
0
points
192
downloads

Publisher

unverified uploader

Weekly Downloads

A powerful, feature-rich mind mapping library for Flutter. Create interactive, customizable mind maps with drag-and-drop, undo/redo, themes, and export to PNG/JSON.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, uuid, web

More

Packages that depend on mind_map_flutter