A clean, responsive todo application built with vanilla HTML, CSS, and JavaScript.
- ✅ Add New Todos - Create tasks with title, description, and due date/time
- 📝 Manage Todos - View active tasks, mark as complete, edit, and delete
- 📁 Archive System - Completed tasks move to archived section
- 🔍 Search & Filter - Search through your active and archived todos
- 📱 Responsive Design - Works seamlessly on desktop and mobile
- 🔔 Browser Notifications - Get notified when tasks are completed or due soon
- ⏰ Due Date Reminders - Automatic notifications 10 minutes before due time
- 💾 Local Storage - All data persists in your browser
- ⌨️ Keyboard Shortcuts - Ctrl+N to add new todo, Escape to close modal
- 🎨 Modern UI - Clean, minimalistic design with smooth animations
- Clone or download this repository
- Open
index.htmlin your web browser - Start adding your todos!
- Click the "Add Todo" button
- Fill in the title (required)
- Optionally add a description
- Set a due date and time
- Click "Save Todo"
- Complete: Check the checkbox next to any todo
- Edit: Click the edit icon on any active todo
- Delete: Click the trash icon to remove a todo
- Search: Use the search bar to find specific todos
- Allow notifications when prompted for the best experience
- You'll receive alerts when:
- A todo is marked as completed
- A todo is due within 10 minutes
- HTML5 - Semantic markup and modern form elements
- CSS3 - Flexbox, Grid, animations, and responsive design
- Vanilla JavaScript - ES6+ features, local storage, notification API
- Service Worker - For better notification support and offline capabilities
- Chrome 60+
- Firefox 55+
- Safari 11+
- Edge 79+
- Data Persistence: Uses localStorage to save todos across browser sessions
- Responsive Design: Mobile-first approach with breakpoints for tablets and desktop
- Notifications: Uses the Web Notifications API with fallback for unsupported browsers
- Form Validation: Client-side validation with real-time error messages
- Accessibility: Semantic HTML, proper ARIA labels, and keyboard navigation support
funtodo2/
├── index.html # Main HTML file
├── styles.css # All styling and responsive design
├── script.js # Main application logic
├── sw.js # Service worker for notifications
└── README.md # This file
The application follows a clean, minimalistic design approach:
- Glass-morphism effects with backdrop blur and transparency
- Smooth animations for better user experience
- Intuitive navigation with clear visual feedback
- Color-coded status indicators for overdue and due-soon tasks
- Mobile-first responsive design ensuring usability across all devices
You can easily customize the app by modifying:
- Colors: Update the CSS color variables in
styles.css - Fonts: Change the font-family in the CSS
- Notification timing: Modify the reminder time in
script.js(currently 10 minutes) - Storage: Replace localStorage with a backend API for multi-device sync
Potential features for future versions:
- User accounts and cloud sync
- Todo categories and tags
- Recurring todos
- Priority levels
- Team collaboration features
- Dark/light theme toggle
- Export/import functionality
The app is optimized for mobile devices with:
- Touch-friendly buttons and inputs
- Responsive typography that scales with screen size
- Optimized modal dialogs for mobile screens
- Swipe gestures support (future enhancement)
Feel free to fork this project and submit pull requests for any improvements!
This project is open source and available under the MIT License.
Happy Todo-ing! 🎯