Enabling data entry
Users of our app will need to enter their email and password to log in, and then a description, due date, and completion for their to-do tasks. These fields will need to be grouped into forms; building forms with a good user experience takes a lot of effort as the form must be validated and the touched state, error state, and focused state must be managed for each field and the form itself.
Form input states
A form input box will need to display a variety of different states to help the user understand how it is used and when there is an issue. To start, the input will be in an empty state with no value and no error. This is important as the input should not show an error until the user touches/interacts with it. Then, while the user is interacting with it, the input should show that it is focused. Finally, after the input has been touched, if the value doesn’t validate, it needs to show an error state.
We’ll use Formik (formik.org) to manage...