This is a solution to the Interactive card details form challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
Users should be able to:
- Fill in the form and see the card details update in real-time
- Receive error messages when the form is submitted if:
- Any input field is empty
- The card number, expiry date, or CVC fields are in the wrong format
- View the optimal layout depending on their device's screen size
- See hover, active, and focus states for interactive elements on the page
- Solution URL: Github
- Live Site URL: GithubPages
- Semantic HTML5 markup
- CSS
- Flexbox
- Mobile-first workflow
- Git
- React - JS library
- Github Pages
The pseudo-class :invalid to use input validation to apply a style to another element:
input:invalid[focused="true"] ~ span {
display: block;
}
<span className="input__error--text">{errorMsg}</span>
The useContext was the tool that I used to share state and functions with other components in different files, learned how to create the provider, and consume the context where it's needed.
import React, { useState, createContext } from "react";
export const InfoContext = createContext();
- managing state
- react hooks
- form validation
- How to do input masks[PTBR] - This helped me create the mask used in the card number.
- React form validation - This was the approach that I used to implement the form validation.
- React hook useContext - Great video explaing the useContext hook.
- Frontend Mentor - @allfigueiredodev
Shout out to those people creating content to help others make their way into development.
- Frontend Mentor - Frontend Mentor
- Fernando Daciuk - queroser.ninja - Fernando Daciuk
- Lama Dev - Lama Dev
- Simo Edwin - developedbyed