This is a solution to the Todo app challenge on Frontend Mentor.
Users should be able to:
- View the optimal layout for the app depending on their device's screen size
- See hover states for all interactive elements on the page
- Add new todos to the list
- Mark todos as complete
- Delete todos from the list
- Filter by all/active/complete todos
- Clear all completed todos
- Toggle light and dark mode
- Bonus: Drag and drop to reorder items on the list
- Solution URL: Frontend Mentor solution
- Live Site URL: Todo app Vercel
- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- Mobile-first workflow
- Next.js - React framework
- Sass with BEM - For styles
- Tests with jest and testing library
- @hello-pangea/dnd - Drag and drop library
This was my first project with unity tests. For improvement I think some test techniques are missing. Also some styles may be different, for example the add todo has a checkbox input and my project don't.
This is a Next.js project bootstrapped with create-next-app
.
- Criando lista Drag and Drop com React JS 🧨 - This video tutorial helped me with the drag and drop library.
- How to Implement Dark Mode in React/Next.js Using Sass - This is a video tutorial that helped me with the dark/light mode with sass.
- How to Implement Dark Mode in React/Next.js Using Sass - This is an article that guide me through testing concepts.
- Frontend Mentor - @yasminbraga