Password Strength Checker In HTML, CSS & JavaScript


Hello, guys hope you all are well. Today, we are going to learn Password Strength Checker In HTML, CSS & JavaScript.

Password Strength Checker is the simple program that can tests our password and shows how strong our password is.

Let's have a look There are three input fields with some characters, numbers and symbols. As you can see the first field shows our password is weak because i have used only alphabet letters, the second field shows the entered password is medium because I have added some numbers with alphabet letters and the last input field shows that our password is strong because I have entered alphabets, numbers, and special characters.

As we know, to create a strong password we need to combine alphabets (it can be capital letters and small letters), with some numbers (like 1,2,3....9), and some special characters (like @,! $,%,#,&,*). And our password length should be at least 6 or 8 characters minimum length.

Our Password Strength Checker program follows all the above rules.


Password Strength Checker In HTML, CSS & JavaScript | Video 





HTML 
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Password Strength Checker | Grapdroad</title>
    <!-- custom CSS -->
    <link rel="stylesheet" href="style.css">

    <!-- Fontawesome CDN -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" />

</head>
<body>
    <div class="wrapper">
        <h1> Password Strength Checker In HTML CSS & JavaScript</h1>

        <div class="input_box">
            <i class="fa-solid fa-eye-slash show_hide"></i>
            <input type="password" placeholder="Enter Password">
        </div>

        <div class="indicator">
            <div class="icon_text">
                <i class="fa-solid fa-circle error_icon"></i>
                <h5 class="text"> </h5>
            </div>
        </div>
    </div>

    <!-- custom JavaScript -->
    <script src="main.js"></script>
</body>
</html>
CSS 
  
:root
{
    --body-color:#2a83e8;

    --border-color:#d3d3d3;

    --eye-icon-color:#a6a6a6;

    --weak-pass-color:#ff6333;

    --medium-pass-color:#cc8500;

    --strong-pass-color:#22c32a;
}

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body{
    display: flex;
    min-height: 100vh;
    background-color: var(--body-color);
    justify-content: center;
    align-items: center;
}

.wrapper{
    position: relative;
    max-width: 30em;
    width: 100%;
    background-color: #fff;
    border-radius: .5em;
    padding: 2em;
    box-shadow: -3px -3px 10px #00000040,
                 3px 3px 15px #00000040;
}

.wrapper h1{
    font-size: 1.5em;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: 1em;
    text-align: center;
    color: #2a83e8;
}

.input_box .show_hide{
    position: absolute;
    right: 1.5em;
    top: 50%;
    transform: translateY(-50%);
    color: var(--eye-icon-color);
    cursor: pointer;
    padding: .2em;
}

.input_box input{
    width: 100%;
    height: 3.3em;
    border: .1em solid var(--border-color);
    border-radius: .5em;
    font-size: 1.2em;
    font-weight: 500;
    color: #333;
    outline: none;
    padding: 0 50px 0 16px;
}

.wrapper .input_box{
    position: relative;
}

.indicator .icon_text{
    display: flex;
    align-items: center;
}


.icon_text .error_icon{
    margin-right: .5em;
}

.icon_text .text{
    font-size: 1em;
    font-weight: 500;
    letter-spacing: .1em;
}

.wrapper .indicator{
    display: none;
}

.wrapper .indicator.active{
    display: block;
    margin-top: 1em;
}


JavaScript
 
      
      const input = document.querySelector("input"),
      show_hide = document.querySelector(".show_hide"),
      indicator = document.querySelector(".indicator"),
      icon_text = document.querySelector(".icon_text"),
      text = document.querySelector(".text");


      show_hide.addEventListener("click",() =>{
        if(input.type == "password")
        {
            input.type = "text";
            show_hide.classList.replace("fa-eye-slash" ,"fa-eye");
        }

        else
        {
            input.type = "password";
            show_hide.classList.replace("fa-eye" ,"fa-eye-slash");
        }
      });



    let  alpha = /[a-zA-Z]/,
         number = /[0-9]/,
         specialchars = /[!,@,#,$,%,^,&,*(,),_,-,+,=,>,<,?,/,~]/;


    input.addEventListener("keyup", ()=>{
        indicator.classList.add("active");

        let val = input.value;

        if (val.match(alpha) || val.match(number) || val.match(specialchars)) 
        {
            text.textContent = "Password is weak";
            icon_text.style.color = " #ff6333";
            show_hide.style.color = " #ff6333";
            input.style.borderColor = "#ff6333";
        }

        if (val.match(alpha) && val.match(number) && val.length > 6) 
        {
            text.textContent = "Password is medium";
            icon_text.style.color = " #cc8500";
            show_hide.style.color = " #cc8500";
            input.style.borderColor = "#cc8500";
        }

        
        if (val.match(alpha) && val.match(number) && val.match(specialchars) && val.length > 6) 
        {
            text.textContent = "Password is strong";
            icon_text.style.color = " #22c32a";
            show_hide.style.color = " #22c32a";
            input.style.borderColor = "#22c32a";
        }


        if (val == "") {
        indicator.classList.remove("active");
        icon_text.style.color = " #a6a6a6";
        show_hide.style.color = " #a6a6a6";
        input.style.borderColor = "#a6a6a6";

        show_hide.classList.replace("fa-eye" ,"fa-eye-slash");


        }


    });
      
      


 

Post a Comment

0 Comments