/beautiful-react-diagrams

💎 A collection of lightweight React components and hooks to build diagrams with ease 💎

Primary LanguageJavaScriptMIT LicenseMIT

CI/CD License: MIT Coverage Status npm GitHub stars

beautiful-react-diagrams


A tiny collection of lightweight React components for building diagrams with ease

🌟 Live playground here 🌟

Diagrams banner

💡 Why?

Javascript diagramming libraries are often difficult to integrate in React projects.
Different patterns not always fit the React nature and having a component's state in in sync with an external diagramming library might be quite difficult especially when the latter had been built in a different paradigm (such as MVC, for example).

For this reason we created beautiful-react-diagrams an easy-to-customise functional diagramming library to build diagrams with ease.

🎓 Principles

  • Lightweights: import nothing but a single lightweight javascript.
  • Controlled components: exports controlled components only.
  • Renderers: the involved components can be easily replaced with your own by using the renderer props.
  • Easy to style: built using CSS vars only.

☕️ Features

  • Concise API
  • Small and lightweight
  • Easy to use
  • Easy to customise

🌟 Live playground here 🌟

Contributing

Contributions are very welcome and wanted.

To submit your custom pull request, please make sure your read our CONTRIBUTING guidelines.

Before submitting a new pull request, please make sure:

  1. You have updated the package.json version and reported your changes into the CHANGELOG file
  2. make sure you run npm run lint, npm build and then npm test before submitting your merge request.
  3. make sure you've added the documentation of your changes.
  4. if you've changed the signature of a component, please make sure you've updated the index.d.ts file.

Versioning

This library follows the semver versioning standard. Pre-release commits on the master branch, including merge commits, lead to automated publication to NPM under the next tag. Pre-release version numbers must follow the <major>.<minor>.<patch>-<tag>.<number>, such as 5.1.0-rc.0.

Credits

This library is provided and sponsored by:

Beautiful interactions

As part of our commitment to support and contribute to the open source community.


This library logo has been created using images published by the user Freepik on www.flaticon.com