Lamp Animation using HTML and CSS - Coding Torque

Lamp Animation using HTML and CSS - Coding Torque

Lamp Animation using CSS

Hello Guys! Welcome to Coding Torque. In this blog, We are going to make a lamp animation effects using CSS. The lamp also consists of neomorphic and nuclear effects. We can use this effect to showcase our creativity and put it on our portfolio. This will be a step-by-step guide including HTML and CSS. Let's get started 🚀.

Here's the HTML Code

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Lamp Animation using CSS - @code.scientist x @julianvelez1997</title>
</head>

<body>
    <div class="lamp">
        <div class="top-cover"></div>
        <div class="bubble1"></div>
        <div class="bubble2"></div>
        <div class="bubble3"></div>
        <div class="blob1">
            <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" xmlns="http://www.w3.org/2000/svg"
                viewBox="0 0 310 350">
                <path
                    d="M156.4,339.5c31.8-2.5,59.4-26.8,80.2-48.5c28.3-29.5,40.5-47,56.1-85.1c14-34.3,20.7-75.6,2.3-111  c-18.1-34.8-55.7-58-90.4-72.3c-11.7-4.8-24.1-8.8-36.8-11.5l-0.9-0.9l-0.6,0.6c-27.7-5.8-56.6-6-82.4,3c-38.8,13.6-64,48.8-66.8,90.3c-3,43.9,17.8,88.3,33.7,128.8c5.3,13.5,10.4,27.1,14.9,40.9C77.5,309.9,111,343,156.4,339.5z" />
            </svg>
        </div>
        <div class="blob2">
            <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" xmlns="http://www.w3.org/2000/svg"
                viewBox="0 0 310 350">
                <path
                    d="M156.4,339.5c31.8-2.5,59.4-26.8,80.2-48.5c28.3-29.5,40.5-47,56.1-85.1c14-34.3,20.7-75.6,2.3-111  c-18.1-34.8-55.7-58-90.4-72.3c-11.7-4.8-24.1-8.8-36.8-11.5l-0.9-0.9l-0.6,0.6c-27.7-5.8-56.6-6-82.4,3c-38.8,13.6-64,48.8-66.8,90.3c-3,43.9,17.8,88.3,33.7,128.8c5.3,13.5,10.4,27.1,14.9,40.9C77.5,309.9,111,343,156.4,339.5z" />
            </svg>
        </div>
        <div class="blob3">
            <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" xmlns="http://www.w3.org/2000/svg"
                viewBox="0 0 310 350">
                <path
                    d="M156.4,339.5c31.8-2.5,59.4-26.8,80.2-48.5c28.3-29.5,40.5-47,56.1-85.1c14-34.3,20.7-75.6,2.3-111  c-18.1-34.8-55.7-58-90.4-72.3c-11.7-4.8-24.1-8.8-36.8-11.5l-0.9-0.9l-0.6,0.6c-27.7-5.8-56.6-6-82.4,3c-38.8,13.6-64,48.8-66.8,90.3c-3,43.9,17.8,88.3,33.7,128.8c5.3,13.5,10.4,27.1,14.9,40.9C77.5,309.9,111,343,156.4,339.5z" />
            </svg>
        </div>
        <div class="bottom-cover"></div>
    </div>
    <div class="lamp-bottom"></div>
</body>

</html>

Output till now

Lamp Animation using HTML and CSS - Coding Torque

Let's understand CSS Part

In the below CSS code,

  1. We declare a * selectors to set the font Poppins that we have imported in our head tag.
  2. Next we declare a body selector which consists of styles for dark mode and aligns all elements in the body to the center.
  3. We have used css animation to move the blobs.
body {
    background: rgb(0, 49, 20);
    background: radial-gradient(circle,
            rgba(0, 49, 20, 1) 10%,
            rgba(0, 16, 8, 1) 25%,
            rgba(0, 0, 0, 1) 100%);
    margin: 0;
    height: 100vh;
    width: 100vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.lamp {
    height: 23rem;
    width: 12rem;
    position: relative;
    background: rgb(36, 154, 97);
    background: linear-gradient(90deg,
            rgba(36, 154, 97, 1) 10%,
            rgba(56, 170, 113, 1) 30%,
            rgba(36, 154, 97, 1) 55%);
    clip-path: polygon(30% 0, 70% 0, 100% 65%, 70% 100%, 30% 100%, 0 65%);
    z-index: 20;
    border-radius: 50%;
}

.top-cover,
.bottom-cover {
    width: 100%;
    height: 17.5%;
    position: absolute;
}

.top-cover {
    background: rgb(24, 24, 24);
    background: linear-gradient(90deg,
            rgba(24, 24, 24, 1) 30%,
            rgba(37, 41, 36, 1) 45%,
            rgba(24, 24, 24, 1) 100%);
}

.bottom-cover {
    background: rgb(35, 40, 33);
    background: linear-gradient(90deg,
            rgba(35, 40, 33, 1) 25%,
            rgba(42, 50, 41, 1) 45%,
            rgba(35, 40, 33, 1) 63%);
    top: 85%;
}

.lamp-bottom {
    width: 0;
    height: 0;
    border-left: 6rem solid transparent;
    border-right: 6rem solid transparent;
    border-top: 6rem solid rgba(35, 40, 33, 1);
    border-radius: 50%;
    transform: rotate(180deg);
    position: absolute;
    top: 70%;
}

.blob1,
.blob2,
.blob3 {
    position: absolute;
    top: 0;
    left: 0;
    fill: #00ff73;
    z-index: -1;
}

.blob1 {
    width: 150px;
    animation: move 8s ease-in-out infinite;
    transform-origin: 25% 75%;
}

.blob2 {
    width: 200px;
    animation: move 5s ease-in-out infinite;
    transform-origin: 50% 50%;
}

.blob3 {
    width: 175px;
    animation: move 10s ease-in-out infinite;
    transform-origin: 10% 60%;
}

.bubble1,
.bubble2,
.bubble3 {
    width: 15px;
    height: 15px;
    background-color: rgba(0, 40, 16, 0.1);
    position: absolute;
    border-radius: 50%;
    left: 50%;
    top: 50%;
    z-index: -10;
}

.bubble1 {
    tranform-origin: 30% 50%;
    animation: bubbly 15s ease infinite;
}

.bubble2 {
    tranform-origin: 10% 70%;
    animation: bubbly 10s ease-in-out infinite;
}

.bubble3 {
    tranform-origin: 50% 30%;
    animation: bubbly 12s linear infinite;
}

@keyframes move {
    0% {
        transform: scale(0.25) translate(10px, -30px);
    }

    40% {
        transform: scale(0.35, 0.45) translate(180px, 300px) rotate(180deg);
    }

    80% {
        transform: scale(0.35) translate(0, 50px) rotate(-20deg);
    }

    100% {
        transform: scale(0.25) translate(10px, -30px);
    }
}

@keyframes bubbly {
    0% {
        transform: translate(-50px, -50px);
    }

    25% {
        transform: translate(30px, 100px);
    }

    75% {
        transform: translate(60px, -30px);
    }

    100% {
        transform: translate(-50px, -50px);
    }
} 

Output Till Now


Lamp Animation using HTML and CSS - Coding Torque


Final Output 






If you want me to code any project or post any specific post, feel free to DM me at IG @code.scientist or @codingtorque

 If you have any doubt or any project ideas feel free to Contact Us 

Hope you find this post helpful💖 

 Written by: Coding Torque | Piyush Patil 

 Follow us on Instagram for more projects like this👨‍💻 

Post a Comment

Previous Post Next Post