A modern drawing framework for building an all-in-one whiteboard tool
for interactive drawing features such as mind maps, flowcharts, and freehand drawing.
Plait is a modern drawing framework that provides a plugin mechanism, allowing developers to extend drawing functionalities through plugins. It is particularly suitable for the development of interactive whiteboard tools.
Plait does not rely on any frontend UI framework at its core, but it provides solutions for integrating with mainstream frontend UI frameworks to ensure a good development experience for upper-layer developers and to reuse mainstream framework components.
Provides basic board capabilities, such as zooming in, zooming out, and moving
Plugin mechanism
Data model (supports collaboration)
Basic drawing utility functions
UI Framework Integration
The implementation of the framework requires components from frontend UI frameworks as carriers. This ensures that the development of drawing functionalities follows mainstream development patterns (data-driven). Currently, integration with Angular and React frameworks is supported.
Text rendering in the plait is based on the Slate framework, enabling rich text rendering and editing on the board. Slate is an excellent rich text editor framework, and Plait was inspired by the Slate framework in its design
Packages
Package Name
Description
@plait/core
Framework core: plugin mechanism design, providing data models, data transformation functions, zooming, scrolling, etc
@plait/common
Common functionalities for interactive drawing, text rendering, and editing
@plait/text-plugins
General text extension functionalities, UI framework-independent, relies on the Slate rich text editor framework
@plait/mind
Mind map plugin, based on an independent automatic layout algorithm, supports: logical layout, standard layout, indent layout
Everyone is welcome to contribute to Plait and build a new generation of drawing framework together. Any Issue or PR is acceptable, and we hope to get your ⭐️ support.