Skip to content

A modern, interactive drag-and-drop notes application built with React. Features include smooth animations, dark mode toggle, collision detection, and persistent local storage. Perfect for organizing thoughts with a beautiful, user-friendly interface.

Notifications You must be signed in to change notification settings

akashasahu07/draggable-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✨ Draggable Notes

Draggable Notes Version License

A beautiful, interactive note-taking app with drag & drop functionality, dark mode, and smooth animations!

Demo β€’ Installation β€’ Usage β€’ Tech Stack

πŸ“Έ Screenshots

Light Mode

Light Mode Screenshot

Dark Mode

Dark Mode Screenshot

✨ Features

🎯 Drag & Drop - Freely move notes anywhere on the canvas
πŸŒ“ Dark Mode - Toggle between light and dark themes
πŸ’Ύ Local Storage - All notes persist across sessions
🚫 Collision Detection - Notes automatically avoid overlapping
🎨 Animated Bubbles - Beautiful floating background animations
πŸ“Œ Pin Icon - Auto-added to every note
❌ Easy Delete - Remove notes with a single click
⚑ Smooth Animations - Gorgeous transitions and hover effects
πŸ“± Responsive Design - Works on all screen sizes

πŸš€ Installation

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Steps

  1. Clone the repository
git clone https://github.com/akashasahu07/draggable-notes.git
cd draggable-notes
  1. Install dependencies
npm install
  1. Start the development server
npm start
  1. Open your browser
http://localhost:3000

πŸ’» Usage

  1. Add a Note: Type in the input box and click "Add Note" or press Enter
  2. Drag Notes: Click and hold any note to drag it around
  3. Delete Notes: Click the ❌ button on any note to remove it
  4. Toggle Dark Mode: Click the πŸŒ™/β˜€οΈ button in the top right
  5. Auto-Save: All changes are automatically saved to localStorage

πŸ› οΈ Tech Stack

Languages & Frameworks

React JavaScript CSS3 HTML5

Libraries & Tools

Lucide React Node.js npm Git VS Code

πŸ“‚ Project Structure

draggable-notes/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ index.html
β”‚   └── favicon.ico
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ App.js          # Main component
β”‚   β”œβ”€β”€ App.css         # Styles
β”‚   β”œβ”€β”€ index.js        # Entry point
β”‚   └── index.css       # Global styles
β”œβ”€β”€ package.json
└── README.md

🎨 Key Features Explained

Drag & Drop Implementation

  • Uses onMouseDown, onMouseMove, and onMouseUp events
  • Calculates offset to maintain grip point
  • Bounds checking to keep notes within container

Collision Detection

  • Calculates bounding rectangles for each note
  • Checks for overlaps with padding
  • Automatically repositions overlapping notes

Dark Mode

  • Toggle state saved in localStorage
  • Smooth CSS transitions between themes
  • Dynamic class switching

Local Storage

  • Auto-saves notes on every change
  • Loads saved notes on app mount
  • Persists dark mode preference

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Your Name

Instagram GitHub LinkedIn Twitter Portfolio

🌟 Show Your Support

Give a ⭐️ if you like this project!

πŸ“ž Contact

Have questions or suggestions? Feel free to reach out!

πŸ“§ Email: akashasahu2001@gmail.com πŸ“± Instagram: @flashcode07

Made with ❀️ and React

🎯 Roadmap

  • Add note colors customization
  • Implement search functionality
  • Add export/import notes feature
  • Add rich text editor
  • Implement categories/tags
  • Add cloud sync feature
  • Mobile app version

πŸ“Š Stats

GitHub Stars GitHub Forks GitHub Watchers


πŸ’– Thank you for checking out this project!

If you found this helpful, please consider:

  • ⭐ Starring the repository
  • 🍴 Forking the project
  • πŸ“’ Sharing it with others
  • πŸ› Reporting bugs
  • πŸ’‘ Suggesting new features

Happy Coding! πŸš€

About

A modern, interactive drag-and-drop notes application built with React. Features include smooth animations, dark mode toggle, collision detection, and persistent local storage. Perfect for organizing thoughts with a beautiful, user-friendly interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published