Giter Site home page Giter Site logo

mkuczera / dnd-timeline Goto Github PK

View Code? Open in Web Editor NEW

This project forked from samuelarbibe/dnd-timeline

0.0 0.0 0.0 5.09 MB

A headless timeline library for React, based on dnd-kit

Home Page: https://samuel-arbibe.gitbook.io/dnd-timeline/

License: MIT License

Shell 0.56% JavaScript 8.05% TypeScript 91.39%

dnd-timeline's Introduction

dnd-timeline npm version

dnd-timeline: A headless timeline library, based on dnd-kit

  • Headless: dnd-timeline is a headless-ui library, and contains 0 styling, aside from functional styling (position, z-index, etc.).
  • Hook-based: exposes simple hooks like useItem and useRow, that should integrate seamlessly into your existing architecture.
  • Flexible: very slim and flexible by design. dnd-timeline exposes utility functions and positional styling, and you can use them in conjunction with you favorite libraries - styling libraries (MUI, tailwindcss, ant-design, etc.), and functional libraries (react-virtual, framer-motion, etc.)
  • Based on dnd-kit: all features exposed by the dnd-kit library are applicable to dnd-timeline.
  • Performant: renders only when needed. All the intermediate states and animations are done using css transformations, and require 0 re-renders.
  • RTL: dnd-timeline nativly supports RTL. simply declare one of the parent divs as rtl with dir="rtl", and thats it.

2023-07-09 20 31 30

Installation

The library requires a single peer-dependency: react

To install it, run:

npm install react

Then, you can install the library itself:

npm install dnd-timeline

Features

  • Stacked rows: Items whose relevance's intersect are stacked on top of each other inside the same row.
  • Snap to Grid: Items snap into a pre-defined grid when dropped, that can be changed according to zoom level.
  • Time Axis: An optional time axis can be displayed, with different markers according to zoom level.
  • Time Cursor: An optional time cursor indicating the current time on top of the timeline.
  • Pan and zoom: You can zoom by holding Ctrl and scrolling using the mouse wheel, and pan by holding Ctrl + Shift scrolling using the mouse wheel. 2023-07-09 20 27 50
  • Dynamically disabled rows and items: Items and Rows can be disabled according to a client-defined logic. 2023-07-09 20 29 15
  • Integration with external DnD: The timeline can be used in conjunction with other DnD interactions in you app, to drag items into and outside of the timeline. 2023-07-09 20 30 25

Contribute

This project uses turborepo to manage the monorepo.

If you want to develop on your local machine, simply clone the project, and run

npm install
npm run dev

And all the examples will run on your local machine, likned to the local instance of the library.

Any changes made to the library will be reflected in the examples.

dnd-timeline's People

Contributors

samuelarbibe avatar amitkabya avatar orgissin 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.