Skip to content

KatuGT/interactive-card-challange

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Frontend Mentor - Interactive card details form solution

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.

Table of contents

Overview

The challenge

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

Screenshot

tablet

Links

My process

Built with

  • Semantic HTML5 markup
  • CSS custom properties
  • Flexbox
  • Mobile-first workflow
  • React - JS library
  • SCSS - For styles

What I learned

.card-wrapper {
  background-image: url(../../images/bg-main-mobile.png);
  height: 64vw;
  background-repeat: no-repeat;
  background-position-y: 0vw;
  background-size: cover;
  margin-bottom: 5rem;

  img.img-tarjeta {
    width: 100%;
  }

  .card {
    position: relative;
  }

  & .back-card {
    width: 76%;
    right: -21%;
    top: 8vw;

Position Absolute it nos always the best way to position "floating" elements.

const NormaliceNumber = (value, length) => {
  const newValue = value?.replace(/[^\dA-Z]/g, '').substr(0, length).trim().padStart(length, '0') || '';

  return newValue;
};

.padStart() new adition yo my knowledge

Continued development

I need to go deep in form validations and how to control input values.

Useful resources

  • normalizeCardNumber - This helped me for normalizing tha card number with the pattern #### #### #### ####

Author