A clean, minimal task manager built with vanilla HTML, CSS, and JavaScript. Features priority-based task organization, due date tracking with overdue detection, smooth dark/light theme switching, and persistent storage — no frameworks, no dependencies.
View Live Demo | GitHub Repository
- ✅ Add, complete & delete tasks with a single click
- 🎯 Priority levels — High, Medium, and Low with color-coded badges
- 📅 Due date tracking with automatic overdue detection
- 🌙 Dark / Light theme toggle with preference saved to localStorage
- 💾 Persistent storage — tasks survive page refreshes via localStorage
- 🔍 Filter tasks by status (All, Pending, Done) or priority level
- 📊 Live stats — total, pending, and completed task counts
- ⌨️ Keyboard support — press Enter to add a task
- 📱 Responsive design — works on desktop and mobile
- HTML5 — Semantic structure
- CSS3 — Custom properties, transitions, animations
- Vanilla JavaScript — No frameworks or dependencies
- localStorage API — Client-side data persistence
- Google Fonts — Space Mono + DM Sans
task.manager/
│
├── index.html # App structure and markup
├── styles.css # All styling, CSS variables, animations
├── script.js # App logic, localStorage, rendering
└── README.md # Project documentation
No installations required. Just a modern web browser.
-
Clone the repository
git clone https://github.com/NTgGamer1/Task.Manager.git
-
Navigate to the project folder
cd Task.Manager -
Open in browser
open index.html
Or simply drag
index.htmlinto your browser.
Tip: For the best experience, use a local server like Live Server in VS Code.
- Type your task in the input field
- Select a priority level (High / Medium / Low)
- Optionally pick a due date
- Click + ADD or press Enter
| Action | How |
|---|---|
| Complete a task | Click the circular checkbox on the left |
| Delete a task | Click the ✕ button on the right |
| Filter tasks | Click any filter pill (All, Pending, Done, High, Medium, Low) |
| Toggle theme | Use the 🌙 / ☀️ toggle switch in the header |
Tasks with a due date in the past are automatically highlighted in red with an "· overdue" label.
The app supports two themes toggled via a switch in the header:
| Token | Dark | Light |
|---|---|---|
| Background | #111111 |
#f4f3ef |
| Surface | #1a1a1a |
#ffffff |
| Accent | #c8f05a |
#2d6a1f |
| Text | #e8e8e8 |
#111111 |
All theme values are managed through CSS custom properties on the :root element, making it easy to customize or extend.
Tasks and theme preference are saved to the browser's localStorage:
| Key | Value |
|---|---|
tm_tasks |
JSON array of task objects |
tm_theme |
"dark" or "light" |
Task object structure:
{
"id": 1700000000000,
"title": "Design the landing page",
"priority": "high",
"due": "2024-12-01",
"done": false
}- Task categories / labels
- Search and keyword filter
- Export tasks to CSV
- Subtasks / checklists
- Recurring tasks
- Notification Alerts
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Commit your changes
git commit -m "Add: your feature description" - Push to your branch
git push origin feature/your-feature-name
- Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
Nikhil Maurya Sonu Kumar Sharma