NavBar HTML CSS JS

by oraclepadawan

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>PlayStation</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="estilos.css">
</head>
<body>

    <nav>

        <h1>PlayStation</h1>

        <ul class="navi-ul">

            <a href="#"><i class="fa fa-home" aria-hidden="true"></i> Home</a>
            <a href="#"><i class="fa fa-gamepad" aria-hidden="true"></i> Home</a>
            <a href="#"><i class="fa fa-android" aria-hidden="true"></i> Home</a>
            <a href="#"><i class="fa fa-television" aria-hidden="true"></i> Home</a>
            <a href="#"><i class="fa fa-youtube" aria-hidden="true"></i> Home</a>
        </ul>

        <a href="#" class="icon">
            <i class="fa fa-bars"></i>
        </a>
    </nav>

    <script src="funcion.js"></script>
    
</body>
</html>

CSS

:root{
    --primary:rgb(64 66 136);
    --active2:#568eec;
    --white:#ffffff;
}

*{
    margin: 0;
    padding: 0;
    text-decoration: none;
    list-style: none;
    box-sizing: border-box;
}

body{
    font-family: Arial, Helvetica, sans-serif;
}

nav{
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--primary);
    color: var(--white);
    min-height: 4rem;
}

nav h1{
    padding-left: 1rem;
}

nav ul{
    display: flex;
}

nav ul a {
    color: var(--white);
    font-size: 1.1rem;
    padding: 0 1rem;
}

.icon{
    display: none;
    font-size: 2rem;
}

@media only screen and (max-width: 760px){
    .navi-ul{
        position: fixed;
        left: -100%;
        top: 5rem;
        flex-direction: column;
        background-color: #fff;
        width: 100%;
        text-align: left;
        transition: 0.5s;
    }

    .navi-ul.active{
        left:0;
        top: 4rem;
    }

    .nav-item{
        max-width: 2.5rem 0;
    }

    .icon{
        display: block;
        cursor: pointer;
        padding: .2rem;
        margin-right: 1rem;
        color: var(--white);
    }

    nav ul{
        flex-direction: column;
        background-color: var(--active2);
    }

    nav ul a {
        color: var(--primary);
        font-size: 1.5rem;
        padding: 1rem;
        transition: 0.3s;
    }

    nav a:hover{
        background-color: var(--primary);
        color: var(--white);
    }
}

JavaScript

const hamburguer = document.querySelector(".icon");
const navMenu = document.querySelector(".navi-ul");

hamburguer.addEventListener("click", responsive);

function responsive(){
    navMenu.classList.toggle("active");
}