Git Product home page Git Product logo

todo's Introduction

TODO App

This is a solution to the Todo app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.

Overview

The challenge

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
  • My Bonus: Persist todos and dark mode

Links

My process

Built with

  • React
  • Typescript
  • @hello-pangea/dnd - drag and drop for lists in React
  • Semantic HTML5 markup
  • CSS custom properties
  • Flexbox
  • Desktop first, CSS- mobile first workflow
  • Accessibility in mind

What I learned

{
  toDoArrDisplayed.map((toDo, idx) => (
    <Draggable draggableId={toDo.id} index={idx} key={toDo.id}>
      {(provided) => (
        <li
          {...provided.draggableProps}
          {...provided.dragHandleProps}
          ref={provided.innerRef}
          className="item"
        >
          <Item id={toDo.id} completed={toDo.completed} text={toDo.text} />
        </li>
      )}
    </Draggable>
  ));
}
  • Stopped forgeting to use the TS template for React (or so I hope ๐Ÿฅบ)
npx create-react-app my-app --template typescript
  • VoiceOver and Safari (Webkit) (macOS and iOS) remove list element semantics when list-style: none is used. Go to article
<ul role="list">
  <!-- add the list role to the <ul> -->
  <li>...</li>
  <li>...</li>
  <li>...</li>
  <!-- etc. -->
</ul>

todo's People

Contributors

kajadabrowska avatar

Watchers

 avatar

todo's Issues

Input used for a decorative element

The fake checkbox besides text input for a new todo should just be a div.

There is no semantic meaning in using a checkbox input, even if it is disabled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.