vue-fluid-dnd

0

A vue3 drag and drop library to sort all kind of lists. ⭐️ Star to support our work!

Miscellaneous

dnd
vue3
typescript
drag-and-drop

Icon
Vue Fluid DnD

npm bundle size license version GitHub issues GitHub stars twitter test_coverage

Vue Fluid DnD is a fluid, smooth and versatil drag and drop library for lists on Vue 3. It's alightweight tool ~7 Kb (gzip) with no depenencies. This library is a Vue Draggable Next alternative if you looking for a better ui experience.

🧰 Features

  • βœ… Fully customizable 🎨.
  • βœ… Zero dependencies πŸͺΆ.
  • βœ… Work with horizontal➑️and vertical list :arrow_down:.
  • βœ… Mouse 🐭 and touch πŸ‘‰πŸ“± (mobile, tablet and so on) support.
  • βœ… Nice documentation πŸ“‘ and examples.
  • βœ… Fully tested πŸ§ͺ, typed and reliable.

✨ Inspirations

πŸš€ Getting Started

  1. Install vue-fluid-dnd:

    # with npm:
    npm i vue-fluid-dnd
    
    # with yarn:
    yarn add vue-fluid-dnd
    
    # with pnpm:
    pnpm i vue-fluid-dnd
    
  2. Import the vue composable

    import { useDragAndDrop } from "vue-fluid-dnd";
    
  3. Create a list that your want to sort an use useDragAndDrop

    // Each element have its own styles or classes and the draggable-id
    const listToSort = ref([
      {
        number: 1,
        style:
          "color: white; background-color: red; width: 50px; margin: 23px 0;",
      },
      //...
    ]);
    // create the parent element and set drag and drop configuration on the parent and children elements (creating events, statees, styles, etc) calling useDragAndDrop composable
    const { parent } = useDragAndDrop(listToSort);
    
  4. Create childrens

    <template>
       <div ref="parent" style="width: 40%; display: block">
          <div
             v-for="(element, index) in listToSort"
             :index="index"
             :style="element.style"
          >{{ element.number }}
          </div>
       </div>
    </template>
    
  5. Documentation

  • πŸ“š Check out all the docs.
  • πŸ› οΈ Edit the previous here.
  • πŸ“˜ See others examples here.

🀝 Contributing

If you're interested in contributing to vue-fluid-dnd, please read our contributing docs before submitting a pull request CONTRIBUTING.

πŸ”‘ License