Skip to content

A responsive Todo App built with **Vue 3 Composition API**, featuring drag-and-drop task management and theme switching. This project demonstrates modern Vue patterns including reactive state management, component-based architecture, and native browser APIs for interactive reordering. Includes toast notifications and filterable task views

Notifications You must be signed in to change notification settings

ArzhangAmin/Vue3Todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Vue 3 Todo App (Composition API)

Vue 3 Composition API License

A feature-rich todo application built with Vue 3's Composition API featuring:

  • Drag-and-drop task reordering
  • Dark/light mode toggle
  • Real-time filtering (All/Active/Completed)
  • Interactive toast notifications

✨ Features

Feature Implementation Details
Task Management Add, complete, delete and reorder tasks
Theme Switching CSS variables with dynamic toggling
Drag-and-Drop Native HTML5 Drag API implementation
Notifications vue-toastification for user feedback

πŸ›  Tech Stack

  • Vue 3 - Composition API
  • Vue-toastification - Beautiful notifications
  • CSS Variables - Theme switching
  • HTML5 Drag API - Native reordering

πŸš€ Installation

  1. Clone the repository:
git clone https://github.com/ArzhangAmin/vue3-todo-app.git

2. Install dependencies:
npm install

3. Run development server:
npm run dev


πŸ“‚ Project Structure
src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ AppHeader.vue     # Header with theme toggle
β”‚   β”œβ”€β”€ AddTodo.vue       # Task input component
β”‚   β”œβ”€β”€ Todo.vue          # Individual todo item
β”‚   └── AppFooter.vue     # Footer instructions
β”œβ”€β”€ App.vue               # Main application
└── main.js               # Vue initialization


πŸ’‘ Key Code Examples
Drag-and-Drop Implementation:

function drop(index) {
  const newElement = todos.value.splice(dragging.value, 1)[0]
  todos.value.splice(index, 0, newElement)
}

Theme Switching:
const changeTheme = () => {
  document.body.classList.toggle('light', defaultTheme.value === 'light')
}

πŸ“ License
MIT Β© [ArzhangAmin]

About

A responsive Todo App built with **Vue 3 Composition API**, featuring drag-and-drop task management and theme switching. This project demonstrates modern Vue patterns including reactive state management, component-based architecture, and native browser APIs for interactive reordering. Includes toast notifications and filterable task views

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published