A feature-rich, persistent task list application with local storage, character counting, and intuitive task management.
-
Task Management:
- Add new tasks with validation
- Mark tasks as complete
- Delete tasks
- Edit tasks by double-clicking
- Duplicate task prevention
-
Persistent Storage:
- Automatically saves tasks to browser's localStorage
- Retrieves saved tasks on page reload
-
User Experience:
- Real-time character counter (1200 max)
- Visual feedback when approaching character limit
- Clean, responsive interface
- Empty state handling
-
Accessibility:
- Semantic HTML structure
- Keyboard-friendly controls
- Clear visual feedback
- HTML5
- CSS3 (Flexbox)
- JavaScript (ES6)
- Font Awesome Icons
- Web Storage API
-
Clone the repository:
git clone https://github.com/paulmagadi/task-list.git
-
Open in browser:
-
Navigate to the project directory
-
Open index.html in your preferred browser
-
Type your task in the input field (max 1200 characters)
-
Press Enter or click "Add" to submit
-
Click the checkbox to mark as complete
-
Click the trash icon to delete
-
Double-click any task to edit
todo-list/
├── index.html # Main HTML file
├── styles.css # CSS styles
├── script.js # JavaScript functionality
└── README.md # Documentation
You can easily customize the app by modifying:
-
Colors in styles.css
-
Character limit in script.js (line 118)
-
Icons by changing Font Awesome classes
-
Layout by adjusting the CSS flex properties
Contributions are welcome! Please follow these steps:
-
Fork the project
-
Create your feature branch (git checkout -b feature/AmazingFeature)
-
Commit your changes (git commit -m 'Add some amazing feature')
-
Push to the branch (git push origin feature/AmazingFeature)
-
Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
-
Font Awesome for the beautiful icons
-
Modern CSS techniques for responsive design
-
MDN Web Docs for JavaScript references
Paul Magadi | paulmagadi
A simple project to practice JavaScript DOM manipulation, localStorage, CRUD, and UI design. Feel free to contribute!