Giter Club home page Giter Club logo

vue-flow's Introduction

Vue Flow ๐ŸŒŠ

vue flow top-language vulnerabilities GitHub code size in bytes GitHub last commit

Vue Flow: A highly customizable Vue 3 Flowchart component.

With Vue Flow you can build your own, customized node-based applications like static diagrams or even more complex and interactive editors!

You can find a detailed explanation on how to get started in the documentation or check the examples.

โญ๏ธ Features

  • ๐Ÿ‘ถ Easy setup: Get started hassle-free - Built-in zoom- & pan features, element dragging, selection and much more

  • ๐ŸŽจ Customizable: Use your own custom nodes, edges, connection lines and expand on the Vue Flows functionality

  • ๐Ÿš€ Fast: Tracks changes reactively and only re-renders the appropriate elements

  • ๐Ÿงฒ Utils & Composition: Comes with graph helper and state composable functions for advanced uses

  • ๐Ÿ“ฆ Additional Components:

    • ๐Ÿ–ผ Background: With two built-in patterns and some configuration options like height, width or color.

    • ๐Ÿงญ Minimap: Shows current nodes in a small map shape in the bottom right corner

    • ๐Ÿ•น Controls: Control zoom behavior from a panel on the bottom left

  • ๐Ÿฆพ Reliable: Fully written in TypeScript

๐Ÿ›  Setup

$ npm i @braks/vue-flow

# or
$ yarn add @braks/vue-flow

๐ŸŽฎ Quickstart

A flow consists of nodes and edges (or just nodes). Together we call them elements.

Each element needs a unique id.

A node also needs a xy-position. An edge needs a source (node id) and a target (node id).

A simple setup could look like this:

<!-- Flowchart.vue -->
<template>
  <VueFlow v-model="elements"></VueFlow>
</template>
<script setup>
import { VueFlow } from '@braks/vue-flow'

const elements = ref([
  {
    id: '1',
    label: 'node 1',
    position: { x: 100, y: 100 },
  },
  {
    id: '2',
    label: 'node 2',
    position: { x: 100, y: 200 },
  },
  {
    id: 'e1-2',
    target: '2',
    source: '1',
  },
])
</script>

Make sure to import the necessary styles:

/* main.css */

/* import the required styles */
@import "@braks/vue-flow/dist/style.css";

/* import the default theme (optional) */
@import "@braks/vue-flow/dist/theme-default.css";

โ–ธ Vue 2

This library doesn't work with Vue2.

๐Ÿงช Development

# start (dev)
$ yarn dev

# build dist
$ yarn build

โญ Stargazers

Thanks for your star!

Stargazers repo roster for @braks/vue-flow

๐Ÿ’ Special Thanks

This project is built with

  • React Flow

    • Vue flow is heavily based on webkid's react flow. I wholeheartedly thank them for their amazing work! Without them this vue flow would not exist. Please consider donating to them!
  • D3.js

    • D3 makes all the zoom and pan actions in the graph possible. Check it out to see if you can find other uses for it too!
  • VueUse

    • VueUse is a collection of helpful utilities/composables that have been battle tested.

vue-flow's People

Contributors

bcakmakoglu avatar poerlang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.