Design comparison
Solution retrospective
This app features
- Mobile responsive.
- Drag and drop.
- Toggle light and dark mode.
- Add/Delete/Mark todos to the list.
- Filter by All/Active/Complete todos.
- Adding a new todo with ticked checkbox will route you to Completed.
- Adding a new todo with unticked checkbox will route you to Active.
- Uses localstorage
- Doesn't require page reload to display data.
- What I find difficult while building this project and most proud of
There's a particular part of my css that applies a border gradient color as you hover on an unticked checkbox, and I'm trying to work it exactly as the design, It's a bit tricky as I'm not yet familiar with linear and radial gradients but I somehow achieved it. If you're reading this and not able to achieve it, Check the code snippet below:
.round-checkbox input[type="checkbox"]:not(:checked) + label:hover {
border: 1px solid transparent;
background-image: linear-gradient(var(--foreground), var(--foreground)), radial-gradient(circle at top left,hsl(192, 100%, 67%), hsl(280, 87%, 65%));
background-origin: border-box;
background-clip: content-box, border-box;
display: inline-block;
}
- Which areas of my code I'm unsure of.
Probably where I didn't include drag and drop to Active and Completed page. Do I have to? I guess so. but for now I'll leave it as it is.
If someone would like to check my code and give me feedback, feel free to. I tried my best to put best practices.
Community feedback
- @Monzer65Posted over 1 year ago
Hello bro. I used your app on mobile, I couldn't find out how to add todo! Neither the enter button nor the add button on screen doesn't work. Please provide a placeholder for todo input instead of hard text(Create new Todo). However, the drag and drop is smooth as hell on mobile, I like it 👍 Good luck
Marked as helpful1@rfcho322Posted over 1 year ago@Monzer65 It is looking much user-friendly now, I know something is a bit off and that's it I'm missing a placeholder, Thank you for your advice.
1 - @0xabdulkhaliqPosted over 1 year ago
Hello there 👋. Congratulations on successfully completing the challenge! 🎉
- I have other recommendations regarding your code that I believe will be of great interest to you.
HTML 🏷️:
- This solution generates accessibility error reports, "All page content should be contained by landmarks" is due to
non-semantic
markup, which lack landmark for a webpage
- So fix it by replacing the
<div class="container-fluid">
element with the semantic element<main>
along with<div class="footer">
into a<footer>
element in yourindex.html
file to improve accessibility and organization of your page.
- What is meant by landmark ?, They used to define major sections of your page instead of relying on generic elements like
<div>
or<span>
- They convey the structure of your page. For example, the
<main>
element should include all content directly related to the page's main idea, so there should only be one per page
LABELS 🔖:
input
elements wants alabel
associated with it
- A
<label>
is used to create a caption for a form control. The<label>
can be associated with a form control either implicitly by placing the control element inside the label element, or explicitly by using the for attribute
- Effective form
labels
are required to make forms accessible. The purpose ofform
elements such ascheckboxes
,radio
buttons,input
fields, etc, is often apparent to sighted users
- Even if the
form
element is not programmatically labeled. Screen readers users require useful formlabels
to identifyform
fields.
- Example:
<label class="large-label" for="your-name"> Your name <input id="your-name" name="your-name" type="text" /> </label>
.
I hope you find this helpful 😄 Above all, the solution you submitted is great !
Happy coding!
Marked as helpful1@rfcho322Posted over 1 year ago@0xAbdulKhalid Thanks for the feedback, I updated my code and applied the required landmarks, and the warnings have been resolve. I have left with no errors now.
0
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord