Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

A Drag and drop To-do App

rfcho322 220

@rfcho322

Desktop design screenshot for the Todo app coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
3intermediate
View challenge

Design comparison


SolutionDesign

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

Monzer65 260

@Monzer65

Posted

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 helpful

1

rfcho322 220

@rfcho322

Posted

@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

@0xabdulkhaliq

Posted

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 your index.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 a label 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 of form elements such as checkboxes, 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 form labels to identify form 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 helpful

1

rfcho322 220

@rfcho322

Posted

@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 GitHub
Discord logo

Join 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